Card
İlişkili bilgileri bir arada toplayan bir içerik kapsayıcısı. Card sayfadan kenarlıkla değil yüzey rengiyle ayrılır: sayfanın üzerinde içe gömük bir gri yüzey (tray), tray bir section'ın üzerinde ise yükseltilmiş bir yüzey.
Kullanım
Kullanım her ayın birinde sıfırlanır.
<Card>
<Heading level={3} size="lg">Kullanım</Heading>
<Text size="sm">Kullanım her ayın birinde sıfırlanır.</Text>
</Card>Import
import { Card } from "@merid/react";Örnekler
Varyantlar
tray (varsayılan), doğrudan sayfanın üzerinde kullanılan içe gömük card'dır. outline ise ince çizgili bir card'dır; tray'in çevresiyle çakışacağı yerlerde kullan.
Tray
Kullanım her ayın birinde sıfırlanır.
Outline
Kullanım her ayın birinde sıfırlanır.
<Card variant="tray">…</Card>
<Card variant="outline">…</Card>Elevated, tray bir section üzerinde
elevated, yüzey rengine yumuşak bir gölge ekler. Card tray bir Section üzerinde duruyorsa bunu kullan. Tray bir section içindeki tray card kendiliğinden bu görünüme geçer.
Elevated
Kullanım her ayın birinde sıfırlanır.
<Section tone="tray">
<Card variant="elevated">…</Card>
</Section>Padding
none 0, sm 20px, md 28px (varsayılan), lg 32px. Card kenardan kenara bir görsel ya da tablo içeriyorsa none kullan.
sm · 20px
md · 28px
lg · 32px
<Card padding="sm">sm · 20px</Card>
<Card padding="md">md · 28px</Card>
<Card padding="lg">lg · 32px</Card>Etkileşimli ve seçili
interactive, hover'da 3px yukarı kalkma efekti ve pointer imleci ekler. Card'ın tamamı bir link ya da buton olduğunda kullan ve as ile o eleman olarak render'la. selected, 1.5px'lik accent halkasını çizer.
<Card as="a" href="/plans/starter" interactive>…</Card>
<Card as="a" href="/plans/pro" interactive selected aria-current="true">…</Card>API referansı
as verilmedikçe bir div render'lar; ref'i iletir ve tüm HTML attribute'larını aktarır.
| Prop | Tip | Varsayılan | Açıklama |
|---|---|---|---|
variant | "tray" | "elevated" | "outline" | "tray" | Yüzey. tray sayfanın üzerinde, elevated tray bir section üzerinde kullanılır; outline ince çizgili bir card'dır. |
padding | "none" | "sm" | "md" | "lg" | "md" | İç boşluk: 0, 20px, 28px, 32px. |
interactive | boolean | false | Hover'da yukarı kalkma (3px) ve pointer imleci ekler. Card'ın tamamı bir link ya da buton olduğunda kullan. |
selected | boolean | – | 1.5px'lik accent seçim halkasını çizer. `as="button"` ile render'lanan `interactive` bir card'da `aria-pressed`'i de ayarlar; diğer durumlarda yalnızca görseldir. |
as | ElementType | "div" | div yerine render'lanacak eleman ya da component. |
Stil verme
| Seçici | Değerler |
|---|---|
.mrd-card | Kök eleman |
data-variant | tray · elevated · outline |
data-padding | none · sm · md · lg |
data-interactive | interactive verildiğinde bulunur |
data-selected | selected verildiğinde bulunur |
Component değişkeni: --mrd-card-padding, her data-padding değeri için ayrı atanır.
.pricing .mrd-card {
--mrd-card-padding: var(--mrd-space-10);
}Erişilebilirlik
- Card'ın kendine ait bir rolü yoktur. Bir grup card'a bir başlık ver ve her card'ı doğru seviyede bir başlıkla başlat.
- Tıklanabilir bir card için bir
div'ionClickile sarmak yerine card'ı etkileşimli eleman olarak render'la (as="a"ya daas="button"). selected,aria-pressed'i yalnızca cardinteractiveolduğunda veas="button"ile (bir toggle buton olarak) render'landığında ayarlar. Diğer durumlarda yalnızca görseldir: state'i bir link üzerindearia-currentile ya da işaretli bir kontrolle ilet.
Kullanım ilkeleri
Yap
Yüzeyi arka plana göre seç: sayfada tray card, tray bir section üzerinde elevated card.
Kaçın
Tray bir card'ı öne çıkarmak için kenarlık ve gölge eklemek ya da card'ları birden fazla seviye iç içe koymak.
İlgili sayfalar
- Section: card'ların görünümünü değiştiren tray bantlar.
- Grid: card satırlarını dizer.
- EmptyState: boş bir card listesi için yer tutucu.