AI-powered UI/UX generator with dual-brain architecture (Claude + OpenAI), sub-agent workflow, and design-to-code translation
Scanned 9/8/2026
Install to Claude Code
npx -y skills add Aradotso/design-skills --skill claude-design-studio-ui-generator --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Claude Design Studio Ui Generator?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aradotso-claude-design-studio-ui-generator)More formats (shields.io, HTML) on the badges page.
---
name: claude-design-studio-ui-generator
description: AI-powered UI/UX generator with dual-brain architecture (Claude + OpenAI), sub-agent workflow, and design-to-code translation
triggers:
- generate a UI component with design
- create a styled React component
- design a responsive interface
- convert this code to a visual design
- build a component with Claude Design AI
- generate UI with accessibility checks
- create a design-infused component
- visualize this API as a user interface
---
# Claude Design Studio UI Generator
> Skill by [ara.so](https://ara.so) — Design Skills collection.
## Overview
**Claude-Code-Design-AI** (Claude Design Studio) is a dual-brain AI system that bridges code logic and visual design. It orchestrates Claude API for nuanced design reasoning and OpenAI API for rapid code generation, producing production-ready UI components with integrated styling, animations, and accessibility compliance.
**Key capabilities:**
- Generate UI components from natural language descriptions
- Translate raw code/APIs into visual interfaces
- Multi-agent architecture (Alpha=logic, Omega=design, Sigma=QA, Theta=optimization)
- Built-in hooks system for validation and post-processing
- Design system harmonization (Material UI, Tailwind, custom)
- Marketplace with installable skills and plugins
## Installation
### Prerequisites
- Node.js v18+ or Bun runtime
- Claude API key and/or OpenAI API key
- 512MB RAM minimum
```bash
# Clone and install
git clone https://github.com/larajuniorlara/Claude-Design-Studio.git
cd Claude-Design-Studio
npm install
# Or with Bun
bun install
# Initialize design profile
npx claude-design init
# Set up API keys
export CLAUDE_API_KEY="your-claude-api-key"
export OPENAI_API_KEY="your-openai-api-key"
```
## Core API Usage
### JavaScript/TypeScript API
```javascript
import { ClaudeDesign } from 'claude-code-design-ai';
// Initialize with API keys
const designer = new ClaudeDesign({
claudeApiKey: process.env.CLAUDE_API_KEY,
openaiApiKey: process.env.OPENAI_API_KEY,
primaryRouter: 'claude',
fallback: 'openai'
});
// Generate a component from description
const component = await designer.generateUI({
description: "pricing table with three tiers",
framework: "react",
style: {
theme: "minimalist",
primaryColor: "#FF6B35",
effect: "glassmorphism"
},
constraints: {
responsive: true,
accessibility: "WCAG-AA",
animations: "subtle"
}
});
console.log(component.code); // React component code
console.log(component.styles); // CSS/styled-components
console.log(component.assets); // SVG icons, if any
```
### Generate from Existing Data
```javascript
// Transform data into visual component
const products = [
{ id: 1, name: "Laptop Pro", price: 1299, rating: 4.5 },
{ id: 2, name: "Wireless Mouse", price: 29, rating: 4.8 }
];
const productGallery = await designer.generateUI({
data: products,
componentType: "grid",
desiredStyle: "card-based with hover effects",
framework: "vue",
constraints: {
responsive: true,
darkMode: true,
animations: "smooth transitions"
}
});
// Output: Vue component with scoped styles
```
### Code-to-Canvas Translation
```javascript
// Visualize existing API logic
const apiCode = `
async function fetchUserStats(userId) {
const response = await fetch(\`/api/users/\${userId}/stats\`);
return response.json();
}
`;
const visualization = await designer.visualizeCode({
code: apiCode,
targetFormat: "dashboard-widget",
includeWireframe: true,
style: "modern-dashboard"
});
console.log(visualization.componentCode); // React/Vue component
console.log(visualization.wireframe); // SVG wireframe
console.log(visualization.suggestions); // UX improvement tips
```
## CLI Commands
### Interactive Console
```bash
# Launch design console
npx claude-design console --profile myproject.yml
# Inside console:
> generate component "User Profile Card" with avatar and stats
> visualize codebase
> optimize design consistency
> export component library
```
### One-off Generation
```bash
# Generate component from command line
npx claude-design generate \
--type "modal" \
--description "confirmation dialog with two buttons" \
--framework "react" \
--style "material-ui" \
--output "./components/ConfirmDialog.jsx"
# Code-to-design translation
npx claude-design translate \
--input "./src/api/userService.js" \
--output-type "dashboard" \
--framework "svelte"
# Batch generate from skill
npx claude-design skill apply \
--skill "claude-code-skill-data-visualization" \
--data "./data/sales.json" \
--output "./components"
```
## Configuration
### Profile File (`.claude-design-profile.yml`)
```yaml
project:
name: "E-Commerce Platform"
version: "2026.1"
design_system: "tailwind"
preferences:
primary_color: "#3B82F6"
secondary_color: "#10B981"
font_family: "Inter, system-ui, sans-serif"
border_radius: "0.5rem"
animation_style: "spring"
sub_agents:
enabled: true
alpha:
language_preference: "TypeScript"
strict_mode: true
omega:
design_principle: "atomic"
color_theory: "complementary"
sigma:
accessibility_level: "WCAG-AAA"
performance_budget: "mobile-first"
theta:
optimize_images: true
minify_css: true
tree_shake: true
api_routing:
primary: "claude"
fallback: "openai"
timeout: 30000
retry_attempts: 3
hooks:
- type: "before_generation"
action: "validate_input_schema"
- type: "after_generation"
action: "run_lighthouse_audit"
- type: "after_generation"
action: "check_accessibility"
marketplace:
auto_update: true
installed_plugins:
- "claude-code-plugin-responsive-grid"
- "claude-code-plugin-dark-mode-toggle"
skills:
- "claude-code-skill-accordion"
- "claude-code-skill-data-table"
- "claude-code-skill-modal"
```
### Programmatic Configuration
```javascript
const designer = new ClaudeDesign({
profile: {
project: {
name: "My App",
designSystem: "custom"
},
preferences: {
primaryColor: "#667eea",
fontFamily: "Poppins"
},
subAgents: {
enabled: true,
alpha: { languagePreference: "TypeScript" },
omega: { designPrinciple: "material" }
}
},
claudeApiKey: process.env.CLAUDE_API_KEY,
openaiApiKey: process.env.OPENAI_API_KEY
});
```
## Common Patterns
### Pattern 1: Design System Harmonization
```javascript
// Ensure all generated components match your design system
const designer = new ClaudeDesign({
profile: {
designSystem: "material_ui_v5"
}
});
const button = await designer.generateUI({
description: "primary action button",
ensureHarmony: true // Automatically uses Material UI tokens
});
// Output will use MUI's Button component and theme tokens
```
### Pattern 2: Skill Stacking
```javascript
// Combine multiple skills for complex components
const dashboard = await designer.composeFromSkills({
skills: [
{ name: "claude-code-skill-data-table", config: { sortable: true } },
{ name: "claude-code-skill-chart", config: { type: "line" } },
{ name: "claude-code-skill-filter-bar", config: { filters: ["date", "category"] } }
],
layout: "two-column",
framework: "react"
});
```
### Pattern 3: Responsive Generation
```javascript
// Generate with mobile-first breakpoints
const hero = await designer.generateUI({
description: "hero section with background image and CTA",
responsive: {
breakpoints: {
mobile: 320,
tablet: 768,
desktop: 1024,
wide: 1440
},
strategy: "mobile-first"
}
});
// Output includes @media queries and fluid typography
```
### Pattern 4: Sub-Agent Workflow
```javascript
// Use specific sub-agents for targeted tasks
const result = await designer.runWorkflow({
agents: ["alpha", "omega", "sigma"],
input: {
description: "user authentication form",
requirements: {
logic: "email validation, password strength",
design: "modern, accessible",
validation: "security best practices"
}
}
});
// Agent Alpha: Handles form validation logic
// Agent Omega: Designs form layout and styling
// Agent Sigma: Validates WCAG compliance and security
```
### Pattern 5: Hooks for Quality Control
```javascript
const designer = new ClaudeDesign({
hooks: [
{
type: "after_generation",
action: async (component) => {
// Custom validation
const contrastRatio = calculateContrast(
component.styles.textColor,
component.styles.backgroundColor
);
if (contrastRatio < 4.5) {
throw new Error("Insufficient color contrast");
}
}
}
]
});
const card = await designer.generateUI({
description: "info card"
});
// Hook runs automatically and validates contrast
```
## Framework-Specific Examples
### React with TypeScript
```typescript
import { ClaudeDesign, ComponentConfig } from 'claude-code-design-ai';
const designer = new ClaudeDesign({
claudeApiKey: process.env.CLAUDE_API_KEY
});
const config: ComponentConfig = {
description: "user notification toast",
framework: "react",
language: "typescript",
style: {
theme: "dark",
animations: "slide-in-right"
}
};
const toast = await designer.generateUI(config);
// Generated output includes:
// - NotificationToast.tsx
// - NotificationToast.module.css
// - types.ts (TypeScript interfaces)
```
### Vue 3 Composition API
```javascript
const modal = await designer.generateUI({
description: "confirmation modal with cancel and confirm actions",
framework: "vue",
vueVersion: 3,
compositionApi: true,
constraints: {
accessibility: "keyboard-navigable",
teleport: true
}
});
// Output: Vue 3 SFC with <script setup>, <template>, and <style scoped>
```
### Svelte
```javascript
const chart = await designer.generateUI({
description: "animated bar chart",
framework: "svelte",
data: salesData,
constraints: {
reactive: true,
animations: "smooth"
}
});
// Output: .svelte file with reactive $: statements
```
## Plugin System
### Installing Plugins
```bash
# From marketplace
npx claude-design plugin install claude-code-plugin-responsive-grid
# From local file
npx claude-design plugin install ./plugins/my-custom-plugin.js
```
### Creating Custom Plugins
```javascript
// my-gradient-plugin.js
module.exports = {
name: "gradient-enhancer",
version: "1.0.0",
transform: (component, options) => {
// Post-process generated component
if (options.gradientStyle === "cosmic") {
component.styles.background =
"linear-gradient(135deg, #667eea 0%, #764ba2 100%)";
}
return component;
},
hooks: {
afterGeneration: (component) => {
console.log("Gradient plugin applied");
}
}
};
```
```javascript
// Use plugin
const designer = new ClaudeDesign({
plugins: [
require('./my-gradient-plugin.js')
]
});
const hero = await designer.generateUI({
description: "hero section",
pluginOptions: {
gradientEnhancer: { gradientStyle: "cosmic" }
}
});
```
## Skills System
### Using Pre-built Skills
```javascript
// Apply accordion skill
const faq = await designer.applySkill({
skillName: "claude-code-skill-accordion",
data: [
{ question: "What is this?", answer: "An FAQ item" },
{ question: "How does it work?", answer: "Magic" }
],
options: {
multipleOpen: false,
animated: true
}
});
```
### Creating Custom Skills
```yaml
# my-skill.yml
name: custom-pricing-table
version: 1.0.0
description: Generate pricing tables with tier comparison
parameters:
- name: tiers
type: array
required: true
- name: highlightTier
type: number
default: 1
template:
framework: react
pattern: |
Grid layout with {tiers.length} columns
Highlight tier {highlightTier} with accent color
Include feature comparison checkmarks
Add CTA button for each tier
```
```bash
# Install custom skill
npx claude-design skill install ./my-skill.yml
```
## API Routing and Fallback
```javascript
// Configure intelligent routing
const designer = new ClaudeDesign({
apiRouting: {
rules: [
{
condition: (task) => task.complexity > 0.7,
route: "claude"
},
{
condition: (task) => task.type === "css-generation",
route: "openai"
}
],
fallback: "openai",
timeout: 30000
}
});
// System automatically routes to optimal API
const complexComponent = await designer.generateUI({
description: "interactive data visualization with animations"
// Routed to Claude for nuanced design reasoning
});
const simpleButton = await designer.generateUI({
description: "primary button"
// Routed to OpenAI for fast generation
});
```
## Troubleshooting
### API Key Issues
```javascript
// Verify API key configuration
const designer = new ClaudeDesign({
claudeApiKey: process.env.CLAUDE_API_KEY,
debug: true // Enable debug logging
});
try {
await designer.generateUI({ description: "test button" });
} catch (error) {
if (error.code === 'INVALID_API_KEY') {
console.error('Check your CLAUDE_API_KEY environment variable');
}
}
```
### Design System Conflicts
```javascript
// If generated components don't match your design system
const designer = new ClaudeDesign({
profile: {
designSystem: "custom",
customTokens: {
colors: {
primary: "#your-brand-color"
},
spacing: {
unit: 8 // 8px grid system
}
}
},
strictMode: true // Enforce design system compliance
});
```
### Performance Optimization
```bash
# Enable caching for faster generation
export CLAUDE_DESIGN_CACHE=true
# Use Theta agent for optimization
npx claude-design console --enable-theta
```
```javascript
// Optimize generated output
const component = await designer.generateUI({
description: "image gallery",
optimize: {
images: true, // Compress images
css: "minify", // Minify CSS
bundle: "tree-shake" // Remove unused code
}
});
```
### Accessibility Validation Failures
```javascript
// Get detailed accessibility report
const result = await designer.generateUI({
description: "login form",
accessibility: {
level: "WCAG-AAA",
verbose: true
}
});
if (result.accessibilityReport.errors.length > 0) {
console.log("Accessibility issues:", result.accessibilityReport.errors);
// Auto-fix if possible
const fixed = await designer.fixAccessibility(result.component);
}
```
### Sub-Agent Not Responding
```bash
# Check sub-agent status
npx claude-design status
# Restart specific agent
npx claude-design agent restart omega
# Reset all agents
npx claude-design agent reset-all
```
## Environment Variables
```bash
# Required
CLAUDE_API_KEY=your-claude-api-key
OPENAI_API_KEY=your-openai-api-key
# Optional
CLAUDE_DESIGN_PROFILE=/path/to/profile.yml
CLAUDE_DESIGN_CACHE=true
CLAUDE_DESIGN_DEBUG=false
CLAUDE_DESIGN_TIMEOUT=30000
CLAUDE_DESIGN_OUTPUT_DIR=./generated
```
## Integration Examples
### With Next.js
```javascript
// pages/api/generate-component.js
import { ClaudeDesign } from 'claude-code-design-ai';
const designer = new ClaudeDesign({
claudeApiKey: process.env.CLAUDE_API_KEY
});
export default async function handler(req, res) {
const { description, style } = req.body;
const component = await designer.generateUI({
description,
framework: "react",
style,
ssr: true // Next.js optimized
});
res.status(200).json({ component });
}
```
### With Vite
```javascript
// vite.config.js
import { defineConfig } from 'vite';
import claudeDesignPlugin from 'claude-code-design-ai/vite-plugin';
export default defineConfig({
plugins: [
claudeDesignPlugin({
profile: './design-profile.yml',
watch: true // Auto-regenerate on changes
})
]
});
```
### With CI/CD
```yaml
# .github/workflows/design-check.yml
name: Design Consistency Check
on: [pull_request]
jobs:
design-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Check design consistency
run: |
npx claude-design validate --profile ./design-profile.yml
npx claude-design audit --accessibility WCAG-AA
env:
CLAUDE_API_KEY: ${{ secrets.CLAUDE_API_KEY }}
```
## Best Practices
1. **Always use environment variables** for API keys
2. **Define a design profile** for consistency across generated components
3. **Enable sub-agents** for complex UI generation
4. **Use hooks** for automated quality checks
5. **Leverage skills** for common patterns instead of describing from scratch
6. **Set accessibility level** in profile (minimum WCAG-AA)
7. **Enable caching** in production for faster subsequent generations
8. **Use framework-specific options** (e.g., `ssr: true` for Next.js)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!