SWATCH
theunpartyswatch
Location: unparty-app/theunpartyswatch
Status: Active Development
Primary Purpose: Brand identity and color palette management system
Overview
theunpartyswatch is UNPARTY's centralized color palette and brand identity management tool. It provides an interactive interface for managing, organizing, and exporting color swatches that define the UNPARTY brand aesthetic. The application enables designers and developers to maintain brand consistency across all UNPARTY products by providing a single source of truth for color values and naming conventions.
Tech Stack
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- UI Library: React 18
- Styling: Tailwind CSS 3.4
- Icons: Lucide React
- Platform: Web (Vercel-ready)
- Build Tool: Next.js Build System
Key Features
Core Functionality
- Color Library Management: Pre-defined UNPARTY brand colors with semantic naming
- Dynamic Color Addition: Add custom colors with name and hex code on the fly
- Palette Builder: Create up to 5-color palettes from the available color library
- Interactive Swatch Selection: Click-to-add color selection system
- Color Removal: Remove colors from active palette with one-click deletion
- Real-time Preview: Live color visualization with name and hex display
Brand Colors Collection
The application ships with 20 carefully curated UNPARTY brand colors:
- Core Identity Colors:
unparty(#f9c22e),champion(#E7B12E),unpartypurple(#29284E) - Black Variations:
pushblack,richblack,cousinblack,pinkyblack,silverblack,purpleblack,pupblack,astroblack,starblack,anotherlove - Accent Colors:
deepSpace,midnightBlue,electricPurple,neonYellow,softWhite,neonPink,electricBlue
Design System Integration
- Custom Typography: Gagalin font family for brand headers
- Responsive Grid Layout: 5-column color grid for desktop, responsive for mobile
- Dark Mode Optimized: Dark background (#0a0a0a) with high-contrast text
- Brand Typography: Geist Mono for titles, Nunito for body text
Architecture
Code
Web Application (Next.js 14)
├── Pages (App Router)
│ ├── page.tsx (Home - Color Palette Interface)
│ └── layout.tsx (Root Layout)
├── Components
│ └── ColorPaletteApp.tsx (Main interactive component)
├── Styling
│ ├── globals.css (UNPARTY brand variables)
│ └── tailwind.config.ts (Tailwind configuration)
├── Assets
│ ├── Gagalin-Regular.otf (Brand font)
│ └── Gagalin-Regular.ttf (Brand font fallback)
└── Data
└── colors_20250728_142116.txt (Color usage analytics)Component Architecture
Code
ColorPaletteApp (Main Component)
├── State Management
│ ├── colors[] (All available colors)
│ ├── palette[] (Active 5-color palette)
│ ├── newColorName (Form input)
│ └── newColorHex (Form input)
├── UI Sections
│ ├── Add New Color Form
│ ├── Active Palette Display (max 5 colors)
│ └── All Colors Grid (clickable swatches)
└── Interactions
├── addColor() (Add to library)
├── addToPalette() (Add to active palette)
└── removeFromPalette() (Remove from palette)Getting Started
Prerequisites
- Node.js 20+ or compatible runtime
- npm, yarn, pnpm, or bun package manager
Installation
bash
# Clone the repository
git clone https://github.com/unparty-app/theunpartyswatch.git
# Navigate to project directory
cd theunpartyswatch
# Install dependencies
npm installDevelopment
bash
# Start development server
npm run dev
# Open browser to http://localhost:3000Production Build
bash
# Create optimized production build
npm run build
# Start production server
npm startLinting
bash
# Run ESLint
npm run lintIntegration Points
Internal UNPARTY Services
- Color Usage Analytics: Generates color usage reports (
colors_20250728_142116.txt) - Brand Assets: Sources Gagalin font family from repository root
- Design System: Exports color values for use across UNPARTY ecosystem
External Services
- Google Fonts: Geist Mono, Nunito, Flow Rounded, Major Mono Display
- Vercel: Deployment platform (production-ready)
- Lucide React: Icon system for UI elements
Potential Integrations
- theunpartyapp: Export color palettes for web platform themes
- theunpartyunppp: Share color values for native app styling
- theunpartycrawler: Analyze color usage across conversation analytics
- Design Systems: Export to CSS variables, Tailwind config, or JSON
Business Value
ABOUT (Understanding)
theunpartyswatch helps stakeholders understand the UNPARTY brand identity by:
- Providing visual reference for all approved brand colors
- Documenting color naming conventions and semantic meaning
- Showcasing the relationship between color families (blacks, purples, accents)
- Offering a searchable, organized color library
BUILD (Creation)
theunpartyswatch enables creators to build consistent brand experiences by:
- Providing hex codes for immediate use in development and design
- Allowing experimentation with color combinations through palette builder
- Supporting dynamic color addition for rapid prototyping
- Exporting color values for integration into design systems and code
CONNECT (Sharing)
theunpartyswatch facilitates connection between team members by:
- Creating a shared vocabulary for color discussions
- Enabling designers and developers to reference the same color values
- Supporting rapid color palette creation for presentations and mockups
- Providing a single source of truth for brand color decisions
Relationship to Ecosystem
Data Flow
Cross-Repository Dependencies
- Serves: All UNPARTY repositories requiring brand color values
- Consumes: None (foundational design system tool)
- Integrates: Design workflows, development workflows, documentation
Use Cases Across Ecosystem
- Web Development (
theunpartyapp): Export color palette to CSS variables or Tailwind config - Native Development (
theunpartyunppp): Reference hex codes for SwiftUI Color definitions - Documentation (
theunpartyrunway): Use color swatches in architecture diagrams and docs - Analytics (
theunpartycrawler): Analyze color usage patterns in generated HTML reports
Brand Color Philosophy
Color Families
1. Gold/Yellow (Primary Identity)
- unparty (#f9c22e) - Primary brand color
- champion (#E7B12E) - Secondary gold variant
2. Purple/Blue (Secondary Identity)
- unpartypurple (#29284E) - Core purple
- midnightBlue (#190061) - Deep contrast
- electricPurple (#3500D3) - Accent highlight
3. Black Variations (Depth & Sophistication)
- 10 semantic black variants for nuanced backgrounds and UI elements
- Range from pure black (#000108) to purple-tinted darks (#6C6BB4)
4. Accent Colors (Energy & Contrast)
- neonYellow (#FFF700) - High-energy highlights
- neonPink (#FF00FF) - Vibrant accent
- electricBlue (#00FFFF) - Cool contrast
Development Guidelines
Adding New Colors
- Use the "Add New Color" form in the UI
- Provide a semantic name (lowercase, no spaces)
- Use 6-digit hex code format (#RRGGBB)
- Test color contrast against dark backgrounds
Color Naming Conventions
- Use descriptive, semantic names (not generic like "color1")
- Include family suffix for related colors (e.g., "pushblack", "richblack")
- Avoid abbreviations unless widely understood
- Keep names lowercase for consistency
Palette Constraints
- Maximum 5 colors per palette (design constraint)
- Remove colors before adding new ones if at capacity
- Consider color contrast and harmony when building palettes
File Structure
Code
theunpartyswatch/
├── public/ # Static assets
├── src/
│ └── app/
│ ├── components/
│ │ └── ColorPaletteApp.tsx # Main interactive component
│ ├── favicon.ico
│ ├── globals.css # UNPARTY brand variables & styles
│ ├── layout.tsx # Root layout with metadata
│ └── page.tsx # Home page
├── Gagalin-Regular.otf # Brand font (OpenType)
├── Gagalin-Regular.ttf # Brand font (TrueType)
├── colors_20250728_142116.txt # Color usage analytics
├── next.config.mjs # Next.js configuration
├── package.json # Dependencies & scripts
├── postcss.config.mjs # PostCSS configuration
├── tailwind.config.ts # Tailwind CSS configuration
└── tsconfig.json # TypeScript configurationDesign Decisions
Why Next.js 14?
- Server Components for optimal performance
- App Router for modern routing patterns
- Built-in TypeScript support
- Vercel deployment optimization
Why Client-Side State Management?
- Simple, self-contained application
- No need for persistent storage (yet)
- Fast, responsive user interactions
- Easy to extend with database later
Why 5-Color Palette Limit?
- Encourages focused, cohesive color schemes
- Prevents palette bloat and decision fatigue
- Aligns with design system best practices
- Supports "less is more" philosophy
Future Enhancements
Short-term
- Export palette to JSON, CSS variables, or Tailwind config
- Color search and filtering
- Color contrast checker (WCAG compliance)
- Keyboard shortcuts for power users
Medium-term
- Save and load palettes (localStorage or database)
- Color harmony suggestions (complementary, analogous, triadic)
- Import colors from images or URLs
- Share palettes via URL
Long-term
- Integration with Figma/Sketch for design handoff
- AI-powered color palette generation
- Version control for color system changes
- Analytics dashboard for color usage across UNPARTY products
Contributing to This Repository
Adding New Brand Colors
- Update
initialColorsarray inColorPaletteApp.tsx - Follow naming conventions (semantic, lowercase)
- Test color on dark background
- Update this README with new color category if applicable
Modifying Brand Variables
- Edit CSS variables in
src/app/globals.css - Test changes across all UI states
- Update documentation with rationale
Extending Functionality
- Maintain TypeScript strict typing
- Follow existing component patterns
- Test on mobile and desktop viewports
- Update README with new features
Color Usage Analytics
The repository includes colors_20250728_142116.txt, which tracks color usage across the project:
- Most used colors:
#000000(44 times),#ffffff(24 times) - UNPARTY brand colors frequency
- Hex code variations (3-digit vs 6-digit)
This file can be regenerated to track color adoption and identify unused or redundant colors.
Security & Privacy
Data Handling
- No user data collection
- No external API calls (except Google Fonts)
- No cookies or localStorage (currently)
- Client-side only application
Brand Asset Protection
- Gagalin font files are proprietary UNPARTY assets
- Color names and values are UNPARTY intellectual property
- Use within UNPARTY ecosystem only unless explicitly licensed
Deployment
Vercel (Recommended)
bash
# Install Vercel CLI
npm i -g vercel
# Deploy to Vercel
vercelDocker (Alternative)
dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
CMD ["npm", "start"]Troubleshooting
Build Fails with Font Error
- Check internet connection for Google Fonts
- Verify Gagalin font files are in repository root
- Try clearing
.nextcache:rm -rf .next
Colors Not Displaying
- Check CSS variables in
globals.css - Verify hex codes are valid 6-digit format
- Inspect browser console for errors
Palette Not Adding Colors
- Ensure palette has fewer than 5 colors
- Check browser console for JavaScript errors
- Verify color object has both
nameandhexproperties
License
Proprietary - UNPARTY LLC
All rights reserved.
Support & Contact
- Issues: GitHub Issues
- Organization: UNPARTY GitHub
- Ecosystem Documentation: See main UNPARTY ecosystem README
Related Documentation
- Main UNPARTY Ecosystem README
theunpartyapp- Web platform using these colorstheunpartyunppp- Native app using these colorstheunpartyrunway- Development tools and workflowstheunpartycrawler- Analytics that may reference brand colors
Last Updated: 2025-10-30
Repository Status: ✅ Active Development
Ecosystem Role: 🎨 Brand Identity Foundation
Focus: Single source of truth for UNPARTY color values and brand aesthetic