shell keys
Source file: client/lib/theme/vueda-tailwind/shell/index.js
Accordion
| Component | Kind | Slots | Description |
|---|---|---|---|
| Accordion | key | 1 | The root hook for the accordion wrapper. It intentionally ships without chrome so callers can compose accordion groups inside Card, Item, or plain page sections. |
| AccordionItem | key | 1 | The wrapper for one disclosure row. It paints the simple bottom divider and removes it from the final item, keeping accordion chrome owned by items rather than the root. |
| AccordionContent | key | 2 | The animated collapsible content region. It owns the open and closed height animations and applies body text sizing while leaving padding to AccordionContent.inner. |
| AccordionTrigger | key | 3 | The clickable accordion header. It uses the container typography rhythm, exposes a focus outline, and rotates direct SVG icons when the item is open. |
Alert Dialog
| Component | Kind | Slots | Description |
|---|---|---|---|
| AlertDialogAction | key | 1 | Extra classes for the Button rendered inside AlertDialogAction. Button owns the tone, emphasis, size, focus, and disabled recipes; this slot is intentionally empty by default so the wrapper cannot drift from the button contract. |
| AlertDialogCancel | key | 1 | Extra classes for the Button rendered inside AlertDialogCancel. Button owns the tone, emphasis, size, focus, and disabled recipes; this slot only adds mobile spacing for the stacked alert-dialog footer layout. |
| AlertDialogContent | key | 2 | The centered alert dialog surface. It uses the modal radius, overlay shadow, fixed viewport centering, and entrance or exit motion expected for blocking confirmations. |
| AlertDialogDescription | key | 1 | The supporting copy below an alert dialog title. It uses muted small text so consequence detail supports the title without competing with the action buttons. |
| AlertDialogFooter | key | 1 | The action row for an alert dialog. It stacks buttons in reverse order on narrow screens and aligns them to the end once horizontal space is available. |
| AlertDialogHeader | key | 1 | The title and description stack at the top of an alert dialog. It centers copy on narrow screens and switches to left alignment at the small breakpoint. |
| AlertDialogTitle | key | 1 | The primary heading for an alert dialog. It uses a compact semibold heading treatment sized for modal content, not page-level display text. |
Collapsible
| Component | Kind | Slots | Description |
|---|---|---|---|
| Collapsible | key | 1 | The root hook for generic collapsible state. It intentionally has no visual recipe because Collapsible is a logic primitive. |
| CollapsibleContent | key | 1 | The region controlled by a CollapsibleTrigger. It ships empty so feature surfaces can decide whether the content behaves like inline reveal, row detail, or raw-debug disclosure. |
| CollapsibleTrigger | key | 1 | The trigger hook for a generic collapsible. It ships empty so callers can use links, rows, buttons, or custom controls without inheriting accordion chrome. |
Card
| Component | Kind | Slots | Description |
|---|---|---|---|
| Card | key | 1 | The framed card surface. It owns the card background, border, radius, vertical rhythm, and non-raised shadow contract; padding on the horizontal axis belongs to child slots. |
| CardHeader | key | 1 | The leading card header grid. It creates title and description rows and switches to a two-column layout when CardAction.root is present. |
| CardTitle | key | 1 | The primary title text inside a card header. It uses compact semibold type so card headings stay subordinate to page titles. |
| CardDescription | key | 1 | The secondary card header copy. It uses muted body text for explanatory text below CardTitle.root. |
| CardAction | key | 1 | The trailing card header action region. It parks in the top-right column and spans the title and description rows without adding wrapper layout logic. |
| CardContent | key | 1 | The body content inset for a card. It provides the horizontal padding that Card itself omits so full-width header or footer borders can span cleanly. |
| CardFooter | key | 1 | The trailing card footer row. It aligns footer content horizontally and adds top padding when the footer carries a top divider (a raw border-t or the DPR-tracked border-t-hairline; prefer the hairline form, see README § 7.3). |
Dialog
| Component | Kind | Slots | Description |
|---|---|---|---|
| DialogContent | key | 2 | The dialog surface. Standard dialogs use fixed viewport centering, the modal radius, and overlay shadow; full-screen dialogs replace that geometry with a viewport-filling surface. Both own the paired background and foreground tokens. |
| DialogDescription | key | 1 | The supporting copy below a dialog title. It uses muted small text so detail remains subordinate to the title and body content. |
| DialogFooter | key | 1 | The action row for dialog footers. It stacks in reverse order on narrow screens and aligns trailing actions on wider screens. |
| DialogHeader | key | 1 | The title and description stack at the top of a dialog. It centers copy on narrow screens and switches to left alignment at the small breakpoint. |
| DialogOverlay | key | 1 | The dialog backdrop layer. It fills the viewport with the shared overlay token and fades with dialog state changes. |
| DialogScrollContent | key | 3 | The scrollable dialog surface. It stays centered inside the scroll overlay while preserving the modal radius, border, and overlay shadow used by dialog surfaces. |
| DialogTitle | key | 1 | The primary heading for a dialog. It uses compact semibold type sized for modal content, not page-level display text. |
Field
| Component | Kind | Slots | Description |
|---|---|---|---|
| Field | key | 1 | The outer field layout wrapper. It switches between vertical, horizontal, responsive, and read-only grid layouts while carrying invalid state color. |
| FieldContent | key | 1 | The non-label content stack inside a field. It groups controls, helper text, and validation messages into a compact flex column. |
| FieldDescription | key | 1 | The helper text beneath or beside a field control. It uses supporting text size, muted color, and link styling that keeps explanatory copy readable without becoming the primary label. |
| FieldGroup | key | 1 | The stack for related fields and nested field groups. It establishes the field-group container query used by responsive fields and tightens spacing for checkbox and radio groups. |
| FieldLabel | key | 1 | The label text or label-card wrapper for a field. It handles disabled opacity, nested control-card framing, and checked-state tint for label-wrapped choices. |
| FieldLegend | key | 1 | The legend or label-style heading for grouped fields. Its variant attribute chooses between larger legend text and compact label text. |
| FieldMessage | key | 2 | The validation or warning message attached to a field. It maps error severity to destructive text and all other severities to warning text. |
| FieldSeparator | key | 3 | The positioned wrapper for a labelled field divider. It reserves the line height and variant-specific vertical offset used inside field groups. |
| FieldSet | key | 1 | The stack for a fieldset's child fields. It uses the default field rhythm and tightens spacing when the direct child is a checkbox or radio group. |
| FieldTitle | key | 1 | The compact title text adjacent to field content. It follows field disabled opacity and uses label-weight type for local field headings. |
Hover Card
| Component | Kind | Slots | Description |
|---|---|---|---|
| HoverCardTrigger | key | 1 | The trigger hook for hover-card content. It ships empty so the trigger can inherit the semantics and visual treatment of the element that owns the hover affordance. |
| HoverCardContent | key | 1 | The floating hover-card panel. It uses the popover surface recipe at a tighter width for glance-weight summaries. |
Item
| Component | Kind | Slots | Description |
|---|---|---|---|
| Item | key | 1 | The row-like item wrapper. It carries the default, outline, and muted variants, size spacing, anchor hover behavior, and focus treatment. |
| ItemActions | key | 1 | The trailing action group inside an item. It keeps adjacent controls aligned and evenly spaced without affecting the main content column. |
| ItemContent | key | 1 | The main text stack inside an item. It flexes to fill available space and lets a following content block opt out of that growth. |
| ItemDescription | key | 1 | The secondary item copy. It clamps to two lines, uses muted body text, and styles links as quiet inline affordances. |
| ItemFooter | key | 1 | The low-emphasis metadata row below item content. It uses compact mono supporting text so timestamps, counters, and machine-generated values read as metadata. |
| ItemGroup | key | 1 | The stack wrapper for related items. It opens a named group scope and leaves borders or section chrome to the caller. |
| ItemHeader | key | 1 | The low-emphasis metadata row above item content. It mirrors ItemFooter.root for compact mono metadata before the title. |
| ItemMedia | key | 1 | The leading media region for an item. The icon variant creates a 32px bordered tile, the image variant creates a 40px cropped image frame, and the default stays transparent. |
| ItemSeparator | key | 1 | The divider between item rows. It removes extra vertical margin so separators can be used in dense item groups. |
| ItemTitle | key | 1 | The primary label inside an item. It uses body-sized medium text and inline gap support for leading or trailing inline elements. |
Label
| Component | Kind | Slots | Description |
|---|---|---|---|
| Label | key | 1 | The accessible label text for controls and grouped inputs. It handles disabled states from both group and peer contexts while preserving compact inline alignment. |
Popover
| Component | Kind | Slots | Description |
|---|---|---|---|
| PopoverContent | key | 1 | The positioned popover panel. Uses the shared floating surface recipe. Width is not set here — the element uses width: auto (shrink-to-fit) by default; pass a class prop to the PopoverContent component to set a specific width or minimum if the content needs one. |
Resizable
| Component | Kind | Slots | Description |
|---|---|---|---|
| ResizableHandle | key | 2 | The draggable divider between resizable panels. It expands the hit area around the 1px visual rule and adapts the affordance for horizontal or vertical panel groups. |
| ResizablePanelGroup | key | 1 | The flex container for resizable panels. It switches from row to column layout when the panel group orientation is vertical. |
Scroll Area
| Component | Kind | Slots | Description |
|---|---|---|---|
| ScrollArea | key | 2 | The root wrapper for a custom scroll area. It establishes relative positioning for scrollbars without adding surface chrome. |
| ScrollBar | key | 2 | The custom scrollbar track. It uses a 10px touch target and switches its border side and dimensions by orientation. |
Separator
| Component | Kind | Slots | Description |
|---|---|---|---|
| Separator | key | 1 | The plain horizontal or vertical dividing rule. It is a single border-token line with no label or inset variant. |
Drawer
| Component | Kind | Slots | Description |
|---|---|---|---|
| DrawerContent | key | 2 | The edge-attached drawer surface. It reads Vaul direction attributes to choose edge, size, max height, and which modal-radius corners stay rounded. |
| DrawerDescription | key | 1 | The supporting copy inside a drawer. It uses muted small text to stay subordinate to the drawer title and body content. |
| DrawerFooter | key | 1 | The trailing action area inside a drawer. It pins itself after drawer body content and stacks actions with the standard 4px-grid gap. |
| DrawerHeader | key | 1 | The title and description stack inside a drawer. It applies the drawer's default 16px inset and compact vertical gap. |
| DrawerOverlay | key | 1 | The drawer backdrop layer. It fills the viewport with the shared overlay token and fades with drawer state changes. |
| DrawerTitle | key | 1 | The primary heading inside a drawer. It uses foreground semibold text without page-title scaling. |
Sheet
| Component | Kind | Slots | Description |
|---|---|---|---|
| SheetContent | key | 2 | The edge-attached sheet surface. It maps the side prop to slide direction, edge border, size, and overlay shadow while preserving a flex column body. |
| SheetDescription | key | 1 | The supporting copy inside a sheet. It uses muted small text to stay subordinate to the sheet title and body content. |
| SheetFooter | key | 1 | The trailing action area inside a sheet. It sits after the body content and stacks actions with the standard inset. |
| SheetHeader | key | 1 | The title and description stack inside a sheet. It applies the sheet's default 16px inset and compact vertical gap. |
| SheetOverlay | key | 1 | The sheet backdrop layer. It fills the viewport with the shared overlay token and fades with sheet state changes. |
| SheetTitle | key | 1 | The primary heading inside a sheet. It uses foreground semibold text without page-title scaling. |
Stepper
| Component | Kind | Slots | Description |
|---|---|---|---|
| Stepper | key | 1 | The root flex row for a stepper. It provides only the step gap so orientation and step semantics stay with the composed step items. |
| StepperItem | key | 1 | The wrapper for one step and its connector context. It opens the state group used by indicator and separator slots and suppresses pointer events when disabled. |
| StepperTrigger | key | 1 | The selectable control for a step. It stacks indicator and label content in a compact centered column with a modest focusable radius. |
| StepperIndicator | key | 1 | The circular step marker. It maps active, completed, disabled, and upcoming states to the stepper color contract. |
| StepperTitle | key | 1 | The primary label for a step. It stays on one line so horizontal steppers do not shift as labels wrap. |
| StepperDescription | key | 1 | The supporting text beneath a step title. It uses muted extra-small text for optional detail below the primary label. |
| StepperSeparator | key | 1 | The connector line between steps. It stays muted for upcoming or disabled steps and switches to accent after completion. |
Tabs
| Component | Kind | Slots | Description |
|---|---|---|---|
| Tabs | key | 1 | The root stack for tabbed content. It keeps the tab list and active panel separated by a compact vertical gap. |
| TabsContent | key | 1 | The active tab panel. It flexes to fill remaining space and removes default outline chrome so focus treatment can be handled by child content when needed. |
| TabsList | key | 1 | The segmented tab-list surface. It uses muted fill, compact height, and a small internal padding so active triggers read as selected slabs. |
| TabsTrigger | key | 1 | The selectable tab segment. It handles active fill, dark-mode contrast, icon sizing, disabled state, and keyboard focus while staying within the segmented list surface. |
Tooltip
| Component | Kind | Slots | Description |
|---|---|---|---|
| TooltipContent | key | 2 | The compact floating tooltip panel. It inverts foreground and background tokens, uses control radius, and follows the tooltip surface rule. |
Sticky Bar
| Component | Kind | Slots | Description |
|---|---|---|---|
| StickyBar | key | 5 | The sticky action-bar wrapper. It stays anchored just above the page edge and translates out of view when hidden is true. |
| StickyStackProvider | key | 2 | Structural wrapper around the bars and the scrolling content. Lays them out in a column and |
Page chrome
| Component | Kind | Slots | Description |
|---|---|---|---|
| PageTitle | key | 7 | Outer header bar. Carries the bottom hairline that closes the header and, when sticky is set, pins the bar to the top of the scroll viewport at z-30. Merge extra classes via themeOverride (or setTheme) on this slot without overriding the chrome. |