Carapace
Use the shared package for foundations and framework-neutral visual primitives.
Keep consumer-specific behavior, data, routes, and layout composition local.
Workflow
- Read tokens.md before choosing colors, spacing, type, radii, or shadows.
- Read consumer-adapters.md for the current framework.
- Read application-surfaces.md when working on shells, panes, settings, or operational screens.
- Read terminal-ui.md when designing or auditing a terminal interface.
- Read embedded-surfaces.md when the surface renders inside a host frame, such as an MCP app.
- Inspect the consumer's existing shared primitives before creating a component.
- Use semantic tokens for UI intent; use palette primitives only for documented exceptions.
- Keep application behavior, routes, and information architecture unchanged unless the task says otherwise.
- Validate the affected routes with existing tests and real browser screenshots.
Interface Rules
- Import the complete CSS contract or its focused exported entry points.
- Compose shared classes from
components.css before adding a one-off visual implementation.
- Use local shared primitives before raw controls or one-off component implementations.
- Keep one primary action per decision area.
- Use familiar icons for icon-only commands and provide accessible names.
- Use status colors for status, warning, success, error, and informational meaning.
- Keep cards, controls, and repeated fixed-format elements dimensionally stable.
- Avoid nested decorative cards and page sections styled as floating cards.
- Keep surfaces, controls, and insets square through their semantic radius tokens.
- Reserve round geometry for avatars, status dots, and other truly circular indicators.
- Keep focus, hover, active, disabled, loading, and invalid states coherent.
- Keep text within its container at supported viewport sizes.
- Prefer dense, scan-friendly composition for operational product surfaces.
- Share application anatomy across consumers without forcing web and native
implementations into pixel-identical layouts.
Ownership
Move visual implementation into this repository when its interface is
framework-neutral and useful across consumers. Keep runtime behavior and
framework adapters local until at least two consumers need the same interface
and behavior.
1---2name: openclaw-carapace3description: Build or modify OpenClaw application UI using canonical semantic tokens, themes, shared CSS foundations, consumer adapters, and established local primitives. Use for product interfaces, component styling, theme work, or design-token integration.4---5
6# Carapace
7
8Use the shared package for foundations and framework-neutral visual primitives.
9Keep consumer-specific behavior, data, routes, and layout composition local.
10
11## Workflow
12
131. Read [tokens.md](references/tokens.md) before choosing colors, spacing, type, radii, or shadows.
142. Read [consumer-adapters.md](references/consumer-adapters.md) for the current framework.
153. Read [application-surfaces.md](references/application-surfaces.md) when working on shells, panes, settings, or operational screens.
164. Read [terminal-ui.md](references/terminal-ui.md) when designing or auditing a terminal interface.
175. Read [embedded-surfaces.md](references/embedded-surfaces.md) when the surface renders inside a host frame, such as an MCP app.
186. Inspect the consumer's existing shared primitives before creating a component.
197. Use semantic tokens for UI intent; use palette primitives only for documented exceptions.
208. Keep application behavior, routes, and information architecture unchanged unless the task says otherwise.
219. Validate the affected routes with existing tests and real browser screenshots.
22
23## Interface Rules
24
25- Import the complete CSS contract or its focused exported entry points.
26- Compose shared classes from `components.css` before adding a one-off visual implementation.
27- Use local shared primitives before raw controls or one-off component implementations.
28- Keep one primary action per decision area.
29- Use familiar icons for icon-only commands and provide accessible names.
30- Use status colors for status, warning, success, error, and informational meaning.
31- Keep cards, controls, and repeated fixed-format elements dimensionally stable.
32- Avoid nested decorative cards and page sections styled as floating cards.
33- Keep surfaces, controls, and insets square through their semantic radius tokens.
34- Reserve round geometry for avatars, status dots, and other truly circular indicators.
35- Keep focus, hover, active, disabled, loading, and invalid states coherent.
36- Keep text within its container at supported viewport sizes.
37- Prefer dense, scan-friendly composition for operational product surfaces.
38- Share application anatomy across consumers without forcing web and native
39 implementations into pixel-identical layouts.
40
41## Ownership
42
43Move visual implementation into this repository when its interface is
44framework-neutral and useful across consumers. Keep runtime behavior and
45framework adapters local until at least two consumers need the same interface
46and behavior.