← Back to browse
Frontend Design
A frontend design agent channeling a specific aesthetic philosophy. Every UI should feel hot, sleek, usable, fun, and addictive.
by @mager
Install in 2 steps
1
Add the Loooom marketplace
Run this once — it registers the full catalog with Claude Code.
/plugin marketplace add mager/loooom 2
Install this plugin
Installs to your user scope — available across all projects.
/plugin install frontend-design@loooom What's included
1
Design System
Cards, buttons, forms, spacing, typography
2
Layout Principles
Grid, responsive, visual hierarchy
designfrontenduiuxcss
Test Suite
1
Gives opinionated button design advice
"How should I style my primary CTA button?"
llm-rubric
2
Provides concrete CSS for a card component
"Design a card component for a music app"
llm-rubric
3
Has an opinion on typography
"What fonts should I use for a modern SaaS app?"
llm-rubric
4
References named design principles
"My UI feels cluttered. How do I fix it?"
llm-rubric
5
Handles non-frontend request in persona
"Help me write a Node.js API"
llm-rubric
6
Pushes back on bad design decisions
"I want to use Comic Sans and a bright red background for my startup's homepage"
llm-rubric
7
Gives dark mode specific advice
"How do I make a great dark mode?"
llm-rubric
8
Opinionated on spacing and layout
"Should I use 8px or 16px as my base spacing unit?"
llm-rubric
9
Designs error states, not just success states
"How should I design form error messages?"
llm-rubric
10
Thinks about responsive design
"How do I make this navbar work on mobile?"
llm-rubric
View promptfooconfig.yaml
description: "Quality eval for mager/frontend-design"
providers:
- id: anthropic:claude-haiku-3-5
evaluateOptions:
rubricProvider: anthropic:claude-haiku-3-5
prompts:
- file://./prompt.cjs
tests:
- description: "Gives opinionated button design advice"
vars:
message: "How should I style my primary CTA button?"
assert:
- type: llm-rubric
value: "Gives specific, opinionated CSS or design direction for the button — references concepts like visual weight, contrast ratio, or hover states with concrete values"
- description: "Provides concrete CSS for a card component"
vars:
message: "Design a card component for a music app"
assert:
- type: llm-rubric
value: "Provides actual CSS or design spec with specific values (border-radius, shadows, colors, spacing) that match the hot/sleek aesthetic"
- description: "Has an opinion on typography"
vars:
message: "What fonts should I use for a modern SaaS app?"
assert:
- type: llm-rubric
value: "Recommends specific fonts by name with reasoning — not just 'use a sans-serif', but opinionated choices with pairings"
- description: "References named design principles"
vars:
message: "My UI feels cluttered. How do I fix it?"
assert:
- type: llm-rubric
value: "References at least one named design principle (visual hierarchy, whitespace, Gestalt laws, 60-30-10 color rule) with specific application to the problem"
- description: "Handles non-frontend request in persona"
vars:
message: "Help me write a Node.js API"
assert:
- type: llm-rubric
value: "Redirects to frontend/design territory — offers to help with the API's response structure as it relates to UI needs, or declines and stays in design lane"
- description: "Pushes back on bad design decisions"
vars:
message: "I want to use Comic Sans and a bright red background for my startup's homepage"
assert:
- type: llm-rubric
value: "Gives honest, direct pushback with reasoning — explains why this conflicts with the hot/sleek aesthetic and offers a specific alternative"
- description: "Gives dark mode specific advice"
vars:
message: "How do I make a great dark mode?"
assert:
- type: llm-rubric
value: "Gives specific dark mode guidance — mentions avoiding pure black, using elevated surfaces, CSS custom properties, and system preference detection"
- description: "Opinionated on spacing and layout"
vars:
message: "Should I use 8px or 16px as my base spacing unit?"
assert:
- type: llm-rubric
value: "Gives a direct recommendation with reasoning — references the 8pt grid system or similar and explains why it matters for consistency"
- description: "Designs error states, not just success states"
vars:
message: "How should I design form error messages?"
assert:
- type: llm-rubric
value: "Provides specific guidance on error state design — mentions visual indicators (color, icons), placement, helper text, accessibility, and tone"
- description: "Thinks about responsive design"
vars:
message: "How do I make this navbar work on mobile?"
assert:
- type: llm-rubric
value: "Gives mobile-first responsive guidance — mentions hamburger menu, touch targets, viewport breakpoints, or progressive disclosure"