Files
caravel/frontend/spec/components.md
T
2026-03-26 14:09:41 -07:00

4.2 KiB

Components

This file defines the spec components used across frontend/spec/pages/*.md.

  • page: Root container for a route-level screen. Carries route metadata like path, auth requirements, and layout shell.

  • nav: Top navigation area for primary brand and session-aware links.

  • header: Top content block for a page or section, usually containing a title.

  • section: Logical grouping of related content within a page.

  • hero: Prominent introductory content block for a page.

  • heading: Section heading wrapper that pairs a title with optional supporting copy.

  • title: Primary label text for a page, section, card, or control.

  • description: Supporting explanatory text under a title or heading.

  • text: Generic body text when no more specific semantic component applies.

  • help_text: Small informational guidance text, usually near forms or auth flows.

  • brand: Product identity block (name/logo).

  • badge: Small status/highlight label.

  • status: Current state indicator for an entity (for example relay status).

  • meta: Secondary metadata text (IDs, pubkeys, auxiliary attributes).

  • copyright: Footer legal ownership line.

  • link: Navigational text/action leading to another route or URL.

  • links: Group of related link components.

  • back_link: Explicit “go back” navigation link to a parent/list view.

  • back_button: Button-style backward navigation within a multi-step screen.

  • button: Generic clickable action control.

  • submit_button: Primary form submission control with optional loading label.

  • actions: Container for action controls associated with a section/card.

  • controls: Container for filters/search/sort controls.

  • tabs: Container for tabbed navigation controls.

  • tab: A selectable tab option within tabs.

  • screen: Named sub-view/state within a page (e.g., a login subflow).

  • modal: Overlay dialog for focused temporary interaction.

  • form: Form container for user input and submission behavior.

  • field: Structured form field abstraction (label + input type + validation intent).

  • input: Single input control for user-entered values.

  • select: Dropdown control for choosing one option from many.

  • option: A selectable value within select or plan/method groups.

  • copyable_input: Read-only input-like field designed for quick copy actions.

  • tooltip_error: Inline or anchored validation error shown near a specific field.

  • error_message: Message shown when an action fails.

  • error_state: Full-state error presentation for failed data loading.

  • loading_state: Full-state loading presentation while data is being fetched.

  • list: Repeating collection container.

  • item: Single element within a repeating collection.

  • grid: Multi-column layout container for repeated items/cards.

  • card: Bounded content block used in feature grids and summaries.

  • product: Specialized card describing an external ecosystem product/integration.

  • relay_detail_card: Composite card summarizing relay properties and management actions.

  • avatar: User/profile image representation.

  • bullets: Container for short point-form highlights.

  • toggle: On/off control for a boolean feature or policy.

  • toggles: Group of related boolean toggle controls.

  • plan_selector: Control used to switch between available relay plans.

  • pricing_table: Plan comparison and pricing presentation block.

  • member_count: Display of current member usage for a relay.

  • members: Plan capacity descriptor (member limits).

  • price: Plan pricing descriptor.

  • tenant: Tenant identity/value display in admin-oriented contexts.

  • created_at: Human-readable creation timestamp display.

  • bolt11: Lightning invoice string display.

  • qr_code: Visual QR representation of a connection URI.

  • camera_preview: Live camera viewport used for scanning QR codes.

Control directives used in specs

These appear in the Pug-like spec language but are flow directives rather than UI components:

  • if / else: Conditional branch based on a boolean condition.
  • when: Conditional rendering keyed off a selected tab/state/value.