agentleFS
ArnavPuriArnavPuri/designskills/skills/design-context/SKILL.md

design-context

Skill17 starsChanged 8 months agoMITView on GitHub

Foundational design context skill. Establishes brand identity, color system, typography, design style, and audience preferences, saved to .agents/design-context.md for every other design skill to reuse. Trigger phrases: "set up design context", "define brand style", "style guide setup", "initialize design", "set brand colors", "use our brand". To build a full token system and components use design-system; to generate a palette use color-palette; to create a logo and identity use brand-identity.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

18 rules. 0 are common, 13 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 13

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before gathering new information, check for existing design context.

    line 23
  2. Distinctive:

    When scanning Tailwind config, extract:

    line 43
  3. Distinctive:

    When scanning CSS variables, map:

    line 52
  4. Distinctive:

    If context is found, present it to the user for confirmation before proceeding.

    line 62
  5. Distinctive:

    If no existing context is found, gather the following conversationally.

    line 68
  6. Very specific:

    Default scale (Tailwind's hand-tuned sizes, base 16px -- roughly, not exactly, a 1.25 ratio).

    line 114
  7. Distinctive:

    Check the palette before writing it, and tell the user about any failures (don't silently change their brand colors -- propose the nearest …

    line 255
  8. Very specific:

    Run the bundled checker rather than estimating by eye (<design-context> is this skill's directory):

    line 263
  9. Very specific:

    Add a Last updated: YYYY-MM-DD line and the detection source (e.g.

    line 272
  10. Distinctive:

    When any other design skill activates, it must:

    line 278
  11. Very specific:

    Use the specified typography -- load Google Fonts if needed via <link> tag

    line 282
  12. Distinctive:

    When the user wants to update context:

    line 302
  13. Very specific:

    Read the existing .agents/design-context.md

    line 304
  14. Distinctive:

    Ask what they want to change

    line 305
  15. Distinctive:

    Update only the changed fields

    line 306
  16. Distinctive:

    Never overwrite the entire file for a single field change.

    line 310
  17. Distinctive:

    If no context is set and the user wants to proceed anyway, use these defaults:

    line 316
  18. Distinctive:

    Always note in the output that defaults were used and recommend setting up proper design context.

    line 334

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Design Context

The foundational skill for all design work. Every other design skill checks this context first. This skill gathers, stores, and serves brand identity, color systems, typography, and design preferences so that all generated visuals are cohesive and on-brand.

Context is saved to .agents/design-context.md for reuse across sessions.


Step 1: Check for Existing Context

Before gathering new information, check for existing design context.

Auto-Detection Sources

Scan the codebase for existing design tokens in this priority order:

  1. .agents/design-context.md -- previously saved context (highest priority)
  2. tailwind.config.js / tailwind.config.ts -- theme.extend.colors, fontFamily, spacing (Tailwind v3)
  3. CSS @theme block -- Tailwind v4 defines tokens in CSS: @theme { --color-primary: ...; --font-sans: ...; }
  4. CSS custom properties -- --color-primary, --font-heading, etc. in :root or globals.css. shadcn/ui projects use --primary, --secondary, --accent, --muted, --destructive, --radius, often as bare HSL components (222 47% 11%) or oklch(...) -- convert to hex when saving
  5. package.json -- project name, description
  6. Design token files -- tokens.json (W3C DTCG $value/$type), theme.js, design-system.*
  7. Font loading -- next/font imports, Google Fonts <link> tags, @font-face rules
  8. Existing components -- scan for recurring color values, font stacks, spacing patterns
  9. manifest.json / site.webmanifest -- theme_color, name
  10. Brand assets -- logo.svg, public/, assets/, brand/ folders, favicon
  11. Figma variables -- if Figma MCP is available, pull variables from connected files

Auto-Detection Logic

When scanning Tailwind config, extract:

colors.primary -> Brand primary color
colors.secondary -> Brand secondary color
colors.accent -> Accent color
fontFamily.sans -> Body font
fontFamily.heading or fontFamily.display -> Heading font

When scanning CSS variables, map:

--color-primary, --primary -> Primary color
--color-secondary, --secondary -> Secondary color
--color-accent, --accent -> Accent color
--font-heading, --font-display -> Heading font
--font-body, --font-sans -> Body font
--radius, --border-radius -> Border radius preference

If context is found, present it to the user for confirmation before proceeding.


Step 2: Gather Brand Identity

If no existing context is found, gather the following conversationally. Ask in natural groupings, not as a checklist dump.

Brand Core

FieldDescriptionExample
Brand NameOfficial name"Acme Studio"
TaglineShort brand tagline"Design without limits"
MissionOne-sentence mission"Empower creators with professional tools"
IndustryPrimary industry/sector"SaaS / Creative Tools"

Color System

Gather a minimum of 4 color groups. Store as hex codes.

RolePurposeExample
PrimaryMain brand color, CTAs, key UI#2563EB
Primary LightHover states, backgrounds#3B82F6
Primary DarkActive states, text on light#1D4ED8
SecondarySupporting color, secondary actions#7C3AED
AccentHighlights, badges, notifications#F59E0B
Neutral 50Lightest background#FAFAFA
Neutral 100Card backgrounds#F5F5F5
Neutral 200Borders, dividers#E5E5E5
Neutral 500Placeholder text#737373
Neutral 800Body text#262626
Neutral 900Headings#171717
SuccessPositive states#10B981
WarningCaution states#F59E0B
ErrorError states#EF4444

Typography

FieldDescriptionExample
Heading FontDisplay/heading typeface"Inter, sans-serif"
Body FontBody text typeface"Inter, sans-serif"
Mono FontCode/technical typeface"JetBrains Mono, monospace"
Base SizeRoot font size16px
Scale RatioType scale multiplier1.25 (Major Third)
Heading WeightDefault heading weight700
Body WeightDefault body weight400

Type Scale Reference

Default scale (Tailwind's hand-tuned sizes, base 16px -- roughly, not exactly, a 1.25 ratio). If the user wants a true modular scale, compute it with the typography skill instead:

xs:   12px / 0.75rem
sm:   14px / 0.875rem
base: 16px / 1rem
lg:   18px / 1.125rem
xl:   20px / 1.25rem
2xl:  24px / 1.5rem
3xl:  30px / 1.875rem
4xl:  36px / 2.25rem
5xl:  48px / 3rem
6xl:  60px / 3.75rem
7xl:  72px / 4.5rem

Design Style

Identify the primary style from these archetypes:

StyleCharacteristics
MinimalGenerous whitespace, restrained palette, clean lines, subtle shadows
BoldSaturated colors, large typography, strong contrast, geometric shapes
PlayfulBright colors, rounded corners, illustrations, casual tone
CorporateStructured grids, blue/gray palette, professional imagery, formal
LuxuriousDark backgrounds, metallic accents, serif fonts, fine details
RetroVintage palettes, halftone textures, serif/slab type, warm tones
BrutalistRaw aesthetic, high contrast, monospace type, unconventional layout
OrganicEarth tones, natural textures, flowing shapes, warm neutrals

Audience and Tone

FieldDescriptionExample
Primary AudienceWho sees these designs"Tech-savvy professionals 25-40"
Aesthetic PreferencesWhat resonates with them"Clean, modern, data-driven"
ToneCommunication style"Professional but approachable"
FormalityScale of 1-53 (balanced)

Brand Marks

FieldDescriptionExample
Logo DescriptionDescribe the logo visually"Geometric 'A' mark in primary blue"
Logo UsageWhere/how to use it"Top-left, min 32px height"
Icon StylePreferred icon style"Outlined, 2px stroke, rounded caps"
Logo FilesPaths to real logo filespublic/logo.svg, brand/logo-white.png
Reference ImagesProduct photos, past designs the user likesassets/product-hero.png

Record file paths, not just descriptions. Image-generation skills pass these files as --image references, which reproduces a logo or product far more faithfully than a text description.

Brand Rules

FieldDescriptionExample
AlwaysNon-negotiables"Logo on white or primary only", "Sentence case headlines"
NeverThings to avoid"No gradients on the logo", "No stock photos of handshakes"
Voice samples2-3 real headlines or taglines"Ship faster. Sleep better."

Platform Preferences

PlatformPriorityNotes
WebHigh/Medium/LowResponsive, modern browsers
MobileHigh/Medium/LowTouch-friendly, safe areas
PrintHigh/Medium/LowCMYK considerations
SocialHigh/Medium/LowPlatform-specific sizes

Step 3: Save Context

Save the gathered context to .agents/design-context.md using this template:

# Design Context

## Brand Identity
- **Name:** [Brand Name]
- **Tagline:** [Tagline]
- **Mission:** [Mission]
- **Industry:** [Industry]

## Color System
| Role | Hex | Usage |
|------|-----|-------|
| Primary | #XXXXXX | CTAs, key elements |
| Primary Light | #XXXXXX | Hover, backgrounds |
| Primary Dark | #XXXXXX | Active, dark text |
| Secondary | #XXXXXX | Supporting elements |
| Accent | #XXXXXX | Highlights, badges |
| Neutral 50 | #XXXXXX | Light backgrounds |
| Neutral 100 | #XXXXXX | Card backgrounds |
| Neutral 200 | #XXXXXX | Borders |
| Neutral 500 | #XXXXXX | Muted text |
| Neutral 800 | #XXXXXX | Body text |
| Neutral 900 | #XXXXXX | Headings |
| Success | #XXXXXX | Positive |
| Warning | #XXXXXX | Caution |
| Error | #XXXXXX | Error |

## Typography
- **Heading Font:** [Font stack]
- **Body Font:** [Font stack]
- **Mono Font:** [Font stack]
- **Base Size:** [size]
- **Scale Ratio:** [ratio]
- **Heading Weight:** [weight]
- **Body Weight:** [weight]

## Design Style
- **Primary Style:** [Style archetype]
- **Border Radius:** [value]
- **Shadow Style:** [subtle/medium/dramatic/none]
- **Spacing System:** [4px/8px base grid]

## Audience
- **Primary:** [Description]
- **Aesthetic:** [Preferences]
- **Tone:** [Tone description]

## Brand Marks
- **Logo:** [Description]
- **Logo Files:** [paths]
- **Reference Images:** [paths]
- **Icon Style:** [Description]

## Brand Rules
- **Always:** [rules]
- **Never:** [rules]
- **Voice samples:** [examples]

## Platform Priority
- Web: [priority]
- Mobile: [priority]
- Social: [priority]
- Print: [priority]

Validate Before Saving

Check the palette before writing it, and tell the user about any failures (don't silently change their brand colors -- propose the nearest passing shade):

  • Body text (Neutral 800) on Neutral 50 and on white: >= 4.5:1
  • Primary as a button background with white text: >= 4.5:1 (if it fails, use Primary Dark for text-bearing buttons)
  • Primary as link text on white: >= 4.5:1
  • Neutral 500 placeholder/muted text on white: >= 4.5:1 if it carries meaning
  • Borders and focus rings (Neutral 200 is decorative only; focus rings need >= 3:1 against their background)

Run the bundled checker rather than estimating by eye (<design-context> is this skill's directory):

python <design-context>/scripts/contrast.py --context .agents/design-context.md   # all pairings above
python <design-context>/scripts/contrast.py "#737373" "#ffffff"                     # any single pair

It exits 1 on any failure and suggests the nearest passing shade for each one (same hue and chroma, adjusted lightness). Other skills can use it the same way for any foreground/background pair.

Add a Last updated: YYYY-MM-DD line and the detection source (e.g. "from tailwind.config.ts") at the top of the file so later sessions know how fresh it is.


Step 4: Using Context in Other Skills

When any other design skill activates, it must:

  1. Read .agents/design-context.md first
  2. Apply the color system -- never use arbitrary colors
  3. Use the specified typography -- load Google Fonts if needed via <link> tag
  4. Match the design style archetype
  5. Respect the tone and audience preferences

Quick Context Snippet for Other Skills

Other skills should include this check at the top of their workflow:

Before generating any visual:
1. Read .agents/design-context.md
2. Extract: primary color, secondary color, accent, heading font, body font, style archetype
3. If no context file exists, ask the user to run the design-context skill first,
   or use sensible defaults and note that output may not be on-brand

Step 5: Context Updates

When the user wants to update context:

  1. Read the existing .agents/design-context.md
  2. Ask what they want to change
  3. Update only the changed fields
  4. Confirm the changes
  5. Save the updated file

Never overwrite the entire file for a single field change.


Default Fallbacks

If no context is set and the user wants to proceed anyway, use these defaults:

Primary: #2563EB (blue-600)
Secondary: #7C3AED (violet-600)
Accent: #F59E0B (amber-500)
Neutral: Tailwind gray scale
Heading Font: Inter
Body Font: Inter
Success: #10B981 (fills/icons) / #047857 (text)
Warning: #F59E0B (fills/icons) / #B45309 (text)
Error:   #EF4444 (fills/icons) / #B91C1C (text)
Style: Minimal
Tone: Professional

The lighter semantic shades fail 4.5:1 as text on white (2.5:1, 2.2:1, 3.8:1) -- use them for backgrounds, badges with dark text, and icons; use the darker shades for text.

Always note in the output that defaults were used and recommend setting up proper design context.

Note: Inter everywhere plus blue-600 is the most common "AI-generated" look. When using defaults for anything expressive (posters, social graphics, landing pages), ask one quick question -- "any colors, fonts, or sites you like the feel of?" -- before falling back.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.