Skip to content

feat: Add monochrome theme - #740

Merged
MarcaDian merged 6 commits into
MorpheApp:devfrom
rushiranpise:monochrome
Jul 20, 2026
Merged

feat: Add monochrome theme#740
MarcaDian merged 6 commits into
MorpheApp:devfrom
rushiranpise:monochrome

Conversation

@rushiranpise

Copy link
Copy Markdown
Contributor

Add a Monochrome theme preset with neutral light and dark color schemes, wired through the existing theme selection flow.

Use shared Monochrome surface helpers so settings groups, glass controls, sheets, and selection bars can quiet their surfaces without changing the existing layout rounding. Home app cards use the same card structure with solid Monochrome surfaces instead of app-color gradients.

Add a Monochrome theme preset with neutral light and dark color schemes, wired through the existing theme selection flow.

Use shared Monochrome surface helpers so settings groups, glass controls, sheets, and selection bars can quiet their surfaces without changing the existing layout rounding. Home app cards use the same card structure with solid Monochrome surfaces instead of app-color gradients.
@rushiranpise

rushiranpise commented Jul 19, 2026

Copy link
Copy Markdown
Contributor Author
Screenshot_20260719-123933

@MarcaDian

Copy link
Copy Markdown
Contributor

What about the InfoApp dialog (when tapping the app card)? Usually, the app's accent colors are used there in the header, the update banner, and the buttons. I’m not sure if that needs changing.

Route app info dialog accent styling through the shared MonochromeThemeDefaults accent helper.

Normal themes still use each app's accent color, while Monochrome uses the resolved grey theme primary color for the app info header, banners, and action buttons.

Custom accent colors still override the Monochrome palette when selected by the user.

Verified with git diff --check and assembleDebug. Installed the debug APK with adb.
@rushiranpise

Copy link
Copy Markdown
Contributor Author

What about the InfoApp dialog (when tapping the app card)? Usually, the app's accent colors are used there in the header, the update banner, and the buttons. I’m not sure if that needs changing.

Thanks, I updated the app info dialog. Normal themes still use the app accent colors, but Monochrome now routes those accent areas through the shared theme defaults, so the header, update/warning banners, and action buttons use the neutral Monochrome palette. Custom accent colors still work if the user chooses one.

Remove temporary ONE_UI preference and selector aliases now that the theme ships as Monochrome.

Keeps the appearance settings and preference mapping aligned with the final theme name.

Verified with rg, git diff --check, and assembleDebug. Installed the debug APK with adb.
@Chiku-09

Copy link
Copy Markdown

woah
this looks so nice.

@MarcaDian MarcaDian changed the title feat: add monochrome theme feat: Add monochrome theme Jul 20, 2026
@MarcaDian
MarcaDian marked this pull request as ready for review July 20, 2026 07:41
@MarcaDian

MarcaDian commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Yeah, I tried it out and it looks cool; there's just one thing I didn't get, the code contains light theme colors, but there isn't actually a light monochrome theme. Is it even necessary? If so, how should it be implemented, as a separate card or as a toggle? "Monochrome dark / light" is too long a name for cards.

@RaceConditionWinner

RaceConditionWinner commented Jul 20, 2026

Copy link
Copy Markdown

Yeah, I tried it out and it looks cool; there's just one thing I didn't get, the code contains light theme colors, but there isn't actually a light monochrome theme. Is it even necessary?

Personally I liked the app card dark background more.

But the colour of button as shown in screenshot looks counter intuitive or not that good.

It's better to have the previous default colour for the buttons as is.

But the dark app card background looks a cool theme option to have

Split the appearance theme selector into a Theme mode row for System, Light, and Dark, and a Color style row for Morphe, Material You, and Monochrome. This keeps monochrome usable with any light/dark mode without long duplicate theme cards.

Persist the selected color style, resolve legacy monochrome and dynamic color states through a shared helper, and keep old MONOCHROME theme settings compatible while routing new selections through ThemeStyle.
@rushiranpise

rushiranpise commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

Yeah, I tried it out and it looks cool; there's just one thing I didn't get, the code contains light theme colors, but there isn't actually a light monochrome theme. Is it even necessary? If so, how should it be implemented, as a separate card or as a toggle? "Monochrome dark / light" is too long a name for cards.

I changed this so light/dark/system stays as the main theme mode, and Material You / Monochrome are now separate color styles. That avoids long names like “Monochrome dark” and makes the light monochrome palette actually useful through Light + Monochrome. I also kept compatibility for the old monochrome theme value.

But the colour of button as shown in screenshot looks counter intuitive or not that good.

It's better to have the previous default colour for the buttons as is.

That was custom accent color. this is deafult

Screenshot_20260720-012504 Screenshot_20260720-012510

@RaceConditionWinner

Copy link
Copy Markdown

That was custom accent color. this is deafult

Ahh that makes sense

This looks very good now

@MarcaDian
MarcaDian merged commit 1e3d0b7 into MorpheApp:dev Jul 20, 2026
1 check passed
github-actions Bot pushed a commit that referenced this pull request Jul 21, 2026
# [1.24.0-dev.12](v1.24.0-dev.11...v1.24.0-dev.12) (2026-07-21)

### Bug Fixes

