agentleFS
CODE-SAURABHCODE-SAURABH/OpenSkills/theme-factory/SKILL.md

theme-factory

Skill2 starsChanged 4 months agoMITView on GitHub

Generate and apply complete design themes — color palettes, typography pairings, and spacing systems — to any artifact. Use when the user wants to style a presentation, document, landing page, dashboard, or UI component with a cohesive visual theme, pick from pre-built themes, or generate a custom theme from a brief description. Trigger on "apply a theme", "make it look professional", "give it a style", "dark theme", "minimal theme", or any request to establish a visual direction.

195 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use skill-share, raffle-winner-picker and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • ArogyaReddySkill

    skill-share

    A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.

    Also in 22 projects that use this

  • ArogyaReddySkill

    raffle-winner-picker

    Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.

    Also in 25 projects that use this

  • hfzarslanSkill

    context7-efficient

    Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.

    Also in 5 projects that use this

  • AnthropicSkill

    academy-guide

    Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials, and use cases from Claude Academy (academy.claude.com), Anthropic's learning hub. Trigger on: "how do I", "how can I", "getting started with", "what can Claude do", "teach me", "learn to use"; questions about artifacts, projects, skills, plugins, connectors, MCP; requests about rolling Claude out to a team, class, or organization; and any ask for training materials, onboarding content, or learning resources. Use it when the user is learning how to use a feature or product — not when they are mid-task and just want the task done. This skill composes with other skills: after consulting product documentation to answer how a Claude feature works, also check here for a matching course or tutorial — a docs-grounded answer and an Academy recommendation belong together. Only recommend on a strong match; never invent Academy content.

    Also in 6 projects that use this

  • Patrick-Git-CreatorSkill

    artifacts-builder

    Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.

    Also in 43 projects that use this

  • AbdullahMalik17Skill

    configuring-dapr-pubsub

    Configures Dapr pub/sub components for event-driven microservices with Kafka or Redis. Use when wiring agent-to-agent communication, setting up event subscriptions, or integrating Dapr sidecars. Covers component configuration, subscription patterns, publishing events, and Kubernetes deployment. NOT when using direct Kafka clients or non-Dapr messaging patterns.

    Also in 3 projects that use this

  • +5 more from ArogyaReddy

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 184 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Contrast is non-negotiable: Every theme must pass WCAG AA contrast ratios.

    line 17
  2. Distinctive:

    When no pre-built theme fits, generate one from a brief:

    line 252

“Common” is measured: kept by at least 6 in 10 of the 184 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

Theme Factory

A theme is a complete, internally consistent visual system: colors that work together, fonts that complement each other, and spacing that creates rhythm. A half-applied theme looks worse than no theme. Commit fully or stay plain.

This skill generates production-ready theme definitions and applies them consistently across any artifact — slides, HTML, CSS, documents, or components.


Theme Factory Principles

  • A theme is a system, not a mood board. It must define every visual decision — colors for every state, font for every level of hierarchy, spacing for every gap. Gaps in the system become inconsistencies in the output.
  • Contrast is non-negotiable. Every theme must pass WCAG AA contrast ratios. A beautiful palette that fails contrast is an inaccessible one.
  • Font pairings have rules. Serif + sans-serif is the reliable pairing. Two sans-serifs can work if they contrast in weight and width. Two serifs rarely do. Never use more than 2 typefaces in one theme.
  • Apply completely or not at all. A theme applied to 80% of slides is worse than no theme — the 20% looks like mistakes.
  • Custom themes start from the brief. Warm/cold, technical/human, energetic/calm — these translate directly to specific color temperature, font personality, and spacing density.

Pre-Built Themes

1. Ocean Depths

Feel: Professional, trustworthy, calm. Enterprise, financial, healthcare.

Colors:
  Primary:     #0B3D91  — Deep ocean blue
  Secondary:   #1E6091  — Mid ocean
  Accent:      #00B4D8  — Bright cyan
  Background:  #FFFFFF
  Surface:     #F0F7FF  — Ice blue tint
  Text:        #0D1B2A
  Text Muted:  #5E6E82

Typography:
  Heading: Montserrat, Arial, sans-serif — Bold 700
  Body:    Source Serif Pro, Georgia, serif — Regular 400

Spacing: 8px base grid, generous (2× standard)

2. Sunset Boulevard

Feel: Warm, energetic, creative. Marketing, design, consumer products.

Colors:
  Primary:     #FF6B35  — Sunset orange
  Secondary:   #F7C59F  — Peach
  Accent:      #EFEFD0  — Warm cream
  Background:  #FFFFFF
  Surface:     #FFF8F0  — Warm white
  Text:        #1A1A2E
  Text Muted:  #6B5B45

Typography:
  Heading: Playfair Display, Georgia, serif — Bold 700
  Body:    Inter, Arial, sans-serif — Regular 400

Spacing: 8px base, balanced

3. Forest Canopy

Feel: Natural, grounded, sustainable. Environmental, wellness, food/beverage.

Colors:
  Primary:     #2D6A4F  — Forest green
  Secondary:   #40916C  — Sage
  Accent:      #95D5B2  — Mint
  Background:  #FAFAF8  — Warm off-white
  Surface:     #F1F8F4  — Light sage tint
  Text:        #1B2D23
  Text Muted:  #5A7A65

Typography:
  Heading: Lora, Georgia, serif — SemiBold 600
  Body:    Nunito Sans, Arial, sans-serif — Regular 400

Spacing: 8px base, airy

4. Modern Minimalist

Feel: Clean, precise, premium. Tech, SaaS, architecture, luxury.

Colors:
  Primary:     #000000  — Pure black
  Secondary:   #333333  — Dark gray
  Accent:      #0066FF  — Electric blue (use sparingly)
  Background:  #FFFFFF
  Surface:     #F5F5F5  — Light gray
  Text:        #111111
  Text Muted:  #888888

Typography:
  Heading: Inter, Arial, sans-serif — SemiBold 600
  Body:    Inter, Arial, sans-serif — Regular 400

Spacing: 8px base, tight (0.75× standard)
Note: Maximum whitespace, minimum decoration.

5. Golden Hour

Feel: Rich, warm, autumn. Premium food, hospitality, events.

Colors:
  Primary:     #8B4513  — Saddle brown
  Secondary:   #CD853F  — Peru gold
  Accent:      #DAA520  — Goldenrod
  Background:  #FDF8F0  — Parchment
  Surface:     #F5EDD8  — Warm cream
  Text:        #3D2B1F
  Text Muted:  #8B7355

Typography:
  Heading: Cormorant Garamond, Georgia, serif — Bold 700
  Body:    EB Garamond, Georgia, serif — Regular 400

Spacing: 8px base, generous

6. Arctic Frost

Feel: Cool, crisp, clinical. Healthcare, technology, research.

Colors:
  Primary:     #2C3E50  — Dark slate
  Secondary:   #3498DB  — Clear blue
  Accent:      #E8F4FD  — Ice blue
  Background:  #FAFCFF  — Cool white
  Surface:     #ECF3FB  — Light blue-gray
  Text:        #1A252F
  Text Muted:  #718EA4

Typography:
  Heading: Rajdhani, Arial, sans-serif — Bold 700
  Body:    Open Sans, Arial, sans-serif — Regular 400

Spacing: 8px base, structured

7. Desert Rose

Feel: Soft, sophisticated, editorial. Fashion, beauty, lifestyle.

Colors:
  Primary:     #C9776B  — Dusty rose
  Secondary:   #D4A5A0  — Blush
  Accent:      #7D6B5D  — Warm taupe
  Background:  #FAF7F5  — Linen
  Surface:     #F2EDE8  — Warm gray
  Text:        #3D3028
  Text Muted:  #9E8E85

Typography:
  Heading: Abril Fatface, Georgia, serif — Regular 400
  Body:    Josefin Sans, Arial, sans-serif — Light 300

Spacing: 8px base, airy

8. Tech Innovation

Feel: Bold, modern, futuristic. Startups, AI, developer tools.

Colors:
  Primary:     #6C63FF  — Electric violet
  Secondary:   #4ECDC4  — Cyber teal
  Accent:      #FF6B9D  — Hot pink
  Background:  #0A0A0F  — Near black
  Surface:     #14141F  — Dark panel
  Text:        #F0F0FF  — Near white
  Text Muted:  #8080A8

Typography:
  Heading: Space Grotesk, Arial, sans-serif — Bold 700
  Body:    JetBrains Mono, Courier New, monospace — Regular 400
           (or DM Sans for non-code body)

Spacing: 8px base, dense
Note: Dark mode only. Neon accents used sparingly — max 1 per composition.

9. Botanical Garden

Feel: Fresh, organic, optimistic. Health, kids, consumer apps.

Colors:
  Primary:     #4CAF50  — Leaf green
  Secondary:   #8BC34A  — Lime
  Accent:      #FF9800  — Sunflower orange
  Background:  #FAFFF8  — Fresh white
  Surface:     #F1F8E9  — Light green tint
  Text:        #1B5E20
  Text Muted:  #558B2F

Typography:
  Heading: Fredoka One, Arial, sans-serif — Regular 400
  Body:    Quicksand, Arial, sans-serif — Medium 500

Spacing: 8px base, playful/generous

10. Midnight Galaxy

Feel: Dramatic, cosmic, premium. Entertainment, gaming, events.

Colors:
  Primary:     #1A0533  — Deep purple-black
  Secondary:   #6A0DAD  — Royal purple
  Accent:      #E040FB  — Cosmic magenta
  Background:  #0D0221  — Space black
  Surface:     #160B32  — Dark nebula
  Text:        #F3E5F5  — Pale lavender white
  Text Muted:  #9575CD

Typography:
  Heading: Cinzel, Georgia, serif — Bold 700
  Body:    Raleway, Arial, sans-serif — Light 300

Spacing: 8px base, dramatic/generous
Note: Dark mode only. Gold accents (#FFD700) work as a third accent.

Generating a Custom Theme

When no pre-built theme fits, generate one from a brief:

Theme Generation Process

Step 1: Extract intent from the brief

Map descriptive words to design decisions:

Brief wordColor temperatureFont personalitySpacing
Modern, minimalCool neutralsGeometric sans-serifTight
Warm, humanWarm tonesHumanist sans or serifGenerous
Bold, energeticSaturated primariesDisplay/grotesqueDense
Elegant, luxuryDesaturated, darkClassic serifAiry
Technical, preciseBlue/grayMonospace or condensedStructured
Playful, funBright, contrastingRounded sansGenerous

Step 2: Build the palette

1. Choose a hue for the primary color (based on brief)
2. Set primary at 500-weight on HSL scale
3. Dark version: rotate hue -5°, reduce lightness 15%
4. Light version: same hue, increase lightness 45%
5. Accent: complementary or analogous hue (+30° or +180°)
6. Neutrals: desaturate primary hue 5%, apply lightness scale
7. Background: near-white (lightness 97-99%)
8. Surface: near-white +2-3% saturation (lightness 94-96%)
9. Text: very dark version of primary hue (lightness 10-15%)
10. Check all contrast ratios — adjust until WCAG AA passes

Step 3: Select font pairing

For each personality direction:

Professional/Enterprise → Montserrat + Source Serif Pro
Creative/Editorial      → Playfair Display + Inter
Technical/Developer     → Space Grotesk + JetBrains Mono
Elegant/Luxury          → Cormorant Garamond + EB Garamond
Friendly/Consumer       → Nunito + Open Sans
Bold/Startup            → DM Sans + DM Mono

Step 4: Output the theme spec

## Custom Theme: [Name]

### Inspiration
[2 sentences on the brief and design intent]

### Colors
| Token | Hex | Use |
|---|---|---|
| Primary | #______ | Headlines, CTAs, key UI |
| Secondary | #______ | Supporting elements |
| Accent | #______ | Highlights, badges |
| Background | #______ | Page/slide background |
| Surface | #______ | Cards, panels |
| Text | #______ | Body text |
| Text Muted | #______ | Captions, metadata |

### Typography
| Level | Font | Size | Weight | Line Height |
|---|---|---|---|---|
| Display | | 48px | 700 | 1.1 |
| Heading | | 32px | 700 | 1.15 |
| Subheading | | 24px | 600 | 1.2 |
| Body | | 16px | 400 | 1.6 |
| Caption | | 12px | 400 | 1.4 |

### Spacing
Base unit: 8px
Scale: 4, 8, 12, 16, 24, 32, 48, 64, 96px

### Contrast Ratios (WCAG AA)
- Text on Background: [ratio] ✅/❌
- Text on Surface: [ratio] ✅/❌
- Accent on Background: [ratio] ✅/❌

Applying a Theme to Common Artifacts

To a PPTX Presentation

# Apply theme colors to all slides
from pptx import Presentation
from pptx.dml.color import RGBColor

THEME = {
    "primary": (0x0B, 0x3D, 0x91),
    "text":    (0x0D, 0x1B, 0x2A),
    "surface": (0xF0, 0xF7, 0xFF),
}

prs = Presentation("deck.pptx")
for slide in prs.slides:
    slide.background.fill.solid()
    slide.background.fill.fore_color.rgb = RGBColor(*THEME["surface"])
    for shape in slide.shapes:
        if shape.has_text_frame:
            for para in shape.text_frame.paragraphs:
                for run in para.runs:
                    if run.font.size and run.font.size.pt >= 24:
                        run.font.name = "Montserrat"
                        run.font.color.rgb = RGBColor(*THEME["primary"])
                    else:
                        run.font.name = "Source Serif Pro"
                        run.font.color.rgb = RGBColor(*THEME["text"])
prs.save("deck_themed.pptx")

To a CSS File

/* Ocean Depths Theme */
:root {
  --color-primary:      #0B3D91;
  --color-secondary:    #1E6091;
  --color-accent:       #00B4D8;
  --color-background:   #FFFFFF;
  --color-surface:      #F0F7FF;
  --color-text:         #0D1B2A;
  --color-text-muted:   #5E6E82;

  --font-heading: 'Montserrat', Arial, sans-serif;
  --font-body:    'Source Serif Pro', Georgia, serif;

  --space-base: 8px;
}

Definition of Done — Theme Factory

  • Theme selected or generated from brief
  • All 7 color tokens defined: primary, secondary, accent, background, surface, text, text-muted
  • WCAG AA contrast ratio verified for text on background and text on surface
  • Font pairing defined: heading font + body font + weights
  • Type scale defined for at least 4 levels (heading, subheading, body, caption)
  • Spacing base unit and scale defined
  • Theme applied consistently across ALL elements in the artifact — no partial application
  • Dark mode variant defined if the artifact supports it
  • Theme spec documented in reference card format for future use

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.