Toggle group
Tek ya da çoklu seçim için bir düğme sırası; seçilen öğeye kayan bir dolgu, bitişik ya da aralıklı öğeler ve ok tuşlarıyla odaklanma sunar.
pnpm dlx shadcn@latest add https://hextaui.com/r/toggle-group.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 class-variance-authority cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/toggle-group.tsx components/ui/toggle.tsx lib/motion.ts İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Aynı anda tek öğe açık olabildiğinde tek bir dolgu seçili öğeye kayar ve onun biçimini alır; böylece grup tek bir denetim gibi okunur. multiple ile her öğe kendi başına dolar. Dolgu ilk boyamadan önce yerleştirilir, bu yüzden yüklenirken asla kayarak girmez.
Outline
variant="outline" öğeleri kenarlıklı tek bir denetimde birleştirir.
Çoklu
multiple, metin biçimlendirmedeki gibi istenen sayıda öğenin açık olmasına izin verir.
Boyutlar
Gruptaki size her öğeyi ayarlar: sm, default veya lg.
Boşluk
spacing öğeler arasına boşluk ölçeğinden bir boşluk koyar. Boşluklu outline öğeler kendi kenarlıklarını ve dolgularını korur.
Simgeler ve etiketler
Etiketten önce bir simge koyun. Yalnızca simgeli öğelerin aria-label'ı olmalıdır.
Dikey
orientation="vertical" öğeleri üst üste dizer ve odağı ↑ ve ↓ ile taşır.
Devre dışı
Bir öğeyi veya disabled ile tüm grubu devre dışı bırakın. Devre dışı öğeler klavye tarafından atlanır.
Kontrollü
value ve onValueChange verin. Boş değeri yok saymak bir öğeyi açık tutar; seçili öğeye yeniden basmak hiçbir şey yapmaz.
Sağdan sola
Öğe sırası, birleşik köşeler, kayan dolgu ve ok tuşları okuma yönünü izler.
| Tuş | Action |
|---|---|
| Tab | Son odaklanılan öğede gruba girer, sonra çıkar. |
| ←→ | Öğeler arasında gezinir, uçlarda başa sarar. Dikeyken ↑ ve ↓. |
| HomeEnd | İlk veya son öğeye gider. |
| EnterSpace | Odaktaki öğeyi açar veya kapatır. |
- Grubun
grouprolü vardır; ona biraria-labelverin. Her öğearia-pressediçeren bir düğmedir. - Sekme sırasında yalnızca bir öğe vardır; böylece grup tek bir Tab durağıdır ve ok tuşları içinde gezinir.
multipleolmadan seçili öğeye basmak onu kapatır. Bir öğeyi açık tutmak için değeri kontrol edin.- Azaltılmış harekette dolgu kaymak yerine solar.
| Prop | Tür | Varsayılan |
|---|---|---|
value | string[] | – |
defaultValue | string[] | – |
onValueChange | (value: string[], details) => void | – |
multiple | boolean | false |
variantHer öğenin varyantını ayarlar. | "default" | "outline" | "default" |
sizeHer öğenin boyutunu ayarlar. | "default" | "sm" | "lg" | "default" |
spacingÖğeler arası boşluk, boşluk ölçeğinde. 0 outline öğeleri birleştirir. | 0 | 0.5 | 1 | 1.5 | 2 | 2.5 | 3 | 4 | 5 | 6 | 8 | 0 |
orientation | "horizontal" | "vertical" | "horizontal" |
loopFocus | boolean | true |
disabled | boolean | false |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="toggle-group" | Kök. |
data-slot="toggle-group-indicator" | multiple olmadan işlenen kayan dolgu. Bir öğe açıkken data-visible. |
data-variant / data-size / data-spacing | Grubun varyantı, boyutu ve boşluğu. |
data-orientation | "horizontal" veya "vertical". |
data-multiple | Birçok öğe açık olabildiğinde bulunur. |
data-disabled | Grup devre dışı olduğunda bulunur. |
| Prop | Tür | Varsayılan |
|---|---|---|
valueÖğeyi grubun değerinde tanımlar. | string | – |
disabled | boolean | false |
variantGrup hiçbirini ayarlamadığında kullanılır. | "default" | "outline" | – |
sizeGrup hiçbirini ayarlamadığında kullanılır. | "default" | "sm" | "lg" | – |
nativeButton | boolean | true |
render | ReactElement | (props, state) => ReactElement | <button> |
| Öznitelik | Açıklama |
|---|---|
data-slot="toggle-group-item" | Her öğe. |
data-pressed | Öğe açık. |
data-disabled | Öğe devre dışı. |
data-variant / data-size | Öğenin çözümlenmiş varyantı ve boyutu. |
- MotionHer bileşenin kullandığı yumuşatma eğrileri, süreler ve azaltılmış hareket denetimi; ayrıca boyut dönüşümleri ve kayan vurgular için hook'lar.
- ToggleAçık ya da kapalı kalan; basıldığında yerleşen bir dolgusu, belirgin bir hover-açık geçişi ve duruma göre dolabilen simgeleri olan bir düğme.
- ButtonHer varyant ve boyutta düğmeler; hızlı istekler için spinner'ı atlayan yerleşik yükleme, başarı ve hata akışı.
- Button groupTek bir kontrol olarak birleşen düğmeler; ortak birleşim yerleri, ayırıcılar, metin eklentileri, iç içe geçme ve dikey yığınlar.
Kullanıldığı bloklar
Toggle group üzerine kurulan bloklar.
- Prompt InputTek sakin bir satır olarak başlayan, yazdıkça karta dönüşen ve konuşma başladığında aşağı inen bir sohbet yazma alanı. Enter gönderir; Japonca ve Çince girişle de güvenle çalışır. Dosyaları yapıştırın, bırakın ya da seçin; önizleme, ilerleme ve yeniden deneme desteği vardır. @ dosya ekler, / ise imleçte açılan bir menüden komut çalıştırır. Sayı tuşlarıyla çalışan bir model seçici, Max'ta canlanan bir efor kaydırıcısı, bir bağlam halkası, canlı dalga biçimli dikte, araç çipleri, yanıt akarken yazılan mesajlar için bir kuyruk ve yeniden yüklemeden sağ çıkan taslaklar.
- API keysOpenAI ve Anthropic konsolları gibi bir yapay zeka ürününün API anahtarları sayfası. Kapsamlı izinler ve son kullanma tarihiyle anahtar oluşturun, gizli anahtarı bir kez görün ve kopyalama onaylansın, geri alınabilir şekilde iptal edin, yerinde yeniden adlandırın, ek süreyle döndürün ve anahtar başına kullanımı görün.
- Diff ReviewBir ajanın dosyalardaki düzenlemelerini uygulanmadan önce gözden geçirin. Sayaçlı bir dosya ağacı, her değişikliği, her dosyayı ya da hepsini kabul veya reddetme, herhangi bir satıra ya da aralığa ajana geri giden yorumlar, birleşik ve bölünmüş görünümler, kelime düzeyinde vurgular, geri alma, akışla gelen düzenlemeler ve sohbet için bir “4 dosya düzenlendi” özeti.
- MarkdownYapay zeka yanıtları için geliştirilmiş Markdown. Akıcı biçimde akar ve yarım yazılmış sözdizimini asla göstermez; bağlantı verilebilen başlıklar, Markdown ya da CSV olarak kopyalanabilen tablolar, GitHub callout'ları, görev listeleri, dipnotlar, görseller, satır içi alıntılar ve eksiksiz kod blokları sunar.