j3w1 / theme

j3w1 / theme4.0.0

j3w1 / command

  • SPEC Overview
  • SPEC Foundations
  • SPEC Components
  • SPEC Patterns
  • SPEC Tokens
  • SPEC Tools
  • SPEC Workbench
  • SPEC Form builder
  • SPEC Task kit
  • SPEC Recipes
  • SPEC Figma bridge
  • SPEC Report an issue
  • SPEC Implement
  • SPEC For agents
  • SPEC Ports
  • SPEC Releases
  • SPEC Specification
  • DEMO Vue application demo

Terminal

Terminal text with the readable heritage sixteen ANSI slots (D-029, D-032), the cursor, the selection and the six text attributes; a transcript, the slot grid and the attributes.

stable · light DOM · 4.0.0. Light DOM retains static content, native semantics, label relationships and host composition without duplicating controls.

Live variants

default

 ~/theme  main  ls -l ports
total 5
drwxr-xr-x  2 j3w1 j3w1  4096 Sep  6 09:12 alacritty
drwx------  2 j3w1 j3w1  4096 Sep  6 09:12 gtk
-rw-r--r--  1 j3w1 j3w1  1180 Sep  6 09:12 README.md
-rwxr-xr-x  1 j3w1 j3w1   512 Sep  6 09:12 verify.sh
lrwxrwxrwx  1 j3w1 j3w1    11 Sep  6 09:12 xresources -> ../tokens/
-rw-r--r--  1 j3w1 j3w1 20480 Sep  6 09:12 evidence.tar.gz
 ~/theme  main  cat ports/gtk/port.json
cat: ports/gtk/port.json: No such file or directory
 ~/theme  main  npm run validate
Markup
<j3w1-terminal id="example-terminal-default"><pre class="terminal terminal-transcript" role="log" aria-label="Shell transcript" tabindex="0"><span class="terminal-line"><span class="terminal-prompt"><span class="terminal-prompt-path"> ~/theme </span><span class="terminal-prompt-arrow terminal-prompt-arrow-path" aria-hidden="true">▶</span><span class="terminal-prompt-branch"> main </span><span class="terminal-prompt-arrow terminal-prompt-arrow-branch" aria-hidden="true">▶</span></span> ls -l ports</span>
<span class="terminal-line">total 5</span>
<span class="terminal-line">drwxr-xr-x  2 j3w1 j3w1  4096 Sep  6 09:12 <span class="terminal-fg-5 terminal-bold">alacritty</span></span>
<span class="terminal-line">drwx------  2 j3w1 j3w1  4096 Sep  6 09:12 <span class="terminal-fg-5 terminal-bold">gtk</span></span>
<span class="terminal-line">-rw-r--r--  1 j3w1 j3w1  1180 Sep  6 09:12 <span class="terminal-sel">README.md</span></span>
<span class="terminal-line"><span class="terminal-sel">-rwxr-xr-x  1 j3w1 j3w1   512 Sep  6 09:12 </span><span class="terminal-sel terminal-fg-3">verify.sh</span></span>
<span class="terminal-line">lrwxrwxrwx  1 j3w1 j3w1    11 Sep  6 09:12 <span class="terminal-fg-7">xresources</span> -&gt; <span class="terminal-fg-2">../tokens/</span></span>
<span class="terminal-line">-rw-r--r--  1 j3w1 j3w1 20480 Sep  6 09:12 <span class="terminal-fg-11">evidence.tar.gz</span></span>
<span class="terminal-line"><span class="terminal-prompt"><span class="terminal-prompt-path"> ~/theme </span><span class="terminal-prompt-arrow terminal-prompt-arrow-path" aria-hidden="true">▶</span><span class="terminal-prompt-branch"> main </span><span class="terminal-prompt-arrow terminal-prompt-arrow-branch" aria-hidden="true">▶</span></span> cat ports/gtk/port.json</span>
<span class="terminal-line terminal-fg-5">cat: ports/gtk/port.json: No such file or directory</span>
<span class="terminal-line terminal-line-cursor"><span class="terminal-prompt"><span class="terminal-prompt-path"> ~/theme </span><span class="terminal-prompt-arrow terminal-prompt-arrow-path" aria-hidden="true">▶</span><span class="terminal-prompt-branch"> main </span><span class="terminal-prompt-arrow terminal-prompt-arrow-branch" aria-hidden="true">▶</span></span> npm run validate<span class="terminal-cursor" aria-hidden="true"> </span></span></pre></j3w1-terminal>

