Reference · 57 specs
Every component, specified.
Anatomy, API surface, keyboard shortcuts, capability fallbacks. The single source of truth for what every Caret component does and why — the document an AI assistant or another implementer reads when they need exact behaviour, not vibes.
Interactive
23 specs- accordionAccordionInteractive collapsible sections for grouped content.→
- autocompleteautocompleteFuzzy-search prompt — type to filter, arrow-keys to navigate, enter to select.→
- bootBootA systemd-style sequential loader. Real async tasks per step.→
- command-paletteCommand PaletteFuzzy command search with grouped results and keyboard shortcuts.→
- context-menuContext MenuA bordered action menu with separator support.→
- editoreditorMulti-line text editor prompt with line numbers and a gutter.→
- file-pickerFile PickerInteractive file and directory browser.→
- formFormMulti-field input layout — multiple prompts in one frame.→
- modalModalAn interactive bordered overlay with a title, body, and action buttons.→
- pagerpagerInteractive scrollable viewport for long content.→
- promptPromptThe most common point of interaction in a transactional CLI. Sets the tone for everything else.→
- revealRevealAnimates a list of lines appearing top-to-bottom, one per tick.→
- scrollableScrollableA scrollable viewport container with scroll indicator.→
- searchsearchInteractive fuzzy search/filter over a dataset.→
- sliderSliderInteractive numeric range input with ←/→ adjustment.→
- spinnerSpinnerNot every wait is interesting. But every wait is visible, and every wait resolves into success or failure. A good spinner makes waiting feel like progress.→
- splashSplashThe opening moment of your CLI. A logo, a title, and a subtitle, with phased reveal.→
- split-paneSplit PaneSide-by-side scrollable layout with tab focus switching.→
- tabsTabsInteractive tab bar navigation with ←/→ selection.→
- toastToastA brief inline notification that auto-dismisses after a timeout.→
- toggleToggleAn interactive boolean on/off switch.→
- typewriterTypewriterAnimates text appearing character by character.→
- virtualized-listVirtualized ListWindowed scrollable list for large datasets.→
Display
22 specs- bannerBannerA heading at the top of your CLI's output.→
- calendarCalendarMonth-view calendar with today and marked date highlights.→
- code-blockCode blockA multi-line code block with a left gutter, optional language label, and line numbers.→
- columnscolumnsSide-by-side column layout for dashboards and comparisons.→
- diffDiffUnified-diff style line rendering with colored prefixes.→
- dividerDividerA horizontal rule, optionally with a label.→
- errorErrorWhen something goes wrong, the error message is the product. Make it the best part of the experience.→
- heatmapHeatmapGrid-based heatmap with block character intensity levels.→
- json-viewerJSON ViewerSyntax-highlighted formatted JSON display.→
- key-valueKeyValueAligned `key: value` pairs for config dumps, status summaries, and after-output.→
- listListA vertical sequence of items, each marked by a single character.→
- loglogStreaming log output with timestamps and severity levels.→
- logoLogoRender a multi-line ASCII art logo, in accent color or terminal default.→
- messageMessages — info, success, warningLightweight one-line semantic messages. Lighter cousins of `error()`.→
- panelPanelA bordered container with an optional title — the fundamental layout primitive.→
- paragraphParagraphWrapped multi-line text with optional indent.→
- progressProgressA single horizontal bar showing how far along a known-total operation is.→
- quoteQuoteBlockquote-style indented text behind a vertical bar gutter.→
- snippetSnippetCode block with an optional copy-to-clipboard affordance.→
- stepStepA multi-phase status indicator: which steps are done, which is current, which are pending.→
- tableTableTyped columns and rows. The structured data display.→
- treeTreeA hierarchical view rendered with box-drawing branches.→
Utility
5 specs- badgeBadgeA small inline label, like a GitHub status badge. Returns a string.→
- clearClearClears the terminal screen.→
- codeCode (inline)Inline code formatting. Returns a string for composition.→
- kbdKbdRenders a keyboard shortcut as a bracketed inline label.→
- linkLinkAn OSC 8 clickable hyperlink. Returns a string for inline composition.→
Reference
7 specs- alertAlertA bordered semantic callout box for info, success, warning, or danger.→
- breadcrumbBreadcrumbNavigation path returned as a string.→
- checklistChecklistA static TODO list with checkbox markers.→
- spaceSpaceVertical whitespace helper.→
- sparklineSparklineInline mini chart built from Unicode block characters.→
- status-lineStatusLineSingle-line compact view of multiple named statuses.→
- timeTime — timestamp() and timeAgo()Styled time strings for composition.→
Every spec lives in specs/<name>.md. Edit the markdown, rebuild, and the rendered page picks the change up.