Tabs 分頁
分頁用來切換面板。預設是底線(line),segment 是緊湊的次要樣式。v1 不做 card。
示範
底線
選中文字為 brand-pressed,分隔線上有 2px 品牌指示條。方向鍵在啟用的分頁之間移動。
Segment
軌道是按鈕預設灰底。選中區塊為 22% 品牌洗與 pressed 文字,沒有底線,也不是 card 邊框。
尺寸
底線分頁的點擊高度對齊 Button:
sm 28、md 34、lg 40。Segment 在軌道內為 26 / 30 / 36。 停用分頁
停用的面板仍留在列表中,透明度 50%,點擊與鍵盤都會跳過。
大量分頁
分頁列橫向捲動、預設不換行。窄螢幕時滑動分頁列即可。
關閉動畫
animated 預設為 true(面板淡入與指示條滑動約 180ms)。:animated="false" 或 animated="false" 可關閉。 圖示標籤
豐富的標籤放在 pane 的
tab 插槽,會取代 tab 字串。 API
Tabs 屬性
| 屬性 | 型別 | 預設 |
|---|---|---|
value | string | 第一個啟用的面板 |
default-value | string | — |
type | 'line' | 'segment' | 'line' |
size | 'sm' | 'md' | 'lg' | 'md' |
animated | boolean | true |
placement | 'top' | 'top' |
有設定 value 時為受控。值是空的時,使用 default-value 或第一個啟用的面板。v1 只支援上方 placement;垂直分頁以後再做。沒有 card 類型。
animated="false" 會被當成 false(字串 "false" 不是 true)。
Tab Pane 屬性
| 屬性 | 型別 | 預設 |
|---|---|---|
name | string | — |
tab | string | — |
label | string | — |
disabled | boolean | false |
label 是 tab 的別名。兩者都有時以 tab 為準。name 是值的鍵,應唯一。
Tabs 插槽
| 名稱 | 說明 |
|---|---|
| 預設 | gk-tab-pane 子元件 |
pane tab | 豐富的分頁標籤,取代 tab 文字 |
| pane 預設 | 面板內容 |
Tabs 事件
| 名稱 | 說明 |
|---|---|
update:value | 選取改變。detail: { value: string }。會冒泡;composed: true。 |
change | 與 update:value 相同內容。 |
CSS Parts
| Part | 說明 |
|---|---|
tablist | 可橫向捲動的分頁列 |
tab | 單一按鈕 |
indicator | 2px 品牌底線。segment 時隱藏 |
panels | 面板容器 |
panel | 顯示或隱藏的面板外殼 |
無障礙
- 列表為
role="tablist",aria-orientation="horizontal"。請在gk-tabs上提供aria-label。 - 每個分頁是
role="tab",帶有aria-selected、aria-controls,停用時為aria-disabled。 - 每個面板是
role="tabpanel",以aria-labelledby指向分頁。未選中的面板帶hidden。 - ← → 在啟用分頁間移動並循環。Home / End 跳到兩端。Tab 離開分頁列、進入作用中的面板。
- 只有選中且啟用的分頁在 Tab 順序中。
- 焦點環為柔和的品牌環。
垂直 placement 與 card 分頁不在這個版本。