I didn't run the skill's search script because this session has no shell tool. The palette and font recommendations come from rows I read in data/colors.csv and data/typography.csv. The style recommendation and the contrast notes are my own judgment and aren't from a database match. I also didn't read styles.csv or the landing-page data.
Visual style
Use soft, calm minimalism with generous whitespace, large photography and gentle rounded cards. Avoid heavy glass, neon and brutalist treatments.
- Layout: one primary CTA, "Book a treatment" (
primary-action). Keep it in the hero and repeat it in a sticky header or bottom bar. - Spacing and containers: use the spacing-scale rule and a consistent
max-w-6xlcontainer. - Motion: use slow, subtle fades and transform/opacity only. Animate one or two elements per view.
- Icons: use one SVG icon set, such as Lucide. No emoji.
Color palette
This is the "Beauty/Spa/Wellness Service" row (#32) from the dataset, which it describes as "soft pink + lavender luxury":
| Token | Hex |
|---|---|
| Primary | #EC4899 (text on it: #000000) |
| Secondary | #F9A8D4 |
| Accent | #8B5CF6 (text on it: #000000) |
| Background | #FDF2F8 |
| Foreground | #831843 |
| Card | #FFFFFF |
| Muted / muted text | #F1EEF5 / #475569 |
| Border | #FBCFE8 |
| Destructive | #DC2626 |
| Ring | #EC4899 |
- Tokens: put these in your Tailwind theme as semantic tokens (
bg-background,text-foreground,bg-primary) rather than raw hex in components. - Pink as text:
#EC4899and#F9A8D4are fine for fills and buttons but don't use them as text on the pink background. Body text should be#831843or#475569. - Button text: the dataset pairs black text with the primary and accent fills. White on
#EC4899or#8B5CF6is roughly 3.5–4.2:1, which fails AA for normal text. My estimate is about 6:1 for black on#EC4899, but verify it. - If pink is too playful: the Mental Health row (#22: lavender
#8B5CF6with green#059669) is a calmer alternative. Run any substitute through a contrast checker too.
Font pairing
Use "Wellness Calm" (pairing #8): Lora for headings and Raleway for body. The dataset describes it as "Lora's organic curves with Raleway's elegant simplicity."
// next/font/google, with display: 'swap'
Lora({ subsets: ['latin'], variable: '--font-serif' })
Raleway({ subsets: ['latin'], variable: '--font-sans' })
- Tailwind config:
fontFamily: { serif: ['Lora','serif'], sans: ['Raleway','sans-serif'] }. - Body text: use at least 16px with 1.5–1.75 line height and 65–75 characters per line. Use weight 400 or heavier for body, since Raleway's light weights get thin on tinted backgrounds.
- Alternative: "Classic Elegant" (Playfair Display + Inter) is the dataset's pick if you want a more luxury feel.
Checks before shipping
Ordered by the skill's priority list, with the booking flow in mind.
Accessibility (critical)
- Check contrast on every text/background pair: 4.5:1 for normal text and 3:1 for large text. Include text over hero images, which needs a scrim.
- Keep visible focus rings on every interactive element, and make sure the sticky header doesn't hide the focused control (WCAG 2.2
focus-not-obscured). - Make sure Tab order matches visual order, add a skip-to-content link, and keep headings sequential (one
h1, no skipped levels). - Write meaningful alt text for treatment photos, and hide decorative icons from screen readers. Icon-only buttons need an
aria-label. - Give every booking-form field a visible label, not placeholder-only. Show errors below the field and link them with
aria-describedby. After a failed submit, focus an error summary or the first invalid field. - Use
autocompleteand semantic input types (email,tel) so autofill and the right mobile keyboard work. - Respect
prefers-reduced-motion. Any carousel needs pause and stop controls. - Don't rely on color alone, for example for available versus unavailable time slots. Add text or an icon.
- Make sure the date or time picker works fully by keyboard, with no drag-only interaction.
Touch and interaction (critical)
- Make targets at least 44×44px (WCAG 2.2 AA minimum is 24×24) with at least 8px between them.
- Don't rely on hover for anything important, such as service details or pricing.
- Show loading and disabled states on the submit button, then a clear success or error confirmation. Give visual press feedback within about 100ms.
- Add
cursor-pointeron clickable elements, and usetouch-action: manipulation. - Offer visible controls and a way to cancel or go back at each step if booking is multi-step.
Performance and layout
- Serve the hero as AVIF or WebP using
next/imagewith the hero set topriority, set explicit dimensions, and lazy-load images below the fold. CLS should be under 0.1. - Use
next/fontwithdisplay: swapand load only the weights you use. - Check that there's no horizontal scroll at 375px. Don't disable zoom, and use
min-h-dvhinstead of100vh. - Give the fixed header padding offsets so it doesn't cover content or anchor targets.
I can run through these against your code once there's a page to check. If you want database-verified style and landing-structure matches, I'd need a shell tool to run the search script.
Real run in an isolated folder with only this skill installed. Only the Skill and Read tools were enabled, so the search script was not run; the palette and font rows come from the data files the model read.
Qué hace
Proporciona al modelo una biblioteca local y consultable de conocimiento de UI/UX: 79 estilos, 192 paletas de producto con perfiles de razonamiento, 74 combinaciones de fuentes, 119 pautas de UX, 105 iconos, 17 preajustes de movimiento de GSAP, 25 tipos de gráfico y guía para 22 stacks de front-end (React, Next.js, Vue, SwiftUI, Flutter, Tailwind, shadcn y más).
Cómo funciona
- El modelo lee la solicitud y detecta el tipo de producto y el stack tecnológico.
- Para una página o un producto nuevos, ejecuta un script de búsqueda de Python incluido (
--design-system) que combina coincidencias de producto, estilo, color, página de aterrizaje y tipografía en una única recomendación. Las consultas sobre un único aspecto usan--domain; los consejos por stack usan--stack. - Puede guardar el resultado como
design-system/<project>/MASTER.mdy sobrescrituras por página, de modo que las sesiones posteriores reutilicen las mismas decisiones. - Antes de entregar la UI de una app, recorre una lista de comprobación previa a la entrega (iconos, respuesta táctil, contraste claro/oscuro, áreas seguras y accesibilidad).
Ideal para
Diseñar una nueva página de aterrizaje o un panel, elegir colores y fuentes que encajen con un producto, revisar una UI en busca de problemas de accesibilidad e interacción, y obtener sugerencias de implementación específicas por stack. No está pensado para trabajo de backend, API o infraestructura.
Contiene scripts de Python (solo biblioteca estándar). Leen los archivos de datos incluidos e imprimen resultados; no usan la red. Solo se escriben archivos cuando pasas `--persist`: crea `design-system/<project>/MASTER.md` en el directorio de salida que indiques, nunca sobrescribe un MASTER.md existente salvo que se añada `--force`, y la Skill indica al modelo que no use `--force` sin tu aprobación explícita. No se necesita cuenta ni clave. Los resultados de búsqueda son recomendaciones, así que valóralos frente a tu propia marca y tus usuarios. En este listado se dejaron fuera el validador de datos y los archivos de prueba exclusivos para mantenedores; las funciones de búsqueda y de sistema de diseño no se ven afectadas.