Angular タブ・ピル・アコーディオンコンポーネント | ng-hub-ui-panels
タブ、ピル、アコーディオンとしてレンダリングできる Angular コンテンツパネルコンポーネント。Router、リアクティブフォーム、キーボード操作、CSS 変数に対応します。
概要
チームがこのライブラリを探す理由
単一の API からタブ・ピル・アコーディオンのパターンを使い、ルーティング対応のパネル、リアクティブフォームのバインディング、キーボード操作、CSS 変数テーマが必要なとき、この Angular パネルコンポーネントを使ってください。
インストール
npm install ng-hub-ui-panelsジャンプ
最適な用途
- 設定ページ
- 商品詳細タブ
- FAQ アコーディオン
- ダッシュボードのセクション
について panels
ng-hub-ui-panels は、タブ・ピル・アコーディオンを Signals 上に構築された単一の standalone Angular コンポーネントに統合します。ルーティング対応のパネル、ControlValueAccessor によるフォームバインディング、スクロール可能で垂直なストリップ、完全な --hub-panels-* テーマに対応します。ng-hub-ui-accordion を置き換える後継であり、--hub-accordion-* トークンの規約を維持したままそのアコーディオンビューを代替します。
機能ガイド
表示形式
1つのコンポーネントで3つのビューを利用できます:クラシックな下線付きタブ、角丸のピル、スタック式のアコーディオン開示パネル。単一の `type` 入力で切り替えられます。
サンプル:
基本的なタブ
基本的なタブ
ピル
ピル
accordion ビュー
accordion ビュー
カードとコンテンツスロット
カードとコンテンツスロット
hubPanelHeader / hubPanelFooter slots work in tabs, pills and accordion too. A single standalone <hub-panel> (no container):
hub-panel renders as a card by itself. セマンティックアラート
セマンティックアラート
An alert can use the same header/footer slots as a card:
セマンティックストリップアクセント
セマンティックストリップアクセント
ストリップレイアウト
あらゆるシェルに合わせてヘッダーストリップをレイアウトできます:コンテンツの横に縦に積み重ねる、ヘッダーを幅いっぱいに引き伸ばす、オーバーフローしたストリップをスクロール可能にする、といった配置が可能です。
サンプル:
垂直タブ
垂直タブ
均等配置タブ
均等配置タブ
スクロール可能なタブ
スクロール可能なタブ
パネル管理
個々のパネルを無効化したり、✕ アフォーダンスと Delete キーを使ってユーザーがその場でパネルを追加・削除したりできます。
サンプル:
無効なパネル
無効なパネル
削除可能 & 動的なパネル
削除可能 & 動的なパネル
カスタムテンプレート
`hubPanelHeading` ディレクティブを介して、プレーンテキストのヘッダーを任意の Angular テンプレート(アイコン、バッジ、インタラクティブなコントロール)に置き換えられます。
サンプル:
カスタム見出しテンプレート
カスタム見出しテンプレート
フォーム統合
ファーストクラスの ControlValueAccessor サポートにより、アクティブなパネルを Angular のリアクティブフォームおよびテンプレート駆動フォームにバインドできます。
サンプル:
リアクティブフォーム統合
リアクティブフォーム統合
複数選択
`multiple` を指定すると、複数のパネルを同時に開けます。アコーディオンビューではすべてが展開され、タブ/ピルビューでは各アクティブなヘッダーが独自の表示パネルを開始し、後続の非アクティブなヘッダーは、次のアクティブなヘッダーが新しいブロックを開始するまで、そのパネルの上にグループ化されたまま残ります。
サンプル:
複数選択
複数選択
Click an inactive tab to split the layout into a new panel block. Click an active tab to merge that block back.
複数の垂直ヘッダー
複数の垂直ヘッダー
Each active header starts a new row-like vertical block. The blocks stack top-to-bottom, and the whole layout scrolls horizontally only when one row needs more width.
Tabs
Pills
アコーディオンのオプション
アコーディオンビューは、複数のパネルを同時に展開する機能と、外側の装飾のないエッジトゥエッジの `flush` レイアウトをサポートします。
サンプル:
アコーディオンの複数表示 & フラッシュ
アコーディオンの複数表示 & フラッシュ
アクセシビリティ
完全なキーボードナビゲーション(矢印キー、Home、End、Delete)、roving tabindex、そして tablist とアコーディオンの開示パターンの両方に対する正しい ARIA ロールを備えています。
サンプル:
キーボードナビゲーション
キーボードナビゲーション
Focus a tab, then use ← → Home End. Press Delete on a removable tab to close it.
主な機能
最近の変更
Version 22.1.0 - 6/22/26, 12:00 AM
added: New variant input on <hub-panels> selecting the semantic accent of the navigation strip (active/hover tab, active pill, active accordion header). Built-in variants (primary | success | danger | warning | info) use the exact design-system tints; any custom string is also accepted and derived with color-mix. Defaults to primary.
added: New group-accent tokens --hub-panels-accent, --hub-panels-accent-emphasis and --hub-panels-accent-subtle; the strip active/hover affordances now resolve through this single accent instead of being hard-wired to --hub-sys-color-primary*.
changed: The outer container chrome now inherits from the --hub-container-* base layer (re-base hook), so overriding a container token on a subtree re-bases the panels chrome. No visual change with default tokens.
Version 21.3.0 - 6/16/26, 12:00 AM
added: New alert appearance for a standalone <hub-panel>: appearance="alert" with a variant renders a semantic callout (role="alert").
added: New variant input (primary | success | danger | warning | info) selecting the alert colour; omit it for a neutral alert. Exported HubPanelAppearance and HubPanelVariant types.
added: New alert tokens (--hub-panels-alert-*); each variant re-points them at the --hub-sys-color-<variant>-{subtle,border-subtle,emphasis} family, so the alert inherits every theme and dark mode automatically.
Version 21.2.0 - 6/14/26, 12:00 AM
added: New card visualization (type="card"): a chromeless format with no navigation strip where every <hub-panel> is always visible and styled as a card.
added: A <hub-panel> can now be used standalone, outside any <hub-panels> container, rendering as a card on its own.
added: New content-slot directives hubPanelHeader and hubPanelFooter, rendering header/footer bands in every view, distinct from the navigational hubPanelHeading.
Version 21.1.1 - 6/12/26, 12:00 AM
added: New token: --hub-panels-header-bg, used by the tabs/pills strip background while defaulting to the panel surface.
added: New token: --hub-panels-pill-content-border-width, which controls the bordered card chrome in the pills content area.
changed: The active header background now defaults to --hub-panels-content-bg so the active tab/panel fusion stays aligned when themes retint the content surface.
changed: The pills content area is borderless by default; themes can opt back into a bordered card by overriding --hub-panels-pill-content-border-width.
Version 21.1.0 - 6/11/26, 12:00 AM
added: Multiple selection in the tabs/pills views: each open pane becomes its own bordered box placed next to the others (side by side when horizontal, stacked when vertical), with a per-pane minimum and scroll on overflow.
added: New tokens: --hub-panels-pane-min-width, --hub-panels-pane-min-height, --hub-panels-pane-gap, --hub-panels-nav-content-gap, --hub-panels-pill-gap.
fixed: Accordion content was always empty (two unselected ng-content slots); replaced with a single projection slot.
fixed: tabs and vertical tabs now render as a single bordered box around the strip and content together (not two boxes); pills gain spacing before a bordered content card.
changed: Smooth strip scrolling, not-allowed cursor on disabled headers, and full-width container.
Version 21.0.0 - 6/11/26, 12:00 AM
added: Initial release of ng-hub-ui-panels with tabs, pills and accordion visualizations.
added: ControlValueAccessor integration with single and multiple selection, bindValue and compareWith.
added: Routed panels via routerLink with route/full pathMatch and a <router-outlet> content area.
added: Keyboard navigation (arrows/Home/End/Delete), scrollable, vertical and justified strips.
added: Accordion view with multiple expansion, flush layout and an animated grid-based collapse.
added: Custom header templates through the hubPanelHeading directive and full --hub-panels-* theming.
changed: Supersedes ng-hub-ui-accordion; the accordion view honours the --hub-accordion-* token contract for theme compatibility.