كل المكوّنات
Banner
عرض شامل١٠ تصدير٦ محور تنويع١٧ خاصيّة٤ ملف
import { Banner, BannerAction } from '@nili/ui';هذه صفحة العرض الشامل الخاصة بالمكتبة، معروضة حيّة. غيّر اللغة أو السمة من الأعلى وسَتتبعك.
الحالات
المعاني الخمسة نفسها في Alert. غالبًا ما يكون الشريط ظاهرًا منذ أول رسم، لذا يُعلَن بلطف افتراضيًا.
هذا شريط error.
هذا شريط warning.
هذا شريط success.
هذا شريط info.
هذا شريط feature.
import { Banner } from "@nili/ui"
export function Example() {
return (
<>
<Banner status="error" title="Payment failed." />
<Banner status="warning" title={t('content.maintenance')} />
<Banner status="success" title={t('content.verified')} />
<Banner status="info" title="We updated our terms." />
<Banner status="feature" title={t('content.feature')} />
</>
)
}المظاهر
أربع معالجات، مطابقة لـ Alert.
المظهر: filled
المظهر: light
المظهر: lighter
المظهر: stroke
import { Banner } from "@nili/ui"
export function Example() {
return (
<>
<Banner appearance="filled" status="info" title="Filled" />
<Banner appearance="light" status="info" title="Light" />
<Banner appearance="lighter" status="info" title="Lighter" />
<Banner appearance="stroke" status="info" title="Stroke" />
</>
)
}الوصف والإجراء والإغلاق
يُلحق description بعد العنوان مفصولًا بنقطة. ويأخذ الشريط إجراءً action واحدًا فقط حسب التصميم — وإن احتجت اثنين فأنت تريد Alert.
import { Banner, Icon } from "@nili/ui"
import { RiSparkling2Line } from "@remixicon/react"
export function Example() {
const [open, setOpen] = useState(true)
if (!open) return null
return (
<Banner
status="feature"
appearance="light"
title="Smart filters are here."
description="Save a filter set and reuse it everywhere."
icon={<Icon icon={RiSparkling2Line} />}
action={{ label: "Take a look", href: "#" }}
dismissible
dismissLabel={t('close')}
onDismiss={() => setOpen(false)}
/>
)
}ملتصق
يثبّت sticky الشريط أعلى إطار العرض. مناسب لإعلان على مستوى الصفحة، وغير مناسب لشريط داخل بطاقة.
You are viewing a read-only archive.
import { Banner } from "@nili/ui"
export function Example() {
return (
<Banner
sticky
status="info"
title={t('sticky.archive')}
/>
)
}Banner
extends Omit< ComponentPropsWithoutRef<'div'>, 'title' | 'children' >
محاور التنويع — من تعريف cva للمكوّن
| الخاصيّة | النوع | الافتراضي | ملاحظات |
|---|---|---|---|
| status | error | warning | success | info | feature | info | |
| appearance | filled | light | lighter | stroke | filled | Named `appearance`, not `style`, so React's own `style` prop stays usable. |
باقي الخصائص
| الخاصيّة | النوع | الافتراضي | ملاحظات |
|---|---|---|---|
| children | ReactNode | — | |
| aria-label | string | — | |
| title* | ReactNode | — | |
| description | ReactNode | — | Shown after the title, separated by a `∙`. |
| icon | boolean | ReactNode | true | `true` uses the default glyph for `status`; a node overrides it; `false` hides it. |
| action | BannerAction | — | Single inline link, per the Figma spec. |
| dismissible | boolean | false | |
| onDismiss | () => void | — | |
| dismissLabel | string | Dismiss | Accessible name for the close button. Required by `dismissible`. |
| sticky | boolean | false | Pins the banner to the top of the viewport. A page-level banner usually wants this; one rendered inside a card does not. |
| urgency | assertive | polite | off | polite | How assistive tech announces the banner. Defaults to `'polite'` — unlike Alert, a banner is almost always present on first paint rather than appearing in response to an action, so interrupting is wrong. Use `'assertive'` only when the banner appears mid-session. |
BannerAction
محاور التنويع — من تعريف cva للمكوّن
| الخاصيّة | النوع | الافتراضي | ملاحظات |
|---|---|---|---|
| appearance | filled | light | lighter | stroke | filled |
BannerDismiss
داخليمحاور التنويع — من تعريف cva للمكوّن
| الخاصيّة | النوع | الافتراضي | ملاحظات |
|---|---|---|---|
| appearance | filled | light | lighter | stroke | filled |
BannerIcon
داخليمحاور التنويع — من تعريف cva للمكوّن
| الخاصيّة | النوع | الافتراضي | ملاحظات |
|---|---|---|---|
| status | error | warning | success | info | feature | info | |
| appearance | filled | light | lighter | stroke | filled |