ContentDivider
نمای کلیimport { ContentDivider, ContentDividerAlign, ContentDividerSpacing, ContentDividerType } from '@nili/ui';این همان صفحهی نمای کلیِ خود کتابخانه است که زنده رندر میشود. زبان یا تم را از هدر عوض کنید، همراهش میآید.
خطها
بدون فرزند، فقط یک جداکنندهٔ ساده است. spacing فضای عمودی اطرافش را تعیین میکند و type یکی از پیشتنظیمهای نامدار فیگما را برمیدارد.
بالا
پایین
بالا
پایین
بالا
پایین
بالا
پایین
import { ContentDivider } from "@nili/ui"
export function Example() {
return (
<>
<ContentDivider type="line" />
<ContentDivider type="line-spacing" />
{/* the same thing, spelled as the axis */}
<ContentDivider spacing="none" />
<ContentDivider spacing="md" />
</>
)
}با متن
فرزندی که رشته باشد بهصورت برچسب رندر میشود. text-and-line آن را بین دو خط وسط میگذارد، text تنها در ابتدا، و solid-text چیپ پرشده به آن میدهد.
import { ContentDivider } from "@nili/ui"
export function Example() {
return (
<>
<ContentDivider type="text-and-line">{t('text.or')}</ContentDivider>
<ContentDivider type="text">{t('text.today')}</ContentDivider>
<ContentDivider type="solid-text">
{t('text.newMessages')}
</ContentDivider>
</>
)
}تراز
align تعیین میکند محتوا کجای خط بنشیند. منطقی است، پس start از جهت خواندن پیروی میکند.
import { ContentDivider } from "@nili/ui"
export function Example() {
return (
<>
<ContentDivider align="start" spacing="sm">Start</ContentDivider>
<ContentDivider align="center" spacing="sm">Center</ContentDivider>
<ContentDivider align="end" spacing="sm">End</ContentDivider>
</>
)
}با کنترلها
چهار پیشتنظیم دکمهای فقط در چیزی که بهعنوان فرزند میدهید فرق دارند — یک دکمهٔ فشرده، گروهی از آنها، یک دکمهٔ متنی. هندسه یکی است؛ اسمها برای حالتی است که میسازید.
import { ContentDivider, Button, CompactButton, Icon } from "@nili/ui"
import { RiAddLine, RiMore2Fill } from "@remixicon/react"
export function Example() {
return (
<>
<ContentDivider type="icon-button">
<CompactButton
appearance="stroke"
fullRadius
aria-label={t('controls.add')}
>
<Icon icon={RiAddLine} />
</CompactButton>
</ContentDivider>
<ContentDivider type="text-button">
<Button size="2xs" appearance="stroke">Show more</Button>
</ContentDivider>
</>
)
}عمودی
جهت عمودی آیتمهای یک ردیف را از هم جدا میکند — یک نوار ابزار، یک دسته آمار. تا ارتفاع ظرفش کش میآید.
import { ContentDivider } from "@nili/ui"
export function Example() {
return (
<div className="flex h-10 items-center gap-3">
<span>{t('vertical.open')}</span>
<ContentDivider orientation="vertical" />
<span>{t('vertical.closed')}</span>
<ContentDivider orientation="vertical" />
<span>{t('vertical.draft')}</span>
</div>
)
}ContentDivider
extends Omit< ComponentPropsWithoutRef<'div'>, 'children' >
محورهای واریانت — از تعریف cva کامپوننت
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| spacing | none | sm | md | lg | none | |
| align | start | center | end | center | |
| orientation | horizontal | vertical | horizontal |
بقیهی پراپها
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| children | ReactNode | — | Text, a Button, a ButtonGroup — anything. Omit for a plain rule. |
| aria-label | string | — | |
| appearance | subtle | solid | — | `solid` is the stronger rule Figma uses for "Solid Text Divider". |
| type | line | line-spacing | text-and-line | text | solid-text | icon-button | icon-button-group | text-button | text-button-group | — | Figma `🧩 Type`. A shorthand that sets `spacing`, `align` and `appearance` together; anything you pass explicitly still wins, so the preset is a floor rather than a ceiling. |
ContentDividerContent
داخلیمحورهای واریانت — از تعریف cva کامپوننت
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| variant | text | element | text |
ContentDividerRule
داخلیمحورهای واریانت — از تعریف cva کامپوننت
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| orientation | horizontal | vertical | horizontal | |
| appearance | subtle | solid | subtle |