ansi-grid

slot    normal  bold    background
 0 ✕          
 1      normal  bold    
 2      normal  bold    
 3      normal  bold    
 4      normal  bold    
 5      normal  bold    
 6      normal  bold    
 7      normal  bold    
 8 ✕          
 9      normal  bold    
10      normal  bold    
11      normal  bold    
12      normal  bold    
13      normal  bold    
14      normal  bold    
15      normal  bold    
✕ below 4.5:1: slot 0 is the background, slot 8 the dim tier; heritage-ansi keeps the historical slots
Markup
<j3w1-terminal id="example-terminal-ansi-grid"><pre class="terminal terminal-ansi-grid" aria-label="The sixteen ANSI slots as normal and bold foregrounds and as backgrounds; a cross marks the background slot and the dim tier, the two below 4.5 to 1 on the terminal background" tabindex="0"><span class="terminal-line"><span class="terminal-label">slot    normal  bold    background</span></span>
<span class="terminal-line"><span class="terminal-label"> 0</span> <span class="terminal-fail">✕</span>    <span class="terminal-fg-0 terminal-swatch" aria-hidden="true"></span>  <span class="terminal-fg-0 terminal-swatch" aria-hidden="true"></span>    <span class="terminal-bg-0 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label"> 1</span>      <span class="terminal-fg-1">normal</span>  <span class="terminal-fg-1 terminal-bold">bold</span>    <span class="terminal-bg-1 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label"> 2</span>      <span class="terminal-fg-2">normal</span>  <span class="terminal-fg-2 terminal-bold">bold</span>    <span class="terminal-bg-2 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label"> 3</span>      <span class="terminal-fg-3">normal</span>  <span class="terminal-fg-3 terminal-bold">bold</span>    <span class="terminal-bg-3 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label"> 4</span>      <span class="terminal-fg-4">normal</span>  <span class="terminal-fg-4 terminal-bold">bold</span>    <span class="terminal-bg-4 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label"> 5</span>      <span class="terminal-fg-5">normal</span>  <span class="terminal-fg-5 terminal-bold">bold</span>    <span class="terminal-bg-5 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label"> 6</span>      <span class="terminal-fg-6">normal</span>  <span class="terminal-fg-6 terminal-bold">bold</span>    <span class="terminal-bg-6 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label"> 7</span>      <span class="terminal-fg-7">normal</span>  <span class="terminal-fg-7 terminal-bold">bold</span>    <span class="terminal-bg-7 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label"> 8</span> <span class="terminal-fail">✕</span>    <span class="terminal-fg-8 terminal-swatch" aria-hidden="true"></span>  <span class="terminal-fg-8 terminal-swatch" aria-hidden="true"></span>    <span class="terminal-bg-8 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label"> 9</span>      <span class="terminal-fg-9">normal</span>  <span class="terminal-fg-9 terminal-bold">bold</span>    <span class="terminal-bg-9 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label">10</span>      <span class="terminal-fg-10">normal</span>  <span class="terminal-fg-10 terminal-bold">bold</span>    <span class="terminal-bg-10 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label">11</span>      <span class="terminal-fg-11">normal</span>  <span class="terminal-fg-11 terminal-bold">bold</span>    <span class="terminal-bg-11 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label">12</span>      <span class="terminal-fg-12">normal</span>  <span class="terminal-fg-12 terminal-bold">bold</span>    <span class="terminal-bg-12 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label">13</span>      <span class="terminal-fg-13">normal</span>  <span class="terminal-fg-13 terminal-bold">bold</span>    <span class="terminal-bg-13 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label">14</span>      <span class="terminal-fg-14">normal</span>  <span class="terminal-fg-14 terminal-bold">bold</span>    <span class="terminal-bg-14 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line"><span class="terminal-label">15</span>      <span class="terminal-fg-15">normal</span>  <span class="terminal-fg-15 terminal-bold">bold</span>    <span class="terminal-bg-15 terminal-swatch-bg" aria-hidden="true"></span></span>
<span class="terminal-line terminal-line-cursor"><span class="terminal-label">✕ below 4.5:1: slot 0 is the background, slot 8 the dim tier; </span><span class="terminal-sel">heritage-ansi keeps the historical slots</span><span class="terminal-cursor" aria-hidden="true"> </span></span></pre></j3w1-terminal>

attributes

bold       Warm-black surfaces, rose text.
dim        Warm-black surfaces, rose text.
italic     Warm-black surfaces, rose text.
underline  Warm-black surfaces, rose text.
inverse    Warm-black surfaces, rose text.
strike     Warm-black surfaces, rose text.
selected   Warm-black surfaces, rose text.
Markup
<j3w1-terminal id="example-terminal-attributes"><pre class="terminal terminal-attributes" aria-label="Terminal text attributes" tabindex="0"><span class="terminal-line"><span class="terminal-label">bold       </span><span class="terminal-bold">Warm-black surfaces, rose text.</span></span>
<span class="terminal-line"><span class="terminal-label">dim        </span><span class="terminal-dim">Warm-black surfaces, rose text.</span></span>
<span class="terminal-line"><span class="terminal-label">italic     </span><span class="terminal-italic">Warm-black surfaces, rose text.</span></span>
<span class="terminal-line"><span class="terminal-label">underline  </span><span class="terminal-underline">Warm-black surfaces, rose text.</span></span>
<span class="terminal-line"><span class="terminal-label">inverse    </span><span class="terminal-inverse">Warm-black surfaces, rose text.</span></span>
<span class="terminal-line"><span class="terminal-label">strike     </span><span class="terminal-strike">Warm-black surfaces, rose text.</span></span>
<span class="terminal-line terminal-line-cursor"><span class="terminal-label">selected   </span><span class="terminal-sel">Warm-black surfaces, rose text.</span><span class="terminal-cursor" aria-hidden="true"> </span></span></pre></j3w1-terminal>

Install and register

Use the exact version. If npm publication is pending, install the release tarball from the installation guide.

npm install --save-exact @j3w1/ui@4.0.0
import '@j3w1/ui/tokens.css';
import '@j3w1/ui/styles/terminal.css';
import '@j3w1/ui/register/terminal';

Insert the maintained markup above after loading these imports. Its native children provide accessible names and form behavior; the empty custom tag alone does not create a control.

Vue SFC, React, Astro and plain HTML integration →

Copy the complete implementation

npx --package=@j3w1/ui@4.0.0 j3w1-ui copy terminal --out ./vendor/j3w1/terminal

The CLI verifies every file before writing and refuses overwrites. Serve the output over HTTP and open index.html. Keep its modules, CSS, tokens and licence notices together.

Public API

attributes

NameType / signatureMeaning
disabledCustomEventDisable the native controls owned by this instance.
loadingCustomEventMark the primary control busy and prevent duplicate activation.

properties

NameType / signatureMeaning
disabledbooleanDelegates disabled state to native children.
namestringNative control name; application form keys remain explicit.

methods

NameType / signatureMeaning
refresh(): voidReconnect behavior after replacing native child structure.
focus(options?: FocusOptions): voidFocus the first usable native control.
setText(text: string): voidReplace the bounded read-only text view; no code or shell execution occurs.

events

NameType / signatureMeaning
j3w1-actionCustomEventRequest a developer-view action; editing and execution belong to the host.

Dependencies and verification

Registered components: none. Style dependencies: none.

Package presence establishes an available implementation. Actual passes depend on the tested artifact and environment. Read specification execution evidence; read packed-consumer evidence; inspect the complete state matrix.

Full implementation manifest, API and token dependency closure

Canonical specification

Terminal terminal

  • Family: Developer interfaces
  • Maturity: stable
  • Priority: R1
  • Since: 0.1.0
  • Native control: native <pre role=log> for a transcript; a plain <pre> with aria-label for the slot grid and the attribute sheet — APG pattern
  • specified
  • demonstrated

Terminal text with the readable heritage sixteen ANSI slots (D-029, D-032), the cursor, the selection and the six text attributes; a transcript, the slot grid and the attributes.

Report an issue with this component

Tokens

Focus a role to inspect its values; follow its link for persistent usage and source details.

PartRoleValueUse
root.bgcolor.terminal.bgapproveduse#000000D-041 terminal.bg: color.primitive.ink.0.
root.textcolor.terminal.fgapproveduse#ffa2a7D-041: bright rose terminal text for readable black-background shells.
root.bordercolor.border.controlapproveduse#c81a1aD-041 owner correction: red control and floating-frame borders, distinct from rose text.
root.ringcolor.interaction.focus.ring-containerobserveduse#ffa2a7Focus colour for containers and explicitly mapped filled controls (D-015); component rules determine ring geometry.
cursor.bgcolor.terminal.cursorapproveduse#ffa2a7D-041 owner correction: rose is the default UI and reading foreground; near-white is reserved for document headings, highlights and contrast-critical fills.
cursor.textcolor.terminal.bgapproveduse#000000D-041 terminal.bg: color.primitive.ink.0.
selection.bgcolor.terminal.selection-bgobserveduse#420f0cTerminal selection.
selection.textcolor.terminal.selection-textobserveduse#f4eeeeTerminal selection text.
current.bgcolor.code.current-lineapproveduse#0d0707D-041 code.current-line: color.primitive.modern.panel.
prompt.bgcolor.terminal.prompt-bgapproveduse#000000D-041 terminal.prompt-bg: color.primitive.ink.0.
prompt.textcolor.terminal.prompt-textapproveduse#ffa2a7D-041: bright rose terminal text for readable black-background shells.
prompt.branch-bgcolor.terminal.ansi.3approveduse#e5c07bD-041 terminal.ansi.3: color.primitive.modern.amber.
prompt.branch-textcolor.terminal.bgapproveduse#000000D-041 terminal.bg: color.primitive.ink.0.
dim.textcolor.text.mutedapproveduse#d4868bD-041 owner correction: rose is the default UI and reading foreground; near-white is reserved for document headings, highlights and contrast-critical fills.
inverse.bgcolor.terminal.fgapproveduse#ffa2a7D-041: bright rose terminal text for readable black-background shells.
inverse.textcolor.terminal.bgapproveduse#000000D-041 terminal.bg: color.primitive.ink.0.
label.textcolor.text.mutedapproveduse#d4868bD-041 owner correction: rose is the default UI and reading foreground; near-white is reserved for document headings, highlights and contrast-critical fills.
fail.glyphcolor.terminal.fgapproveduse#ffa2a7D-041: bright rose terminal text for readable black-background shells.
slot.ansi-0color.terminal.ansi.0approveduse#000000D-041 terminal.ansi.0: color.primitive.ink.0.
slot.ansi-1color.terminal.ansi.1approveduse#f07178D-041 terminal.ansi.1: color.primitive.modern.red.
slot.ansi-2color.terminal.ansi.2approveduse#82d9a0D-041 terminal.ansi.2: color.primitive.modern.green.
slot.ansi-3color.terminal.ansi.3approveduse#e5c07bD-041 terminal.ansi.3: color.primitive.modern.amber.
slot.ansi-4color.terminal.ansi.4approveduse#82b4ffD-041 terminal.ansi.4: color.primitive.modern.blue.
slot.ansi-5color.terminal.ansi.5approveduse#c7a0e8D-041 terminal.ansi.5: color.primitive.modern.violet.
slot.ansi-6color.terminal.ansi.6approveduse#78d4d4D-041 terminal.ansi.6: color.primitive.modern.cyan.
slot.ansi-7color.terminal.ansi.7approveduse#ffa2a7D-041 ordinary ANSI foreground: rose.
slot.ansi-8color.terminal.ansi.8approveduse#bd787dD-041 owner correction: rose is the default UI and reading foreground; near-white is reserved for document headings, highlights and contrast-critical fills.
slot.ansi-9color.terminal.ansi.9approveduse#ff9095D-041 terminal.ansi.9: color.primitive.modern.bright-red.
slot.ansi-10color.terminal.ansi.10approveduse#a2edb8D-041 terminal.ansi.10: color.primitive.modern.bright-green.
slot.ansi-11color.terminal.ansi.11approveduse#f2d49bD-041 terminal.ansi.11: color.primitive.modern.bright-amber.
slot.ansi-12color.terminal.ansi.12approveduse#a4caffD-041 terminal.ansi.12: color.primitive.modern.bright-blue.
slot.ansi-13color.terminal.ansi.13approveduse#dec0f4D-041 terminal.ansi.13: color.primitive.modern.bright-violet.
slot.ansi-14color.terminal.ansi.14approveduse#a0e7e7D-041 terminal.ansi.14: color.primitive.modern.bright-cyan.
slot.ansi-15color.terminal.ansi.15approveduse#ffa2a7D-041 bright ANSI foreground: brighter rose; near-white reserved for exceptional highlights.

State matrix

Every declared state and combination, statically rendered; the default cell is live. Sizes: compact, comfortable (switch with the density control above).

StateTranscriptANSI gridAttributes
default
 ~/theme  main  ls -l ports
total 5
drwxr-xr-x  2 j3w1 j3w1  4096 Sep  6 09:12 alacritty
drwx------  2 j3w1 j3w1  4096 Sep  6 09:12 gtk
-rw-r--r--  1 j3w1 j3w1  1180 Sep  6 09:12 README.md
-rwxr-xr-x  1 j3w1 j3w1   512 Sep  6 09:12 verify.sh
lrwxrwxrwx  1 j3w1 j3w1    11 Sep  6 09:12 xresources -> ../tokens/
-rw-r--r--  1 j3w1 j3w1 20480 Sep  6 09:12 evidence.tar.gz
 ~/theme  main  cat ports/gtk/port.json
cat: ports/gtk/port.json: No such file or directory
 ~/theme  main  npm run validate
slot    normal  bold    background
 0 ✕          
 1      normal  bold    
 2      normal  bold    
 3      normal  bold    
 4      normal  bold    
 5      normal  bold    
 6      normal  bold    
 7      normal  bold    
 8 ✕          
 9      normal  bold    
10      normal  bold    
11      normal  bold    
12      normal  bold    
13      normal  bold    
14      normal  bold    
15      normal  bold    
✕ below 4.5:1: slot 0 is the background, slot 8 the dim tier; heritage-ansi keeps the historical slots
bold       Warm-black surfaces, rose text.
dim        Warm-black surfaces, rose text.
italic     Warm-black surfaces, rose text.
underline  Warm-black surfaces, rose text.
inverse    Warm-black surfaces, rose text.
strike     Warm-black surfaces, rose text.
selected   Warm-black surfaces, rose text.
focus-visible
selected
busy
current

Purpose

The reference for terminal text. The sixteen slots, frozen in Xresources, are the theme’s origin: heritage-ansi carries them exactly; default lifts the dim slots to readable values of the same hues (D-029) and makes slot 6 coral (D-032). Programs choose their slots; the theme makes every slot but the dim tier safe for text instead of steering them.

Anatomy

