Install
openclaw skills install @iliaal/compound-eng-frontend-designVisual design and aesthetic direction for frontend interfaces. Use when building web pages, landing pages, dashboards, Next.js server components, or applications where visual identity matters. For React patterns and testing, use react-frontend.
openclaw skills install @iliaal/compound-eng-frontend-designRead the user's frontend requirements: a component, page, application, or interface to build. Note context about purpose, audience, or technical constraints.
When implementing a supplied mockup, screenshot, or design frame, use reference-fidelity mode in redesigning-existing.md, even in an empty repository. Skip the design philosophy and swap test; reproduce the reference's visual language.
Otherwise, assess the existing design environment before designing. Count design signals in the project: design tokens/CSS variables, component library (shadcn, MUI, Ant), CSS framework config (Tailwind, styled-components), font imports, color system, animation patterns, spacing scale.
When in doubt, check package.json, tailwind.config.*, global CSS files, and existing components before deciding. For Tailwind implementation rules (tokens, variants, v4 config), load ia-react-frontend and read its Tailwind reference.
For full pages, applications, or multi-component interfaces outside reference-fidelity mode: write a 3-sentence design philosophy before any code. This forces a coherent aesthetic direction and prevents generic output.
Write the philosophy as a comment or in conversation before implementation begins. The philosophy constrains implementation without being prescriptive: it's a compass, not a blueprint.
For small components or quick additions to existing interfaces, skip the philosophy and match the surrounding design system.
With the philosophy written, commit to the specifics:
Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work; the key is intentionality, not intensity.
Validation gate (greenfield pages and apps outside reference-fidelity mode, before writing code): run the swap test on the drafted token system. Could this exact palette, type pairing, and layout be lifted onto an unrelated brief without anyone noticing? If yes, the choice is a default, not a decision: repick the axis that reads generic (recolor the signature, swap the typeface, restructure the grid) and re-test before implementing. Distinctiveness comes from the subject's own world (its materials, instruments, artifacts, and vernacular), so ground a generic axis in something only this subject would use. Skip this gate for small components matched to an existing system (per Context Detection); there, consistency with that system is the goal, not distinctiveness.
Before importing any third-party library (framer-motion, lucide-react, zustand, etc.), check package.json. If the package is missing, output the install command before the code. Never assume a library exists.
Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
Most items below are observable only in a rendered viewport, not in the diff. Where rendering tooling is available, do not claim visual verification from source inspection: capture a screenshot or DOM snapshot at one narrow and one wide viewport, and exercise every changed interaction and state. Where the environment cannot render (CI, headless subagent, plain terminal), say so explicitly and report what was checked instead. The completion-claim discipline itself lives in ia-verification-before-completion.
font-familyoutline: none without replacement focus indicatortop/left/width/height (transform/opacity only)prefers-reduced-motion: reducepointer-events-none layers'use client' components (Next.js App Router)<kbd> keystrokes, faux-OS chrome, hero image fade, banned meta-labels, card-group baseline alignment, browser-automation safety boundarymd:, touch targets, rotations on mobile, GPU-composited animation, z-index disciplineRead the relevant reference before implementing or reviewing the matching behavior:
Existing specialized references, when the corresponding topic applies: