A modern, interactive keyboard application built with Next.js that allows users to switch between Mac and Windows keyboard layouts with realistic typing experience, haptic feedback, and customizable themes.
- Authentic Mac Layout: Complete Mac-style keyboard with Command, Option, and Fn keys
- Mac-specific Icons: Brightness, volume, and media control keys with proper icons
- Realistic Styling: Mac-inspired design with rounded corners and proper key spacing
- Windows Layout: Standard Windows keyboard arrangement with Ctrl, Alt, and Windows keys
- Windows Branding: Official Windows logo on modifier keys
- Traditional Design: Classic Windows keyboard styling
- 6 Beautiful Themes: Classic, Mint, Royal, Dolch, Sand, and Scarlet color schemes
- Theme Switcher: Easy-to-use theme selection interface
- Consistent Styling: Themes apply to both Mac and Windows keyboards
- Real-time Typing: Responds to physical keyboard input
- Visual Feedback: Keys animate when pressed
- Sound Effects: Realistic keyboard typing sounds
- Haptic Feedback: Tactile response on supported devices
- Mouse/Touch Support: Click or tap keys to interact
- Platform Selector: Toggle between Mac and Windows keyboards
- Brand Icons: Official Apple and Windows logos for clear identification
- Smooth Transitions: Animated switching between keyboard layouts
- Node.js 18+
- npm, yarn, pnpm, or bun
-
Clone the repository
git clone <your-repo-url> cd keyboard
-
Install dependencies
npm install # or yarn install # or pnpm install # or bun install
-
Run the development server
npm run dev # or yarn dev # or pnpm dev # or bun dev
-
Open your browser Navigate to http://localhost:3000 to see the application in action.
npm run build
npm startThe easiest way to deploy is using the Vercel Platform from the creators of Next.js.
keyboard/
โโโ src/
โ โโโ app/
โ โ โโโ page.tsx # Main application page
โ โ โโโ layout.tsx # Root layout
โ โ โโโ globals.css # Global styles
โ โโโ components/
โ โ โโโ ui/
โ โ โ โโโ mackeyboard.tsx # Mac keyboard component
โ โ โ โโโ windowskeyboard.tsx # Windows keyboard component
โ โ โ โโโ button.tsx # UI button component
โ โ โโโ themechoose.tsx # Theme selector
โ โ โโโ contact.tsx # Contact component
โ โโโ lib/
โ โโโ utils.ts # Utility functions
โโโ public/
โ โโโ sounds/
โ โโโ sound.ogg # Keyboard typing sound
โโโ README.md
- Select Keyboard Type: Use the Apple/Windows buttons at the top to switch between keyboard layouts
- Choose Theme: Pick your preferred color scheme from the theme selector
- Type: Use your physical keyboard or click/tap the on-screen keys
- Experience: Enjoy realistic typing with sound and haptic feedback
- Next.js 16: React framework with App Router
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first styling
- Tabler Icons: High-quality icon library
- Web Haptics: Haptic feedback API
- React Hooks: State management and effects
- Authentic Mac layout with modifier keys
- Mac-specific function key icons
- Proper key sizing and spacing
- Standard Windows layout
- Windows branding on modifier keys
- Traditional key arrangement
- Interactive theme selector
- Real-time theme switching
- Consistent theming across keyboards
Edit the keyboard components to add new color schemes in the KEYBOARD_THEMES object.
Update the KeyboardLayout function in either keyboard component to customize key arrangement.
Replace /public/sounds/sound.ogg with your preferred typing sound file.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project is open source and available under the MIT License.
- Next.js - The React framework
- Tabler Icons - Beautiful icon library
- Tailwind CSS - Utility-first CSS framework
- Web Haptics - Haptic feedback API
Built with โค๏ธ using Next.js and TypeScript