| <style> |
| :host { |
| --tabstrip-tab-height: calc(var(--tabstrip-tab-title-height) + |
| var(--tabstrip-tab-thumbnail-height)); |
| --tabstrip-tab-width: var(--tabstrip-tab-thumbnail-width); |
| --tabstrip-tab-spacing: 16px; |
| --tabstrip-tab-dragging-shadow: |
| 0 2px 3px 0 rgba(var(--google-grey-800-rgb), .3), |
| 0 6px 10px 4px rgba(var(--google-grey-800-rgb), .15); |
| |
| <if expr="not chromeos"> |
| --tabstrip-tab-drag-image-scale: 1.1; |
| </if> |
| <if expr="chromeos"> |
| /* ChromeOS scales drag images by 1.2, so this variable multiplied by |
| * 1.2 should be around 1.1. */ |
| --tabstrip-tab-drag-image-scale: calc(1.1 / 1.2); |
| </if> |
| |
| background: var(--tabstrip-background-color); |
| box-sizing: border-box; |
| display: flex; |
| height: 100%; |
| overflow: overlay hidden; |
| touch-action: pan-x; |
| width: 100%; |
| } |
| |
| #tabs { |
| display: flex; |
| min-width: fit-content; |
| overflow: hidden; |
| width: 100%; |
| } |
| |
| #pinnedTabs { |
| /* 3 pinned tabs should fit in the same space vertically as 1 unpinned |
| * tab. 20px is subtracted from the height of an unpinned tab as there |
| * are two 10px gaps to separate each of the 3 pinned tabs. */ |
| --tabstrip-pinned-tab-size: calc((var(--tabstrip-tab-height) - 20px) / 3); |
| --tabstrip-tab-spacing: 10px; |
| |
| display: grid; |
| grid-auto-columns: var(--tabstrip-pinned-tab-size); |
| grid-auto-flow: column; |
| grid-gap: var(--tabstrip-tab-spacing); |
| grid-template-rows: repeat(3, var(--tabstrip-pinned-tab-size)); |
| padding-block-end: var(--tabstrip-tab-list-vertical-padding); |
| padding-block-start: var(--tabstrip-tab-list-vertical-padding); |
| padding-inline-end: 0; |
| padding-inline-start: var(--tabstrip-tab-spacing); |
| } |
| |
| #pinnedTabs:empty { |
| display: none; |
| } |
| |
| #unpinnedTabs { |
| display: flex; |
| min-width: fit-content; |
| padding-block-end: var(--tabstrip-tab-list-vertical-padding); |
| padding-block-start: var(--tabstrip-tab-list-vertical-padding); |
| padding-inline-end: 0; |
| padding-inline-start: var(--tabstrip-tab-spacing); |
| } |
| |
| tabstrip-tab-group { |
| --tabstrip-tab-spacing: 8px; |
| } |
| |
| tabstrip-tab-group:not([dragging]) { |
| margin-block-end: calc(-1 * var(--tabstrip-tab-spacing)); |
| margin-block-start: calc(-1 * var(--tabstrip-tab-spacing)); |
| margin-inline-end: var(--tabstrip-tab-spacing); |
| margin-inline-start: 0; |
| } |
| |
| tabstrip-tab-group tabstrip-tab:last-child { |
| --tabstrip-tab-spacing: 0px; |
| } |
| |
| tabstrip-tab + tabstrip-tab-group:not([dragging]) { |
| margin-inline-start: calc(-1 * var(--tabstrip-tab-spacing)); |
| } |
| |
| tabstrip-tab-group[dragging] { |
| margin-block-end: 0; |
| margin-block-start: 0; |
| margin-inline-end: 16px; |
| margin-inline-start: 0; |
| } |
| |
| #dropPlaceholder { |
| background: var(--tabstrip-tab-background-color); |
| border-radius: var(--tabstrip-tab-border-radius); |
| height: var(--tabstrip-tab-height); |
| margin-inline-end: var(--tabstrip-tab-spacing); |
| opacity: 0.5; |
| width: var(--tabstrip-tab-width); |
| } |
| </style> |
| |
| <div id="tabs"> |
| <div id="pinnedTabs"></div> |
| <div id="unpinnedTabs"></div> |
| </div> |