nili/ui
همه‌ی کامپوننت‌ها

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. وزنی را بردارید که با سطح اطراف می‌خواند.

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ها بچینید — یک خروجی جداگانه نیست.

to navigateto select
Not what you're looking for? مرکز راهنما
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&apos;re looking for?{" "}
          <LinkButton color="primary" size="sm" underline href="#">
            Help Center
          </LinkButton>
        </span>
      </div>
    </div>
  )
}