Sidebar
Genel görünümimport { Sidebar, SidebarCard, SidebarDot, SidebarFooter, SidebarGroup, SidebarHeader } from '@nili/ui';Bu, kütüphanenin kendi genel görünüm sayfası — canlı olarak render ediliyor. Üstten dili veya temayı değiştirin, o da değişir.
Panel
Başlık, öğe grupları ve bir alt bilgi. Kendini katlar: collapsed’ı vermeyin, panel kendi durumunu tutar ve içindeki herhangi bir SidebarTrigger onu katlar. Katlanabilmek için uygulamanın bir useState yazmasını gerektiren bir kenar çubuğu, çoğu uygulamanın katlanamaz olarak yayımladığı şeydir.
import {
Sidebar, SidebarHeader, SidebarGroup, SidebarItem,
SidebarFooter, SidebarUser, SidebarTrigger, Icon,
} from "@nili/ui"
import { RiHome5Line, RiFolderLine } from "@remixicon/react"
export function Example() {
return (
<Sidebar label="Main">
<SidebarHeader
logo={<PlaceholderLogo company="apex-financial" size="sm" label="" />}
title="Apex Financial"
subtitle="Pro plan"
action={<SidebarTrigger />}
collapsedAction={<SidebarTrigger />}
/>
<SidebarGroup label="Main">
<SidebarItem icon={<Icon icon={RiHome5Line} />} href="#">Home</SidebarItem>
<SidebarItem icon={<Icon icon={RiFolderLine} />} href="#" active>
Projects
</SidebarItem>
</SidebarGroup>
<SidebarFooter>
<SidebarUser
avatar={<Avatar size="sm" name="Ada Lovelace" tone="blue" />}
name="Ada Lovelace"
email="ada@nili.design"
/>
</SidebarFooter>
</Sidebar>
)
}Ray
Genişletilmiş ve katlanmış tek bir bileşendir: her satır, etiketi sıfır genişliğe solmuş aynı satırdır; birine eklenen satır ikisine de eklenir. Etiketler kaldırılmak yerine DOM’da kalır — etiketsiz simgelerden oluşan bir ray, erişilebilir adlarına en çok ihtiyaç duyan düzendir.
import { Sidebar } from "@nili/ui"
export function Example() {
const [collapsed, setCollapsed] = useState(true)
return (
<Sidebar
collapsed={collapsed}
onCollapsedChange={setCollapsed}
label="Main"
>
…
</Sidebar>
)
}Sidebar
extends ComponentPropsWithoutRef<'nav'>
Varyant eksenleri — bileşenin cva tanımından
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| collapsed | boolean | false | The rail. One boolean rather than a second component: every row is the same row with its label faded out. |
Diğer proplar
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| children | ReactNode | — | |
| aria-label | string | — | |
| label | string | — | Accessible name, e.g. "Main". A page usually has more than one `<nav>`, and "navigation, navigation, navigation" is not a landmark list. |
SidebarFooter
SidebarGroup
extends ComponentPropsWithoutRef<'div'>
Diğer proplar
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| children | ReactNode | — | |
| aria-label | string | — | |
| label | string | — | Figma's "MAIN" / "FAVS" caption. Becomes a rule on the rail. |
SidebarGroupLabel
dahiliVaryant eksenleri — bileşenin cva tanımından
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| collapsed | 'true' | 'false' | false |
SidebarHeader
extends Omit< ComponentPropsWithoutRef<'div'>, 'title' >
Varyant eksenleri — bileşenin cva tanımından
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| collapsed | 'true' | 'false' | false |
Diğer proplar
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| children | ReactNode | — | |
| aria-label | string | — | |
| logo | ReactNode | — | The workspace mark — a `PlaceholderLogo`, an `Avatar`, an `<img>`. |
| title | ReactNode | — | |
| subtitle | ReactNode | — | |
| action | ReactNode | — | Figma's workspace switcher, on the trailing edge. Hidden on the rail. |
SidebarItem
extends Omit< ComponentPropsWithoutRef<'a'>, 'color' >
Varyant eksenleri — bileşenin cva tanımından
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| active | boolean | false | The current page. Draws the primary marker in the gutter. |
| collapsed | 'true' | 'false' | false |
Diğer proplar
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| children | ReactNode | — | |
| aria-label | string | — | |
| icon | ReactNode | — | |
| href | string | — | Makes it a link. Without it the row renders as a `<button>`. |
| shortcut | ReactNode | — | Figma's ⌘1 chip on a FAVS row. Replaces the trailing chevron. |
| trailing | ReactNode | — | Overrides the trailing chevron with anything else — a count, a badge. |
| disabled | boolean | false |
SidebarItemLabel
dahiliVaryant eksenleri — bileşenin cva tanımından
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| collapsed | 'true' | 'false' | false |
SidebarItemTrailing
dahiliVaryant eksenleri — bileşenin cva tanımından
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| collapsed | 'true' | 'false' | false |
SidebarUser
extends ComponentPropsWithoutRef<'button'>
Diğer proplar
| Prop | Tip | Varsayılan | Notlar |
|---|---|---|---|
| children | ReactNode | — | |
| disabled | boolean | — | |
| required | boolean | — | |
| readOnly | boolean | — | |
| value | string | — | |
| defaultValue | string | — | |
| name* | string | — | |
| aria-label | string | — | |
| avatar | ReactNode | — | |
| string | — | ||
| badge | ReactNode | — | The verified tick beside the name. |