Chuk Design System

Chuk Design System

Provides access to a universal design token system with 7 pre-built themes (colors, typography, spacing, motion) and multi-format export capabilities for Canva, Remotion, PPTX, CSS, and W3C JSON.

Category
Visit Server

README

🎨 Chuk Design System

A universal design token system with multi-format export capabilities. Define your design system once, export to Canva CSS, Remotion TypeScript, python-pptx, standard CSS, and W3C Design Tokens JSON.

Python 3.11+ Test Coverage License: MIT

✨ Features

  • 🎨 Universal Design Tokens: Colors, typography, spacing, and motion
  • 📦 Multi-Format Export: Canva, Remotion, PPTX, CSS, W3C JSON
  • 🎭 7 Pre-Built Themes: Tech, Finance, Education, Lifestyle, Gaming, Business, Minimal
  • 🔒 Type-Safe: Pydantic models with full validation
  • Well-Tested: 89% test coverage with 200+ tests
  • 🚀 MCP Server: Claude integration ready
  • 📱 Platform-Aware: Safe areas for YouTube, TikTok, Instagram
  • 🎬 Video-Optimized: Frame-perfect durations and Remotion springs

🚀 Quick Start

Installation

# Using uv (recommended)
uv pip install -e .

# Or using pip
pip install -e .

Basic Usage

from chuk_design_system.themes import get_theme
from chuk_design_system.exporters import export_to_canva_css

# Get a theme
theme = get_theme("tech")

# Export to Canva CSS
css = export_to_canva_css(theme)
print(css)

🎨 Interactive Showcase

View the design system visually:

# Generate PNG images + open HTML showcase
make showcase

# Open HTML showcase only
make showcase-html

The interactive HTML showcase features click-to-copy color swatches, hover animations for easing curves, live typography samples, and visual gradients.

📚 Design System Structure

Colors

  • Palettes: Tailwind-inspired scales (50-950) for 13+ hues
  • Semantic Colors: Role-based naming (primary, secondary, success, warning, error)
  • Gradients: 6 pre-defined gradients (sunset, ocean, forest, flame, aurora, cosmic)
  • Chart Colors: 8-color sequence for data visualization

Typography

  • Font Families: Display, Body, Monospace, Decorative
  • Multi-Resolution Scales: Web (16px), PPTX (18pt), Video 1080p (40px), Video 4K (80px)
  • Text Styles: Hero Title, Title, Heading, Body, Caption
  • Font Weights: Thin (100) to Black (900)

Spacing

  • 8px Unit System: Canva-compatible (1u = 8px)
  • Platform Safe Areas: YouTube Shorts, TikTok, Instagram Story
  • Grid Systems: 4, 8, 12 column grids

Motion

  • Durations: Video-optimized with frame conversions (30fps, 60fps)
  • Easing Curves: Linear, Ease Out, Ease In Out, Smooth, Snappy, Bouncy
  • Spring Configs: Remotion-compatible physics
  • Transitions: Enter/exit presets (fade, slide, scale)

🎭 Available Themes

Theme Primary Color Use Case
Tech Blue (#3b82f6) Technology, SaaS products
Finance Green (#22c55e) Financial services, dashboards
Education Purple (#a855f7) Learning platforms, courses
Lifestyle Pink (#db2777) Fashion, beauty, wellness
Gaming Green (#10b981) Gaming platforms, esports
Business Blue (#3b82f6) Corporate, professional services
Minimal Zinc (#71717a) Minimalist designs, portfolios

📦 Export Formats

Canva CSS

from chuk_design_system.exporters import export_to_canva_css
css = export_to_canva_css(theme)
# Output: --content-primary: #3b82f6;

Remotion TypeScript

from chuk_design_system.exporters import export_to_remotion_ts
ts_code = export_to_remotion_ts(theme)
# Output: export const colorPrimary = "#3b82f6";

python-pptx

from chuk_design_system.exporters.pptx import create_pptx_theme_dict
pptx_theme = create_pptx_theme_dict(theme)

Standard CSS

from chuk_design_system.exporters import export_to_css
css = export_to_css(theme)

W3C Design Tokens JSON

from chuk_design_system.exporters import export_to_w3c_json
json_str = export_to_w3c_json(theme)

🛠️ Development

Setup

make setup

Testing

make test-cov      # Run tests with coverage
make test-watch    # Run tests in watch mode
make test-quick    # Quick test (stop on first failure)

Code Quality

make format        # Format code
make lint          # Run linters
make type-check    # Type checking
make all           # Run all checks

📖 Usage Examples

Export All Themes

from chuk_design_system.themes import THEMES, get_theme
from chuk_design_system.exporters import export_to_canva_css

for theme_name in THEMES.keys():
    theme = get_theme(theme_name)
    css = export_to_canva_css(theme)
    with open(f"exports/{theme_name}.css", "w") as f:
        f.write(css)

Custom Token Access

from chuk_design_system.tokens import ColorTokens, TypographyTokens

colors = ColorTokens()
primary_blue = colors.palette["blue"][500]  # #3b82f6

typography = TypographyTokens()
hero_style = typography.get_text_style("hero_title", "web")

Motion Tokens for Remotion

from chuk_design_system.tokens import MotionTokens

motion = MotionTokens()
spring_config = motion.get_spring_config("smooth")
# {'damping': 22.0, 'stiffness': 150.0, 'mass': 1.0}

frames = motion.get_duration_frames("normal", fps=30)  # 9 frames

🔗 Integration

This design system powers:

🤖 MCP Server

Use with Claude via Model Context Protocol:

{
  "mcpServers": {
    "chuk-design-system": {
      "command": "python",
      "args": ["-m", "chuk_design_system.server"]
    }
  }
}

📝 Makefile Commands

Command Description
make help Show all available commands
make test-cov Run tests with coverage report
make format Format code with black + ruff
make showcase Generate visual showcases
make all Run all checks

🧪 Test Coverage

Current coverage: 89% (729 statements, 82 missed)

  • tokens/colors.py: 100%
  • tokens/typography.py: 100%
  • tokens/spacing.py: 100%
  • tokens/motion.py: 100%
  • exporters/canva.py: 100%
  • exporters/remotion.py: 100%
  • exporters/pptx.py: 94%

🤝 Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes with tests
  4. Run make all to verify
  5. Submit a pull request

📜 License

MIT License - see LICENSE file for details.

🙏 Acknowledgments

  • Inspired by Tailwind CSS color palette
  • Canva's design token system
  • Remotion's spring physics
  • W3C Design Tokens specification

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured