https://github.com/fgrgic/hextimator
hextimator: generate perceptually uniform color palettes at runtime with accessibility guarantees
https://github.com/fgrgic/hextimator
accessibility agentic-ai agents color contrast creator designtokens generator multi-tenant oklch palette rgb rgb2oklch theme theme-development theme-switcher theme-ui themin wcag
Last synced: 9 days ago
JSON representation
hextimator: generate perceptually uniform color palettes at runtime with accessibility guarantees
- Host: GitHub
- URL: https://github.com/fgrgic/hextimator
- Owner: fgrgic
- License: mit
- Created: 2026-03-04T06:53:52.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-06-11T06:00:26.000Z (about 1 month ago)
- Last Synced: 2026-06-28T17:05:19.638Z (20 days ago)
- Topics: accessibility, agentic-ai, agents, color, contrast, creator, designtokens, generator, multi-tenant, oklch, palette, rgb, rgb2oklch, theme, theme-development, theme-switcher, theme-ui, themin, wcag
- Language: TypeScript
- Homepage: https://hextimator.com
- Size: 21.6 MB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# hextimator
Per-tenant themes from a single brand color: runtime theming for B2B2C and white-label apps.
Your customers pick a brand color. Your app looks good. Every time. No per-customer design reviews, no manual tuning, no edge cases where that shade of yellow breaks your UI.
Try it in the playground: **[hextimator.com](https://hextimator.com)**
## Why `hextimator` exists
You are shipping a B2B, B2B2C, or white-label app. Every tenant brings their own brand color. The options today are:
- **Let them pick any hex**. Now legal-pad yellow buttons become unreadable; cheeto tangerine toasts look identical to your warning state.
- **Curate a palette**. Now you are telling a paying customer their brand color is not allowed.
hextimator is option three. **One color in, whole theme out.** Light and dark, semantic roles and surfaces, WCAG contrast by default (AAA unless you opt down). Even for yellow. Palettes are built in OKLCH (gamut-mapped to sRGB); pure computation, SSR-friendly, with optional React and CLI.
## Documentation
Full API docs, options reference, React hook, Tailwind v4 setup, and examples live in the [package README](./packages/hextimator/README.md).
## Monorepo structure
| Workspace | Path | Description |
| ------------ | ---------------------- | ----------------------------------------------------------------------------------------------------- |
| `hextimator` | `packages/hextimator/` | The publishable npm package |
| `website` | `apps/website/` | Landing page ([hextimator.com](https://hextimator.com)) |
| `playground` | `apps/playground/` | React app for testing in the browser ([playground.hextimator.com](https://playground.hextimator.com)) |
## Dev workflow
```bash
bun install # install all workspaces
```
Run the playground and the package in watch mode:
```bash
bun run dev:playground
```
Run the website and the package in watch mode:
```bash
bun run dev:website
```
> The playground imports from `dist/`, so keep the package's `bun run dev` running to auto-rebuild on changes.
## Contributing
Issues and PRs are welcome at [github.com/fgrgic/hextimator](https://github.com/fgrgic/hextimator/issues).
## License
[MIT](./LICENSE.md).