Chromatic is an engaging two-player ice-breaking game designed to help developers connect and have fun at GDG Davao events. The game combines strategy, luck, and quick thinking in a colorful, interactive experience.
- Rock Paper Scissors - Two players battle for control
- Spin the Wheel - Winner spins the colorful wheel to determine question category
- Answer Fast - 90 seconds to answer a color-coded question
- Connect & Share - Break the ice and build community
- Interactive Gameplay: Rock Paper Scissors with animated hand gestures
- Colorful Wheel: GSAP-powered spinning wheel with Google's brand colors
- Dynamic Questions: Google-themed questions across 4 color categories
- Smooth Animations: Fluid transitions and engaging visual effects
- Responsive Design: Works perfectly on desktop and mobile devices
- Accessibility: Built with accessibility in mind
- Node.js 18+ or Bun 1.0+
# Clone the repository
git clone https://github.com/gdgdavao/chromatic.git
cd chromatic
# Install dependencies (using Bun - recommended)
bun install
# Or using npm
npm install
# Or using yarn
yarn install# Start development server
bun dev
# Or using npm
npm run dev
# Or using yarn
yarn devOpen http://localhost:5173 to view it in the browser.
# Build for production
bun run build
# Or using npm
npm run build
# Or using yarn
yarn buildThe build artifacts will be stored in the dist/ directory.
- Frontend Framework: React 19.1.1 with TypeScript
- Build Tool: Vite 7.1.2
- Styling: Tailwind CSS 4.1.13
- Animations: GSAP 3.13.0 with React integration
- Package Manager: Bun (recommended) / npm / yarn
- Deployment: Static hosting (Vercel, Netlify, etc.)
chromatic/
โโโ public/
โ โโโ favicon.svg # App icon
โ โโโ icon.svg # Social media image
โโโ src/
โ โโโ components/
โ โ โโโ ChromaticGame.tsx # Main game component
โ โ โโโ Onboarding.tsx # Welcome/tutorial screens
โ โโโ assets/
โ โ โโโ icon.svg # Game icon
โ โโโ App.tsx # Root component
โ โโโ main.tsx # Entry point
โ โโโ index.css # Global styles
โโโ index.html # HTML template with social meta tags
โโโ package.json # Dependencies and scripts
โโโ vite.config.ts # Vite configuration
โโโ tsconfig.json # TypeScript configuration
โโโ README.md # This file
The main game component featuring:
- Rock Paper Scissors logic with automated gameplay
- GSAP-powered spinning wheel with precise landing mechanics
- Question system with Google-themed content
- Timer and scoring system
- Smooth animations and visual effects
Interactive tutorial screens including:
- Welcome screen with animated logo
- Step-by-step game explanation
- Smooth transitions between screens
- Accessibility considerations
The game uses Google's brand colors:
- Red:
#ea4335- Google Red - Green:
#34a853- Google Green - Blue:
#4285f4- Google Blue - Yellow:
#fbbc05- Google Yellow
- Primary Font: Roboto (Google Fonts)
- Weights: 400 (Regular), 500 (Medium), 700 (Bold)
- GSAP: For complex animations and transitions
- CSS Transitions: For hover states and micro-interactions
- Reduced Motion: Respects user preferences
We welcome contributions from the community! Here's how you can help:
- Use the GitHub Issues page
- Include steps to reproduce, expected vs actual behavior
- Provide browser/device information
- Open an issue with the "enhancement" label
- Describe the feature and its benefits
- Consider implementation complexity
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Follow the existing code style
- Add TypeScript types where needed
- Test your changes thoroughly
- Commit your changes
git commit -m 'Add amazing feature' - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- Code Style: Follow existing patterns and use Prettier
- TypeScript: Add proper types for all new code
- Testing: Test on multiple devices and browsers
- Accessibility: Ensure keyboard navigation and screen reader support
- Performance: Keep animations smooth and optimize for mobile
- New Question Categories: Add more Google-themed questions
- Game Modes: Implement different gameplay variations
- Accessibility: Improve screen reader support
- Internationalization: Add multi-language support
- Performance: Optimize animations and bundle size
- Documentation: Improve code comments and guides
This project is licensed under the MIT License - see the LICENSE file for details.
Made with โค๏ธ by GDG Davao