# Color Wheel Palette Generator An interactive color palette generator built with React, TypeScript, and Tailwind CSS v4. Pick a base color on a color wheel, choose a harmony type, adjust tint/shade, and export palettes in multiple formats. ## Features - **Interactive Color Wheel** — Canvas-based HSL wheel with drag-to-select hue and saturation. Touch support for mobile. - **7 Harmony Types** — Complementary, Split-Complementary, Analogous, Triadic, Tetradic, Square, Monochromatic. - **Tint & Shade Slider** — Adjust lightness in real-time. - **Color Input** — Enter HEX values directly, view RGB/HSL, adjust via RGB sliders. - **Click-to-Copy** — Copy any color value (HEX, RGB, HSL) to clipboard. - **Export** — CSS variables, JSON, Tailwind config snippet, or PNG image. - **Dark / Light Theme** — Toggle between dark and light modes. - **Responsive** — Mobile-first layout with horizontal scroll palette on small screens. ## Setup ```bash npm install npm run dev ``` Open `http://localhost:5173` in your browser. ## Build ```bash npm run build npm run preview ``` ## Architecture ``` src/ ├── components/ # UI components │ ├── ColorWheel/ # Canvas-based color wheel with pointer events │ ├── PaletteDisplay/ # Generated swatch grid │ ├── HarmonySelector/ # Dropdown for harmony type │ ├── ColorInput/ # HEX/RGB/HSL inputs and sliders │ ├── TintShadeSlider/ # Lightness adjustment │ ├── ExportPanel/ # CSS/JSON/Tailwind/PNG export │ ├── Header/ # App header with theme toggle │ └── MobileNav/ # Bottom sheet navigation for mobile ├── hooks/ │ ├── useColorWheel.ts # Wheel interaction (drag, position calculation) │ └── useColorHarmony.ts # Harmony palette generation ├── utils/ │ ├── colorConversions.ts # HEX <-> RGB <-> HSL converters │ └── harmonies.ts # Harmony algorithms ├── App.tsx # Main layout ├── main.tsx # Entry point └── index.css # Tailwind directives + theme variables ``` ## Harmony Algorithms | Type | Colors Generated | |---|---| | Complementary | Base + 180° | | Split-Complementary | Base, +150°, +210° | | Analogous | -30°, Base, +30° | | Triadic | Base, +120°, +240° | | Tetradic | Base, +90°, +180°, +270° | | Square | Base, +90°, +180°, +270° | | Monochromatic | Same hue, varied S/L | ## MCP Integration The project includes MCP server configuration in `.claude/settings.json`: - **Figma MCP** — Connect to Figma to read design files and create new frames. - **Chrome DevTools MCP** — Debug the running app, inspect elements, and validate layouts. ## Tech Stack - React 19 + TypeScript - Vite - Tailwind CSS v4 - HTML5 Canvas API - Clipboard API