
Design Brief
- 2.3k installs
- 82k repo stars
- Updated July 28, 2026
- nexu-io/open-design
design-brief is an agent skill that I-Lang formatted design brief or natural language description.
About
Parse a structured design brief into a concrete DESIGN md and optional visual preview Agent follow this workflow exactly The 8 dimensions in this skill are derived from analysis of the 71 design systems bundled with Open Design Every DESIGN md in design systems resolves at minimum color palette accent typography display font layout model and component style We distilled these into 8 orthogonal dimensions that cover the decisions a designer makes before any pixel is placed Mood and density were added because they are the two most common sources of ambiguity in natural language briefs make it clean means different things to different people Dimensions intentionally excluded from the brief level animation timing responsive strategy and accessibility contrast These are enforced at the template level by individual skills e g saas landing handles its own responsive logic though the generated DESIGN md includes sensible breakpoint defaults for downstream consumption The user provides a design brief in one of two formats PLAN DESIGN type saas_landing palette navy_and_white accent coral typography
- Parse a structured design brief written in I-Lang protocol format into a
- concrete design spec. Eliminates ambiguity from vague requests like
- "make it professional" by requiring explicit dimensions: palette, typography,
- Follow design-brief SKILL.md steps and documented constraints.
- Follow design-brief SKILL.md steps and documented constraints.
Design Brief by the numbers
- 2,269 all-time installs (skills.sh)
- +133 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #389 of 16,659 AI & Agent Building skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
design-brief capabilities & compatibility
- Capabilities
- parse a structured design brief written in i lan · concrete design spec. eliminates ambiguity from · "make it professional" by requiring explicit dim · follow design brief skill.md steps and documente
- Use cases
- orchestration
What design-brief says it does
Parse a structured design brief written in I-Lang protocol format into a
concrete design spec. Eliminates ambiguity from vague requests like
"make it professional" by requiring explicit dimensions: palette, typography,
npx skills add https://github.com/nexu-io/open-design --skill design-briefAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.3k |
|---|---|
| repo stars | ★ 82k |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 28, 2026 |
| Repository | nexu-io/open-design ↗ |
When should an agent use design-brief and what problem does it solve?
I-Lang formatted design brief or natural language description
Who is it for?
Developers invoking design-brief as documented in the skill source.
Skip if: Skip when requirements fall outside design-brief documented scope.
When should I use this skill?
I-Lang formatted design brief or natural language description
What you get
Outputs aligned with the design-brief SKILL.md workflow and stated deliverables.
- DESIGN.md
- HTML preview
- structured design specification
By the numbers
- Requires 6 explicit design dimensions: palette, typography, layout, mood, density, constraints
- Includes 4 documented trigger keywords for activation
Files
Design Brief Skill
Parse a structured design brief into a concrete DESIGN.md and optional visual preview. Agent, follow this workflow exactly.
Background
The 8 dimensions in this skill are derived from analysis of the 71 design systems bundled with Open Design. Every DESIGN.md in design-systems/ resolves at minimum: color palette, accent, typography, display font, layout model, and component style. We distilled these into 8 orthogonal dimensions that cover the decisions a designer makes before any pixel is placed. Mood and density were added because they are the two most common sources of ambiguity in natural language briefs ("make it clean" means different things to different people).
Dimensions intentionally excluded from the brief level: animation timing, responsive strategy, and accessibility contrast. These are enforced at the template level by individual skills (e.g., saas-landing handles its own responsive logic), though the generated DESIGN.md includes sensible breakpoint defaults for downstream consumption.
1. Accept input
The user provides a design brief in one of two formats:
Option A: I-Lang structured brief
[PLAN:@DESIGN|type=saas_landing]
|palette=navy_and_white|accent=coral
|typography=inter|display=space_grotesk
|layout=single_column|max_width=1200px
|mood=professional_minimal
|density=spacious|section_gap=96px
|hero=headline+subhead+cta
|sections=features,pricing,testimonials,footer
|exclude=animations,parallax,gradients
|responsive=mobile_firstOption B: Natural language
"I need a landing page for a developer tool. Clean, minimal, dark mode. Inter font. No flashy animations."
If the user provides Option B, convert it to the structured format using the mapping table below, then proceed. Identify every dimension explicitly stated and flag dimensions that were left unspecified.
Natural language → I-Lang mapping
For each sentence in the natural language input, identify dimension keywords and map to the closest structured value:
| Natural language phrase | Dimension | I-Lang value |
|---|---|---|
| "dark mode", "dark theme" | palette | monochrome_dark |
| "light", "white background" | palette | light_clean |
| "earthy", "warm tones" | palette | earth_tones |
| "pop of color", "vibrant" | accent | electric_blue (default) or coral |
| "subtle accent" | accent | muted_sage (default) or slate |
| "clean", "minimal", "simple" | mood | professional_minimal |
| "playful", "fun", "friendly" | mood | playful |
| "bold", "brutalist", "raw" | mood | brutalist |
| "editorial", "magazine-like" | mood | editorial |
| "spacious", "lots of whitespace" | density | spacious |
| "compact", "dense", "information-rich" | density | compact |
| "Inter", "system font" | typography | inter (default) or system_ui |
| "serif", "traditional" | typography | georgia (default) or playfair |
| "monospace", "code-like" | typography | jetbrains_mono |
| "no animations", "static" | exclude | animations |
| "no gradients" | exclude | gradients |
| "no stock photos" | exclude | stock_photos |
| "single page" | layout | single_column |
| "two columns", "sidebar" | layout | two_column |
| "mobile first" | responsive | mobile_first |
When a phrase maps to multiple dimensions (e.g. "clean dark landing page" → mood=professional_minimal + palette=monochrome_dark + layout=single_column), resolve each dimension independently. When multiple values are listed for a single mapping, the first is the default; the agent may select the alternative only if surrounding context strongly favors it.
2. Validate dimensions
Every design brief must resolve these 8 dimensions. If any are missing from the input, select sensible defaults using the rules in Section 2.2.
The values listed below form a closed vocabulary. Only values in this table have concrete token mappings in Section 2.1. If the user provides a value not listed here, the agent must prompt for clarification rather than guessing.
| # | Dimension | Key | Example values |
|---|---|---|---|
| 1 | Color palette | palette | navy_and_white, earth_tones, monochrome_dark, light_clean |
| 2 | Accent color | accent | coral, electric_blue, emerald, muted_sage |
| 3 | Body typography | typography | inter, system_ui, dm_sans, georgia |
| 4 | Display typography | display | space_grotesk, clash_display, same_as_body, playfair |
| 5 | Layout model | layout | single_column, two_column, asymmetric |
| 6 | Mood | mood | professional_minimal, playful, brutalist, editorial |
| 7 | Density | density | compact, balanced, spacious |
| 8 | Constraints | exclude | animations, gradients, stock_photos, carousel |
2.1 Symbolic → concrete token resolution
Each symbolic value maps to concrete design tokens. The agent must resolve these before writing DESIGN.md:
| Symbolic value | Concrete tokens |
|---|---|
palette=navy_and_white | Background: #0F172A, Surface: #1E293B, Text: #F8FAFC, Secondary: #94A3B8 |
palette=monochrome_dark | Background: #09090B, Surface: #18181B, Text: #FAFAFA, Secondary: #A1A1AA |
palette=light_clean | Background: #FFFFFF, Surface: #F8FAFC, Text: #0F172A, Secondary: #64748B |
palette=earth_tones | Background: #FFFBEB, Surface: #FEF3C7, Text: #451A03, Secondary: #92400E |
accent=coral | Accent: #F97316, Hover: #EA580C |
accent=electric_blue | Accent: #3B82F6, Hover: #2563EB |
accent=emerald | Accent: #10B981, Hover: #059669 |
accent=muted_sage | Accent: #84A98C, Hover: #6B8F73 |
accent=slate | Accent: #64748B, Hover: #475569 |
typography=inter | Body: Inter, 400, 1rem/1.6 |
typography=system_ui | Body: system-ui, 400, 1rem/1.6 |
typography=dm_sans | Body: DM Sans, 400, 1rem/1.6 |
typography=georgia | Body: Georgia, 400, 1.125rem/1.7 |
display=space_grotesk | Display: Space Grotesk, 700, clamp(2rem, 5vw, 3.5rem) |
display=clash_display | Display: Clash Display, 700, clamp(2rem, 5vw, 3.5rem) |
display=playfair | Display: Playfair Display, 700, clamp(2rem, 5vw, 3.5rem) |
display=same_as_body | Display inherits body font family, weight 600 |
density=compact | Section spacing: 48px, Content padding: 16px/24px |
density=balanced | Section spacing: 72px, Content padding: 24px/40px |
density=spacious | Section spacing: 96px, Content padding: 24px/48px |
Symbolic values not in this table are not valid. If the user provides an unrecognized value (e.g., palette=ocean_blue), the agent must prompt for clarification: "I don't recognize palette=ocean_blue. Did you mean navy_and_white, monochrome_dark, light_clean, or earth_tones?"
2.2 Default resolution rules
When a dimension is unspecified, defaults are selected based on mood compatibility:
| Unspecified dimension | Default rule |
|---|---|
palette | If mood=editorial → light_clean. If mood=brutalist → monochrome_dark. Otherwise → light_clean. |
accent | If palette is dark → coral. If palette is light → electric_blue. |
typography | Always → inter (highest cross-platform legibility). |
display | If mood=editorial → playfair. If mood=brutalist → space_grotesk. Otherwise → same_as_body. |
layout | Always → single_column (safest responsive default). |
mood | Always → professional_minimal (least opinionated). |
density | Always → balanced. |
exclude | Always → none (no constraints unless specified). |
If mood is also unspecified, all defaults fall back to the safe neutral set: palette=light_clean, accent=electric_blue, typography=inter, display=same_as_body, layout=single_column, mood=professional_minimal, density=balanced, exclude=none.
3. Generate DESIGN.md
This skill generates a new DESIGN.md from scratch based on the resolved brief dimensions. If a DESIGN.md already exists in the working directory, the agent should ask the user whether to overwrite or skip.
Produce a DESIGN.md following Open Design's 9-section convention. All color hex values, font stacks, and spacing values must come from the resolved tokens in Section 2.1 — do not invent values outside the resolution table.
# [Project Name] Design System
## Visual Theme & Atmosphere
- Mood: [resolved from mood]
- Feel: [derived from mood — e.g., professional_minimal → "Clean, confident, restrained"]
- References: [if mood=editorial → "Magazine layouts, Monocle, Cereal"; if mood=brutalist → "Exposed structure, raw typography"]
## Color Palette & Roles
- Background: [resolved from palette]
- Surface: [resolved from palette]
- Text primary: [resolved from palette]
- Text secondary: [resolved from palette]
- Accent: [resolved from accent]
- Accent hover: [resolved from accent]
## Typography Rules
- Display: [resolved from display], 700, clamp(2rem, 5vw, 3.5rem)
- Body: [resolved from typography], 400, 1rem/1.6
- Mono: JetBrains Mono, 400, 0.875rem
## Component Stylings
- Buttons: [if mood=playful → "rounded-full", otherwise → "rounded-md"], accent bg, contrast text
- Cards: surface bg, subtle border, 12px radius
- Inputs: [if mood=brutalist → "thick border", otherwise → "transparent bg, bottom border"]
## Layout Principles
- Max width: 1200px
- Grid: [resolved from layout]
- Section spacing: [resolved from density]
- Content padding: [resolved from density]
## Depth & Elevation
- Shadows: [if mood=brutalist → "hard 4px offset", if mood=professional_minimal → "none", otherwise → "subtle sm"]
- Borders: 1px solid [derived from palette, 8% opacity of text color]
## Do's and Don'ts
- DO use the declared color tokens exclusively.
- DO maintain consistent section spacing.
- DO ensure all text meets WCAG AA contrast ratio.
- DON'T invent colors outside the palette.
- DON'T add decorative shadows unless Depth & Elevation allows them.
- DON'T use more than 2 display/body typefaces (monospace is a utility face for code and data — it does not count toward this limit).
## Responsive Behavior
- Breakpoints: 640px (sm), 768px (md), 1024px (lg), 1280px (xl)
- Mobile: single column, stack all sections vertically
- Tablet: allow 2-column feature grids
- Desktop: full layout with max-width constraint
- Images: fluid, max-width 100%, maintain aspect ratio
## Agent Prompt Guide
- Do NOT invent colors outside this palette.
- Do NOT add box-shadows unless specified above.
- Accent color appears maximum 3 times per viewport.
- All interactive elements need :focus-visible outline.
- [if exclude contains items → list each as "Do NOT use {item}."]4. Generate brief-preview.html
Create a single HTML file that visually renders the resolved design tokens. The preview must contain these 4 sections in order:
1. Color palette swatches — A horizontal row of rectangles, each showing one color from the Color section. Label each with its role (Background, Surface, Text, Accent) and hex code. 2. Typography specimens — Three text blocks showing Display, Body, and Mono fonts at their declared sizes. Use a sample sentence ("The quick brown fox...") for each. 3. Spacing ruler — A visual ruler or stacked bars showing section spacing and content padding values, labeled with their px values. 4. Component preview — Render 2–3 live components (a primary button, a card with title/body, a text input) using the resolved tokens. These should be functional HTML/CSS, not screenshots.
Style the preview itself with the resolved design system tokens (background color, font, spacing). The preview should look like a design system documentation page.
5. Report unspecified dimensions
At the end of output, list any dimensions the user did not specify and the defaults that were applied, including the rule that selected each default:
Dimensions resolved from defaults:
- display: set to "same_as_body" (rule: mood=professional_minimal → same_as_body)
- density: set to "balanced" (rule: static fallback, no spacing preference given)
- exclude: set to "none" (rule: no constraints unless specified)This transparency prevents silent assumptions from propagating into the final design.
{
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
"specVersion": "1.0.0",
"name": "example-design-brief",
"title": "Design Brief",
"title_i18n": {
"zh-CN": "设计简报",
"zh-TW": "設計簡報",
"ja": "デザインブリーフ",
"ko": "디자인 브리프",
"de": "Design Brief",
"fr": "Brief de conception",
"ru": "Дизайн-бриф",
"es": "Brief de diseño",
"pt-BR": "Brief de design",
"it": "Brief di design",
"vi": "Bản tóm tắt thiết kế",
"pl": "Brief projektowy",
"id": "Brief Desain",
"nl": "Ontwerpbrief",
"ar": "موجز التصميم",
"tr": "Tasarım Brifingi",
"uk": "Дизайн-бриф",
"en": "Design Brief"
},
"version": "0.1.0",
"description": "Parse a structured design brief written in I-Lang protocol format into a concrete design spec. Eliminates ambiguity from vague requests like \"make it professional\" by requiring explicit dimensions: palette, typography, layout, mood, density, and constraints. Trigger keywords: \"design brief\", \"create a design brief\", \"ilang brief\", \"structured brief\".",
"description_i18n": {
"zh-CN": "将 I-Lang 协议格式编写的结构化设计简报解析为具体的设计规范。通过要求明确的维度(调色板、排版、布局、氛围、密度和约束)消除诸如'使其专业'之类模糊请求的歧义。触发关键词:design brief、create a design brief、ilang brief、structured brief。",
"zh-TW": "將 I-Lang 協定格式編寫的結構化設計簡報解析為具體的設計規範。透過要求明確的維度(調色盤、排版、佈局、氛圍、密度和約束)消除諸如『使其專業』之類模糊請求的歧義。觸發關鍵字:design brief、create a design brief、ilang brief、structured brief。",
"ja": "I-Lang プロトコル形式で記述された構造化デザインブリーフを具体的なデザイン仕様に解析します。パレット、タイポグラフィ、レイアウト、ムード、密度、制約などの明示的なディメンションを要求することで、『プロフェッショナルにして』のような曖昧なリクエストの不明確さを排除します。トリガーキーワード:design brief、create a design brief、ilang brief、structured brief。",
"ko": "I-Lang 프로토콜 형식으로 작성된 구조화된 디자인 브리프를 구체적인 디자인 사양으로 파싱합니다. 팔레트, 타이포그래피, 레이아웃, 무드, 밀도 및 제약 조건과 같은 명시적 차원을 요구하여 '전문적으로 만들어주세요'와 같은 모호한 요청의 애매함을 제거합니다. 트리거 키워드: design brief, create a design brief, ilang brief, structured brief.",
"de": "Parst ein strukturiertes Design-Brief im I-Lang-Protokollformat in eine konkrete Designspezifikation. Eliminiert Mehrdeutigkeit aus vagen Anfragen wie 'mach es professionell', indem explizite Dimensionen erforderlich sind: Palette, Typografie, Layout, Stimmung, Dichte und Einschränkungen. Trigger-Schlüsselwörter: design brief, create a design brief, ilang brief, structured brief.",
"fr": "Analyse un brief de conception structuré au format protocole I-Lang en spécification de conception concrète. Élimine l'ambiguïté des demandes vagues comme 'rends-le professionnel' en exigeant des dimensions explicites : palette, typographie, mise en page, ambiance, densité et contraintes. Mots-clés de déclenchement : design brief, create a design brief, ilang brief, structured brief.",
"ru": "Парсит структурированный дизайн-бриф в формате протокола I-Lang в конкретную дизайн-спецификацию. Устраняет неоднозначность расплывчатых запросов вроде 'сделай профессионально', требуя явных параметров: палитра, типографика, макет, настроение, плотность и ограничения. Ключевые слова: design brief, create a design brief, ilang brief, structured brief.",
"es": "Analiza un brief de diseño estructurado en formato de protocolo I-Lang en una especificación de diseño concreta. Elimina la ambigüedad de solicitudes vagas como 'hazlo profesional' al requerir dimensiones explícitas: paleta, tipografía, diseño, ambiente, densidad y restricciones. Palabras clave de activación: design brief, create a design brief, ilang brief, structured brief.",
"pt-BR": "Analisa um brief de design estruturado no formato do protocolo I-Lang em uma especificação de design concreta. Elimina a ambiguidade de solicitações vagas como 'torne profissional' ao exigir dimensões explícitas: paleta, tipografia, layout, atmosfera, densidade e restrições. Palavras-chave de ativação: design brief, create a design brief, ilang brief, structured brief.",
"it": "Analizza un brief di design strutturato nel formato del protocollo I-Lang in una specifica di design concreta. Elimina l'ambiguità da richieste vaghe come 'rendilo professionale' richiedendo dimensioni esplicite: palette, tipografia, layout, atmosfera, densità e vincoli. Parole chiave di attivazione: design brief, create a design brief, ilang brief, structured brief.",
"vi": "Phân tích bản tóm tắt thiết kế có cấu trúc được viết theo định dạng giao thức I-Lang thành đặc tả thiết kế cụ thể. Loại bỏ sự mơ hồ từ các yêu cầu mơ hồ như 'làm cho nó chuyên nghiệp' bằng cách yêu cầu các thông số rõ ràng: bảng màu, typography, bố cục, tâm trạng, mật độ và ràng buộc. Từ khóa kích hoạt: design brief, create a design brief, ilang brief, structured brief.",
"pl": "Parsuje ustrukturyzowany brief projektowy w formacie protokołu I-Lang na konkretną specyfikację projektu. Eliminuje niejednoznaczność z niejasnych próśb takich jak 'zrób to profesjonalnie', wymagając jawnych wymiarów: paleta, typografia, układ, nastrój, gęstość i ograniczenia. Słowa kluczowe aktywacji: design brief, create a design brief, ilang brief, structured brief.",
"id": "Mengurai brief desain terstruktur yang ditulis dalam format protokol I-Lang menjadi spesifikasi desain konkret. Menghilangkan ambiguitas dari permintaan yang samar seperti 'buat profesional' dengan memerlukan dimensi eksplisit: palet, tipografi, tata letak, suasana, kepadatan, dan batasan. Kata kunci pemicu: design brief, create a design brief, ilang brief, structured brief.",
"nl": "Parseert een gestructureerde ontwerpbrief in I-Lang-protocolformaat naar een concrete ontwerpspecificatie. Elimineert dubbelzinnigheid uit vage verzoeken zoals 'maak het professioneel' door expliciete dimensies te vereisen: palet, typografie, lay-out, sfeer, dichtheid en beperkingen. Triggerwoorden: design brief, create a design brief, ilang brief, structured brief.",
"ar": "يحلل موجز تصميم منظم مكتوب بتنسيق بروتوكول I-Lang إلى مواصفات تصميم محددة. يزيل الغموض من الطلبات المبهمة مثل 'اجعله احترافيًا' من خلال طلب أبعاد صريحة: لوحة الألوان، الطباعة، التخطيط، الحالة المزاجية، الكثافة والقيود. الكلمات المفتاحية: design brief، create a design brief، ilang brief، structured brief.",
"tr": "I-Lang protokol formatında yazılmış yapılandırılmış bir tasarım brifini somut bir tasarım spesifikasyonuna dönüştürür. Palet, tipografi, düzen, ruh hali, yoğunluk ve kısıtlamalar gibi açık boyutlar gerektirerek 'profesyonel yap' gibi belirsiz isteklerdeki belirsizliği ortadan kaldırır. Tetikleyici anahtar kelimeler: design brief, create a design brief, ilang brief, structured brief.",
"uk": "Парсить структурований дизайн-бриф у форматі протоколу I-Lang у конкретну дизайн-специфікацію. Усуває неоднозначність розпливчастих запитів на кшталт 'зроби професійно', вимагаючи явних параметрів: палітра, типографіка, макет, настрій, щільність та обмеження. Ключові слова: design brief, create a design brief, ilang brief, structured brief.",
"en": "Parse a structured design brief written in I-Lang protocol format into a concrete design spec. Eliminates ambiguity from vague requests like \"make it professional\" by requiring explicit dimensions: palette, typography, layout, mood, density, and constraints. Trigger keywords: \"design brief\", \"create a design brief\", \"ilang brief\", \"structured brief\"."
},
"license": "MIT",
"author": {
"name": "Open Design",
"url": "https://github.com/nexu-io"
},
"homepage": "https://github.com/nexu-io/open-design/tree/main/plugins/_official/examples/design-brief",
"tags": [
"example",
"first-party",
"design-system",
"planning",
"web",
"desktop",
"design-brief",
"create-a-design-brief",
"ilang-brief",
"structured-brief"
],
"compat": {
"agentSkills": [
{
"path": "./SKILL.md"
}
]
},
"od": {
"kind": "scenario",
"taskKind": "new-generation",
"mode": "design-system",
"platform": "desktop",
"scenario": "planning",
"surface": "web",
"preview": {
"type": "html",
"entry": "./brief-preview.html"
},
"useCase": {
"query": {
"en": "Parse a structured design brief written in I-Lang protocol format into a concrete design spec. Eliminates ambiguity from vague requests like \"make it professional\" by requiring explicit dimensions: palette, typography, layout, mood, density, and constraints. Trigger keywords: \"design brief\", \"create a design brief\", \"i",
"zh-CN": "使用这个插件完成以下任务:Parse a structured design brief written in I-Lang protocol format into a concrete design spec. Eliminates ambiguity from vague requests like \"make it professional\" by requiring explicit dimensions: palette, typography, layout, mood, density, and constraints. Trigger keywords: \"design brief\", \"create a design brief\", \"i"
}
},
"inputs": [
{
"name": "brief",
"type": "string",
"required": true,
"description": "I-Lang formatted design brief or natural language description"
}
],
"context": {
"skills": [
{
"path": "./SKILL.md"
}
],
"assets": []
},
"pipeline": {
"stages": [
{
"id": "generate",
"atoms": [
"file-write",
"live-artifact"
]
}
]
},
"capabilities": [
"prompt:inject",
"fs:write"
]
}
}
Related skills
How it compares
Pick this over generic frontend-design skills when the gap is ambiguous requirements that need a parsed DESIGN.md contract, not component code.
FAQ
What is design-brief?
I-Lang formatted design brief or natural language description
When should I use design-brief?
I-Lang formatted design brief or natural language description
Is design-brief safe to install?
Review the Security Audits panel on this page before production use.