Skeleton

  1. components
  2. navigation
  3. react

Navigation

A flexible navigation interface for large, medium, and small screens.

Bar

  • Recommended for small sized screens (ex: mobile).
  • Ideal for vertical screen layouts.
  • Should be fixed to the bottom of the viewport.
  • Supports 3-5 tiles based on contents and viewport width.
  • Consider progressive enhancement with the Virtual Keyboard API.

Rail

  • Recommended for medium sized screens (ex: tablet).
  • Ideal for horizontal screen layouts.
  • Should be fixed to the left or right of the viewport.
  • Supports 3-7 tiles based on contents and viewport height.
  • Recommended for large sized screens (ex: desktop).
  • Ideal for horizontal screen layouts.
  • Should be fixed to the left or right of the viewport.
  • Supports multiple groups of links for deep navigation.
  • Supports a label field per each group.
  • Can scroll vertically if contents extend beyond the viewport height.

Toggle Layout

Using reactive state we can dynamically switch between multiple layouts. Tap the double arrow icon to toggle.

API Reference

Root

Property Default Type
layout bar
"bar" | "rail" | "sidebar" | undefined
Sets the data-layout attribute, which modifies the visual presentation of the component set.
element -
((attributes: HTMLAttributes<"div">) => Element) | undefined
Render the element yourself

Header

Property Default Type
element -
((attributes: HTMLAttributes<"header">) => Element) | undefined
Render the element yourself

Content

Property Default Type
element -
((attributes: HTMLAttributes<"div">) => Element) | undefined
Render the element yourself

Group

Property Default Type
element -
((attributes: HTMLAttributes<"div">) => Element) | undefined
Render the element yourself

Label

Property Default Type
element -
((attributes: HTMLAttributes<"div">) => Element) | undefined
Render the element yourself

Menu

Property Default Type
element -
((attributes: HTMLAttributes<"div">) => Element) | undefined
Render the element yourself

Footer

Property Default Type
element -
((attributes: HTMLAttributes<"footer">) => Element) | undefined
Render the element yourself