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.

KararlıKaynak kod

Kullanım

Kullanım her ayın birinde sıfırlanır.

Import

tsx
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.

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.

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

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.

API referansı

as verilmedikçe bir div render'lar; ref'i iletir ve tüm HTML attribute'larını aktarır.

PropTipVarsayılanAçı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.
interactivebooleanfalseHover'da yukarı kalkma (3px) ve pointer imleci ekler. Card'ın tamamı bir link ya da buton olduğunda kullan.
selectedboolean–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.
asElementType"div"div yerine render'lanacak eleman ya da component.

Stil verme

SeçiciDeğerler
.mrd-cardKök eleman
data-varianttray · elevated · outline
data-paddingnone · sm · md · lg
data-interactiveinteractive verildiğinde bulunur
data-selectedselected verildiğinde bulunur

Component değişkeni: --mrd-card-padding, her data-padding değeri için ayrı atanır.

css
.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'i onClick ile sarmak yerine card'ı etkileşimli eleman olarak render'la (as="a" ya da as="button").
  • selected, aria-pressed'i yalnızca card interactive olduğunda ve as="button" ile (bir toggle buton olarak) render'landığında ayarlar. Diğer durumlarda yalnızca görseldir: state'i bir link üzerinde aria-current ile 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.