Color palette generator for designers, developers and creatives
ColorsForge extracts dominant colors from any image using a k-means clustering algorithm that runs entirely in your browser — your photos never leave your device. It also lets you build palettes manually using a color wheel, explore color harmony relationships, save favorites locally, share palettes by URL, and export portrait-format JPGs ready for Instagram. Everything is free, no account required.
Drop any photo, screenshot, illustration or product shot onto the dropzone and ColorsForge pulls the four most dominant colors using client-side k-means with 22 iterations. The algorithm downscales the image to a 200px working copy before processing, so even large files extract in under a second. Because everything runs in the browser, your images are never uploaded anywhere — which also means it works on a plane.
The color wheel panel shows your palette colors positioned on an HSL wheel and lets you explore five harmony types: Complementary (opposite hue), Analogous (adjacent hues), Triadic (120° intervals), Split-complementary and Tetradic (four equidistant hues). Harmony colors can be added directly to your active palette. The wheel renders using a per-pixel HSL-to-RGB calculation drawn onto an HTML5 Canvas — no image assets needed.
Every palette generates a unique URL using the hex codes as a hash fragment — for example #264653-2a9d8f-f4a261-e76f51. Sharing that URL lets anyone open the exact same palette. The URL updates automatically as you edit colors, so you can copy it at any point. Palette URLs work without JavaScript for the hash itself; the JS layer handles rendering the mosaic and populating the color blocks.
The Explore tab shows palettes saved to the public archive, sorted by likes. Each palette can be tagged with up to two base colors and up to three mood descriptors before saving, which makes the archive filterable. Clicking any color block in the explore view copies its hex code to the clipboard. Liking a palette is anonymous — no account, no tracking beyond the like count stored in the database.
The Bookmark button saves the current palette to your browser's localStorage — no server involved, no account needed. Bookmarks persist across sessions in the same browser and are listed in the Saved tab. Each saved palette shows its hex codes and any tags it was saved with. Loading a saved palette restores it as the active palette, including color names if you customized them.
Download renders a 1080×1350px JPEG — the exact dimensions Instagram uses for portrait posts — with the mosaic layout, named color blocks, hex codes and a colorsforge.app attribution. The card uses the same grid layout as the in-browser preview. If you uploaded a source image, it's used as the card background at reduced opacity. Without a source image, a gradient derived from the two dominant colors fills the background.
How to use ColorsForge
There are three ways to start a palette. Upload an image — any photo works, from a landscape to a brand logo — and the extractor does the work. Hit Randomize to generate a harmonically coherent palette from a random hue. Or click any color block on the mosaic card to edit that color directly using a color picker, hex input, or color name field. The wheel panel gives you harmony suggestions you can add one at a time.
Frequently asked questions
The image is scaled to fit within a 200×200px bounding box, then every non-transparent pixel is sampled (or every nth pixel if the image is large, to stay under ~3500 sample points). Those RGB triplets are clustered into 4 groups using k-means++ initialization and 22 Lloyd's algorithm iterations. The cluster centroid with the most assigned pixels is the most dominant color.
Color names use a nearest-neighbor lookup against a table of about 200 named colors stored in the browser. For any extracted or picked hex value, the algorithm finds the entry in that table with the smallest squared Euclidean distance in RGB space. The lookup results are cached in a session object so the same hex is never scanned twice. You can override any name by clicking the edit button on a color block.
No. The archive is free and open. The only limit is the tag selection — you can apply up to 2 color tags and 3 mood tags before saving, which keeps the filter system usable. Palettes in the archive can be liked by anyone without logging in. There's no moderation queue; palettes appear immediately after saving.