UNPKG

trellis

Version:

Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications

254 lines (227 loc) 6.66 kB
/** * Trellis kernel runtime theme contract (Phase B + C). * Studio dark + inset/glass/entity; Phase C live --ui-vantage + shell disclosure. * See docs/specs/unified-theme-contract-phase-b.md * See docs/specs/unified-theme-contract-phase-c.md */ @import './foundation.css'; @import './semantic.css'; @import './components.css'; :root { --background-base: #101010; --background-weak: #1e1e1e; --surface-raised-base: #1c1c1c; --surface-inset-base: #161616; --surface-inset-alpha: rgba(0, 0, 0, 0.5); --border-base: rgba(255, 255, 255, 0.195); --border-strong: rgba(255, 255, 255, 0.266); --text-strong: rgba(255, 255, 255, 0.936); --text-base: rgba(255, 255, 255, 0.618); --text-weak: rgba(255, 255, 255, 0.422); --text-interactive-base: #9dbefe; --surface-brand-base: #fab283; --surface-success-strong: #12c905; --surface-warning-strong: #fcd53a; --surface-critical-strong: #fc533a; --surface-info-strong: #edb2f1; /* Inset ladder (containment depth — not fractal vantage) */ --background: var(--background-base); --card: var(--surface-raised-base); --surface-1: color-mix(in oklch, var(--card) 25%, var(--background)); --surface-2: color-mix(in oklch, var(--card) 50%, var(--background)); --surface-3: var(--card); /* Phase C fractal scalar — L3 UI detents 2|5|8; demo alias: --vantage → --ui-vantage */ --ui-vantage: 8; /* default card detent; range 0–21; NOT deck present/edit mode */ --font-family-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; --font-family-header: var(--font-family-sans); --radius-xs: 4px; --radius-sm: 6px; --radius-md: 8px; --radius-lg: 10px; --radius-pill: 999px; --spacing-xs: 4px; --spacing-sm: 8px; --spacing-md: 16px; --spacing-lg: 24px; --spacing-xl: 32px; --tml-accent-glow: color-mix( in oklch, var(--text-interactive-base) 12%, transparent ); --tml-kanban-body-inset: rgba(255, 255, 255, 0.02); --tml-badge-success-bg: color-mix( in oklch, var(--surface-success-strong) 15%, transparent ); --tml-badge-success-border: color-mix( in oklch, var(--surface-success-strong) 30%, transparent ); --tml-badge-success-bg-strong: color-mix( in oklch, var(--surface-success-strong) 15%, transparent ); --tml-badge-warning-bg: color-mix( in oklch, var(--surface-warning-strong) 15%, transparent ); --tml-badge-warning-bg-subtle: color-mix( in oklch, var(--surface-warning-strong) 8%, transparent ); --tml-badge-warning-border: color-mix( in oklch, var(--surface-warning-strong) 25%, transparent ); --tml-badge-info-bg: color-mix( in oklch, var(--surface-info-strong) 15%, transparent ); --tml-badge-critical-bg: color-mix( in oklch, var(--surface-critical-strong) 15%, transparent ); --tml-badge-neutral-bg: color-mix( in oklch, var(--text-weak) 15%, transparent ); --tml-glass-surface: rgba(22, 22, 22, 0.75); --tml-glass-border: rgba(255, 255, 255, 0.04); --entity-file: #00ceb9; --entity-milestone: #2090f5; --entity-issue: #edb2f1; --entity-branch: #fcd53a; --entity-default: var(--text-base); /* Legacy aliases (deprecate after full migration) */ --bg: var(--background-base); --bg2: var(--background-weak); --surface: var(--surface-raised-base); --surface2: var(--surface-inset-base); --border: var(--border-base); --border2: var(--border-strong); --text: var(--text-strong); --text2: var(--text-base); --text3: var(--text-weak); --accent: var(--text-interactive-base); --accent2: color-mix(in oklch, var(--text-interactive-base) 85%, white); --accent-glow: var(--tml-accent-glow); --green: var(--surface-success-strong); --yellow: var(--surface-warning-strong); --red: var(--surface-critical-strong); --blue: var(--surface-info-strong); --font: var(--font-family-sans); --mono: var(--font-family-mono); --glass: var(--tml-glass-surface); --glass-border: var(--tml-glass-border); } /* Phase C — morphing thing disclosure (one live shell at a time) */ .ui-thing { border: 1px solid var(--border-base); background: var(--surface-3); color: var(--text-strong); overflow: hidden; transition: width 0.18s ease, height 0.18s ease, padding 0.18s ease, border-radius 0.18s ease; } .ui-thing .ui-thing-pip { width: 8px; height: 8px; border-radius: 50%; background: var(--entity-issue); flex-shrink: 0; } .ui-thing .ui-thing-title { font: 500 13px var(--font-family-sans); } .ui-thing .ui-thing-meta { font: 400 11px var(--font-family-mono); color: var(--text-weak); } .ui-thing .ui-thing-body { font: 400 12px var(--font-family-sans); color: var(--text-base); } .ui-thing .ui-thing-badge { font: 500 10px var(--font-family-mono); padding: 2px 8px; border-radius: var(--radius-pill); background: var(--tml-badge-success-bg); color: var(--surface-success-strong); } .ui-thing[data-trellis-shell='node'] { width: 36px; height: 36px; border-radius: 999px; display: flex; align-items: center; justify-content: center; padding: 0; background: color-mix(in oklch, var(--entity-issue) 25%, var(--surface-3)); } .ui-thing[data-trellis-shell='node'] .ui-thing-title, .ui-thing[data-trellis-shell='node'] .ui-thing-meta, .ui-thing[data-trellis-shell='node'] .ui-thing-body, .ui-thing[data-trellis-shell='node'] .ui-thing-badge { display: none; } .ui-thing[data-trellis-shell='row'] { width: min(420px, 100%); border-radius: var(--radius-md); padding: 10px 12px; display: flex; align-items: center; gap: 10px; } .ui-thing[data-trellis-shell='row'] .ui-thing-title { flex: 1; } .ui-thing[data-trellis-shell='row'] .ui-thing-body, .ui-thing[data-trellis-shell='row'] .ui-thing-badge { display: none; } .ui-thing[data-trellis-shell='card'] { width: min(320px, 100%); border-radius: var(--radius-lg); padding: 14px; display: flex; flex-direction: column; gap: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); } .ui-thing[data-trellis-shell='card'] .ui-thing-head { display: flex; align-items: center; gap: 8px; width: 100%; } .ui-thing[data-trellis-shell='card'] .ui-thing-title { flex: 1; } @media (prefers-reduced-motion: reduce) { .ui-thing { transition: none; } } /* Phase C+ / TRL-25 (not in this wedge): dual-shell crossfade; full 0–21 territory table; band ACL L1|L2 html[data-trellis-band="L1|L2|L3"] [data-ui-vantage] [data-trellis-shell="node|row|card"] */