Select

省スペースのネイティブメニューで値を選ぶ場合に使います。選択肢を検索する場合は Combobox が適しています。

プレビュー

地域グループと固定された選択

アジア太平洋・北米のグループから都市を選び、管理者指定の無効な選択肢と比較します。

インストール

この Registry を初めて使う場合は、先に 基本設定と共通スタイルの導入 を完了してください。

npx shadcn@latest add @neumorphism-ui/select

共有 base を一度導入した後、CLI でコンポーネントと依存関係を追加します。

地域グループと固定された選択

npx shadcn@latest add @neumorphism-ui/label @neumorphism-ui/select
Registry JSON

使い方

Select にラベルとフォーム名を付け、安定した value を持つ SelectItem を追加します。名前付きの選択肢グループには SelectGroup を使います。

"use client";

import { useId } from "react";
import { Label } from "@/components/ui/label";
import { Select, SelectItem } from "@/components/ui/select";

export default function Example() {
  const id = useId();
  return (
    <div className="grid gap-2">
      <Label htmlFor={id}>Role</Label>
      <Select id={id} name="role" defaultValue="designer">
        <SelectItem value="designer">Designer</SelectItem>
        <SelectItem value="developer">Developer</SelectItem>
      </Select>
    </div>
  );
}

API リファレンス

native select、optgroup、option を inset field と装飾用 chevron とともに使用します。モバイルでは platform picker を維持し、native form 送信にも対応します。

コンポーネントプロパティ型デフォルト説明
Selectvalue / defaultValuestring | string[]—制御された選択値、または非制御時の初期値です。
SelectonChangeReact.ChangeEventHandler<HTMLSelectElement>—native select の値が変わったときに呼び出されます。
Selectdisabled / required / multiplebooleanfalsenative select の制約と複数選択を設定します。
SelectItemvalue必須string | number | readonly string[]—option が送信する値です。
SelectGrouplabel必須string—optgroup の選択肢グループ名です。

アクセシビリティ

  • 01

    Label の htmlFor と Select の id を関連付けてください。

  • 02

    最初の option を placeholder として使う場合は、空の value と disabled を組み合わせ、実際の Label も維持してください。

  • 03

    native select を使用するため、OS のキーボード操作とモバイル picker の動作が維持されます。