Etiket
Giriş alanları, onay kutuları, anahtarlar ve radyo düğmesi grupları için bir başlık — tıklamalar kontrolü etkinleştirir; başlık, neobrütalist yazı tipiyle yazılmıştır.
import { Checkbox } from "@/components/ui/checkbox"
import { Label } from "@/components/ui/label"
Label, bir form kontrolüne başlık ekler — kontrolün id değeriyle eşleştirin; metne yapılan tıklamalar alanı odaklar veya durumunu değiştirir. Bu varyant, primitif bağımlılığı olmayan, stillendirilmiş yerel bir <label> öğesidir ve neobrütalist başlık yazı tipiyle dizilmiştir.
Şu durumlarda tercih edin:
- Bağımsız kontroller — tam bir
Fieldgerektirmeyen tek başına bir onay kutusu, anahtar veya radyo grubu: izin kutuları, bildirim anahtarları. - Ayar satırları — başlığın tamamının tıklama hedefi olduğu anahtar-etiket çiftleri.
- Özel form düzenleri —
Fieldbileşeninin dikey yapısının uymadığı ızgara ve satır içi yerleşimler.
Form alanları için yerleşik etiket, açıklama ve hata yönetimi içeren Field bileşenini kullanın.
Kurulum#
pnpm dlx shadcn@latest add https://neobrutalism.com/r/base/label.jsonnpx shadcn@latest add https://neobrutalism.com/r/base/label.jsonyarn dlx shadcn@latest add https://neobrutalism.com/r/base/label.jsonbunx --bun shadcn@latest add https://neobrutalism.com/r/base/label.json
Aşağıdaki bağımlılıkları yükleyin:
pnpm add @base-ui/reactnpm install @base-ui/reactyarn add @base-ui/reactbun add @base-ui/react
Aşağıdaki kodu kopyalayıp projenize yapıştırın.
"use client"
import * as React from "react"
import { Label as LabelPrimitive } from "radix-ui"
import { cn } from "@/lib/utils"
function Label({
className,
...props
}: React.ComponentProps<typeof LabelPrimitive.Root>) {
return (
<LabelPrimitive.Root
data-slot="label"
className={cn(
"flex items-center gap-2 text-sm leading-none font-head font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
className
)}
{...props}
/>
)
}
export { Label }
İçe aktarma yollarını proje kurulumunuza göre güncelleyin.
Kullanım#
import { Label } from "@/components/ui/label"<Label htmlFor="email">Your email address</Label>Field İçinde Label#
Form alanları için, yerleşik FieldLabel, FieldDescription ve FieldError
bileşenlerini içeren Field bileşenini kullanın.
<Field>
<FieldLabel htmlFor="email">Your email address</FieldLabel>
<Input id="email" />
</Field>import { Button } from "@/components/ui/button"
import { Checkbox } from "@/components/ui/checkbox"
import {RTL#
Neobrutalism'de RTL desteğini etkinleştirmek için RTL yapılandırma kılavuzuna bakın.
"use client"
import * as React from "react"Erişilebilirlik#
Label, yerel bir <label> öğesi işler: htmlFor değerini kontrolün id değeriyle eşleştirin (veya kontrolü etiketin içine yerleştirin); ekran okuyucular metni kontrolün erişilebilir adı olarak duyurur, etikete yapılan tıklamalar ise kontrolü odaklar veya durumunu değiştirir. Stiller select-none içerir; böylece etikete çift tıklamak metnini seçmez. <label> yalnızca form kontrolleriyle ilişkilendirilir — özel bileşenler için bunun yerine aria-labelledby özniteliğini etiketin id değerine yönlendirin.
API Referansı#
Daha fazla bilgi için Base UI Label belgelerine bakın.