Skip to content

/design-brief

I-Lang formatted design brief or natural language description

From plugin
open-design
108k170 skills1 command1 MCP

Claude Code

$ npx -y skills add nexu-io/open-design --skill design-brief --agent claude-code

SKILL.md

design-brief.SKILL.md
name: design-brief
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".
triggers:
  - "design brief"
  - "create a design brief"
  - "ilang brief"
  - "structured brief"
od:
  mode: design-system
  platform: desktop
  scenario: planning
  preview:
    type: html
    entry: brief-preview.html
    reload: debounce-100
  design_system:
    requires: false
    generates: true
    sections: [visual-theme, color-palette, typography, component-stylings, layout, depth-elevation, dos-and-donts, responsive, agent-prompt-guide]
  inputs:
    - name: brief
      type: string
      required: true
      description: "I-Lang formatted design brief or natural language description"
  outputs:
    primary: DESIGN.md
    secondary: brief-preview.html
  capabilities_required:
    - file_write

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

[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_first

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 resolut

Read more
@nexu-io
Ships withopen-design

The 1st Collaborative AI Design Agent Workspace. Local-first and open source. Create motion, prototypes, websites, apps, dashboards, presentations, images, and videos with your team and AI agents. Share work, exchange feedback, and iterate together in one workspace.

Stars on GitHub

Momentum

stars in total
107.6k
Star history of nexu-io/open-design on GitHub, a chart by star-history.com

Other skills on open-design.

od-contribute
Auto-invoked

od-contribute

One-click contribution flow for OpenDesign (nexu-io/open-design) — even for non-coders. Pick one of four cards (ship a Skill or…

@nexu-io@nexu-ioInstall Skill
ad-creative
Auto-invoked

ad-creative

Generate and iterate ad creative including headlines, descriptions, and primary text. Useful for paid social and search ad…

@nexu-io@nexu-ioInstall Skill
agent-browser
Auto-invoked

agent-browser

Browser automation CLI for AI agents. Use when the user needs to inspect, test, or automate browser behavior: navigating pages,…

@nexu-io@nexu-ioInstall Skill
ai-music-album
Auto-invoked

ai-music-album

Full-lifecycle AI music album production — concept, lyric drafting, track sequencing, and export. Useful for indie album…

@nexu-io@nexu-ioInstall Skill

More skills from other plugins.

impeccable

impeccable

Use to design, redesign, critique, audit, polish or animate a frontend: websites, landing pages, dashboards, app UI, components,…

@pbakaus@pbakausInstall Skill
animate

animate

Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at…

skills4d56k
@emilkowalski@emilkowalskiInstall Skill

Questions about design-brief.

Which coding agents can use design-brief?
design-brief installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.