VanillaReactLight & dark84 views
A two-tier mission-control sidebar: an icon rail with a gliding marker switches sections (Missions, Telemetry, Crew, Orbits, Payloads, Systems, Alerts, Settings); the panel morphs vertically between them with iconed links, a ⌘K filter, a gliding active pill, an avatar profile menu and a fold-away rail-only state.
Get the code for free
Create a free account to copy or download the full source.
Navigation component
A two-tier mission-control sidebar: an icon rail with a gliding marker switches sections (Missions, Telemetry, Crew, Orbits, Payloads, Systems, Alerts, Settings); the panel morphs vertically between them with iconed links, a ⌘K filter, a gliding active pill, an avatar profile menu and a fold-away rail-only state.
--rs-mark, assets/mark.svg inlined as a data URI so it also paints from file://; an impossible-triangle mark; assets/mark-alt.svg holds a three-hexagon alternative) painted in the accent on a soft raised tile (neutral surface, faint vertical gradient, 1px lighter rim, subtle shadow); staticrole="tab" with roving tabindexinert, so Tab never lands on its hidden controlstransform; the rows' ink catches up by distance (45ms per row, capped at four) so colour follows the plate instead of running ahead; it never flies in on first paint and follows filtering and resizeerror state pair (fill and on-colour, light and dark), the same corner shape as the tiles, ringed by the rail colour, hanging off the tile's cornerrole="menu", arrow keys, Escape, outside-press closesuccess state), plus an accent-tinted comms button that fills solid on hover#605DFF accent fallbackRAIL_SECTIONS in js/data.jsprefers-reduced-motion disables all motionrole="tab" with aria-selected and aria-controls="panel" inside role="tablist" groups; the panel is the role="tabpanel" they controlaria-haspopup="menu" with aria-expanded; the menu is role="menu" with menuitem buttons, Escape and outside-press close (focus returns to the avatar), Tab closes it and moves onaria-hidden; tiles already carry their aria-label), shown on hover and focus while foldedaria-expanded/aria-controls; the closed drawer is inert, the open drawer makes the top bar inert, focus moves to the current link and returns to the menu button on closeinert while folded; folding from inside the panel returns focus to the selected rail tile<section role="tabpanel" aria-labelledby>; the fold button carries aria-expanded and aria-controlstype="search" input; the label wraps the field so the icon area is clickablearia-current="page" on the active link; the pill itself is aria-hiddenaria-label names the unread total (Alerts, 3 unread); the visual digit is aria-hidden:focus-visible with --ring outline on all interactive elementsprefers-reduced-motion: reduce disables all animationsOpen Rail Sidebar in Atheros AI Builder, pick a design system and ask the AI assistant to change the layout, copy or behaviour — the navigation is regenerated against your tokens. Take the HTML, CSS, JS and React source with you, or pull it into your repo from Claude Code, Cursor or Codex over MCP.
300+ production-ready components and Atheros AI models. Every paid plan includes access to the whole Atheros — AI Builder and Learning.
Starting at $9.9 per month, billed annually