دکمه آیکونی — IconButton
کپی کد دکمهٔ فقطآیکون است و برای کنشهایی به کار میرود که آیکونشان آشنا است، مثل ویرایش، بستن یا اشتراکگذاری. پراپ کپی کد الزامی است و بهعنوان نام دسترسی (کپی کد) به صفحهخوان میرسد؛ آیکون خودش تزئینی است. برای آیکون مبهم یا کنشی که متن لازم دارد، از Button استفاده کنید. ساختار، برچسب دسترسی و رفتار کیبورد ثابتاند.
وضعیت: beta · لایه: ۳ (کپی کد) · کد: کپی کد
import { IconButton } from '@tokapps/tuk';نمونهٔ زنده
کد قابل کپی
واریانتها و اندازهها
import { IconButton } from '@tokapps/tuk';import { Icon } from '@tokapps/icons';export function Toolbar() { return ( <div> <IconButton icon={<Icon name="add" size="sm" />} label="افزودن" variant="primary" /> <IconButton icon={<Icon name="edit" size="sm" />} label="ویرایش" variant="secondary" /> <IconButton icon={<Icon name="share" size="sm" />} label="اشتراکگذاری" /> <IconButton icon={<Icon name="close" size="md" />} label="بستن" size="lg" /> </div> );}آیکون جهتدار در RTL
import { IconButton } from '@tokapps/tuk';import { Icon } from '@tokapps/icons';export function BackButton({ onBack }: { onBack: () => void }) { return ( <IconButton icon={<Icon name="back" size="sm" mirror />} label="بازگشت" onClick={onBack} /> );}حالت در حال انجام و غیرفعال
import { IconButton } from '@tokapps/tuk';import { Icon } from '@tokapps/icons';type Props = { uploading: boolean; canDelete: boolean; onDelete: () => void };export function FileActions({ uploading, canDelete, onDelete }: Props) { return ( <> <IconButton icon={<Icon name="upload" size="sm" />} label="بارگذاری" loading={uploading} /> <IconButton icon={<Icon name="delete" size="sm" />} label="حذف" disabled={!canDelete} onClick={onDelete} sound={false} /> </> );}همهٔ پیکربندیها
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| کپی کد | کپی کد | — (الزامی) | آیکون، معمولاً کپی کد. |
| کپی کد | کپی کد | — (الزامی) | نام دسترسی؛ بهعنوان کپی کد میرسد. |
| کپی کد | کپی کد · کپی کد · کپی کد | کپی کد | کپی کد پسزمینهٔ کنش دارد، کپی کد پسزمینهٔ سطح و کپی کد بیپسزمینه. |
| کپی کد | کپی کد · کپی کد · کپی کد | کپی کد | اندازهٔ مربع از کپی کد. |
| کپی کد | کپی کد | کپی کد | آیکون چرخان، کپی کد و کلیک نادیده گرفته میشود. |
| کپی کد | رویداد کپی کد · کپی کد | کپی کد | رویداد صوتی هنگام کلیک. کپی کد یعنی این نمونه بیصداست. |
| کپی کد | کپی کد | — | مقصد اختصاصی صدا برای همین نمونه. |
| کپی کد | کپی کد · کپی کد | کپی کد | دکمههای فقطآیکون پیشفرض در چاپ پنهاناند. |
| کپی کد | کپی کد | — | ویژگی بومی کپی کد؛ همراه با کپی کد تنظیم میشود. |
| کپی کد | کپی کد | — | وقتی دکمه غیرفعال یا در حال انجام است اجرا نمیشود. با کپی کد کردن، صدا هم پخش نمیشود. |
| کپی کد | کپی کد · کپی کد · کپی کد | کپی کد | پیشفرض در کد کپی کد است. |
| کپی کد | کپی کد | — | کلاس روی ریشه، برای چیدمان. |
بهعلاوه همهٔ ویژگیهای کپی کد از کپی کد (بهجز کپی کد). پراپ کپی کد برای این کامپوننت وجود ندارد؛ کنش ناهمگام را در کپی کد مدیریت کنید و کپی کد را خودتان تنظیم کنید.
ساختار و اسلاتها
button[data-tds="icon-button"][data-variant][data-size][data-print] [data-loading]? [aria-label=label] [aria-busy]? [aria-disabled]? └─ آیکون یا چرخنده (وقتی loading است، فقط چرخنده)- عنصر ریشه همان کپی کد بومی است و برچسب فقط در کپی کد است، نه متن مرئی.
- صفتهای کپی کد، کپی کد، کپی کد، کپی کد و کپی کد بنیان ثابتاند.
- هیچ کپی کد ندارد. فقط آیکون قابلتغییر است.
همهٔ حالتها
| حالت | نشانه | نمایش |
|---|---|---|
| پیشفرض | واریانت و اندازه | پسزمینهٔ واریانت؛ کپی کد بیپسزمینه |
| hover | کپی کد | کپی کد: کپی کد؛ کپی کد: کپی کد؛ کپی کد: کپی کد |
| pressed | کپی کد | مقیاس کپی کد؛ کپی کد پسزمینهٔ کپی کد میگیرد. صفت کپی کد در CSS استایل ندارد |
| focus-visible | کپی کد | حلقهٔ فوکوس با کپی کد |
| loading | پراپ کپی کد؛ کپی کد، کپی کد، کپی کد | آیکون چرخان؛ کپی کد؛ کلیک نادیده. در CSS فعلی با کپی کد کدر هم میشود |
| disabled | صفت کپی کد؛ کپی کد | کدری کپی کد؛ کپی کد |
| کپی کد | در کپی کد پنهان |
تغییرات مجاز برای توسعهدهنده
- واریانت: کپی کد، کپی کد، کپی کد (پیشفرض).
- اندازه: کپی کد، کپی کد (پیشفرض)، کپی کد.
- آیکون: هر کپی کد، معمولاً کپی کد با نام معنایی؛ برای آیکون جهتدار کپی کد بدهید.
- وضعیت: کپی کد و کپی کد.
- صدا: کپی کد و کپی کد؛ پیشفرض opt-in است.
- چاپ: کپی کد اگر دکمه باید روی کاغذ بماند.
- نقاط توسعه: کپی کد، کپی کد (متن دسترسی)، و ویژگیهای کپی کد مانند کپی کد برای دکمهٔ دوحالته.
- توکن در سطح کامپوننت: کپی کد (اندازهها، شعاع، زمان گذار، مقیاس فشردن، کدری غیرفعال) در کپی کد.
تغییرات ممنوع (بنیان ثابت)
- ساختار: یک کپی کد بومی بدون متن مرئی. کپی کد همیشه به کپی کد میرسد.
- حذف کپی کد یا خالی گذاشتن آن. این پراپ الزامی است.
- رنگ خام یا گرادیان در کد رابط.
- رفتار حالتها: کلیک در حالت غیرفعال یا در حال انجام اجرا نمیشود و کپی کد و کپی کد از وضعیت تنظیم میشوند.
- حرکت در کپی کد: چرخش کپی کد حذف میشود و فقط نشانه میماند.
- هدف لمسی: کپی کد حداقل ۲۴px و توصیهٔ ۴۴px را ذکر میکند، ولی قاعدهٔ کلی سیستم هدف لمسی ۴۴px است. در موبایل کپی کد یا کپی کد بدهید.
RTL، کیبورد و صفحهخوان
- RTL: آیکونهای جهتدار با کپی کد برمیگردند. اندازه و موقعیت دکمه منطقیاند.
- کیبورد: کپی کد ورود و خروج؛ کپی کد و کپی کد فعالسازی. این رفتار از کپی کد بومی میآید.
- فوکوس: حلقهٔ فوکوس مرئی با کپی کد؛ کنتراست حداقل ۳:۱.
- صفحهخوان: نام دکمه از کپی کد خوانده میشود. آیکون تزئینی است. وضعیت کپی کد با کپی کد اعلام میشود.
- دکمهٔ دوحالته: کپی کد را مصرفکننده تنظیم میکند؛ کامپوننت آن را خودکار نمیدهد.
صدا، حرکت، چاپ و کاهش حرکت
- صدا: پیشفرض کپی کد و opt-in است. فقط هنگام کلیک پخش میشود و hover بیصداست. مقصد: کپی کد یا مقصد سراسری. کپی کد برای دکمههای احراز هویت و پرداخت توصیه میشود. معادل بصری: حالت کپی کد و تغییر آیکون.
- حرکت: فشردن با کپی کد (کپی کد)، تغییر پسزمینه با کپی کد و چرخش کپی کد با کپی کد.
- کاهش حرکت: چرخش ثابت میشود و فقط نشانهٔ کپی کد میماند.
- چاپ: پیشفرض پنهان است. کپی کد آن را روی کاغذ نگه میدارد.
توکنها
- معنایی: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
- کامپوننتی: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
- کنترل: کپی کد، کپی کد.
- مسیر: مقدارها در کپی کد؛ فهرست مصرفی در کپی کد.
قرارداد ARCH
- آیکون فقط با کپی کد و نام معنایی داده میشود؛ مسیر فایل تصویری در کد نمیآید.
- تم فقط حرکت و توکن را عوض میکند؛ کپی کد، ARIA و رفتار کیبورد ثابتاند.
- gesture ندارد؛ معادل کیبوردی کپی کد و کپی کد است.
نکات
- اگر کنش متن لازم دارد، از Button استفاده کنید.
- برای یک کنش اصلی با گزینههای جانبی، از SplitButton استفاده کنید.
- برای کنشهای منوی زمینهای، از ContextMenu استفاده کنید.