* Harden root mount installs ([#737](#737)) ([5f05273](5f05273))

### Features

* Add batch app uninstall and reinstall actions ([#739](#739)) ([998e943](998e943))
* Add monochrome theme ([#740](#740)) ([1e3d0b7](1e3d0b7))
github-actions Bot pushed a commit that referenced this pull request Jul 23, 2026
# [1.24.0](v1.23.0...v1.24.0) (2026-07-23)

### Bug Fixes

* Add confirmation dialog before batch uninstall ([3486b62](3486b62))
* Align `About section` app-info item style with installer item ([d20d23b](d20d23b))
* Align patch options notices with `InfoBadge` component ([3b7236d](3b7236d))
* Center text in translation info dialog and format GitHub PAT link ([74e128c](74e128c))
* Consistent search field spacing in patch list dialogs ([1103fda](1103fda))
* Correct emoji flag size in language selection card ([72dd679](72dd679))
* Dedupe expert-mode UI patterns and reuse shared components ([e172fda](e172fda))
* Deduplicate confirmation dialogs with shared `ConfirmDialog` ([f954119](f954119))
* Don't trigger update badge for experimental-version-only changes ([#666](#666)) ([6854d0f](6854d0f))
* Drop top padding in title-less compact dialogs ([34545e9](34545e9))
* Extract `CardActionRow` and align card paddings ([7d2aabf](7d2aabf))
* Extract `SelectionTile` for grid-style appearance pickers ([7274264](7274264))
* Fix multiselect mode in APK dialogs ([b6f4f63](b6f4f63))
* Fix spurious patch source badge and refine installer dialog UI ([00059a0](00059a0))
* Harden root mount installs ([#737](#737)) ([5f05273](5f05273))
* Inline `SelectionActionBar` into `MultiSelectBar` and reorder cancel button ([70d7991](70d7991))
* Keep simple mode patch options rendered on tab re-entry ([fd33414](fd33414))
* Migrate `PatchCard` to shared `SettingsItemCard` ([4704c40](4704c40))
* Migrate language picker to shared `RadioSelectionCard` ([09c760b](09c760b))
* Move installer prompt toggle into selection dialog ([9f96f37](9f96f37))
* Normalize expert-mode padding to `MorpheDefaults` ([ecb6c7b](ecb6c7b))
* Prevent storage dialog crash when segments list is empty ([b155ddb](b155ddb))
* Replace bundle card toggles with `ToggleRow` and fix expanded card spacing ([3ca5d32](3ca5d32))
* Replace compactPadding/noPadding booleans with `DialogPadding` enum ([0d7758b](0d7758b))
* Rewrite `CreditsDialog` with Morphe-style components ([2a8eb38](2a8eb38))
* Share patch list components and consolidate badges ([797004d](797004d))
* Show installer prompt toggle regardless of expert mode ([9ce1857](9ce1857))
* Show intermediate dev versions in changelog dialog ([44a9948](44a9948))
* Show music note icon for audio files in custom file picker ([ac082cf](ac082cf))
* Split `ExpertModeDialog` into focused files ([a9e857c](a9e857c))
* Split `SectionsLayout` into focused files ([56085e0](56085e0))
* Top-align list-based dialogs and dedupe `MorpheDialog` ([c012263](c012263))
* Unify `RadioSelectionCard` visuals across dialogs ([885dd2d](885dd2d))
* Unify settings tabs with `SettingsGroup` and consolidate item components ([3277958](3277958))
* Use correct `ChangelogEntryHeader` color ([83bc437](83bc437))
* Wrap `AboutSection` items in `SettingsGroup` ([2367e6c](2367e6c))

### Features

* Add APK retention toggles in storage management ([c57edb7](c57edb7))
* Add batch app uninstall and reinstall actions ([#739](#739)) ([998e943](998e943))
* Add footer section to `RadioSelectionCard` and apply it to installer options ([ecfaf03](ecfaf03))
* Add home app grouping controls ([#725](#725)) ([6b10955](6b10955))
* Add monochrome theme ([#740](#740)) ([1e3d0b7](1e3d0b7))
* Add patcher notification sounds with settings toggle and reorganize settings tabs ([51dda37](51dda37))
* Add press-scale animation to `ActionPillButton` ([6721137](6721137))
* Add sort button visibility toggle in Appearance settings ([c3c5e8b](c3c5e8b))
* Add source labels and versions to patch source picker ([0b3f299](0b3f299))
* Add storage and cache management dialog ([#714](#714)) ([f8e354d](f8e354d))
* Add typed patch options ([#706](#706)) ([52727a4](52727a4))
* Animate `HeroInfoCard` in APK management dialogs with shimmer and counter transitions ([f98a602](f98a602))
* Display CPU architecture in saved and patched APK cards ([1d2b6e8](1d2b6e8))
* Improve Shizuku installer flow ([#734](#734)) ([08ab696](08ab696))
* Redesign `InstalledAppInfoDialog` with Morphe-style components and layout improvements ([d9e4ef3](d9e4ef3))
* Redesign `PatchListComponents` with Morphe-style components and layout improvements ([d733da6](d733da6))
* Redesign destructive confirmation dialogs ([85dfad9](85dfad9))
* Route add-source through the website and enforce a remote blocklist ([#715](#715)) ([8f1494e](8f1494e))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants