BOSS Design System · v1

Operator's
Console

A single visual language for BossConsole and BossTerm. Built on the character cell and one amber signal — the lamp that tells an operator what is live, right now.

00 · Direction

Three rules

Everything below derives from these. When a choice is unclear, return here.

The cell is the unit

The terminal character cell (~8.4×17px at 14sp Meslo) is the grid the whole UI snaps to. Chrome borrows the terminal's discipline, not the other way around.

One amber signal

Amber means live / active / now — the primary action, the focused field, the selected tab, the blinking cursor. Nothing else competes for it. Cyan carries data and links.

Quiet everywhere else

Surfaces separate by tint, not shadow. Borders are hairlines. Density is high and calm so the content — your output — is the loudest thing on screen.

01 · Color

Surface & signal

Host chrome and terminal share one floor (ink), so a panel and the shell it wraps feel continuous. Amber and cyan are the only saturated colors that appear in chrome.

ink
#0E1217
Base floor — host + terminal
panel
#161D26
Chrome, raised surface
raised
#1E2731
Menus, popovers, hover
line
#2A3744
Hairline border / divider
chalk
#E9EEF3
Primary text
mist
#8593A3
Secondary text
muted
#5C6977
Tertiary / disabled
line-2
#3A4B5C
Strong border, input edge
signal
#F2A93B
Amber — live / primary action
data
#56C7E0
Cyan — links / info
ok
#6FD08C
Success / running clean
alert
#F2685F
Error / destructive
BossTerm · "Operator" theme — ANSI 16 + terminal colors
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fg #D7DEE6 bg #0E1217 cursor #F2A93B selection #21405A search #F0B429 link #56C7E0
02 · Type

Mono speaks first

Monospace is the brand voice — display headings, eyebrows, labels, every number and path. A humanist sans carries running UI copy where reading speed matters. The app bundles MesloLGS Nerd Font for the mono role.

display / LTake commandmono · 28–34 · 600 · -2%
display / SSession restoredmono · 22 · 600
titleWorkspace settingssans · 16 · 600
bodyThe quick brown fox prints to stdout.sans · 13 · 400
data / mono~/dev/boss · 1,284 ms · exit 0mono · 14 · 400
labelRecent projectsmono · 11 · 600 · +14% · UPPER
microAuto-savedmono · 10 · 500 · UPPER
03 · Space, shape, motion

Measured in cells

Spacing — 4px half-step, 8px base
2 · hairline gap
4 · icon padding
8 · base unit
12 · component gap
16 · section pad
24 · dialog pad
32 · major gap
Radius & elevation
0 · grid/term
3 · inputs
5 · buttons
8 · dialogs
e0 · ink (floor)
e1 · panel + 1px line
e2 · raised + soft shadow
Motion
instant0mscursor, key echo
fast90mshover, press
base160msmenus, panels
blink530mscursor cadence

Easing cubic-bezier(.2,0,0,1). Motion respects prefers-reduced-motion — the cursor stops blinking, panels cut instead of slide.

04 · BossConsole — chrome

Host elements

The frame around the work: title bar, tabs, controls, overlays. The active item always wears amber.

BOSS — operator@boss — ▢ ✕
terminal — zsh
main.kt
server · :8080
active tab marked by amber underline + amber cell-dot · panel content area
Buttons

Primary = amber, used once per view. Destructive stays outlined until hover, then commits to alert-red.

Text field & focus

Focus ring is always amber — the field is "live."

Toggle & slider
Restore tabs on launch
Telemetry
Context menu
Confirmation dialog
Discard session?
This terminal has unsaved scrollback. Closing it can't be undone.
Project cards
BC
BossConsole
~/Development/Boss/BossConsole
BT
BossTerm
~/Development/Boss/BossTerm
Scrollbar — auto-hide, with markers
$ grep -rn "signal" .
src/Theme.kt:42: val signal = Color(0xFFF2A93B)
src/Tab.kt:18: // active marker uses signal
docs/design.md:7: the amber signal …
build/out.log: done in 1.2s

Thumb #ffffff30 over a 12%-white track · search hits = amber markers · command-block status = ok/alert markers on the right gutter.

05 · BossTerm — the surface

Terminal elements

Where the operator actually works. The cursor is amber; ANSI colors are tuned to sit calmly on the shared ink floor.

zsh — ~/Development/Boss 120×32
operator@boss ~/Boss $ git status On branch dev Changes not staged: M BossColors.kt A BossDesignSystem.kt ⚠ 2 untracked files · search hit → signal · selected range operator@boss ~/Boss $
Cursor styles (× steady / blink)
A
Block
A
Underline
A
Bar

Focused 0.7 alpha · unfocused 0.3 · blink 530ms.

Tab chips (BossTerm)
● zsh ● ssh prod ⇆ mirror

7 color presets for grouping · cyan #4FC3F7 marks mirrored / remote sessions · active chip wears the amber signal.

Command-block gutter & progress
npm run build ✓ exit 0
npm test ✕ exit 1
deploy … running

OSC 9;4 progress bar — amber, 6dp, top or bottom edge.

06 · In context

The template, applied

The same tokens composed into real product surfaces. Toggle between the two BOSS apps — each is a different screen built entirely from this design language.

BOSS — operator@boss · ~/Development/Boss ⌘K · RBAC: operator
BossDesignSystem.kt
BossTheme.kt
terminal — zsh
Explorer · BOSS
▾ BossConsole
▾ plugin-ui-core
BossDesignSystem.kt
BossColors.kt
▸ composeApp
▾ docs
DESIGN_SYSTEM.md
38object BossPalette {
39 val ink = Color(0xFF0E1217) // shared floor
40 val signal = Color(0xFFF2A93B) // the live signal
41 val data = Color(0xFF56C7E0)
42}
43 
44// amber = "now": primary action, focus, cursor
Terminal · split below editor
operator@boss ~/Boss $ ./gradlew :composeApp:compileKotlinDesktop
BUILD SUCCESSFUL in 26s · design re-skin applied
⎇ design/operators-console Kotlin UTF-8 Ln 40 · Col 18 · ◆ amber #F2A93B

Host UX — left rail, file tree, an editor with semantic syntax colors, and a split terminal. The active tab, the selected file's marker, and the current rail tool all wear the amber signal; everything else stays graphite-quiet.

07 · Implementation

Token → Kotlin

These tokens ship as BossDesignSystem.kt (host, exposed via BossTheme CompositionLocals) and as the "BOSS Operator" builtin Theme + ColorPalette in BossTerm.

TokenValueHost (BossColors)BossTerm
color.ink#0E1217darkContentBackgroundbackground
color.panel#161D26darkBackground / Surface
color.raised#1E2731contextMenuHover / raised
color.line#2A3744darkBorder
color.chalk#E9EEF3darkTextPrimaryforeground (#D7DEE6)
color.mist#8593A3darkTextSecondary
color.signal#F2A93BdarkAccentcursor
color.data#56C7E0(link)hyperlink
color.ok#6FD08CdarkSuccess / darkSecondaryansi.green
color.alert#F2685FdarkErroransi.red
radius.button5dpRoundedCornerShape(5)
font.monoMesloLGS NFdisplay + dataterminal

Full token set — spacing, elevation, motion, type scale — lives in the generated Kotlin alongside these colors.