Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Frontend design entry point: direction, design system, visual philosophy. Use whenever building or touching the look of any web UI (components, pages, dashboards, React/Vue/HTML-CSS) or when the user says "make this look better", "fix the spacing/layout", or mentions styling, color, type, or polish.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 69% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 283% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 102% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 94% | 0% |
Use whenever building or styling web UIs — components, pages, dashboards, landing pages, React/Vue/HTML-CSS layouts — or whenever the user asks to make something "look better/nicer", fix spacing/layout, or mentions styling, color, typography, fonts, responsive design, polish, or aesthetics, even without the word "design".
_Source: connerkward/ckw-design-skill (MIT)._
Use this skill when the user asks to build or style web UIs: components, pages, dashboards, landing pages, React/Vue/HTML-CSS layouts, or any frontend interface. Goal: distinctive, production-grade output that avoids generic AI aesthetics.
Before reporting any design "done": render it and have a separate judge critique the image (not the code, not self-grading) — see design-spatial §1. Blind generation can't see its own collisions; this applies to all design output, not just spatial work.
> MANDATORY HORIZONTAL-OVERFLOW GATE — runs before ANY web UI is "done". > Measure document.documentElement.scrollWidth - document.documentElement.clientWidth > at a narrow width (~390px and ~1024px), this turn, and confirm it's 0. This > bug is invisible at desktop width and re-appears every time a row (header, nav, > toolbar) gains an item, so it ships repeatedly. Default to flex-wrap:wrap on > header/toolbar rows + body{overflow-x:clip}, and re-measure after adding any > element to a horizontal row. Full procedure + recurrence cases: design-spatial §4. > If you haven't measured narrow, you are not done — don't claim it.
When design-thinking identifies a need for visual assets (logos, icons, hero images, textures, backgrounds):
When design work involves running an LLM (generative assets, VLM analysis, layout critique, prompt generation, etc.):
media-attribution-rule for generative assets and extends it to any LLM operation in the design workflow.Examples:
Whenever a UI surfaces an algorithm or model to the user (an "ⓘ how this works" panel, a model breakdown, a methods note), include the actual equation, typeset, with its key terms annotated — don't settle for prose. A scorer described only in words ("ranks by how much of the picked color is present") is unfalsifiable hand- waving; the formula score = Σ fracᵢ · max(0, 1 − ΔEᵢ/τ) with each term labelled tells the user exactly what the knob does and builds trust that there's real math under the hood.
How to apply:
detail. Use proper notation: σ for sigmoid, Σ for sums, ‖·‖ for norms, superscripts, ΔE, ∇²; a monospace/serif-math block set off from the prose.
e_x, w, τ, Q each are,in one line each. An unlabelled equation is decoration; a labelled one is a spec.
reach for KaTeX/MathJax if the expressions genuinely need it.
computes, the model/cost line says what ran it and for how much.
Example (a logistic head): > P(personal │ x) = σ(w·eₓ + b), σ(z) = 1 / (1 + e⁻ᶻ) > • eₓ — the image's 768-d embedding · w, b — weights learned from your labels > · decision: personal if P ≥ 0.55, reference if P ≤ 0.40.
Any "Select all" affordance MUST be paired with a way to clear the selection — preferably the same button, label-flipped when everything is already selected ("Select all" ⇄ "Deselect all"). A select-all with no inverse is a trap: the user over-selects (or hits it by reflex), then has to un-click items one by one, or reload the page, to get back. The cost is silent — it only bites after they've committed to the wrong set.
How to apply:
selected, the button reads "Deselect all" and clears; otherwise "Select all". One control, no dead end.
filtered, all on this page) — don't let "Select all" grab 500 but "Clear" only drop the 50 on screen.
check-all) needs its inverse one tap away. Symmetry of action — see restraint-rule (don't strand the user mid-task).
Other measured skills in the registry, with their headline benchmark lift.