رفتن به محتوای اصلی

دکمه

برای اجرای یک عمل. شش گونه برای سلسله‌مراتب بصری، چهار اندازه و حالت بارگذاری دسترس‌پذیر.

import { Button } from "@kashi-ui/react";

گونه‌ها

در هر بخش از صفحه فقط یک دکمهٔ primary بگذارید. بقیهٔ عمل‌ها با secondary یا tertiary نمایش داده شوند.

<Button variant="primary">ذخیره</Button>
<Button variant="secondary">پیش‌نمایش</Button>
<Button variant="tertiary">انصراف</Button>
<Button variant="link">اطلاعات بیشتر</Button>
<Button variant="danger">حذف</Button>
<Button variant="danger-secondary">بایگانی</Button>

اندازه‌ها

<Button variant="primary" size="sm">کوچک</Button>
<Button variant="primary">متوسط</Button>
<Button variant="primary" size="lg">بزرگ</Button>
<Button variant="primary" size="xl">خیلی بزرگ</Button>

با آیکون

iconStart در RTL سمت راست و iconEnd سمت چپ قرار می‌گیرد. آیکون‌های جهت‌دار مثل فلش را با data-k-mirror علامت بزنید تا در RTL آینه شوند.

<Button variant="primary" iconStart={<PlusIcon />}>پروژهٔ جدید</Button>
<Button iconEnd={<ArrowIcon />}>ادامه</Button>
<Button iconOnly aria-label="جستجو"><SearchIcon /></Button>
<Button variant="danger-secondary" iconOnly aria-label="حذف"><TrashIcon /></Button>

حالت‌ها

<Button variant="primary" loading>پرداخت</Button>
<Button disabled>غیرفعال</Button>

ویژگی‌ها

نامنوعپیش‌فرضتوضیح
variant"primary" | "secondary" | "tertiary" | "link" | "danger" | "danger-secondary""secondary"سبک بصری و اهمیت عمل
size"sm" | "md" | "lg" | "xl""md"اندازه؛ ارتفاع‌ها ۳۶، ۴۰، ۴۴ و ۴۸ پیکسل
loadingbooleanfalseنمایش اسپینر؛ دکمه فوکوس‌پذیر می‌ماند ولی کلیک نمی‌گیرد
loadingLabelstring"در حال بارگذاری"متنی که صفحه‌خوان هنگام بارگذاری اعلام می‌کند
iconStartReactNode—آیکون ابتدای متن
iconEndReactNode—آیکون انتهای متن
iconOnlybooleanfalseدکمهٔ مربعی فقط‌آیکون؛ aria-label الزامی است
blockbooleanfalseتمام‌عرض

سایر ویژگی‌های <button> مثل onClick، type و disabled هم پشتیبانی می‌شوند. مقدار پیش‌فرض type برابر "button" است تا فرم‌ها ناخواسته ارسال نشوند.

متغیرهای CSS

متغیرپیش‌فرضکاربرد
--k-btn-height-{sm,md,lg,xl}2.25rem تا 3rem × densityارتفاع هر اندازه
--k-btn-padding-{sm,md,lg,xl}0.75rem تا 1.25rem × densityفاصلهٔ افقی داخلی
--k-btn-radiusvar(--k-radius-md)گردی گوشه‌ها
--k-btn-font-weight600وزن متن
--k-btn-gapvar(--k-space-1_5)فاصلهٔ آیکون و متن

دسترس‌پذیری

  • در حالت loading از aria-disabled به‌جای disabled استفاده می‌شود تا فوکوس کیبورد از دست نرود، و متن «در حال بارگذاری» با role="status" اعلام می‌شود.
  • دکمهٔ iconOnly بدون aria-label در حالت توسعه هشدار می‌دهد.
  • حداقل ناحیهٔ لمس ۲۴×۲۴ پیکسل است و حلقهٔ فوکوس در حالت کنتراست بالای ویندوز هم دیده می‌شود.
  • برای رفتن به صفحهٔ دیگر از لینک (<a class="k-btn">) استفاده کنید، نه دکمه.