QuickActions
نمای کلیimport { QuickActionItemLayout, QuickActions, QuickActionsLayout } from '@nili/ui';این همان صفحهی نمای کلیِ خود کتابخانه است که زنده رندر میشود. زبان یا تم را از هدر عوض کنید، همراهش میآید.
چیدمان شبکهای
چیدمان پیشفرض. برای تنظیم چگالی از columns استفاده کنید؛ آیتمها روی صفحههای باریک خوانا میمانند.
import { QuickActions, QuickActionItem, Icon } from "@nili/ui"
import { RiFileAddLine, RiUserAddLine, RiUploadCloud2Line } from "@remixicon/react"
export function Example() {
return (
<QuickActions label="Quick actions" columns={2}>
<QuickActionItem
icon={<Icon icon={RiFileAddLine} />}
tone="primary"
description="Create a draft invoice"
>
New invoice
</QuickActionItem>
<QuickActionItem
icon={<Icon icon={RiUserAddLine} />}
tone="feature"
description="Send an invite link"
>
Invite member
</QuickActionItem>
<QuickActionItem
icon={<Icon icon={RiUploadCloud2Line} />}
tone="success"
description="Attach a PDF or image"
>
Upload file
</QuickActionItem>
</QuickActions>
)
}با عنوان و کنش
عنوانی اختیاری بالای گروه، بهعلاوهٔ یک کنترل انتهایی (مثلاً «دیدن همه»).
import { QuickActions, QuickActionItem, Icon, Button } from "@nili/ui"
export function Example() {
return (
<QuickActions
title="Get started"
action={<Button appearance="ghost" size="sm">See all</Button>}
columns={2}
>
<QuickActionItem icon={<Icon icon={RiFileAddLine} />} tone="primary">
New invoice
</QuickActionItem>
<QuickActionItem icon={<Icon icon={RiUserAddLine} />} tone="feature">
Invite member
</QuickActionItem>
</QuickActions>
)
}ظاهرها
card (پیشفرض)، tile، ghost و list. وزنی را بردارید که با سطح اطراف میخواند.
import { QuickActions, QuickActionItem, Icon } from "@nili/ui"
export function Example() {
return (
<QuickActions columns={2}>
<QuickActionItem appearance="card" icon={<Icon icon={RiFileAddLine} />}>
Card
</QuickActionItem>
<QuickActionItem appearance="tile" icon={<Icon icon={RiUserAddLine} />}>
Tile
</QuickActionItem>
<QuickActionItem appearance="ghost" icon={<Icon icon={RiSettings3Line} />}>
Ghost
</QuickActionItem>
<QuickActionItem appearance="list" icon={<Icon icon={RiShareForwardLine} />}>
List
</QuickActionItem>
</QuickActions>
)
}تنهای آیکون
رنگ چیپ آیکون. neutral پیشفرض است؛ برای رساندن معنا از تنهای معنایی استفاده کنید.
import { QuickActions, QuickActionItem, Icon } from "@nili/ui"
export function Example() {
return (
<QuickActions columns={3}>
<QuickActionItem icon={<Icon icon={RiFileAddLine} />} tone="primary">
Primary
</QuickActionItem>
<QuickActionItem icon={<Icon icon={RiUserAddLine} />} tone="success">
Success
</QuickActionItem>
<QuickActionItem icon={<Icon icon={RiSettings3Line} />} tone="error">
Error
</QuickActionItem>
</QuickActions>
)
}کاشیهای عمودی
آیکون بالای برچسب — همان الگوی کاشی مربعی که در صفحهٔ اصلی گوشی و حالتهای خالی به کار میرود.
import { QuickActions, QuickActionItem, Icon } from "@nili/ui"
export function Example() {
return (
<QuickActions columns={4}>
<QuickActionItem
layout="vertical"
appearance="tile"
icon={<Icon icon={RiFileAddLine} />}
tone="primary"
>
Invoice
</QuickActionItem>
<QuickActionItem
layout="vertical"
appearance="tile"
icon={<Icon icon={RiUserAddLine} />}
tone="feature"
>
Invite
</QuickActionItem>
</QuickActions>
)
}چیدمان ردیفی
اسکرول افقی بهجای شکستن خط — ردیف میانبرها را روی صفحههای باریک در یک خط نگه میدارد.
import { QuickActions, QuickActionItem, Icon } from "@nili/ui"
export function Example() {
return (
<QuickActions layout="row" label="Shortcuts">
<QuickActionItem icon={<Icon icon={RiFileAddLine} />} tone="primary">
New invoice
</QuickActionItem>
<QuickActionItem icon={<Icon icon={RiUserAddLine} />} tone="feature">
Invite
</QuickActionItem>
<QuickActionItem icon={<Icon icon={RiUploadCloud2Line} />} tone="success">
Upload
</QuickActionItem>
</QuickActions>
)
}فهرست با میانبر
آیتمهای فهرست تخت با راهنمای کیبورد — داخل پالت فرمان یا منوها به کار میآید.
import { QuickActions, QuickActionItem, Icon } from "@nili/ui"
export function Example() {
return (
<QuickActions columns={1}>
<QuickActionItem
appearance="list"
icon={<Icon icon={RiFileAddLine} />}
shortcut="⌘N"
>
New invoice
</QuickActionItem>
<QuickActionItem
appearance="list"
icon={<Icon icon={RiUserAddLine} />}
shortcut="⌘I"
active
>
Invite member
</QuickActionItem>
</QuickActions>
)
}پابرگ
پابرگ پالت فرمان: راهنمای کیبورد در یک سو، لینک مرکز راهنما در سوی دیگر. آن را زیر فهرستی از QuickActionItemها بچینید — یک خروجی جداگانه نیست.
import { QuickActions, QuickActionItem, Icon, LinkButton } from "@nili/ui"
import {
RiFileAddLine,
RiUserAddLine,
RiArrowUpLine,
RiArrowDownLine,
RiCornerDownLeftLine,
} from "@remixicon/react"
export function Example() {
return (
<div className="overflow-hidden rounded-xl border border-soft-200 bg-white-0">
<QuickActions columns={1} className="p-1">
<QuickActionItem
appearance="list"
icon={<Icon icon={RiFileAddLine} />}
shortcut="⌘N"
>
New invoice
</QuickActionItem>
<QuickActionItem
appearance="list"
icon={<Icon icon={RiUserAddLine} />}
shortcut="⌘I"
>
Invite member
</QuickActionItem>
</QuickActions>
<div className="flex flex-wrap items-center justify-between gap-3 border-t border-soft-200 px-4 py-3 text-[12px] leading-4 text-sub-600">
<div className="flex flex-wrap items-center gap-4">
<span className="flex items-center gap-1">
<kbd className="flex size-5 items-center justify-center rounded-md border border-soft-200 bg-weak-50">
<Icon icon={RiArrowUpLine} />
</kbd>
<kbd className="flex size-5 items-center justify-center rounded-md border border-soft-200 bg-weak-50">
<Icon icon={RiArrowDownLine} />
</kbd>
to navigate
</span>
<span className="flex items-center gap-1">
<kbd className="flex size-5 items-center justify-center rounded-md border border-soft-200 bg-weak-50">
<Icon icon={RiCornerDownLeftLine} />
</kbd>
to select
</span>
</div>
<span>
Not what you're looking for?{" "}
<LinkButton color="primary" size="sm" underline href="#">
Help Center
</LinkButton>
</span>
</div>
</div>
)
}QuickActionDescription
داخلیQuickActionIcon
داخلیمحورهای واریانت — از تعریف cva کامپوننت
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| tone | neutral | primary | information | success | warning | error | feature | away | verified | neutral | |
| size | sm | md | md |
QuickActionItem
extends Omit< ComponentPropsWithoutRef<'button'>, 'children' | 'title' >
محورهای واریانت — از تعریف cva کامپوننت
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| appearance | card | tile | ghost | list | card | |
| layout | horizontal | vertical | horizontal | |
| size | sm | md | md | |
| active | boolean | false | Marks the shortcut as the one in effect: adds `aria-pressed`. |
بقیهی پراپها
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| children | ReactNode | — | |
| disabled | boolean | — | |
| required | boolean | — | |
| readOnly | boolean | — | |
| value | string | — | |
| defaultValue | string | — | |
| name | string | — | |
| aria-label | string | — | |
| tone | error | warning | success | feature | verified | away | primary | neutral | information | neutral | Colour of the icon chip. |
| icon | ReactNode | — | The glyph. Wrapped in a tinted chip unless `iconWrapper={false}`. |
| iconWrapper | boolean | true | Set `false` to drop the tinted chip and render the glyph bare. |
| sublabel | ReactNode | — | Figma `💬 Sublabel` — muted text on the *label's* line. |
| description | ReactNode | — | Second line under the label. |
| badge | ReactNode | — | Figma `🎖️ Badge` — beside the label. |
| shortcut | ReactNode | — | Keyboard hint at the trailing edge, e.g. `'⌘N'`. |
| endAdornment | ReactNode | — | Anything at the trailing edge — a Badge, a count, a chevron. |
| asChild | boolean | false | Render the child element instead of a `<button>` — for router links. |
QuickActionLabel
داخلیمحورهای واریانت — از تعریف cva کامپوننت
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| size | sm | md | md |
QuickActionShortcut
داخلیQuickActions
extends Omit< ComponentPropsWithoutRef<'div'>, 'title' >
محورهای واریانت — از تعریف cva کامپوننت
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| layout | grid | row | grid | |
| size | sm | md | md |
بقیهی پراپها
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| children | ReactNode | — | |
| aria-label | string | — | |
| columns | number | 2 | Columns, when `layout="grid"`. A number is applied at every width; pass a Tailwind class through `className` instead if you need it responsive. |
| label | string | — | Accessible name for the group, e.g. `'Quick actions'`. |
| title | ReactNode | — | Optional heading rendered above the group; also names it. |
| action | ReactNode | — | Trailing control beside the title — "See all", a menu. |