Skip to main content

Pattern · Applications

Settings Screen

Application recipe composed from public TermRock building blocks; domain state and effects remain host-owned.

Kind
pattern
Input
interactive
Canvas
120×40

Live preview

Loading terminal preview.

Static terminal poster. Choose Run live to start the Rust demo.

Ghosttysettings-screen/basic
Loading terminal poster…
○ loading posterNo input — rendered state only
Settings Screen · exact mounted Rust story

01 · Purpose

What it is for

Application recipe composed from public TermRock building blocks; domain state and effects remain host-owned.

Best fit: Applications · application · Form · KeybindingRecorder · KeyboardHelp

02 · Behavior

What the mounted story proves

  1. 01

    SettingsScreen

    Representative 120×40 terminal state.

  2. 02

    Passive paint

    No keyboard or pointer action is claimed by this representative story.

  3. 03

    Evidence stays explicit

    0 covered · 9 partial · 5 missing axes.

03 · Implement

Install, then start from exact code

Install

cargo add termrock --git https://github.com/tailrocks/termrock.git --rev 5283c2acf9154d0cfcd37b1ffe821c00faf90ea2

Add TermRock once. Keep domain effects in the host application.

Minimal implementation

Exact Rust setup used by settings-screen/basic.

Open to load code.

04 · Adapt

Variants and composition

Public building blocks

Form · KeybindingRecorder · KeyboardHelp · Panel · SearchInput · Sidebar · StatusBar · ThemePicker

Supporting types

Field · FieldStatus · Fieldset · HelpEntry · NavItem · SidebarPresentation · StatefulWidget · StatusSlot · ThemePreset · Widget

05 · Reference

API, tokens, accessibility

API

SettingsScreenOpen source ↗

Tokens

DesignSystemInspect exact story code for roles and capability projection.

Accessibility

Input contract mountedNo input claim in the representative story.

Contract

Evidence in progress0/23 axes covered

06 · Go deeper

Advanced guidance

Authored implementation guidance

Source-owned application block for a complete settings experience. Composes public TermRock widgets only (migration 0237).

When to use

Use SettingsScreenPrefer
Multi-category settings with searchStandalone Form / Sidebar
Theme + keybinding surfaces in one shellThemePicker / KeybindingRecorder alone
App settings with dirty / restart bannersCustom Workspace layout

Canonical chrome

ConcernType
CategoriesSidebar / NavItem
SearchSearchInput
FieldsForm / Field / Fieldset
ThemeThemePicker body mode
KeybindingsKeybindingRecorder body mode
HelpKeyboardHelp overlay
DensitySettingsDensity Normal / Narrow / Tiny

Host owns: persistence, restart application, domain values, conflict resolution.

Anatomy

┌ Categories ─┬ Search ──────────────────┐
│ General     │ [restart / conflicts]    │
│ · Profile   ├ Form / Theme / Keys ─────┤
│ · Appearance│                          │
│ Agent       │                          │
├─────────────┴──────────────────────────┤
│ modified · Ctrl+S save · ? help        │
└────────────────────────────────────────┘
Ownership boundary

TermRock owns reusable terminal rendering and interaction state. The host owns domain data, policy, persistence, authorization, and side effects.

Evidence status

0 covered, 9 partial, and 5 missing contract axes. Missing evidence is not a behavior claim.