Chuk Design System
๐จ 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.
โจ 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-htmlThe 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 setupTesting
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:
chuk-mcp-remotion: Video generation
chuk-mcp-pptx: PowerPoint generation
Canva Apps: Design apps with matching UI
๐ค 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 |
| Show all available commands |
| Run tests with coverage report |
| Format code with black + ruff |
| Generate visual showcases |
| 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:
Fork the repository
Create a feature branch
Make your changes with tests
Run
make allto verifySubmit 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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrishayuk/chuk-mcp-design-system'
If you have feedback or need assistance with the MCP directory API, please join our Discord server