A lightweight colour picker application built with Tauri for extracting colours from images.
This application collects absolutely no data. All image processing happens locally on your device. No analytics, no tracking, no telemetry. Images never leave your computer.
This application uses Tauri instead of Electron to achieve significantly smaller build sizes and lower resource usage. The final application is approximately 90% smaller than an equivalent Electron build, with substantially reduced memory footprint during runtime.
Key benefits:
- 10-20MB application size vs 100-200MB for Electron
- 60-70% lower memory usage
- Better performance through Rust backend
- Enhanced security via Tauri's permission system
- Reduced distribution bandwidth
- Click to load images from your computer
- Real-time colour preview with magnifier
- Pixel-perfect colour selection
- Multiple colour format outputs (HEX, RGB, HSL, HSV)
- Colour scheme generator (complementary, analogous, triadic, tetradic, split-complementary, monochromatic)
- One-click copy to clipboard
- MonaspaceNeon typography
- Drag and drop image loading (currently affected by WebKit bug #265857 in Tauri v2)
Before building or running this application:
- Node.js (v18 or later) - Download
- Rust (latest stable) - See installation below
macOS/Linux:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shWindows: Download and run rustup-init.exe
After installation, restart your terminal and verify:
rustc --version
cargo --versionInstall Xcode Command Line Tools:
xcode-select --install-
Clone or download this repository
-
Navigate to the project directory:
cd colour-picker-app -
Install dependencies:
npm install
Run the application in development mode:
npm run devnpm run buildnpm run build:macnpm run build:debugAfter building, find the application in:
- macOS:
src-tauri/target/release/bundle/dmg/ - Windows:
src-tauri/target/release/bundle/msi/ - Linux:
src-tauri/target/release/bundle/appimage/
macOS:
- Open the generated DMG file from
src-tauri/target/release/bundle/dmg/ - Drag the Colour Picker app to Applications
- Launch from Applications or Spotlight
Note: For distribution outside development, sign the app with an Apple Developer certificate.
colour-picker-app/
├── src/
│ ├── index.html # Main application UI
│ └── fonts/ # MonaspaceNeon font files
├── src-tauri/
│ ├── src/
│ │ └── main.rs # Rust backend
│ ├── icons/ # Application icons
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Tauri configuration
├── package.json
├── README.md
└── .gitignore
The app bundle identifier is set in src-tauri/tauri.conf.json:
"identifier": "com.colourpicker.app"Change this to your own reverse-domain identifier if distributing the app.
Default window size is 1000x800. To change, edit src-tauri/tauri.conf.json:
"windows": [{
"width": 1000,
"height": 800,
"minWidth": 800,
"minHeight": 600
}]For production distribution on macOS:
- Enroll in the Apple Developer Program
- Get a Developer ID certificate
- Update
src-tauri/tauri.conf.jsonwith signing information - Build with
npm run build
If you get an error about Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shThis happens with unsigned apps. To bypass on macOS:
xattr -cr "/Applications/Colour Picker.app"- Check the console for errors
- Ensure all dependencies are installed:
npm install - Verify Rust is installed:
rustc --version
- Ensure latest Node.js (v18+) and Rust are installed
- Check that dependencies installed successfully
- On macOS, verify Xcode Command Line Tools are installed
- Frontend: HTML5, CSS3, JavaScript
- Backend: Rust
- Framework: Tauri 2.x
- Build Tool: Cargo + npm
- Canvas API: Image manipulation
- Typography: MonaspaceNeon
- HEX: #RRGGBB
- RGB: rgb(r, g, b)
- HSL: hsl(h, s%, l%)
- HSV: hsv(h, s%, v%)
- Complementary
- Analogous
- Split Complementary
- Triadic
- Tetradic
- Monochromatic
MIT Licence - free to use for personal or commercial purposes.
Developed by Tsuga Digital Inc.
- Tauri team for the framework
- Rust community
- MonaspaceNeon font by GitHub Next