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.
하는 일
모델이 로컬에서 검색할 수 있는 UI/UX 자료를 제공합니다. 스타일 79종, 제품 유형별 팔레트 192개(추론 규칙 포함), 글꼴 조합 74개, UX 가이드라인 119개, 아이콘 105개, GSAP 모션 프리셋 17개, 차트 25종, 그리고 22개 프런트엔드 스택(React, Next.js, Vue, SwiftUI, Flutter, Tailwind, shadcn 등)에 대한 팁이 들어 있습니다.
동작 방식
- 모델이 요청에서 제품 유형과 기술 스택을 파악합니다.
- 새 페이지나 제품이면 동봉된 Python 검색 스크립트(
--design-system)를 실행해 제품·스타일·색상·랜딩 페이지 구조·타이포그래피 결과를 하나의 추천으로 묶습니다. 개별 문제는--domain, 스택 팁은--stack을 사용합니다. - 결과를
design-system/<프로젝트>/MASTER.md로 저장하고 페이지별 덮어쓰기 파일을 만들 수 있어, 이후 대화에서도 같은 결정을 이어 쓸 수 있습니다. - 앱 UI를 넘기기 전에 체크리스트(아이콘, 터치 피드백, 라이트/다크 대비, 세이프 에리어, 접근성)로 점검합니다.
이런 때 좋습니다
새 랜딩 페이지나 대시보드 설계, 제품에 맞는 색상과 글꼴 선택, UI의 접근성·상호작용 문제 검토, 특정 기술 스택에 맞는 구현 힌트. 백엔드, API, 인프라 작업에는 맞지 않습니다.
Python 스크립트(표준 라이브러리만 사용)가 들어 있습니다. 동봉된 데이터를 읽어 결과를 출력할 뿐 네트워크에는 접속하지 않습니다. 파일은 `--persist`를 지정했을 때만 기록하며, 지정한 출력 디렉터리 아래에 `design-system/<프로젝트>/MASTER.md`를 만듭니다. 기존 MASTER.md는 `--force`를 붙이지 않는 한 덮어쓰지 않고, 이 Skill은 사용자의 명시적 허락 없이 `--force`를 쓰지 말라고 모델에 지시합니다. 계정이나 키는 필요 없습니다. 검색 결과는 추천일 뿐이므로 자사 브랜드와 사용자에 맞는지 직접 판단하세요. 이 사이트의 등록본에는 관리자 전용 데이터 검증 스크립트와 테스트 파일을 뺐으며, 검색과 디자인 시스템 기능에는 영향이 없습니다.