Card
İçeriği gruplamak için bir yüzey; üç varyant, kenardan kenara medya, eşmerkezli yarıçaplar ve tüm kartı kaplayan bağlantılar içerir.
pnpm dlx shadcn@latest add https://hextaui.com/r/card.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/card.tsx İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Varyantlar
default ince bir halka ve yumuşak bir gölge üzerinde durur, outline dolguyu ve gölgeyi kaldırır, muted ise daha sakin bölümler için dolgulu bir yüzey kullanır.
Boyutlar
size="sm" boşluğu, yarıçapı ve başlık boyutunu birlikte sıkılaştırır; böylece kompakt bir kart yine aynı ailenin parçası gibi görünür. size="flush" kendi dolgusunu getiren listeler ve katlanabilir satırlar gibi özel düzenler için iç boşluğu kaldırır.
Media
İlk veya son sıraya yerleştirilen bir görsel, video, resim veya aspect ratio kenardan kenara uzanır. Kart o taraftaki dolguyu kaldırır ve medyayı köşelerine göre kırpar.
Tıklanabilir kart
Tüm kartı tek bir bağlantı yapmak için başlığa bir <CardLink /> koyun. İçindeki düğmeler ve diğer kontroller tıklanabilir kalır ve buradaki yıldız gibi kendi odağını korur.
Tıklanabilir variant'lar
Bir bağlantı içerdiğinde her variant kendi üzerine gelme geri bildirimini alır; bağlantıya klavyeyle odaklanıldığında odak halkası tüm kartı sarar.
Kenarlıklar
Üst bilgiye border-b veya alt bilgiye border-t ekleyin; kart iç tarafa eşleşen dolguyu ekler.
İç içe
CardContent içindeki bir kart, yarıçapını üst öğenin yarıçapından boşluğu çıkararak türetir; böylece köşeler eş merkezli kalır.
Uzun içerik
Kırılmayan başlıklar, uzun URL'ler, emojiler ve CJK metni dar bir kartı genişletmek yerine içinde sarar.
Semantik
Her parça bir render prop'u alır; böylece bir kart gerçek başlık, üst bilgi ve alt bilgiye sahip bir <article> olabilir.
Sağdan sola
Eylem satır içi başlangıca taşınır ve alt bilgi okuma yönünü izler.
Bir kart kendi başına odaklanabilir değildir. Bu tuşlar bir <CardLink /> içerdiğinde geçerlidir.
| Tuş | Action |
|---|---|
| Tab | Odağı tüm kartın etrafına odak halkası çizen kart bağlantısına verir, sonra içindeki her kontrole geçer. |
| Enter | Kart bağlantısını izler. |
- Bağlantının erişilebilir adı kendi metnidir; bu yüzden tüm kartı bir anchor içine sarmak yerine
<CardLink />bileşenini başlığın içinde tutun. - Tıklanabilir bir kartın içindeki kontroller bağlantının tıklama alanının üstüne çıkarılır; böylece işaretçi ve klavyeyle erişilebilir kalır.
- Başlığa sayfanıza uygun başlık düzeyini vermek için
<CardTitle />üzerinderenderkullanın.
Her parça varsayılan olarak bir <div> oluşturur, niteliklerini kabul eder ve öğeyi değiştirmek için bir render prop'u alır.
| Prop | Tür | Varsayılan |
|---|---|---|
variant | "default" | "outline" | "muted" | "default" |
sizeBoşluğu, yarıçapı ve başlık boyutunu birlikte ölçekler. | "default" | "sm" | "flush" | "default" |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="card" | CSS'te kartı hedefleyin. |
data-variant | Geçerli varyant. |
data-size | Geçerli boyut. |
data-link | Kart bir CardLink içerirken bulunur. |
--card-spacing | Her parçanın paylaştığı iç boşluk. Boyuta göre ayarlanır. |
--card-radius | Köşe yarıçapı. İç içe kartlar kendisini üst öğeden türetir. |
--card-title-size | CardTitle'ın kullandığı yazı tipi boyutu. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="card-header" | CardAction'ı üst son köşeye yerleştiren bir ızgara. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="card-title" | Başlığı hedefleyin. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="card-description" | Açıklamayı hedefleyin. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="card-action" | Başlık ve açıklama satırlarını kaplar, bir CardLink'in tıklama alanının üstündedir. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="card-content" | Kartın yarıçapını ve boşluğunu iç içe kartlara aktarır. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="card-footer" | Alt bilgiyi hedefleyin. |
| Prop | Tür | Varsayılan |
|---|---|---|
href | string | – |
renderRouter'ınızın link bileşenini buraya geçin. | ReactElement | (props, state) => ReactElement | <a> |
| Öznitelik | Açıklama |
|---|---|
data-slot="card-link" | Tıklama alanını tüm kartın üzerine yayar. |
- AvatarBaş harf yedekli kullanıcı fotoğrafları, durum rozetleri ve sayıya daralan yığılmış gruplar.
- BadgeRenkli noktalı durum etiketleri, kayarak kapanan kaldırılabilir etiketler ve yeni değerine dönen sayaçlar.
- ChartTema renkli Recharts grafikleri; etiketleri tek bir yapılandırmadan okuyan bir tooltip ve gösterge, ayrıca görünür odak halkalı klavye gezintisi.
- Data tableGerçek veriler için bir tablo; sıralama, arama, satır seçimi, sabitlenmiş sütunlar, yapışkan başlık ve sayfalama içerir.
- ItemListeler, ayarlar ve seçiciler için medya, metin ve eylemlerden oluşan bir satır; gruplanmış bir yüzey ve satırlar arasında kayan bir hover vurgusu içerir.
- KbdKısayollar için, her platformda doğru simgeleri gösteren, düzgün sesli okunan ve gerçek tuşlar gibi basılan tuş başlıkları.
Kullanıldığı bloklar
Card üzerine kurulan bloklar.
- Code BlockYapay zeka yanıtları için geliştirilmiş kod blokları. Akışa ayak uyduran sözdizimi vurgulama, kopyalama, indirme ve satır kaydırma, satır numaraları ve vurgulanmış satırlar, kabul ve reddetme seçenekli fark görünümleri ve komutlar için bir terminal.
- 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.
- Tool CallsBir ajanın ne yaptığını adım başına bir satırla gösterin. Okuma ve aramalar kısa bir özete katlanırken düzenlemeler, komutlar, onaylar ve hatalar görünür kalır. Her adım gerçek bir görünüme açılır: dosya, fark, terminal ya da sonuçlar. Onay yerine gerekçe verme seçeneği dahil, her AI SDK araç durumu kapsanır.