An edge tab that grows a support panel from its measured box - use it over Sheet when the tab must stay visible.
SupportRail playground
Install SupportRail
1. New project? One command installs the package and wires everything - see Installation:
pnpm dlx zyncat-ui init2. Import the component - it loads its own stylesheet:
import { SupportRail } from '@zyncat/ui/support-rail';Usage
import { SupportRail } from '@zyncat/ui/support-rail'; <SupportRail actions={actions} status="Open · closes 20:00" onSelect={route} />Compose SupportRail in your application. No Tailwind or external styling library is required; every value resolves from Zyncat UI's token vocabulary.
SupportRail props
SupportRail
SupportAction
SupportRailStyle
Frequently asked questions
Pass actions - each item renders a row with a label, an optional description line and optional meta text. Selecting one calls onSelect(id, action) and the panel stays open, so you render what happens next - a form, a confirmation - in children rather than the rail navigating away for you.
Escape closes it, so does the visible close button, and so does a press anywhere outside the panel. It folds back into the tab it grew out of.
trigger takes any node - an icon, a word, an avatar - and the rail renders it inside the tab it owns, keeping the edge, the ARIA and the fold-back animation. Leave it out and you get a chat glyph; title names the tab either way.
side is "right" (the default) or "left", and it flips more than which edge the needle sits on - the collapse origin and the panel's border all mirror with it, so a left rail isn't just a right rail nudged over.