Frontend Design
A skill for building distinctive, production-grade frontend interfaces with
genuine aesthetic direction. Every output is intentional, cohesive, and
visually memorable — not generic.
Compatible with: Claude, Claude Code, VS Code agent extensions, Cursor,
Windsurf, Antigravity, and any agent that supports the Agent Skills standard.
Process
Follow this sequence on every frontend request.
Step 1 — Understand the Context
Before writing a single line of code, answer these internally:
- Purpose — What problem does this interface solve? What action should a user take?
- Audience — Who is the user? Their expectations shape the aesthetic.
- Tone — What feeling should this produce? (See Aesthetic Directions below.)
- Constraints — Framework, accessibility requirements, performance targets, existing design system?
- Memorability — What is the one thing a user will remember about this interface?
Step 2 — Commit to an Aesthetic Direction
Pick one direction and execute it with precision. Half-committed design is always worse than a bold wrong choice. Some directions to consider:
| Direction |
Character |
| Brutally minimal |
Maximum whitespace, one font weight, monochrome, zero decoration |
| Editorial / magazine |
Strong typographic hierarchy, columns, pull quotes, grid-breaking |
| Retro-futuristic |
Scanlines, glows, monospace, terminal-inspired, neon on dark |
| Organic / natural |
Soft curves, earthy palette, texture, handwritten or slab type |
| Luxury / refined |
Tight tracking, serif display, muted gold or black, deliberate restraint |
| Brutalist / raw |
Visible structure, clashing scale, intentional ugliness as design |
| Playful / toy-like |
Thick borders, saturated colour, bouncy motion, rounded geometry |
| Art deco / geometric |
Symmetry, ornament, repeated motifs, high contrast |
| Industrial / utilitarian |
Functional layout, data-dense, monospace, subdued palette |
| Maximalist |
Layered type, competing textures, controlled chaos, every pixel used |
Do not default to any of these — use them as departure points. The final direction must feel designed specifically for this context.
Step 3 — Design Decisions Before Code
Define these before opening a code block:
- Font pairing — One distinctive display font, one refined body font. Never Inter, Roboto, Arial, or system fonts.
- Colour palette — Two to four colours maximum. One dominant, one sharp accent. Define as CSS custom properties.
- Layout structure — Grid, asymmetry, overlap, diagonal flow, or controlled density. Avoid default stacked-card layouts.
- Motion — Identify one high-impact animation moment (page load reveal, hover state, scroll trigger). One well-executed animation beats ten scattered micro-interactions.
- Atmosphere — Background treatment: gradient mesh, noise texture, geometric pattern, layered transparency, grain overlay, or dramatic shadow. Never a flat solid colour unless the concept demands it.
Step 4 — Write Production-Grade Code
Implement the design with the following standards.
Code quality
- Functional and complete — no placeholder comments, no TODO, no stub logic
- Responsive across mobile, tablet, and desktop
- Accessible — semantic HTML, keyboard navigable, sufficient colour contrast
- Performant — no unnecessary repaints, efficient selectors, lazy loading where appropriate
CSS
- Use CSS custom properties for all colours, spacing, and type scales
- Animate only
transform and opacity (compositor-friendly)
- Never
transition: all — list properties explicitly
- Respect
prefers-reduced-motion for all animations
- Use
focus-visible for keyboard focus styles — never remove outline without a replacement
Typography
- Load fonts from Google Fonts, Bunny Fonts, or equivalent (prefer variable fonts)
- Set a clear type scale — at minimum: display, heading, body, caption
- Apply
text-wrap: balance on headings
- Use
font-variant-numeric: tabular-nums for any numbers or data
Motion
- CSS-only for HTML/CSS output
- Use
animation-delay for staggered reveals on page load
- Hover and focus states must have visible, intentional transitions
- Scroll-triggered effects where they add genuine value
Framework-specific
- React: use hooks correctly; prefer CSS modules or Tailwind if available; no inline styles for layout
- Vue / Svelte: scoped styles; reactive data for any interactive state
- Plain HTML: single file output unless otherwise requested; embed all CSS in a
<style> block
Aesthetic Rules
Always
- Commit fully to one design direction — no hedging
- Make every spacing decision intentional — generous negative space or controlled density, never accidental middle ground
- Create atmosphere in backgrounds — depth, texture, or gradient over flat colour
- Vary between light and dark themes across outputs — never default to one
- Let the font choice carry personality — it is the loudest design decision
Never
- Generic font families: Inter, Roboto, Arial, system-ui, or plain sans-serif as a primary font
- Purple gradients on white backgrounds — the most overused AI-generated aesthetic
- Default card-grid layouts with drop shadows and rounded corners applied without thought
- Evenly distributed colour palettes with no dominant colour
- Space Grotesk, DM Sans, Plus Jakarta Sans, or any other overused startup font
- Scattered micro-interactions with no focal animation moment
- Flat solid colour backgrounds where there is space for more
- Cookie-cutter designs that could belong to any project
Output Format
Produce complete, working code. Structure the response as follows:
- One sentence stating the aesthetic direction chosen and why it fits the context — no heading, no bullet list.
- Complete code block — the full implementation, ready to run or paste.
- Font and dependency note — list any external fonts or libraries used and how to load them, if not already included in the code.
Do not include lengthy design breakdowns, feature lists, or bullet-point summaries of what was built. The code speaks for itself.
Examples
Example 1: Landing page
User: "Build a landing page for an embedded systems consultancy"
Agent: Chooses an industrial/utilitarian direction — dark background, monospace font, tight grid, amber accent, terminal-inspired hero animation. Outputs a single complete HTML file.
Example 2: Dashboard
User: "Create a data dashboard for IoT sensor readings"
Agent: Chooses a refined minimal direction — high data density, tabular numerics, muted palette with a single red alert colour, clean geometric sans-serif, subtle grid lines. Outputs a React component.
Example 3: Redesign request
User: "Make my signup form look better"
Agent: Asks for the existing code or a description of the current design, then applies a clear aesthetic direction — does not simply add padding and border-radius.
Example 4: Component
User: "Build a pricing card component"
Agent: Chooses a direction (e.g. luxury/refined), pairs a serif display font with a geometric body font, uses a two-colour palette, adds a single hover lift animation, outputs a complete standalone component.
Notes
- Match implementation complexity to the aesthetic. Maximalist designs require elaborate code. Minimalist designs require restraint and precision — not less effort, different effort.
- If the user specifies a framework, use it. If not, default to plain HTML/CSS/JS for maximum compatibility.
- If the user provides brand colours, fonts, or an existing design system, work within those constraints while still making intentional choices within them.
- This skill produces working code — not wireframes, not mockups, not design descriptions.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: ecocee-skills-frontend-design3description: Frontend Design4---56# Frontend Design78A skill for building distinctive, production-grade frontend interfaces with9genuine aesthetic direction. Every output is intentional, cohesive, and10visually memorable — not generic.1112Compatible with: Claude, Claude Code, VS Code agent extensions, Cursor,13Windsurf, Antigravity, and any agent that supports the Agent Skills standard.1415---1617## Process1819Follow this sequence on every frontend request.2021### Step 1 — Understand the Context2223Before writing a single line of code, answer these internally:2425- **Purpose** — What problem does this interface solve? What action should a user take?26- **Audience** — Who is the user? Their expectations shape the aesthetic.27- **Tone** — What feeling should this produce? (See Aesthetic Directions below.)28- **Constraints** — Framework, accessibility requirements, performance targets, existing design system?29- **Memorability** — What is the one thing a user will remember about this interface?3031### Step 2 — Commit to an Aesthetic Direction3233Pick one direction and execute it with precision. Half-committed design is always worse than a bold wrong choice. Some directions to consider:3435| Direction | Character |36|---|---|37| Brutally minimal | Maximum whitespace, one font weight, monochrome, zero decoration |38| Editorial / magazine | Strong typographic hierarchy, columns, pull quotes, grid-breaking |39| Retro-futuristic | Scanlines, glows, monospace, terminal-inspired, neon on dark |40| Organic / natural | Soft curves, earthy palette, texture, handwritten or slab type |41| Luxury / refined | Tight tracking, serif display, muted gold or black, deliberate restraint |42| Brutalist / raw | Visible structure, clashing scale, intentional ugliness as design |43| Playful / toy-like | Thick borders, saturated colour, bouncy motion, rounded geometry |44| Art deco / geometric | Symmetry, ornament, repeated motifs, high contrast |45| Industrial / utilitarian | Functional layout, data-dense, monospace, subdued palette |46| Maximalist | Layered type, competing textures, controlled chaos, every pixel used |4748Do not default to any of these — use them as departure points. The final direction must feel designed specifically for this context.4950### Step 3 — Design Decisions Before Code5152Define these before opening a code block:5354- **Font pairing** — One distinctive display font, one refined body font. Never Inter, Roboto, Arial, or system fonts.55- **Colour palette** — Two to four colours maximum. One dominant, one sharp accent. Define as CSS custom properties.56- **Layout structure** — Grid, asymmetry, overlap, diagonal flow, or controlled density. Avoid default stacked-card layouts.57- **Motion** — Identify one high-impact animation moment (page load reveal, hover state, scroll trigger). One well-executed animation beats ten scattered micro-interactions.58- **Atmosphere** — Background treatment: gradient mesh, noise texture, geometric pattern, layered transparency, grain overlay, or dramatic shadow. Never a flat solid colour unless the concept demands it.5960### Step 4 — Write Production-Grade Code6162Implement the design with the following standards.6364**Code quality**65- Functional and complete — no placeholder comments, no TODO, no stub logic66- Responsive across mobile, tablet, and desktop67- Accessible — semantic HTML, keyboard navigable, sufficient colour contrast68- Performant — no unnecessary repaints, efficient selectors, lazy loading where appropriate6970**CSS**71- Use CSS custom properties for all colours, spacing, and type scales72- Animate only `transform` and `opacity` (compositor-friendly)73- Never `transition: all` — list properties explicitly74- Respect `prefers-reduced-motion` for all animations75- Use `focus-visible` for keyboard focus styles — never remove outline without a replacement7677**Typography**78- Load fonts from Google Fonts, Bunny Fonts, or equivalent (prefer variable fonts)79- Set a clear type scale — at minimum: display, heading, body, caption80- Apply `text-wrap: balance` on headings81- Use `font-variant-numeric: tabular-nums` for any numbers or data8283**Motion**84- CSS-only for HTML/CSS output85- Use `animation-delay` for staggered reveals on page load86- Hover and focus states must have visible, intentional transitions87- Scroll-triggered effects where they add genuine value8889**Framework-specific**90- React: use hooks correctly; prefer CSS modules or Tailwind if available; no inline styles for layout91- Vue / Svelte: scoped styles; reactive data for any interactive state92- Plain HTML: single file output unless otherwise requested; embed all CSS in a `<style>` block9394---9596## Aesthetic Rules9798### Always99100- Commit fully to one design direction — no hedging101- Make every spacing decision intentional — generous negative space or controlled density, never accidental middle ground102- Create atmosphere in backgrounds — depth, texture, or gradient over flat colour103- Vary between light and dark themes across outputs — never default to one104- Let the font choice carry personality — it is the loudest design decision105106### Never107108- Generic font families: Inter, Roboto, Arial, system-ui, or plain sans-serif as a primary font109- Purple gradients on white backgrounds — the most overused AI-generated aesthetic110- Default card-grid layouts with drop shadows and rounded corners applied without thought111- Evenly distributed colour palettes with no dominant colour112- Space Grotesk, DM Sans, Plus Jakarta Sans, or any other overused startup font113- Scattered micro-interactions with no focal animation moment114- Flat solid colour backgrounds where there is space for more115- Cookie-cutter designs that could belong to any project116117---118119## Output Format120121Produce complete, working code. Structure the response as follows:1221231. One sentence stating the aesthetic direction chosen and why it fits the context — no heading, no bullet list.1242. Complete code block — the full implementation, ready to run or paste.1253. Font and dependency note — list any external fonts or libraries used and how to load them, if not already included in the code.126127Do not include lengthy design breakdowns, feature lists, or bullet-point summaries of what was built. The code speaks for itself.128129---130131## Examples132133### Example 1: Landing page134135User: "Build a landing page for an embedded systems consultancy"136Agent: Chooses an industrial/utilitarian direction — dark background, monospace font, tight grid, amber accent, terminal-inspired hero animation. Outputs a single complete HTML file.137138### Example 2: Dashboard139140User: "Create a data dashboard for IoT sensor readings"141Agent: Chooses a refined minimal direction — high data density, tabular numerics, muted palette with a single red alert colour, clean geometric sans-serif, subtle grid lines. Outputs a React component.142143### Example 3: Redesign request144145User: "Make my signup form look better"146Agent: Asks for the existing code or a description of the current design, then applies a clear aesthetic direction — does not simply add padding and border-radius.147148### Example 4: Component149150User: "Build a pricing card component"151Agent: Chooses a direction (e.g. luxury/refined), pairs a serif display font with a geometric body font, uses a two-colour palette, adds a single hover lift animation, outputs a complete standalone component.152153---154155## Notes156157- Match implementation complexity to the aesthetic. Maximalist designs require elaborate code. Minimalist designs require restraint and precision — not less effort, different effort.158- If the user specifies a framework, use it. If not, default to plain HTML/CSS/JS for maximum compatibility.159- If the user provides brand colours, fonts, or an existing design system, work within those constraints while still making intentional choices within them.160- This skill produces working code — not wireframes, not mockups, not design descriptions.161162---163> Converted and distributed by [TomeVault](https://tomevault.io/claim/ecocee) — claim your Tome and manage your conversions.164<!-- tomevault:4.0:skill_md:2026-04-14 -->