Files
openclaw/ui/docs/design-system
Peter Steinberger 0a8226c3db fix(ui): give embedded settings sections the shared section rhythm (#126541)
* fix(ui): give embedded settings sections the shared section rhythm

The agents tab panel hosted settings sections in a bare div, so sections
stacked with zero separation; the bespoke .agents-main margin rule in
agents.css missed the nested tabpanel entirely. Descriptions also pulled
up to 4px under control-height header actions (squeezed Verify/Save rows).

Add a .settings-stack primitive to settings.css for embedded surfaces,
use it on the agent tab panel, delete the page-local margin fork, and let
section descriptions clear action-bearing headers.

* test(agents): export getRuntimeConfigSourceSnapshot from runtime-snapshot mock

Main's checks-node-compact-large shard is red: #126531 routed
provider-model-routes through projectConfigOntoRuntimeSourceSnapshot,
which reads getRuntimeConfigSourceSnapshot, and this suite's explicit
vi.mock factory did not export it (24 failures). Return null so the
projection no-ops and resolvers keep reading the provided config.
2026-08-19 22:31:35 -07:00
..

OpenClaw Design System

OpenClaw's visual language is a dark-first, glass-surface system built around a deep charcoal base (#0e1015), a punchy signature red accent (#ff5c5c), and layered frosted-glass surfaces that create depth without solid panels. Motion is crisp and purposeful — fast micro-interactions (100ms) with spring-loaded expansions. All interactive elements meet WCAG 2.1 AA contrast requirements on dark backgrounds.

Contents

File What it covers
glass-surfaces.md Two glass tiers, exact CSS values, no-solid-panels rule, @supports fallback
color-tokens.md All design tokens with values, usage, contrast ratios, and anti-patterns
motion.md Duration scale, easing functions, prefers-reduced-motion pattern, animation inventory
accessibility.md WCAG checklist: contrast, focus, tap targets, ARIA, skip link, focus trap
settings-design.md Settings page anatomy: sections, groups, rows, controls, status dots, migration rules

Guiding Principles

  1. Glass, not solid — Surfaces use backdrop-filter blur + semi-transparent backgrounds. No flat opaque panels in the main chrome.
  2. Depth through layering — The background scale (--bg, --bg-accent, --bg-elevated, --bg-hover, --bg-muted) communicates hierarchy without heavy borders.
  3. Accent with restraint — Signature red (--accent: #ff5c5c) for primary actions only; teal (--accent-2) for secondary/status.
  4. Motion serves meaning — Animations telegraph state changes; they never play for decoration alone.
  5. Accessible by default — Every component ships with focus-visible styles, correct ARIA roles, and ≥4.5:1 contrast on text.