design-brief

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

By nexu-io · 3,025 installs

npx skills add nexu-io/open-design --skill design-brief

Source repository · Upstream listing

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 were derived from OpenDesign's original 71 system catalog; 71 is the research sample, not the current bundled system count. Every DESIGN.md in design systems/ still 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 Option 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 using the nine section outline below. This outline is the skill's portable standalone output, inherited from OpenDesign's original upstream baseline; it is not the current repository package schema. Current bundled packages also carry manifest.json , tokens.css , and optional rich resources, while legacy and user installed DESIGN.md only content remains readable. 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. 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: This transparency prevents silent assumptions from propagating into the final design.