Material You themes crafted and shared by the community. Browse, vote, and apply them straight from the ColorBlendr app.
Craft your palette in ColorBlendr — seed colors, Monet styles, saturation, per-shade overrides.
Submit anonymously from the app. Every creation is human-reviewed before it goes live.
One tap in the app themes your whole device with any community creation.
Android 12 introduced Monet: the system derives a tonal palette from your wallpaper and locks you out of the rest. ColorBlendr works at the layer underneath. It builds its palettes on-device — six tonal rows, thirteen shades each — and injects them at runtime through the FabricatedOverlay API or the system's theme customization settings. No APK overlays are compiled. No system partition is touched. Removing a theme is the same operation as applying one.
Every change previews live inside the app before anything reaches the system. A staged preferences layer holds your edits in memory; commit applies the overlay, discard drops it. The engine re-applies your configuration on boot, wallpaper change, and dark-mode switches through event-driven broadcast receivers — there is no polling loop.
The full engine. Fabricated overlays register directly with the system's overlay service — palette changes land instantly, without reboot.
No root required. ColorBlendr runs a helper process at shell privilege through Shizuku and writes the system's theme customization settings directly.
The same shell-privilege path, negotiated on-device over the ADB TLS protocol. Pair once with your own device; no computer involved afterward.
| Capability | ColorBlendr | Stock Android 12+ | OEM Theming | Substratum (legacy) |
|---|---|---|---|---|
| Apply speed | Instant, runtime | Wallpaper change + regeneration | Instant, preset-bound | Reboot or SystemUI restart |
| Works without root | Yes — Shizuku or Wireless ADB | Yes | Yes | Mostly no1 |
| Custom seed color | Any color, any source | Wallpaper-derived only | Preset packs | Per-overlay, precompiled |
| Per-shade manual overriding | Yes — 5 rows × 11 editable tones2 | No | No | Only if the overlay author shipped it |
| Saturation / lightness control | Sliders, 0–200%, per mode2 | No | Limited presets | No |
| Pitch-black AMOLED rendering | Yes, one switch2 | No | Partial3 | Per-overlay |
| Storage footprint | None — overlays fabricated in memory | None | None | APK per overlay, accumulates |
| Survives OS updates | Yes — re-applies from saved config | Yes | Yes | Frequently breaks, needs rebuilds |
| Community sharing | Anonymous, human-reviewed, in-app | No | Locked to OEM stores | Third-party packs, unreviewed |
1. Substratum's rootless "Andromeda" mode required a PC tether per boot and died with Android 10.
2. Root mode only; Shizuku and Wireless ADB modes cover seed color and style selection.
3. OEM dark modes darken surfaces but rarely reach true #000000 across system UI.
Through FabricatedOverlay — an Android 12+ API that registers resource overlays with the OverlayManagerService at runtime. Nothing is written to /system or /vendor, no APK is installed, and no partition is remounted. Unregistering the overlay restores stock behavior in the same second.
In Shizuku and Wireless ADB modes, ColorBlendr instead writes the documented theme_customization_overlay_packages secure setting — the same mechanism the stock wallpaper picker uses, with more of its fields filled in.
OneUI's system apps read from Samsung's own palette pipeline, not Monet. ColorBlendr replaces the Monet palette, so every app that honors Material You — Google apps, most modern third-party apps — follows it. Samsung's own UI ignores Monet by design, and no overlay-based tool can change that without modifying Samsung's framework itself.
The service exists to keep broadcast receivers alive; it reacts to wallpaper changes, boot, and dark-mode switches. There is no polling. Between events it is idle — scheduling cost only.
Live preview never touches the system at all: it loads the candidate palette into the app's own process through ResourcesLoader, so previewing costs the same as rendering any app screen. The palette math (CAM16 color appearance model) runs once per change, in milliseconds, then is cached.
Your configuration is the source of truth, stored in app data — not in the overlay. After boot, once you unlock, a receiver re-registers the overlay from that configuration. ROM updates that clear registered overlays are handled the same way: the next boot re-applies everything.
Per-shade overrides, sliders, and saved styles also travel inside backup files you can export and restore.
Submitting a theme uploads only the color specification plus the name and description you type — reviewed by a human as a public pull request before it appears. Voting needs duplicate protection, so the app sends a one-way SHA-256 hash of the device identifier with an app-specific salt. It cannot be reversed, cannot be correlated across apps, and is stored only to enforce one vote per device.
No accounts, no analytics, no advertising identifiers. The entire pipeline — repository, review process, serving infrastructure — is public.