Hoppa till huvudinnehåll

Sidebar

Sidomeny, Kollapsbar meny

Sidopanel som används som huvudnavigation i våra desktopapplikationer. Själva navigationen styrs av navigationskomponenterna Navigation, NavigationItem och NavigationLink.

import { Sidebar, Navigation, NavigationItem, NavigationLink, NavigationSection } from '@midas-ds/layout'
import { House, Settings } from 'lucide-react'

export default function App() {
const pathname = usePathname() // or equivalent for your router

return (
<Sidebar title='Navigation'>
<Navigation>
<NavigationSection>
<NavigationItem>
<NavigationLink
href='/'
icon={<House />}
isActive={pathname === '/'}
>
Hem
</NavigationLink>
</NavigationItem>
<NavigationItem>
<NavigationLink
href='/installningar'
icon={<Settings />}
isActive={pathname === '/installningar'}
>
Inställningar
</NavigationLink>
</NavigationItem>
</NavigationSection>
</Navigation>
</Sidebar>
)
}

Titel​

Sidomenyn renderas som ett <aside>-landmärke. title används som landmärkets tillgängliga namn och ska därför vara ett namn som beskriver menyns syfte, inte applikationens namn. Oftast är "Navigation" ett bra alternativ.

Ihopfällt läge​

Sidebar kan fällas ihop till enbart ikoner för att användaren ska kunna se mer av huvudinnehållet. Det kan styras antingen okontrollerat (internt tillstånd) eller kontrollerat av föräldrakomponenten.

Okontrollerat​

<Sidebar
title='Navigation'
defaultCollapsed={false}
>
...
</Sidebar>

Kontrollerat​

const [isCollapsed, setIsCollapsed] = useState(false)

<Sidebar
title='Navigation'
isCollapsed={isCollapsed}
onCollapseChange={setIsCollapsed}
>
...
</Sidebar>

Props​

PropTypStandardBeskrivning
titlestring—Obligatorisk. Namn på sidomenyn, används som tillgängligt landmärkesnamn.
isCollapsedboolean—Kontrollerat kollapsläge
defaultCollapsedbooleanfalseStarttillstånd för okontrollerat läge
onCollapseChange(isCollapsed: boolean) => void—Callback vid kollaps/expansion
childrenReactNode—Sidomenysinnehåll (typiskt Navigation)
PropTypStandardBeskrivning
titlestring—Synlig rubrik för sektionen
childrenReactNode—NavigationItem-element