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 組字體搭配、119 條 UX 規範、105 個圖示、17 個 GSAP 動效預設、25 種圖表類型,以及 22 個前端技術堆疊(React、Next.js、Vue、SwiftUI、Flutter、Tailwind、shadcn 等)的實作建議。
運作方式
- 模型先判斷你的產品類型與技術堆疊。
- 新頁面或新產品時,會執行內附的 Python 檢索腳本(
--design-system),把產品、風格、配色、登陸頁結構與字體的比對結果合成一份建議;單一問題用--domain,技術堆疊建議用--stack。 - 結果可儲存為
design-system/<專案>/MASTER.md,再依頁面寫覆寫檔,後續對話沿用同一套決策。 - 交付行動端介面前,會依清單自我檢查(圖示、觸控回饋、明暗對比度、安全區、無障礙)。
適合什麼場景
設計新的登陸頁或後台、為產品挑選配色與字體、檢查介面的無障礙與互動問題、取得針對特定技術堆疊的實作提示。純後端、API、維運類任務不適用。
含 Python 腳本(僅用標準函式庫),讀取隨附資料並輸出結果,不連網。只有加上 `--persist` 才會寫檔:在你指定的輸出目錄下建立 `design-system/<專案>/MASTER.md`;已有 MASTER.md 時不會覆寫,除非加上 `--force`,且 Skill 要求模型未經你明確同意不得使用 `--force`。不需要帳號或金鑰。檢索結果只是建議,請依你自己的品牌與使用者判斷。本站收錄的版本移除了僅供維護者使用的資料驗證腳本與測試檔,不影響檢索與設計系統功能。