Skip to main content

color-palette

Color palette management — generate standard YAML palettes from built-in library, external search, URL extraction, or traditional Chinese colors

설치로 이동

소스 정보

저장소
YaoApp/designer
최근 소스 활동
2026년 6월 10일 13:46
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
color-palette
trigger
When picking colors, generating color schemes, extracting colors from URLs, searching color trends, or using traditional Chinese colors
description
Color palette management — generate standard YAML palettes from built-in library, external search, URL extraction, or traditional Chinese colors
# Color Palette Management Generate color palettes in the standard YAML format that can be consumed by design-spec.css and HTML templates. This is the "source of truth" for all colors. ## Standard YAML Output Format All palettes use this format for downstream compatibility: ```yaml palette: name: "SaaS Blue" version: "1.0" source: "curated" # curated | extracted | trending | traditional | custom source_url: null tags: industry: "saas" style: "enterprise" mode: "light" season: null culture: null colors: primary: base: "#4F46E5" hover: "#4338CA" light: "#E0E7FF" secondary: base: "#0EA5E9" hover: "#0284C7" light: "#E0F2FE" accent: base: "#F59E0B" hover: "#D97706" light: "#FEF3C7" surface: base: "#FFFFFF" alt: "#F9FAFB" hover: "#F3F4F6" text: primary: "#111827" secondary: "#6B7280" disabled: "#D1D5DB" inverse: "#FFFFFF" border: base: "#E5E7EB" focus: "#4F46E5" semantic: success: "#10B981" warning: "#F59E0B" error: "#EF4444" info: "#3B82F6" dark_mode: surface: base: "#1F2937" alt: "#111827" text: primary: "#F9FAFB" secondary: "#9CA3AF" ``` ## YAML → CSS Conversion Rules | YAML Path | CSS Variable | Rule | |-----------|-------------|------| | `primary.base` | `--color-primary` | base variant omits suffix | | `primary.hover` | `--color-primary-hover` | | | `primary.light` | `--color-primary-light` | | | `secondary.base` | `--color-secondary` | base omits suffix | | `accent.base` | `--color-accent` | base omits suffix | | `surface.base` | `--color-surface` | base omits suffix | | `surface.alt` | `--color-surface-alt` | | | `text.primary` | `--color-text-primary` | text NEVER omits suffix | | `text.secondary` | `--color-text-secondary` | | | `text.disabled` | `--color-text-disabled` | | | `text.inverse` | `--color-text-inverse` | | | `border.base` | `--color-border` | base omits suffix | | `border.focus` | `--color-border-focus` | | | `semantic.error` | `--color-error` | semantic prefix omitted | | `semantic.success` | `--color-success` | | | `dark_mode.surface.base` | Inside `[data-theme="dark"]` block | dark mode overrides | ### Conversion Script ```bash python3 -c " import yaml with open('palette.yml') as f: p = yaml.safe_load(f)['palette']['colors'] for role in ['primary', 'secondary', 'accent']: if role in p and p[role]: for k, v in p[role].items(): suffix = '' if k == 'base' else f'-{k}' print(f' --color-{role}{suffix}: {v};') for role in ['surface', 'text', 'border']: if role in p and p[role]: for k, v in p[role].items(): if k == 'base': print(f' --color-{role}: {v};') else: print(f' --color-{role}-{k}: {v};') if 'semantic' in p and p[semantic]: for k, v in p['semantic'].items(): print(f' --color-{k}: {v};') " ``` ## Capabilities ### 1. Built-in Industry Palettes (12 schemes) | Name | Industry | Style | Primary | Secondary | |------|----------|-------|---------|-----------| | SaaS Blue | saas | enterprise | #4F46E5 | #0EA5E9 | | Finance Green | fintech | enterprise | #059669 | #10B981 | | E-commerce Warm | ecommerce | playful | #F97316 | #F59E0B | | Healthcare Calm | healthcare | soft | #0891B2 | #06B6D4 | | Education Kid | education | playful | #7C3AED | #A78BFA | | Media Editorial | media | editorial | #1E293B | #334155 | | Creative Purple | creative | editorial | #7C3AED | #C084FC | | Real Estate Luxury | realestate | luxury | #92400E | #B45309 | | Food Warm | food | soft | #EA580C | #F97316 | | Travel Mood | travel | soft | #0891B2 | #22D3EE | | Tech Dark | saas | tech | #6366F1 | #818CF8 | | Minimalist Slate | startup | minimalist | #334155 | #64748B | Download from registry: ```bash curl -s https://raw.githubusercontent.com/YaoApp/design-assets/main/palettes/2024/saas-blue.yml \ -o $WORKDIR/design-works/.cache/assets/palettes/2024/saas-blue.yml ``` ### 2. Traditional Chinese Colors (742 colors) When user asks for traditional Chinese colors, read the colors database: ```bash cat $WORKDIR/design-works/.cache/assets/palettes/traditional/colors.yml ``` Download from registry if not cached: ```bash curl -s https://raw.githubusercontent.com/YaoApp/design-assets/main/palettes/traditional/colors.yml \ -o $WORKDIR/design-works/.cache/assets/palettes/traditional/colors.yml ``` Search by color name, season, or dynasty. Generate palette YAML with `source: "traditional"` and filled `tags.culture` and `tags.season` fields. ### 3. Extract from Reference URL When user provides a URL: 1. `web_fetch` the page 2. Extract CSS colors (`color`, `background-color`, `--color-*` variables) 3. Classify by semantic role (largest background → surface, most-used text → text.primary, etc.) 4. Output palette YAML with `source: "extracted"` and `source_url` filled ### 4. Search Trending Colors ```bash tai tool web_search '{"query": "2026 UI color trends popular palettes"}' ``` Synthesize results into palette YAML. Mark `source: "trending"`. ### 5. Standalone Color Consultation When user needs colors from scratch, use AskUserQuestion: - Industry? (saas / ecommerce / healthcare / ...) - Style? (enterprise / playful / tech / ...) - Temperature? (warm / cool / neutral) - Mode? (light / dark) Match closest scheme from built-in library, propose 2-3 candidates. ### 6. Adjust Existing Palette Common adjustments: - "Make it warmer" → shift primary hue +15°, regenerate derivations - "Lower contrast" → move text.primary closer to surface.base - "Add an accent color" → pick from complementary colors ## Boundary with design-spec | Task | Handled By | Notes | |------|-----------|-------| | Extract colors from URL | **color-palette** | Outputs palette YAML only | | Extract full design spec from URL | **design-spec** | Calls color-palette + extracts fonts/spacing/layout | | Search color trends | **color-palette** | web_search → palette YAML | | Search design trends | **design-spec** | web_search → full tokens | | Generate palette | **color-palette** | Built-in / traditional / custom | | Generate full CSS tokens | **design-spec** | Consumes palette YAML + adds typography/spacing/shadows | ## External Color Resources | Resource | Type | Scale | Use | |----------|------|-------|-----| | [Traditional Chinese Colors](https://nevertoday.github.io/zhongguo-traditional-colors/) | Color cards | 742 + harmony data | Eastern aesthetics | | [Coolors](https://coolors.co) | Generator | Unlimited | Quick exploration | | [Adobe Color](https://color.adobe.com) | Color wheel | Unlimited | Color theory | | [ColorHunt](https://colorhunt.co) | Curated palettes | Thousands | Inspiration | | [UI Gradients](https://uigradients.com) | Gradients | 300+ | Gradient backgrounds | | [Open Color](https://yeun.github.io/open-color/) | Design tokens | 13 colors × 10 steps | Design systems | ## Rules - All palettes must output the standard YAML format - `tags` must be fully filled for resource library searchability - Traditional Chinese palettes: `source: "traditional"` with `culture` and `season` tags - Extracted palettes: `source_url` is required - YAML → CSS conversion is lossless; variable names follow fixed mapping - Palette YAML stored at `.library/palettes/{year}/` or `.library/palettes/traditional/` - `text.primary` → `--color-text-primary` (NEVER `--color-text`) - `semantic.*` keys omit the "semantic" prefix in CSS: `semantic.error` → `--color-error` - Only apply `dark_mode` when manifest `mode` is `"dark"`, not just because it exists
GitHub에서 보기