[PR #6612] [MERGED] Add custom themes installation feature #13685

Closed
opened 2026-04-10 22:00:40 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/6612
Author: @MatissJanis
Created: 1/9/2026
Status: Merged
Merged: 1/15/2026
Merged by: @MatissJanis

Base: masterHead: matiss/custom-themes


📝 Commits (8)

  • 01f4cb9 Add custom themes feature with GitHub installation support
  • 5be05a3 Update custom theme catalog: remove several themes and add 'Miami Beach' from a new repository.
  • 93bac71 Enhance CSS validation in custom themes
  • 84b8be9 Update custom theme catalog: rename theme from 'Miami Beach' to 'Shades of Coffee'.
  • 22cc2c6 Merge branch 'master' into matiss/custom-themes
  • ac6541b Remove 'forceReload' feature flag and related code from the application settings and feature flag definitions.
  • 92dd53f Enhance ThemeInstaller component to support installed themes
  • da54710 Merge branch 'master' into matiss/custom-themes

📊 Changes

21 files changed (+2745 additions, -37 deletions)

View changed files

📝 packages/component-library/src/theme.ts (+1 -0)
📝 packages/desktop-client/src/components/App.tsx (+2 -0)
📝 packages/desktop-client/src/components/common/Link.tsx (+3 -0)
📝 packages/desktop-client/src/components/settings/Experimental.tsx (+6 -0)
packages/desktop-client/src/components/settings/ThemeInstaller.test.tsx (+515 -0)
packages/desktop-client/src/components/settings/ThemeInstaller.tsx (+371 -0)
📝 packages/desktop-client/src/components/settings/Themes.tsx (+137 -35)
packages/desktop-client/src/data/customThemeCatalog.json (+14 -0)
📝 packages/desktop-client/src/hooks/useFeatureFlag.ts (+1 -0)
packages/desktop-client/src/style/customThemes.test.ts (+1121 -0)
packages/desktop-client/src/style/customThemes.ts (+328 -0)
📝 packages/desktop-client/src/style/theme.tsx (+38 -1)
📝 packages/desktop-client/src/style/themes/dark.ts (+2 -0)
📝 packages/desktop-client/src/style/themes/development.ts (+2 -0)
📝 packages/desktop-client/src/style/themes/light.ts (+2 -0)
📝 packages/desktop-client/src/style/themes/midnight.ts (+2 -0)
📝 packages/docs/docs-sidebar.js (+1 -0)
packages/docs/docs/experimental/custom-themes.md (+180 -0)
📝 packages/loot-core/src/server/preferences/app.ts (+9 -0)
📝 packages/loot-core/src/types/prefs.ts (+4 -1)

...and 1 more files

📄 Description

This PR adds support for installing custom themes in Actual Budget. Users can now install themes from a catalog or paste custom CSS directly.

For now we only have 1x custom theme (the demo one). Also: the way how we load these themes is really not great. I plan on 1) creating a few more themes myself and 2) improve the loading mechanism. But both these things will follow in separate PRs.

Feedback: https://github.com/actualbudget/actual/issues/6607

@coderabbitai - I am adding a new "Custom themes" setting here. It conforms to the design principles of Actual.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/6612 **Author:** [@MatissJanis](https://github.com/MatissJanis) **Created:** 1/9/2026 **Status:** ✅ Merged **Merged:** 1/15/2026 **Merged by:** [@MatissJanis](https://github.com/MatissJanis) **Base:** `master` ← **Head:** `matiss/custom-themes` --- ### 📝 Commits (8) - [`01f4cb9`](https://github.com/actualbudget/actual/commit/01f4cb986207c2d05252532eded32a302083b83c) Add custom themes feature with GitHub installation support - [`5be05a3`](https://github.com/actualbudget/actual/commit/5be05a397c96500367bb1e2cfeacbce9887ff5f1) Update custom theme catalog: remove several themes and add 'Miami Beach' from a new repository. - [`93bac71`](https://github.com/actualbudget/actual/commit/93bac714e53aae8b92f2899dabab335f2f144da3) Enhance CSS validation in custom themes - [`84b8be9`](https://github.com/actualbudget/actual/commit/84b8be98083abc7f5115e69d6379a022611ee742) Update custom theme catalog: rename theme from 'Miami Beach' to 'Shades of Coffee'. - [`22cc2c6`](https://github.com/actualbudget/actual/commit/22cc2c62bdaa32aa07b866c1042cc4130d73baaa) Merge branch 'master' into matiss/custom-themes - [`ac6541b`](https://github.com/actualbudget/actual/commit/ac6541bd6df5830cb3cc522ddfdfd70064c92c41) Remove 'forceReload' feature flag and related code from the application settings and feature flag definitions. - [`92dd53f`](https://github.com/actualbudget/actual/commit/92dd53f64fc384c9e00ee47420a6799d5465a643) Enhance ThemeInstaller component to support installed themes - [`da54710`](https://github.com/actualbudget/actual/commit/da54710a69e88ad648bce2b4c6b3c8da6eed05e1) Merge branch 'master' into matiss/custom-themes ### 📊 Changes **21 files changed** (+2745 additions, -37 deletions) <details> <summary>View changed files</summary> 📝 `packages/component-library/src/theme.ts` (+1 -0) 📝 `packages/desktop-client/src/components/App.tsx` (+2 -0) 📝 `packages/desktop-client/src/components/common/Link.tsx` (+3 -0) 📝 `packages/desktop-client/src/components/settings/Experimental.tsx` (+6 -0) ➕ `packages/desktop-client/src/components/settings/ThemeInstaller.test.tsx` (+515 -0) ➕ `packages/desktop-client/src/components/settings/ThemeInstaller.tsx` (+371 -0) 📝 `packages/desktop-client/src/components/settings/Themes.tsx` (+137 -35) ➕ `packages/desktop-client/src/data/customThemeCatalog.json` (+14 -0) 📝 `packages/desktop-client/src/hooks/useFeatureFlag.ts` (+1 -0) ➕ `packages/desktop-client/src/style/customThemes.test.ts` (+1121 -0) ➕ `packages/desktop-client/src/style/customThemes.ts` (+328 -0) 📝 `packages/desktop-client/src/style/theme.tsx` (+38 -1) 📝 `packages/desktop-client/src/style/themes/dark.ts` (+2 -0) 📝 `packages/desktop-client/src/style/themes/development.ts` (+2 -0) 📝 `packages/desktop-client/src/style/themes/light.ts` (+2 -0) 📝 `packages/desktop-client/src/style/themes/midnight.ts` (+2 -0) 📝 `packages/docs/docs-sidebar.js` (+1 -0) ➕ `packages/docs/docs/experimental/custom-themes.md` (+180 -0) 📝 `packages/loot-core/src/server/preferences/app.ts` (+9 -0) 📝 `packages/loot-core/src/types/prefs.ts` (+4 -1) _...and 1 more files_ </details> ### 📄 Description This PR adds support for installing custom themes in Actual Budget. Users can now install themes from a catalog or paste custom CSS directly. For now we only have 1x custom theme (the demo one). Also: the way how we load these themes is really not great. I plan on 1) creating a few more themes myself and 2) improve the loading mechanism. But both these things will follow in separate PRs. Feedback: https://github.com/actualbudget/actual/issues/6607 @coderabbitai - I am adding a new "Custom themes" setting here. It conforms to the design principles of Actual. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-10 22:00:40 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#13685