Button
FREEVaryantlar, boyutlar, baş/son ikon, yükleniyor durumu ve ButtonGroup içeren buton. asChild destekler.
Canlı düzenle
Ayarları değiştir; bileşen ve kodu anında güncellensin.
Ayarlar
Kod
import { Rocket } from "lucide-react";
import { Button } from "@/components/ui/button";
<Button
startIcon={<Rocket />}
>
Deploy
</Button>Kurulum
Terminal
npx @bloxa/cli add button
# or: npx shadcn@latest add @bloxa/buttonAyrıca kurulur: hold-button
Terminal
npx shadcn@latest add @bloxa/hold-buttonOtomatik kurulan paketler: radix-ui, class-variance-authority
Örnekler
Varyantlar
Beş görsel stil; ana eylem için primary kullan.
Boyutlar
İkonlar
startIcon / endIcon ya da yalnız ikon. Yalnız ikonlu butonlara aria-label ver.
Yükleniyor
Genişlik sabit kalır, buton tıklanamaz olur. Denemek için ilk butona bas.
Buton grubu
Alt menülü buton
Ana eylem + açılır menü; menüde alt menü de olabilir.
Basılı tut
Riskli işlemler için. Erken bırakınca iptal olur.
Press and hold for 1.2 seconds.
API
Her bileşen, oluşturduğu HTML elemanının özelliklerini de kabul eder.
Button
| Özellik | Tip | Varsayılan | Açıklama |
|---|---|---|---|
| variant | "primary" | "secondary" | "outline" | "ghost" | "destructive" | "primary" | Görsel stil. |
| size | "sm" | "md" | "lg" | "icon" | "icon-sm" | "md" | Boyut; icon boyutları kare butonlar içindir. |
| startIcon | ReactNode | — | Etiketten önce gösterilen ikon. |
| endIcon | ReactNode | — | Etiketten sonra gösterilen ikon. |
| loading | boolean | false | Spinner gösterir, genişliği korur ve butonu devre dışı bırakır. |
| asChild | boolean | false | Stili alt elemana (ör. <a>) uygular. |
ButtonGroup
Butonları tek bir segment hâline getirir.
HoldButton
@bloxa/hold-button ile ayrıca kurulur.
| Özellik | Tip | Varsayılan | Açıklama |
|---|---|---|---|
| onConfirm | () => void | — | Basılı tutma tamamlanınca çalışır. |
| duration | number | 1200 | Basılı tutma süresi (ms). |
| variant | ButtonProps["variant"] | "destructive" | Buton stili. |
| size | ButtonProps["size"] | "md" | Buton boyutu. |