Skip to content

[chrome] More tab strip types#76

Merged
velzie merged 22 commits into
HeyPuter:mainfrom
bomberfish:vertical-tabs
May 23, 2026
Merged

[chrome] More tab strip types#76
velzie merged 22 commits into
HeyPuter:mainfrom
bomberfish:vertical-tabs

Conversation

@bomberfish
Copy link
Copy Markdown
Member

@bomberfish bomberfish commented May 21, 2026

https://youtu.be/8yHV8iwGfuI

todo:

  • skia chromium-style hybrid vertical tab strip
  • arc/zen-style full vertical mode with addressbar in sidebar
  • option to change the side of the vertical tab bar
  • old firefox-style layout with horizontal tab bar under content area
  • helium-style compact mode (tabs inline with omnibox)

pins come later when pinned tabs are properly implemented as a feature

@bomberfish bomberfish marked this pull request as ready for review May 22, 2026 00:19
@velzie velzie requested a review from Copilot May 22, 2026 01:13
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds multiple experimental tab strip / browser layout modes (hybrid vertical sidebar, full vertical, bottom tabs, and compact inline tabs), wiring them through persisted settings and updating the chrome UI layout (App + Omnibar + tab strip components) accordingly.

Changes:

  • Introduces new layout settings (tabLayout, sidebar side, sidebar width) and UI controls in Settings.
  • Adds a new Sidebar tab strip implementation for vertical/hybrid modes and an inline TabStrip mode for compact layout.
  • Updates global layout/CSS and adjusts several UI components (Omnibar, hovercard, favicon/checkbox/bookmarks strip behavior) to support the new layouts.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
packages/chrome/src/Tab/Tab.tsx Sets default favicon handling on internal vs external navigations.
packages/chrome/src/style.css Adds layout-mode flex rules + hovercard transition rules + vertical omnibar height tweaks.
packages/chrome/src/services/SettingsService.ts Persists new layout/sidebar settings and normalizes loaded values (partially).
packages/chrome/src/pages/SettingsPage.tsx Adds “Browser Layout” and sidebar-location settings UI; adjusts bookmarks-bar control behavior.
packages/chrome/src/index.ts Improves service save flushing (interval + pagehide/visibilitychange) and avoids concurrent saves.
packages/chrome/src/icons.ts Adds an additional icon export used as a placeholder.
packages/chrome/src/components/TabStrip/TabStrip.tsx Adds inline mode and tightens event listener lifecycle/initial sync.
packages/chrome/src/components/TabStrip/TabHoverCard.tsx Adjusts hovercard positioning for vertical tab layouts.
packages/chrome/src/components/TabStrip/Sidebar.tsx New vertical sidebar tab strip implementation (dragging, resizing, hovercard, extras).
packages/chrome/src/components/TabStrip/DragTab.tsx Adds vertical orientation support, favicon placeholder, and vertical open animation.
packages/chrome/src/components/Omnibar/SiteOptionsButton.tsx Anchors popup positioning to the clicked button rect.
packages/chrome/src/components/Omnibar/Omnibox.tsx Adds vertical layout styling/behavior for omnibox.
packages/chrome/src/components/Omnibar/Omnibar.tsx Adds vertical/compact omnibar layouts and reworks popup anchoring.
packages/chrome/src/components/Omnibar/BookmarkButton.tsx Anchors bookmark popup positioning to the clicked button rect.
packages/chrome/src/components/Favicon.tsx Adds explicit width/height attributes based on requested size.
packages/chrome/src/components/Checkbox.tsx Adds disabled support + disabled styling.
packages/chrome/src/components/BookmarksStrip.tsx Adds vertical orientation styling for sidebar usage.
packages/chrome/src/App.tsx Drives layout mode switching (classes + conditional rendering) and integrates Sidebar/compact mode.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/chrome/src/style.css
Comment thread packages/chrome/src/services/SettingsService.ts Outdated
Comment thread packages/chrome/src/components/TabStrip/TabHoverCard.tsx
Comment thread packages/chrome/src/components/TabStrip/Sidebar.tsx
Comment thread packages/chrome/src/index.ts
Comment thread packages/chrome/src/components/TabStrip/DragTab.tsx
Comment thread packages/chrome/src/pages/SettingsPage.tsx
Comment thread packages/chrome/src/components/TabStrip/TabHoverCard.tsx
@velzie velzie merged commit fc28744 into HeyPuter:main May 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants