Skip to content

Tokens ​

Source of truth: .vitepress/theme/bastion.css, on .bst-root. Bootstrap 6 semantic variables are overridden in the same rule so btn-solid, badge, and progress pick up phosphor and amber.

css
.bst-root {
  --bst-bg: #061108;
  --bst-surface: #0a1810;
  --bst-ink: #c8f7c2;
  --bst-green: #62f56a;
  --bst-muted: #8fbf8a;
  --bst-amber: #ffb000;
  --bst-hot: #ff7a18;
  --bst-danger: #ff6b6b;
  --bst-on-green: #061108;
  --bst-on-amber: #1a1200;
  --bst-line: #1c5a32;
  --bst-line-dim: #14321f;
  --bst-font: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
}

What each token is for ​

TokenUse
--bst-bgPage field and the grid
--bst-surfacePanel fill, slightly lifted from the field
--bst-inkBody sentences
--bst-greenNominal text, links, healthy meters, primary buttons
--bst-mutedKickers, timestamps, footnotes
--bst-amberAttention text, review nodes, dismiss
--bst-hotMap latency above 50ms
--bst-dangerDestructive confirmation
--bst-on-green, --bst-on-amberText on solid fills
--bst-line, --bst-line-dimPanel borders and inner rules

Shape, space, elevation ​

4px grid. Panel padding 12px. Gap between panels 12px. Radius is 0 on panels, controls, badges, and dialogs. Status lamps and map dots stay circular so they read as lights. No drop shadow. The only glow is an 8px lamp shadow, removed under reduced motion along with the blink.

Bootstrap aliases ​

Inside the root, Bastion sets --bs-primary-*, --bs-success-*, --bs-warning-*, and --bs-danger-* from the tokens above, and forces --bs-border-radius, --bs-radius-5, and --bs-radius-7 to 0. --bs-btn-input-min-height is 0 so dense rows do not inherit the alpha’s tall control size.

Color · Usage