Native select
Tarayıcının kendi select'i; Input ile eşleşecek şekilde biçimlendirilmiş, sakin bir yer tutucusu, Field desteği ve her cihazda işletim sistemi seçicisi vardır.
pnpm dlx shadcn@latest add https://hextaui.com/r/native-select.jsonBileşeni, HextaUI tema token'larını ve bileşenin bağımlı olduğu tüm HextaUI bileşenlerini ekler.
Henüz eklemediyseniz tema token'larını global CSS'inize ekleyin.
Bağımlılıkları yükleyin.
pnpm add @base-ui/react @tabler/icons-react class-variance-authority cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/native-select.tsx components/ui/input.tsx components/ui/number-flow.tsx lib/motion.ts İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Boş bir value değerine sahip seçenek yer tutucu görevi görür: bir şey seçilene kadar soluk metinle gösterilir. Sarmalayıcısını boyutlandırmak için select'e className verin, örneğin w-full.
Gruplar
<NativeSelectOptGroup />, seçenekleri işletim sistemi seçicisinde başlıklar altında düzenler.
Boyutlar
Boyutlar, kenarlıklar, odak halkaları ve geçersiz stilleri Input ile birebir aynıdır, böylece ikisi bir satırda hizalanır.
Field
Bir <Field /> içinde etiket ve açıklama kendiliğinden bağlanır, hatalar değer değiştikçe gösterilir. Plan seçmeden gönderirseniz select kırmızıya döner, bir kez sallanır ve tarayıcı onu işaret eder.
Geçersiz
aria-invalid ayarlayın ve mesajı aria-describedby ile bağlayın.
Devre dışı
Select'in tamamını ya da kullanılamayan tek tek seçenekleri devre dışı bırakın.
Kontrollü
Normal bir select gibi value ve onChange verin.
Uzun içerik
Uzun seçili etiketler ok işaretinin altına taşmak yerine üç noktayla biter.
Sağdan sola
Ok işareti ve dolgu diğer tarafa geçer.
- Basit listeler için Native select kullanın; özellikle işletim sistemi seçicisinin seçim yapmanın en hızlı ve en tanıdık yolu olduğu telefonlarda.
- İnsanların arama yapması gerektiğinde veya seçeneklerin simge, açıklama ya da özel düzen gerektirdiği durumlarda Combobox kullanın.
| Tuş | Action |
|---|---|
| Tab | Select'e odaklanır. |
| SpaceEnter | İşletim sistemi seçicisini açar. |
| ↑↓ | Seçimi değiştirir veya açık seçicide gezinir. |
| A–Z | Yazılan metinle başlayan seçeneğe atlar. |
<NativeSelect /> tüm select niteliklerini kabul eder. Seçenek parçaları kendi öğelerinin niteliklerini kabul eder.
| Prop | Tür | Varsayılan |
|---|---|---|
size | "sm" | "default" | "lg" | "default" |
htmlSizeYerel size niteliği; size variant olduğu için yeniden adlandırılmıştır. | number | – |
shakeForm gönderimi geçersiz bulduğunda bir kez sallanır. | boolean | true |
classNameSarmalayıcıya uygulanır, böylece tüm denetimi boyutlandırır. | string | – |
value | string | – |
defaultValue | string | – |
disabled | boolean | false |
required | boolean | false |
| Öznitelik | Açıklama |
|---|---|
data-slot="native-select-wrapper" | Sarmalayıcı; data-size ile birlikte. |
data-slot="native-select" | Select öğesi. |
data-slot="native-select-icon" | Ok işareti. Hover ve odakta koyulaşır. |
data-invalid | Çevreleyen bir Field geçersiz olduğunda bulunur. |
| Öznitelik | Açıklama |
|---|---|
data-slot="native-select-option" | Bir seçenek. |
data-slot="native-select-optgroup" | Etiketli bir seçenek grubu. |
- InputÜç boyutlu, geçersiz ve salt okunur durumları, yerel doğrulama stilleri ve telefonların asla yakınlaştırmaması için 16px dokunmatik yazı tipi olan bir metin girişi.
- useComposedRefKendi öğenize bir ref tutarken, üst bileşenin ilettiği her ref'e de yönlendirmeyi sürdürür.
- useInvalidShakeGönderme denemesi bir form kontrolünü geçersiz bulduğunda onu sallar; biri hâlâ yazarken asla sallamaz.
- CalendarTekli, aralık ve çoklu seçim için, kayan aylar, aralık önizlemeleri ve dokunmaya uygun boyutta günler içeren bir tarih ızgarası.
- Checkboxİşareti çizilerek beliren, belirsiz üst öğeleri, grupları ve hover durumunu paylaşan etiketleri olan bir onay kutusu.
- ComboboxÇipler, gruplar ve asenkron sonuçlar içeren, siz yazdıkça boyutu değişen bir açılır pencerede filtrelenebilir bir select.
Kullanıldığı bloklar
Native select üzerine kurulan bloklar.