Root .terminal plus .terminal-transcript, .terminal-ansi-grid or .terminal-attributes; parts .terminal-line, -prompt (-prompt-path, -prompt-branch, -prompt-arrow), -cursor, -sel, -label, -fail, -bold, -dim, -italic, -underline, -inverse, -strike. Each slot class reads one role variable (color.terminal.ansi.0 … color.terminal.ansi.15), so a profile switch recolours without touching markup. color.terminal.prompt-bg is the heritage dark red in every profile, whatever slot 4 carries (D-032).

States

StateVisualNon-colour channel
defaulttext on color.terminal.bg; cursor hollow, 1px color.terminal.cursor outline; no ringthe hollow cursor
focus-visible2px color.interaction.focus.ring-container container ring at −3px; cursor solid color.terminal.cursor with color.terminal.bg textthe ring; the cursor fills
selectedrun filled color.terminal.selection-bg with color.terminal.selection-text; slot colours inside give way to the selection textwhole-cell fill; the emulator exposes the selection
busycommand running: solid static block cursor at the end of the output; transcript aria-busyaria-busy; cursor shape; no blink
currentcursor line filled color.code.current-line across its width; cursor as in focusrow fill; cursor cell

The reference cursor never blinks. A host keeps the user’s blink setting and stops it under reduced motion; the theme never turns it on.

Keyboard

As in the key table. The reference transcript consumes no key; the theme draws the ring, selection and block cursor where the host reports them.

Accessibility

In default, slots 1–7 and 9–15 meet 4.5:1 on the terminal background (D-029); coral slot 6 sets highlighted names apart from rose text (D-032). Slot 8 (dim tier) and slot 0 (the background) do not; the grid marks both with ✕. The crosses follow default, so under heritage-ansi (ten slots fail) the sample text shows the failures. The extended overlay proposes a semantic sixteen that all meet 4.5:1. The background row is not a contract: the default foreground passes only on slot 0, the terminal background on every slot but 0 and 8. Bold-as-bright and 256-colour or 24-bit sequences bypass the slots and are outside the theme. Most emulators dim by mixing a slot halfway into the background (dimmed slot 6 falls under 3:1); the theme does not brighten slots to compensate, a host setting for dim text alone may (D-032). Bold, italic, underline and strikethrough are styles a screen reader can expose.

Portability

Hosts that set the palette (Orca, Ghostty, Warp, CE Devbox’s shell palette) share one; the prompt is the one deliberate heritage-style exception, set in 24-bit color.terminal.prompt-bg and color.terminal.prompt-text whatever the slots carry. CE Devbox’s shell palette and its Agnoster directory and virtualenv segments follow in that repository (D-029, D-032).

Any sixteen-slot emulator holds these values byte for byte; port evidence records whether bold-as-bright is off and whether cursor and selection keys exist. A port carries the slots unchanged; it may recommend LS_COLORS or a prompt configuration but never changes slots to compensate. Cursor shape is the user’s; the theme supplies only its colour.

Non-examples

Normalising the heritage slots to 4.5:1 and calling it heritage-ansi. A blinking cursor in the reference. A glowing bar cursor. Bold rendered as bright. A purple or cyan slot borrowed from another scheme. Wrapping the transcript and breaking the prompt segments. A selection drawn as a ring instead of a fill. Rounded or gradient prompt segments.

Contrast report

30 declared pairs measured on resolved sRGB values with the WCAG 2.x formula; 1 waived (decorative only), 0 failing. A pass is a design target for the named role, not an application-wide conformance claim.

PairStateKindForegroundBackgroundRatioMinResult
terminal default textdefaulttextcolor.terminal.fg #ffa2a7color.terminal.bg #00000010.984.5pass
terminal default borderdefaultuicolor.border.control #c81a1acolor.terminal.bg #0000003.623pass
terminal focus-visible textfocus-visibletextcolor.terminal.fg #ffa2a7color.terminal.bg #00000010.984.5pass
terminal focus-visible outlinefocus-visibleuicolor.interaction.focus.ring-container #ffa2a7color.terminal.bg #00000010.983pass
terminal selected textselectedtextcolor.terminal.selection-text #f4eeeecolor.terminal.selection-bg #420f0c14.034.5pass
terminal busy textbusytextcolor.terminal.bg #000000color.terminal.cursor #ffa2a710.984.5pass
terminal current textcurrenttextcolor.terminal.fg #ffa2a7color.code.current-line #0d070710.454.5pass
hollow cursor outline at rest—uicolor.terminal.cursor #ffa2a7color.terminal.bg #00000010.983pass
cursor on the cursor linecurrentuicolor.terminal.cursor #ffa2a7color.code.current-line #0d070710.453pass
prompt segment text on the prompt background—textcolor.terminal.prompt-text #ffa2a7color.terminal.prompt-bg #00000010.984.5pass
branch segment text on slot 3—textcolor.terminal.bg #000000color.terminal.ansi.3 #e5c07b12.164.5pass
prompt arrow (the segment's own colour, decorative)—uicolor.terminal.prompt-bg #000000color.terminal.bg #0000001.001pass
dim text and grid labels—textcolor.text.muted #d4868bcolor.terminal.bg #0000007.584.5pass
inverse text—textcolor.terminal.bg #000000color.terminal.fg #ffa2a710.984.5pass
slot 2—textcolor.terminal.ansi.2 #82d9a0color.terminal.bg #00000012.384.5pass
slot 3—textcolor.terminal.ansi.3 #e5c07bcolor.terminal.bg #00000012.164.5pass
slot 5—textcolor.terminal.ansi.5 #c7a0e8color.terminal.bg #0000009.624.5pass
slot 7—textcolor.terminal.ansi.7 #ffa2a7color.terminal.bg #00000010.984.5pass
slot 11—textcolor.terminal.ansi.11 #f2d49bcolor.terminal.bg #00000014.674.5pass
slot 1—textcolor.terminal.ansi.1 #f07178color.terminal.bg #0000007.344.5pass
slot 4—textcolor.terminal.ansi.4 #82b4ffcolor.terminal.bg #0000009.924.5pass
slot 6—textcolor.terminal.ansi.6 #78d4d4color.terminal.bg #00000012.174.5pass
slot 8 (3.01:1, the dim tier)—textcolor.terminal.ansi.8 #bd787dcolor.terminal.bg #0000006.154.5pass
slot 9—textcolor.terminal.ansi.9 #ff9095color.terminal.bg #0000009.684.5pass
slot 10—textcolor.terminal.ansi.10 #a2edb8color.terminal.bg #00000015.344.5pass
slot 12—textcolor.terminal.ansi.12 #a4caffcolor.terminal.bg #00000012.474.5pass
slot 13—textcolor.terminal.ansi.13 #dec0f4color.terminal.bg #00000012.954.5pass
slot 14—textcolor.terminal.ansi.14 #a0e7e7color.terminal.bg #00000015.084.5pass
slot 15—textcolor.terminal.ansi.15 #ffa2a7color.terminal.bg #00000010.984.5pass
slot 0 (1.00:1; it is the background)—textcolor.terminal.ansi.0 #000000color.terminal.bg #0000001.004.5waived: heritage slot; slot 0 is the terminal background and is never a foreground on it

Keys

KeyAction
(host)The emulator and the shell own every key; the theme changes no binding and no cursor behaviour.
TabReaches the transcript as one focus stop; inside a live emulator Tab belongs to the shell.
Shift+Arrows / mouseSelection is the emulator's; the theme draws it in selection-bg and selection-text.

For agents

Component JSON ·Implementation brief ·Build a task kit ·

Related: code-editor diagnostics diff-view

Stress fixtures: FX-STATE-MATRIX FX-320 FX-ZOOM-200 FX-RM FX-HC FX-LONG FX-OVERFLOW