ドロップダウン
React Aria に組み込まれたコンポジブルなポップアップメニュー - Select は、そのトリガーに値を選ぶ、Dropdown は、BoardUI の表面(半径16、ドロップダウンシャドウ)と 150ms のスケール + ぼくらがアニメーションを表示するグループ化されたアクション行のフリーフォームパネルです。ダッシュボードのサイドバーのチームとアカウントメニューの背後にある同じレシピと、AI チャットのコンポーザーはメニューを追加します。
インストール
CLI または手動でこのドロップダウンコンポーネントを追加できます。
ダークモード対応:この コンポーネント はBoardUIのセマンティックトークンに合わせて自動で切り替わります。 テーマスイッチの設定.
CLI
手動
CLIがコンポーネントのソースと内部の依存ファイルをプロジェクトにコピーし、必要なnpmパッケージをインストールします。
npx boardui@latest add dropdown共有UIパッケージや独自のインポートエイリアスを使う場合は、 インストールパスの設定 をCLIの実行前に設定してください。コピー&ペーストの例は、標準のインポートを使います。
モデルピッカー
AIチャットコンポーザーのモデルメニュー: 行はラジオグループとして機能します - 選択する 現在の行を強調し、ラジオのグリフは行の端を経由して座っています justify-between.
{/* Radio-group rows: selected state on the row + a radio glyph at the end */}const [model, setModel] = useState("Fable 5");
<Dropdown isOpen={isOpen} onOpenChange={setIsOpen}> <DropdownTrigger className="…pill trigger with the current model + chevron…"> {model} <ChevronDownSmall className={cx("size-4", isOpen && "rotate-180")} /> </DropdownTrigger>
<DropdownPopover aria-label="Models" placement="bottom start"> <DropdownGroup label="Models"> <div role="radiogroup" aria-label="Model" className="flex w-full flex-col gap-1"> {MODELS.map((name) => ( <DropdownItem key={name} selected={name === model} onSelect={() => { setModel(name); setIsOpen(false); }} className="justify-between gap-2.5" > <span className="truncate text-body-medium text-text-primary">{name}</span> <RadioDot selected={name === model} /> </DropdownItem> ))} </div> </DropdownGroup> </DropdownPopover></Dropdown>