Build authentic CRT phosphor terminal-style interfaces . The design language simulates an old-school terminal with tar-black canvas, P1 phosphor green primary color, amber + red alarm LEDs, JetBrains Mono typography, and distinctive bracket-corner panel surfaces.
Consult references/design-tokens.md for the complete color palette, typography scale, spacing grid, and component specifications.
rgba(5, 9, 10, 1) (#05090A)#00FF6A as the dominant accent#FFB000 for warnings, #FF3B3B for errors. Never decorative.fetch_editor_state — Get current page contextlocate_available_space — Find empty area for new frames references/design-tokens.mdcapture_screenshot after each logical section.ra-panel)Every content surface uses this pattern:
panel=I(parent, {type: "frame", name: "panel-name", layout: "vertical", width: 536, height: "hug_contents",
fills: [{type: "SOLID", color: {r: 0.02, g: 0.039, b: 0.027}, opacity: 0.6, visible: true, blendMode: "NORMAL"}],
strokes: [{type: "SOLID", color: {r: 0.059, g: 0.122, b: 0.078}, opacity: 1, visible: true, blendMode: "NORMAL"}],
strokeWeight: 1, strokeAlign: "INSIDE", padding: [24, 28], gap: 14})
Every panel has 7×7 right-angle bracket vectors at top-left and bottom-right corners. These are the defining visual element — never omit them.
// Top bracket row
bracketFrame=I(panel, {type: "frame", name: "brackets-top", layout: "none", width: "fill_container", height: 12})
// TL bracket: 7×7 vector with green stroke, positioned at (0,0)
// BR bracket: 7×7 vector with green stroke, positioned at (width-7, 0)
| Role | Size | Weight | Color | Use |
|---|---|---|---|---|
| ------ | ------ | -------- | ------- | ----- |
| Display | 34px | Bold | #00FF6A | Hero titles, ASCII art headers |
| Clock/Numerals | 26px | Medium | #B8FFB8 | Large data values, time displays |
| Meter Value | 15px | Regular | #FFB000 | Metric readings (amber only) |
| Body | 12px | Regular | #B8FFB8 | Terminal copy, descriptions |
| Small/Boot | 11px | Regular | #2A4A32 (dim) / #B8FFB8 (bright) | Boot logs, status lines |
| Caption/Label | 10px | Bold | #00FF6A | Section headers, component names |
| Mini/Chip | 9px | Bold | varies | Chip labels, meter labels |
All text uses fontName: {family: "JetBrains Mono", style: "..."}.
CRITICAL: Always set fill on text nodes — text is invisible by default.
| Token | Hex | RGB (0-1) | Usage |
|---|---|---|---|
| ------- | ----- | ----------- | ------- |
| bg-canvas | #05090A | 0.02, 0.035, 0.039 | Page/screen background |
| bg-panel | rgba(5,10,7,.6) | 0.02, 0.039, 0.027 @ 0.6 | Panel fill (translucent) |
| border-panel | #0F1F14 | 0.059, 0.122, 0.078 | Panel stroke, dividers |
| green-primary | #00FF6A | 0, 1, 0.416 | Primary accent, brackets, active states |
| green-text | #B8FFB8 | 0.722, 1, 0.722 | Body text, secondary content |
| green-dim | #2A4A32 | 0.165, 0.290, 0.196 | Disabled text, subtle labels |
| amber-warn | #FFB000 | 1, 0.690, 0 | Warning states, meter values |
| red-fatal | #FF3B3B | 1, 0.231, 0.231 | Error/fatal states only |
| surface-divider | #0F1F14 | 0.059, 0.122, 0.078 | 1px horizontal lines |
.ra-chip — Status BadgeSmall rectangular badge with 1px colored border:
#0F1F14 (dark surface).ra-dot — LED IndicatorDROP_SHADOW effect with spread: 3, radius: 0, same color @ 0.7 opacity (creates glow).ra-cursor — Blinking Cursorsteps(1, end) — NEVER transition numbers.ra-meter — Level Bar#0F1F14[ INPUT // PEAK ])-12 dB).ra-line — Horizontal Dividerfill_container width, 1px height#0F1F14.ra-topbar — Navigation BarSPACE_BETWEEN alignment[timestamp] message[ OK ] suffix right-aligned for completed steps#05090A fill, padding: 32, gap: 20SPACE_BETWEEN, contains title (11px Bold green) + "open ↗" link (10px Bold dim)When a needed component doesn't exist in the reference system, derive it by:
.ra- convention| Need | Pattern |
|---|---|
| ------ | --------- |
| Button | .ra-chip with larger padding (10, 20), 10px Bold text |
| Input field | Panel-style frame with cursor, 12px Regular green-text |
| Card | .ra-panel with brackets, internal header + divider + content |
| Table | Panel with header row (10px Bold dim) + data rows (11px Regular green-text), 1px dividers between rows |
| Navigation | Horizontal chips row with active state (green border) vs inactive (dim border) |
| Progress | .ra-meter pattern, horizontal rectangles |
| Modal/Dialog | Larger .ra-panel with brackets, centered on screen with layoutPositioning: "ABSOLUTE" |
| Toast/Alert | .ra-chip variant, full-width, with .ra-dot + message text |
| Sidebar | Vertical panel, fixed width (200-300px), internal nav items as text with > prefix |
| Footer | Horizontal layout mimicking terminal prompt: user@host:~$ command + blinking cursor |
// as separator in descriptive text:: for key-value pairs in technical labels[ ] brackets around section numbers and status codes· (middle dot) as delimiter in navigation itemsuser@host:~/path$ for footer/input areas.ra-dot)共 1 个版本