ArticleCard — کارت مقاله با کاور
برای فهرست و شبکهٔ مقالهها. بالای کارت یک کاور است: اگر کپی کد بدهید تصویر نمایش داده میشود، وگرنه کاور گرادیانی از توکنهای تم ساخته میشود (کپی کد). به این ترتیب کارت بدون تصویر هم هویت دارد. فام کاور با کپی کد تعیین میشود: کپی کد از تم پیروی میکند و کپی کد تا کپی کد برای دستهبندی محتوا هستند (هر دسته یک سری ثابت).
وضعیت: beta · لایه: ۴ (کپی کد) · کد: کپی کد · Storybook: کپی کد
import { ArticleCard } from '@tokapps/patterns';نمونهٔ زنده
معماری
چطور چند پکیج را در یک مخزن نگه داریم، کش بیلد را به اشتراک بگذاریم و زمان CI را نصف کنیم.
۷ دقیقه مطالعه
دسترسپذیری
برچسب، پیام خطا و ترتیب فوکوس در فرمهای راستبهچپ؛ با نمونههای واقعی.
سمن۵ دقیقه مطالعه
انتشار
کد قابل کپی
پایه: دسته، تاریخ و زمان مطالعه
import { ArticleCard } from '@tokapps/patterns';<ArticleCard title="مونوریپو با pnpm و Turborepo" href="/articles/monorepo-pnpm-turborepo" excerpt="چطور چند پکیج را در یک مخزن نگه داریم، کش بیلد را به اشتراک بگذاریم و زمان CI را نصف کنیم." category="معماری" tone="series-5" date="۲۰ مهر ۱۴۰۵" dateTime="2026-10-12" readingMinutes={7}/>با نویسنده
<ArticleCard title="دسترسپذیری فرمها در RTL" href="/articles/rtl-forms-a11y" excerpt="برچسب، پیام خطا و ترتیب فوکوس در فرمهای راستبهچپ؛ با نمونههای واقعی." category="دسترسپذیری" tone="series-7" author="سمن" date="۱۸ مهر ۱۴۰۵" dateTime="2026-10-10" readingMinutes={5}/>کمینه: فام تم، بدون خلاصه
<ArticleCard title="یادداشتهای انتشار نسخهٔ ۰٫۲" href="/articles/release-0-2" category="انتشار" date="۱۵ مهر ۱۴۰۵" dateTime="2026-10-07" />با تصویر جلد
<ArticleCard title="…" href="/articles/x" cover="/covers/x.webp" category="طراحی" />نگاشت دسته به سری (در محصول)
import type { CardMediaTone } from '@tokapps/tuk/data-display';const toneByCategory: Record<string, CardMediaTone> = { معماری: 'series-5', طراحی: 'series-2', دسترسپذیری: 'series-7' };<div style={{ display: 'grid', gap: 'var(--tds-space-4)', gridTemplateColumns: 'repeat(auto-fill, minmax(17rem, 1fr))' }}> {articles.map((a) => ( <ArticleCard key={a.slug} title={a.title} href={`/articles/${a.slug}`} excerpt={a.excerpt} category={a.category} tone={toneByCategory[a.category] ?? 'accent'} date={a.dateFa} dateTime={a.date} readingMinutes={a.minutes} /> ))}</div>همهٔ پیکربندیها
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| کپی کد | کپی کد | — | عنوان و نام لینک. |
| کپی کد | کپی کد | — | مسیر مقاله؛ کل کارت با لینک کشیده کلیکپذیر است. |
| کپی کد | کپی کد | — | خلاصه؛ حداکثر سه خط (کپی کد). |
| کپی کد | کپی کد | — | برچسب روی کاور (روی جفت AA). |
| کپی کد | کپی کد · کپی کد … کپی کد | کپی کد | فام کاور. |
| کپی کد | کپی کد | — | تصویر جلد؛ جای کاور گرادیانی را میگیرد. |
| کپی کد / کپی کد | کپی کد | — | تاریخ نمایشی و ISO برای کپی کد. |
| کپی کد | کپی کد | — | «۷ دقیقه مطالعه» با ارقام فارسی. |
| کپی کد | کپی کد | — | نویسنده در متادیتا. |
| کپی کد | کپی کد · کپی کد · کپی کد | کپی کد | سطح عنوان بر اساس ساختار صفحه. |
| سایر ویژگیها | کپی کد | — | روی کپی کد ریشه. |
حالتها
پیشفرض · hover (سطح کپی کد) · focus-visible (حلقه دور کل کارت) · با تصویر جلد · کنتراست بالا (کاور تخت با مرز) · چاپ (کاور تخت، خلاصه کامل).
RTL، کیبورد و صفحهخوان
- یک توقف کپی کد (لینک عنوان)؛ کپی کد مقاله را باز میکند.
- ترتیب خواندن: برچسب دسته، عنوان، خلاصه، نویسنده، تاریخ (کپی کد)، زمان مطالعه؛ جداکنندهها پنهاناند.
- نور کاور در RTL از لبهٔ آغاز (راست) میتابد.
- دسته با متن برچسب نشان داده میشود؛ فام کاور هرگز تنها حامل معنا نیست.
قرارداد ARCH
- کاور گرادیانی تنها استثنای رسمی گرادیان پسزمینه بیرون از کپی کد است و فقط داخل کپی کد ساخته میشود (کپی کد، ثبت در کپی کد و کپی کد). الگو هیچ گرادیان یا رنگ خامی ندارد.
- تم فقط توکنهای کپی کد را تنظیم میکند؛ ساختار، heading و لینک کشیده ثابتاند.
- کاور حرکت ندارد؛ hover کارت از کپی کد میآید و به کاهش حرکت احترام میگذارد.