Skip to content

Add theming to charts and hence allowing custom themes on charts#6909

Merged
matt-fidd merged 5 commits intoactualbudget:masterfrom
karimkodera:chart-theme
Feb 17, 2026
Merged

Add theming to charts and hence allowing custom themes on charts#6909
matt-fidd merged 5 commits intoactualbudget:masterfrom
karimkodera:chart-theme

Conversation

@karimkodera
Copy link
Contributor

@karimkodera karimkodera commented Feb 8, 2026

This package contains modified files that add theme-aware chart colors to Actual Budget. Charts will now automatically respond to theme changes (Light, Dark, Midnight, and custom themes). Chart use colors defined in the centralized palette system. Main chart colors are defined once in palette.ts and referenced by all themes. Chart-theme is updated use the CSS global variables to provide the color scheme to the different chart component allowing the full app to follow one theme.

How it works

  1. Palette export chart color constants
  2. Themes Theme uses color palette to provide color the style component
  3. ThemeStyle component converts these to CSS variables (e.g., --color-chartQual1)
  4. chart-theme.ts returns CSS variable references instead of hex values
  5. Charts automatically use theme-appropriate colors via CSS variable resolution

The main palette include definition for the following color shades and the main themes exports the same colors from the palette. Custom themes can modify those colors to display different chart colors.

  • Qualitative (9 colors): chartQual1 through chartQual9

Edit ** Removed below color scale because they are unused.

  • Grayscale (4 colors): chartGray1 through chartGray4
  • Heatmap (5 colors): chartHeat1 through chartHeat5
  • Warm (5 colors): chartWarm1 through chartWarm5
  • Cool (5 colors): chartCool1 through chartCool5
  • Red (5 colors): chartRed1 through chartRed5
  • Blue (5 colors): chartBlue1 through chartBlue5
  • Green (5 colors): chartGreen1 through chartGreen5

Example for testing add the below additional variables to any custom theme.

/* ============================================================================
   CHART COLORS 
   ============================================================================ */

/* Qualitative Scale - for categorical/series data (9 colors) */
--color-chartQual1: #879a39;  /* green-400 - olive green (primary) */
--color-chartQual2: #d0a215;  /* yellow-400 - gold */
--color-chartQual3: #da702c;  /* orange-400 - warm orange */
--color-chartQual4: #66800b;  /* green-600 - dark green */
--color-chartQual5: #205ea6;  /* blue-600 - blue accent */
--color-chartQual6: #c03e35;  /* red-500 - red */
--color-chartQual7: #a0af54;  /* green-300 - light olive */
--color-chartQual8: #ad8301;  /* yellow-600 - dark gold */
--color-chartQual9: #bc5215;  /* orange-600 - deep orange */

Bundle Stats

Bundle Files count Total bundle size % Changed
desktop-client 27 14.81 MB → 14.81 MB (+1.19 kB) +0.01%
loot-core 1 5.86 MB 0%
api 1 4.4 MB 0%
View detailed bundle stats

desktop-client

Total

Files count Total bundle size % Changed
27 14.81 MB → 14.81 MB (+1.19 kB) +0.01%
Changeset
File Δ Size
src/style/palette.ts 📈 +288 B (+15.21%) 1.85 kB → 2.13 kB
src/style/themes/development.ts 📈 +315 B (+3.58%) 8.59 kB → 8.9 kB
src/style/themes/dark.ts 📈 +315 B (+3.57%) 8.62 kB → 8.93 kB
src/style/themes/light.ts 📈 +315 B (+3.54%) 8.68 kB → 8.99 kB
src/style/themes/midnight.ts 📈 +297 B (+3.51%) 8.25 kB → 8.54 kB
src/components/reports/chart-theme.ts 📉 -313 B (-20.00%) 1.53 kB → 1.22 kB
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger

Asset File Size % Changed
static/js/index.js 9.52 MB → 9.52 MB (+1.19 kB) +0.01%

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
static/js/indexeddb-main-thread-worker-e59fee74.js 12.94 kB 0%
static/js/workbox-window.prod.es5.js 5.64 kB 0%
static/js/ca.js 178.41 kB 0%
static/js/da.js 106.62 kB 0%
static/js/de.js 180.44 kB 0%
static/js/en-GB.js 7.18 kB 0%
static/js/en.js 168.63 kB 0%
static/js/es.js 173.83 kB 0%
static/js/fr.js 179.97 kB 0%
static/js/it.js 171.44 kB 0%
static/js/nb-NO.js 157.23 kB 0%
static/js/nl.js 106.65 kB 0%
static/js/pl.js 88.64 kB 0%
static/js/pt-BR.js 154.57 kB 0%
static/js/th.js 182.35 kB 0%
static/js/uk.js 215.11 kB 0%
static/js/resize-observer.js 18.37 kB 0%
static/js/BackgroundImage.js 120.54 kB 0%
static/js/ReportRouter.js 1.15 MB 0%
static/js/narrow.js 638.75 kB 0%
static/js/TransactionList.js 106.13 kB 0%
static/js/wide.js 165.25 kB 0%
static/js/AppliedFilters.js 9.71 kB 0%
static/js/usePayeeRuleCounts.js 10.05 kB 0%
static/js/useTransactionBatchActions.js 13.23 kB 0%
static/js/FormulaEditor.js 1.04 MB 0%

loot-core

Total

Files count Total bundle size % Changed
1 5.86 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
kcab.worker.CZeQyUCA.js 5.86 MB 0%

api

Total

Files count Total bundle size % Changed
1 4.4 MB 0%
View detailed bundle breakdown

Added
No assets were added

Removed
No assets were removed

Bigger
No assets were bigger

Smaller
No assets were smaller

Unchanged

Asset File Size % Changed
bundle.api.js 4.4 MB 0%

@actual-github-bot actual-github-bot bot changed the title Add theming to charts and hence allowing custom themes on charts [WIP] Add theming to charts and hence allowing custom themes on charts Feb 8, 2026
@netlify
Copy link

netlify bot commented Feb 8, 2026

Deploy Preview for actualbudget ready!

Name Link
🔨 Latest commit 71edfed
🔍 Latest deploy log https://app.netlify.com/projects/actualbudget/deploys/6994a008bbd2a0000879f7fe
😎 Deploy Preview https://deploy-preview-6909.demo.actualbudget.org
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 8, 2026

👋 Hello contributor!

We would love to review your PR! Before we can do that, please make sure:

  • ✅ All CI checks pass
  • ✅ The PR is moved from draft to open (if applicable)
  • ✅ The "[WIP]" prefix is removed from the PR title
  • ✅ All CodeRabbit code review comments are resolved (if you disagree with anything - reply to the bot with your reasoning so we can read through it). The bot will eventually approve the PR.

We do this to reduce the TOIL the core contributor team has to go through for each PR and to allow for speedy reviews and merges.

For more information, please see our Contributing Guide.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 8, 2026

📝 Walkthrough

Walkthrough

Replaces explicit chart color arrays with a CSS-variable-based qualitative palette and adds nine new qualitative color tokens across the base palette and all theme files; chart-theme removes other explicit scales (including grayscale) and now references CSS variables. Adds a release note entry.

Changes

Cohort / File(s) Summary
Chart theme
packages/desktop-client/src/components/reports/chart-theme.ts
Removed grayscale and other explicit color arrays; replaced the qualitative scale with CSS variable references (var(--color-chartQual1)var(--color-chartQual9)). Default return path still references scales but grayscale entry was removed from the scales map.
Base palette
packages/desktop-client/src/style/palette.ts
Added nine new exported qualitative color constants: chartQual1chartQual9 (hex values).
Theme re-exports
packages/desktop-client/src/style/themes/dark.ts, packages/desktop-client/src/style/themes/development.ts, packages/desktop-client/src/style/themes/light.ts, packages/desktop-client/src/style/themes/midnight.ts
Added exports chartQual1chartQual9 in each theme, mapping to colorPalette.chartQualN, making the new qualitative tokens available in all themes.
Release notes
upcoming-release-notes/6909.md
Added a new release note describing chart theming support and authorship metadata.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I hopped through palettes, nine bright lights,

vars now color charted nights,
Hexes tucked where tokens play,
Themes will wear them day by day,
A little hop to lead the way 🐇✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Merge Conflict Detection ⚠️ Warning ❌ Merge conflicts detected (729 files):

⚔️ .github/scripts/count-points.mjs (content)
⚔️ .github/workflows/electron-master.yml (content)
⚔️ .oxfmtrc.json (content)
⚔️ .oxlintrc.json (content)
⚔️ AGENTS.md (content)
⚔️ package.json (content)
⚔️ packages/api/methods.test.ts (content)
⚔️ packages/api/methods.ts (content)
⚔️ packages/component-library/.storybook/main.ts (content)
⚔️ packages/component-library/src/AlignedText.stories.tsx (content)
⚔️ packages/component-library/src/AlignedText.tsx (content)
⚔️ packages/component-library/src/Block.stories.tsx (content)
⚔️ packages/component-library/src/Block.tsx (content)
⚔️ packages/component-library/src/Button.stories.ts (content)
⚔️ packages/component-library/src/Button.tsx (content)
⚔️ packages/component-library/src/Card.stories.tsx (content)
⚔️ packages/component-library/src/Card.tsx (content)
⚔️ packages/component-library/src/ColorPicker.stories.tsx (content)
⚔️ packages/component-library/src/ColorPicker.tsx (content)
⚔️ packages/component-library/src/FormError.stories.tsx (content)
⚔️ packages/component-library/src/FormError.tsx (content)
⚔️ packages/component-library/src/InitialFocus.ts (content)
⚔️ packages/component-library/src/InitialFocus.web.test.tsx (content)
⚔️ packages/component-library/src/InlineField.tsx (content)
⚔️ packages/component-library/src/Input.tsx (content)
⚔️ packages/component-library/src/Label.tsx (content)
⚔️ packages/component-library/src/Menu.tsx (content)
⚔️ packages/component-library/src/Paragraph.tsx (content)
⚔️ packages/component-library/src/Popover.tsx (content)
⚔️ packages/component-library/src/Select.tsx (content)
⚔️ packages/component-library/src/SpaceBetween.tsx (content)
⚔️ packages/component-library/src/Text.tsx (content)
⚔️ packages/component-library/src/TextOneLine.tsx (content)
⚔️ packages/component-library/src/Toggle.tsx (content)
⚔️ packages/component-library/src/Tooltip.tsx (content)
⚔️ packages/component-library/src/View.tsx (content)
⚔️ packages/component-library/src/icons/AnimatedLoading.tsx (content)
⚔️ packages/component-library/src/icons/Loading.tsx (content)
⚔️ packages/component-library/src/icons/template.ts (content)
⚔️ packages/component-library/src/styles.ts (content)
⚔️ packages/crdt/src/crdt/merkle.ts (content)
⚔️ packages/crdt/src/crdt/timestamp.ts (content)
⚔️ packages/desktop-client/e2e/accounts.mobile.test.ts (content)
⚔️ packages/desktop-client/e2e/accounts.test.ts (content)
⚔️ packages/desktop-client/e2e/bank-sync.mobile.test.ts (content)
⚔️ packages/desktop-client/e2e/bank-sync.test.ts (content)
⚔️ packages/desktop-client/e2e/budget.mobile.test.ts (content)
⚔️ packages/desktop-client/e2e/budget.test.ts (content)
⚔️ packages/desktop-client/e2e/command-bar.test.ts (content)
⚔️ packages/desktop-client/e2e/fixtures.ts (content)
⚔️ packages/desktop-client/e2e/help-menu.test.ts (content)
⚔️ packages/desktop-client/e2e/onboarding.test.ts (content)
⚔️ packages/desktop-client/e2e/page-models/account-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/bank-sync-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/budget-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/close-account-modal.ts (content)
⚔️ packages/desktop-client/e2e/page-models/configuration-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/custom-report-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/edit-rule-modal.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-account-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-accounts-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-balance-menu-modal.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-bank-sync-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-budget-menu-modal.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-budget-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-category-menu-modal.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-edit-notes-modal.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-envelope-budget-summary-modal.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-navigation.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-payees-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-reports-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-rules-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-schedules-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-tracking-budget-summary-modal.ts (content)
⚔️ packages/desktop-client/e2e/page-models/mobile-transaction-entry-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/navigation.ts (content)
⚔️ packages/desktop-client/e2e/page-models/payees-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/reports-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/rules-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/schedule-edit-modal.ts (content)
⚔️ packages/desktop-client/e2e/page-models/schedules-page.ts (content)
⚔️ packages/desktop-client/e2e/page-models/settings-page.ts (content)
⚔️ packages/desktop-client/e2e/payees.mobile.test.ts (content)
⚔️ packages/desktop-client/e2e/payees.test.ts (content)
⚔️ packages/desktop-client/e2e/reports.test.ts (content)
⚔️ packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-cash-flow-graph-and-checks-visuals-1-chromium-linux.png (content)
⚔️ packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-cash-flow-graph-and-checks-visuals-2-chromium-linux.png (content)
⚔️ packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-cash-flow-graph-and-checks-visuals-3-chromium-linux.png (content)
⚔️ packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-net-worth-graph-and-checks-visuals-1-chromium-linux.png (content)
⚔️ packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-net-worth-graph-and-checks-visuals-2-chromium-linux.png (content)
⚔️ packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-loads-net-worth-graph-and-checks-visuals-3-chromium-linux.png (content)
⚔️ packages/desktop-client/e2e/rules.mobile.test.ts (content)
⚔️ packages/desktop-client/e2e/rules.test.ts (content)
⚔️ packages/desktop-client/e2e/schedules.mobile.test.ts (content)
⚔️ packages/desktop-client/e2e/schedules.test.ts (content)
⚔️ packages/desktop-client/e2e/settings.mobile.test.ts (content)
⚔️ packages/desktop-client/e2e/settings.test.ts (content)
⚔️ packages/desktop-client/e2e/transactions.mobile.test.ts (content)
⚔️ packages/desktop-client/e2e/transactions.test.ts (content)
⚔️ packages/desktop-client/package.json (content)
⚔️ packages/desktop-client/src/accounts/accountsSlice.ts (content)
⚔️ packages/desktop-client/src/app/appSlice.ts (content)
⚔️ packages/desktop-client/src/auth/AuthProvider.tsx (content)
⚔️ packages/desktop-client/src/auth/ProtectedRoute.tsx (content)
⚔️ packages/desktop-client/src/budget/mutations.ts (content)
⚔️ packages/desktop-client/src/budget/queries.ts (content)
⚔️ packages/desktop-client/src/budgetfiles/budgetfilesSlice.ts (content)
⚔️ packages/desktop-client/src/components/AnimatedRefresh.tsx (content)
⚔️ packages/desktop-client/src/components/App.tsx (content)
⚔️ packages/desktop-client/src/components/CommandBar.tsx (content)
⚔️ packages/desktop-client/src/components/FatalError.tsx (content)
⚔️ packages/desktop-client/src/components/FinancesApp.tsx (content)
⚔️ packages/desktop-client/src/components/FinancialText.tsx (content)
⚔️ packages/desktop-client/src/components/FixedSizeList.tsx (content)
⚔️ packages/desktop-client/src/components/LoggedInUser.tsx (content)
⚔️ packages/desktop-client/src/components/ManageRules.tsx (content)
⚔️ packages/desktop-client/src/components/Modals.tsx (content)
⚔️ packages/desktop-client/src/components/Notes.tsx (content)
⚔️ packages/desktop-client/src/components/NotesButton.tsx (content)
⚔️ packages/desktop-client/src/components/Notifications.tsx (content)
⚔️ packages/desktop-client/src/components/Page.tsx (content)
⚔️ packages/desktop-client/src/components/PrivacyFilter.tsx (content)
⚔️ packages/desktop-client/src/components/ServerContext.tsx (content)
⚔️ packages/desktop-client/src/components/SyncRefresh.tsx (content)
⚔️ packages/desktop-client/src/components/ThemeSelector.tsx (content)
⚔️ packages/desktop-client/src/components/Titlebar.tsx (content)
⚔️ packages/desktop-client/src/components/accounts/Account.tsx (content)
⚔️ packages/desktop-client/src/components/accounts/AccountSyncCheck.tsx (content)
⚔️ packages/desktop-client/src/components/accounts/Balance.tsx (content)
⚔️ packages/desktop-client/src/components/accounts/BalanceHistoryGraph.tsx (content)
⚔️ packages/desktop-client/src/components/accounts/Header.tsx (content)
⚔️ packages/desktop-client/src/components/accounts/Reconcile.test.tsx (content)
⚔️ packages/desktop-client/src/components/accounts/Reconcile.tsx (content)
⚔️ packages/desktop-client/src/components/admin/UserAccess/UserAccess.tsx (content)
⚔️ packages/desktop-client/src/components/admin/UserAccess/UserAccessRow.tsx (content)
⚔️ packages/desktop-client/src/components/admin/UserDirectory/UserDirectory.tsx (content)
⚔️ packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryPage.tsx (content)
⚔️ packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryRow.tsx (content)
⚔️ packages/desktop-client/src/components/alerts.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/Autocomplete.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/FilterAutocomplete.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/FilterList.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/ItemHeader.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.test.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/ReportAutocomplete.tsx (content)
⚔️ packages/desktop-client/src/components/autocomplete/ReportList.tsx (content)
⚔️ packages/desktop-client/src/components/banksync/AccountRow.tsx (content)
⚔️ packages/desktop-client/src/components/banksync/AccountsList.tsx (content)
⚔️ packages/desktop-client/src/components/banksync/BankSyncCheckboxOptions.tsx (content)
⚔️ packages/desktop-client/src/components/banksync/EditSyncAccount.tsx (content)
⚔️ packages/desktop-client/src/components/banksync/FieldMapping.tsx (content)
⚔️ packages/desktop-client/src/components/banksync/index.tsx (content)
⚔️ packages/desktop-client/src/components/banksync/useBankSyncAccountSettings.ts (content)
⚔️ packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx (content)
⚔️ packages/desktop-client/src/components/budget/BudgetCategories.tsx (content)
⚔️ packages/desktop-client/src/components/budget/BudgetMonthCountContext.tsx (content)
⚔️ packages/desktop-client/src/components/budget/BudgetPageHeader.tsx (content)
⚔️ packages/desktop-client/src/components/budget/BudgetTable.tsx (content)
⚔️ packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx (content)
⚔️ packages/desktop-client/src/components/budget/ExpenseCategory.tsx (content)
⚔️ packages/desktop-client/src/components/budget/ExpenseGroup.tsx (content)
⚔️ packages/desktop-client/src/components/budget/IncomeCategory.tsx (content)
⚔️ packages/desktop-client/src/components/budget/IncomeGroup.tsx (content)
⚔️ packages/desktop-client/src/components/budget/MonthPicker.tsx (content)
⚔️ packages/desktop-client/src/components/budget/MonthsContext.tsx (content)
⚔️ packages/desktop-client/src/components/budget/RenderMonths.tsx (content)
⚔️ packages/desktop-client/src/components/budget/SidebarCategory.tsx (content)
⚔️ packages/desktop-client/src/components/budget/SidebarCategoryButtons.tsx (content)
⚔️ packages/desktop-client/src/components/budget/SidebarGroup.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/BalanceMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/BudgetMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/CoverMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetComponents.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetContext.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/HoldMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/IncomeMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/TransferMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/budgetsummary/BudgetMonthMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudget.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetAmount.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/envelope/budgetsummary/TotalsList.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/BudgetAutomation.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/BudgetAutomationEditor.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/BudgetAutomationReadOnly.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/CategoryAutomationButton.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/actions.ts (content)
⚔️ packages/desktop-client/src/components/budget/goals/constants.ts (content)
⚔️ packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomation.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/editor/PercentageAutomation.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomation.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/editor/SimpleAutomation.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/editor/SimpleAutomationReadOnly.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/editor/WeekAutomation.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/editor/WeekAutomationReadOnly.tsx (content)
⚔️ packages/desktop-client/src/components/budget/goals/reducer.ts (content)
⚔️ packages/desktop-client/src/components/budget/goals/useBudgetAutomationCategories.ts (content)
⚔️ packages/desktop-client/src/components/budget/index.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/BalanceMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/BudgetMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/TrackingBudgetComponents.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/TrackingBudgetContext.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetMonthMenu.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetTotal.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseProgress.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseTotal.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeProgress.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeTotal.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/budgetsummary/PieProgress.tsx (content)
⚔️ packages/desktop-client/src/components/budget/tracking/budgetsummary/Saved.tsx (content)
⚔️ packages/desktop-client/src/components/budget/util.ts (content)
⚔️ packages/desktop-client/src/components/common/InfiniteScrollWrapper.tsx (content)
⚔️ packages/desktop-client/src/components/common/Link.tsx (content)
⚔️ packages/desktop-client/src/components/common/Modal.tsx (content)
⚔️ packages/desktop-client/src/components/common/Search.tsx (content)
⚔️ packages/desktop-client/src/components/filters/AppliedFilters.tsx (content)
⚔️ packages/desktop-client/src/components/filters/ConditionsOpMenu.tsx (content)
⚔️ packages/desktop-client/src/components/filters/FilterExpression.tsx (content)
⚔️ packages/desktop-client/src/components/filters/FilterMenu.tsx (content)
⚔️ packages/desktop-client/src/components/filters/FiltersMenu.tsx (content)
⚔️ packages/desktop-client/src/components/filters/FiltersStack.tsx (content)
⚔️ packages/desktop-client/src/components/filters/OpButton.tsx (content)
⚔️ packages/desktop-client/src/components/filters/PayeeFilter.tsx (content)
⚔️ packages/desktop-client/src/components/filters/SavedFilterMenuButton.tsx (content)
⚔️ packages/desktop-client/src/components/filters/subfieldFromFilter.ts (content)
⚔️ packages/desktop-client/src/components/filters/subfieldToOptions.ts (content)
⚔️ packages/desktop-client/src/components/filters/updateFilterReducer.ts (content)
⚔️ packages/desktop-client/src/components/forms/LabeledCheckbox.tsx (content)
⚔️ packages/desktop-client/src/components/forms/index.tsx (content)
⚔️ packages/desktop-client/src/components/formula/FormulaEditor.tsx (content)
⚔️ packages/desktop-client/src/components/formula/QueryManager.tsx (content)
⚔️ packages/desktop-client/src/components/formula/codeMirror-excelLanguage.tsx (content)
⚔️ packages/desktop-client/src/components/manager/BudgetFileSelection.tsx (content)
⚔️ packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx (content)
⚔️ packages/desktop-client/src/components/manager/subscribe/ChangePassword.tsx (content)
⚔️ packages/desktop-client/src/components/manager/subscribe/ConfirmPasswordForm.tsx (content)
⚔️ packages/desktop-client/src/components/manager/subscribe/Login.tsx (content)
⚔️ packages/desktop-client/src/components/manager/subscribe/OpenIdCallback.ts (content)
⚔️ packages/desktop-client/src/components/manager/subscribe/OpenIdForm.tsx (content)
⚔️ packages/desktop-client/src/components/manager/subscribe/common.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/ActionableGridListItem.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/FloatingActionBar.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/MobileBackButton.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/MobileForms.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/MobileNavTabs.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/PullToRefresh.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/accounts/AccountPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/accounts/AccountTransactions.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/accounts/AccountsPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/accounts/AllAccountTransactions.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/accounts/OffBudgetAccountTransactions.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/accounts/OnBudgetAccountTransactions.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsList.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsListItem.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/banksync/MobileBankSyncAccountEditPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/banksync/MobileBankSyncPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/BalanceCell.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/BudgetCell.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/BudgetPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/BudgetTable.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/CategoryGroupActionMenu.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/CategoryPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/CategoryTransactions.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/ExpenseCategoryList.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/ExpenseGroupList.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/IncomeCategoryList.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/SpentCell.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/budget/UncategorizedTransactions.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/payees/MobilePayeeEditPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.test.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/payees/PayeesList.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/payees/PayeesListItem.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/rules/MobileRuleEditPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/rules/MobileRulesPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/rules/RulesList.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/rules/RulesListItem.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/schedules/MobileScheduleEditPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/schedules/MobileSchedulesPage.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/schedules/SchedulesList.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/schedules/SchedulesListItem.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/transactions/FocusableAmountInput.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/transactions/TransactionEdit.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/transactions/TransactionListItem.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/transactions/TransactionListWithBalances.tsx (content)
⚔️ packages/desktop-client/src/components/mobile/utils.ts (content)
⚔️ packages/desktop-client/src/components/modals/AccountAutocompleteModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/AccountMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/BudgetAutomationsModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/BudgetPageMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/CategoryAutocompleteModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/CategoryGroupMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/CategoryMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/CloseAccountModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ConfirmCategoryDeleteModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ConfirmDeleteModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ConfirmTransactionEditModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ConfirmUnlinkAccountModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ConvertToScheduleModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/CopyWidgetToDashboardModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/CoverModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/CreateAccountModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/CreateEncryptionKeyModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/CreateLocalAccountModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/EditAccess.tsx (content)
⚔️ packages/desktop-client/src/components/modals/EditFieldModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/EditUser.tsx (content)
⚔️ packages/desktop-client/src/components/modals/EnvelopeBalanceMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/EnvelopeBudgetMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/EnvelopeBudgetMonthMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/EnvelopeBudgetSummaryModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/EnvelopeIncomeBalanceMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/EnvelopeToBudgetMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/FixEncryptionKeyModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.test.tsx (content)
⚔️ packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/GoCardlessInitialiseModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/HoldBufferModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ImportTransactionsModal/DateFormatSelect.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ImportTransactionsModal/FieldMappings.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ImportTransactionsModal/ImportTransactionsModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ImportTransactionsModal/MultiplierOption.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ImportTransactionsModal/SelectField.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ImportTransactionsModal/Transaction.tsx (content)
⚔️ packages/desktop-client/src/components/modals/KeyboardShortcutModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/LoadBackupModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ManageRulesModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/MergeUnusedPayeesModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/NewCategoryGroupModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/NewCategoryModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/NotesModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/OpenIDEnableModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/PasswordEnableModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/PayeeAutocompleteModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/PluggyAiInitialiseModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/ScheduledTransactionMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/SelectLinkedAccountsModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/SimpleFinInitialiseModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/SingleInputModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/TrackingBalanceMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/TrackingBudgetMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/TrackingBudgetMonthMenuModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/TrackingBudgetSummaryModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/TransferModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/TransferOwnership.tsx (content)
⚔️ packages/desktop-client/src/components/modals/UnmigrateBudgetAutomationsModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/manager/DeleteFileModal.tsx (content)
⚔️ packages/desktop-client/src/components/modals/manager/DuplicateFileModal.tsx (content)
⚔️ packages/desktop-client/src/components/payees/ManagePayees.tsx (content)
⚔️ packages/desktop-client/src/components/payees/ManagePayeesPage.tsx (content)
⚔️ packages/desktop-client/src/components/payees/ManagePayeesWithData.tsx (content)
⚔️ packages/desktop-client/src/components/payees/PayeeMenu.tsx (content)
⚔️ packages/desktop-client/src/components/payees/PayeeRuleCountLabel.tsx (content)
⚔️ packages/desktop-client/src/components/payees/PayeeTable.tsx (content)
⚔️ packages/desktop-client/src/components/payees/PayeeTableRow.tsx (content)
⚔️ packages/desktop-client/src/components/reports/AccountSelector.tsx (content)
⚔️ packages/desktop-client/src/components/reports/CategorySelector.tsx (content)
⚔️ packages/desktop-client/src/components/reports/Change.test.tsx (content)
⚔️ packages/desktop-client/src/components/reports/Change.tsx (content)
⚔️ packages/desktop-client/src/components/reports/ChooseGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/Container.tsx (content)
⚔️ packages/desktop-client/src/components/reports/DashboardHeader.tsx (content)
⚔️ packages/desktop-client/src/components/reports/DashboardSelector.tsx (content)
⚔️ packages/desktop-client/src/components/reports/DateRange.tsx (content)
⚔️ packages/desktop-client/src/components/reports/FormulaResult.tsx (content)
⚔️ packages/desktop-client/src/components/reports/GraphButton.tsx (content)
⚔️ packages/desktop-client/src/components/reports/Header.tsx (content)
⚔️ packages/desktop-client/src/components/reports/LegendItem.tsx (content)
⚔️ packages/desktop-client/src/components/reports/ModeButton.tsx (content)
⚔️ packages/desktop-client/src/components/reports/Overview.tsx (content)
⚔️ packages/desktop-client/src/components/reports/ReportCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/ReportOptions.ts (content)
⚔️ packages/desktop-client/src/components/reports/ReportSidebar.tsx (content)
⚔️ packages/desktop-client/src/components/reports/ReportSummary.tsx (content)
⚔️ packages/desktop-client/src/components/reports/ReportTopbar.tsx (content)
⚔️ packages/desktop-client/src/components/reports/SaveReport.tsx (content)
⚔️ packages/desktop-client/src/components/reports/SaveReportDelete.tsx (content)
⚔️ packages/desktop-client/src/components/reports/SaveReportMenu.tsx (content)
⚔️ packages/desktop-client/src/components/reports/SaveReportName.tsx (content)
⚔️ packages/desktop-client/src/components/reports/SnapshotButton.tsx (content)
⚔️ packages/desktop-client/src/components/reports/SummaryNumber.tsx (content)
⚔️ packages/desktop-client/src/components/reports/chart-theme.ts (content)
⚔️ packages/desktop-client/src/components/reports/disabledList.ts (content)
⚔️ packages/desktop-client/src/components/reports/getLiveRange.ts (content)
⚔️ packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/BarGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/BudgetAnalysisGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/CalendarGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/CrossoverGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/LineGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/SpendingGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/renderCustomLabel.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/showActivity.ts (content)
⚔️ packages/desktop-client/src/components/reports/graphs/tableGraph/RenderTableRow.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableRow.tsx (content)
⚔️ packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reportRanges.ts (content)
⚔️ packages/desktop-client/src/components/reports/reports/BudgetAnalysis.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/BudgetAnalysisCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/Calendar.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/CalendarCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/CashFlow.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/CashFlowCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/Crossover.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/CrossoverCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/CustomReport.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/CustomReportListCards.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/Formula.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/FormulaCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/GetCardData.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/MarkdownCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/MissingReportCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/NetWorth.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/NetWorthCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/Spending.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/SpendingCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/Summary.tsx (content)
⚔️ packages/desktop-client/src/components/reports/reports/SummaryCard.tsx (content)
⚔️ packages/desktop-client/src/components/reports/setSessionReport.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/budget-analysis-spreadsheet.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/calendar-spreadsheet.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/crossover-spreadsheet.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/filterEmptyRows.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/filterHiddenItems.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/net-worth-spreadsheet.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/sortData.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/spending-spreadsheet.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/summary-spreadsheet.ts (content)
⚔️ packages/desktop-client/src/components/reports/spreadsheets/trimIntervals.ts (content)
⚔️ packages/desktop-client/src/components/reports/useWidgetCopyMenu.ts (content)
⚔️ packages/desktop-client/src/components/rules/ActionExpression.tsx (content)
⚔️ packages/desktop-client/src/components/rules/ConditionExpression.tsx (content)
⚔️ packages/desktop-client/src/components/rules/RuleEditor.tsx (content)
⚔️ packages/desktop-client/src/components/rules/RuleRow.tsx (content)
⚔️ packages/desktop-client/src/components/rules/RulesList.tsx (content)
⚔️ packages/desktop-client/src/components/rules/ScheduleValue.tsx (content)
⚔️ packages/desktop-client/src/components/rules/Value.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/PostsOfflineNotification.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/ScheduleEditForm.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/ScheduleEditModal.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/ScheduleLink.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/SchedulesTable.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/StatusBadge.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/UpcomingLength.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/index.tsx (content)
⚔️ packages/desktop-client/src/components/schedules/schedule-edit-utils.ts (content)
⚔️ packages/desktop-client/src/components/select/DateSelect.tsx (content)
⚔️ packages/desktop-client/src/components/select/RecurringSchedulePicker.tsx (content)
⚔️ packages/desktop-client/src/components/settings/AuthSettings.test.tsx (content)
⚔️ packages/desktop-client/src/components/settings/BudgetTypeSettings.tsx (content)
⚔️ packages/desktop-client/src/components/settings/Currency.tsx (content)
⚔️ packages/desktop-client/src/components/settings/Experimental.tsx (content)
⚔️ packages/desktop-client/src/components/settings/Export.tsx (content)
⚔️ packages/desktop-client/src/components/settings/Format.tsx (content)
⚔️ packages/desktop-client/src/components/settings/LanguageSettings.tsx (content)
⚔️ packages/desktop-client/src/components/settings/RepairTransactions.tsx (content)
⚔️ packages/desktop-client/src/components/settings/Reset.tsx (content)
⚔️ packages/desktop-client/src/components/settings/ThemeInstaller.tsx (content)
⚔️ packages/desktop-client/src/components/settings/Themes.tsx (content)
⚔️ packages/desktop-client/src/components/settings/UI.tsx (content)
⚔️ packages/desktop-client/src/components/settings/index.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/Account.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/Accounts.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/BudgetName.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/Item.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/ItemContent.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/SecondaryButtons.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/SecondaryItem.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/Sidebar.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/SidebarProvider.tsx (content)
⚔️ packages/desktop-client/src/components/sidebar/ToggleButton.tsx (content)
⚔️ packages/desktop-client/src/components/sort.tsx (content)
⚔️ packages/desktop-client/src/components/spreadsheet/CellValue.tsx (content)
⚔️ packages/desktop-client/src/components/table.tsx (content)
⚔️ packages/desktop-client/src/components/tags/ManageTags.tsx (content)
⚔️ packages/desktop-client/src/components/tags/TagCreationRow.tsx (content)
⚔️ packages/desktop-client/src/components/tags/TagEditor.tsx (content)
⚔️ packages/desktop-client/src/components/tags/TagRow.tsx (content)
⚔️ packages/desktop-client/src/components/tags/TagsList.tsx (content)
⚔️ packages/desktop-client/src/components/transactions/SelectedTransactionsButton.tsx (content)
⚔️ packages/desktop-client/src/components/transactions/SimpleTransactionsTable.tsx (content)
⚔️ packages/desktop-client/src/components/transactions/TransactionList.tsx (content)
⚔️ packages/desktop-client/src/components/transactions/TransactionMenu.tsx (content)
⚔️ packages/desktop-client/src/components/transactions/TransactionsTable.test.tsx (content)
⚔️ packages/desktop-client/src/components/transactions/TransactionsTable.tsx (content)
⚔️ packages/desktop-client/src/components/transactions/table/utils.ts (content)
⚔️ packages/desktop-client/src/components/util/AmountInput.tsx (content)
⚔️ packages/desktop-client/src/components/util/FinancialInput.tsx (content)
⚔️ packages/desktop-client/src/components/util/GenericInput.tsx (content)
⚔️ packages/desktop-client/src/components/util/LoadComponent.tsx (content)
⚔️ packages/desktop-client/src/components/util/PercentInput.tsx (content)
⚔️ packages/desktop-client/src/components/util/accountValidation.ts (content)
⚔️ packages/desktop-client/src/data/customThemeCatalog.json (content)
⚔️ packages/desktop-client/src/global-events.ts (content)
⚔️ packages/desktop-client/src/gocardless.ts (content)
⚔️ packages/desktop-client/src/hooks/useAccount.ts (content)
⚔️ packages/desktop-client/src/hooks/useAccountPreviewTransactions.ts (content)
⚔️ packages/desktop-client/src/hooks/useAccounts.ts (content)
⚔️ packages/desktop-client/src/hooks/useBudgetAutomations.ts (content)
⚔️ packages/desktop-client/src/hooks/useCachedSchedules.tsx (content)
⚔️ packages/desktop-client/src/hooks/useCategories.ts (content)
⚔️ packages/desktop-client/src/hooks/useCategory.ts (content)
⚔️ packages/desktop-client/src/hooks/useCategoryGroup.ts (content)
⚔️ packages/desktop-client/src/hooks/useCategoryPreviewTransactions.ts (content)
⚔️ packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplateIndicator.ts (content)
⚔️ packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplates.ts (content)
⚔️ packages/desktop-client/src/hooks/useClosedAccounts.ts (content)
⚔️ packages/desktop-client/src/hooks/useContextMenu.ts (content)
⚔️ packages/desktop-client/src/hooks/useDashboard.ts (content)
⚔️ packages/desktop-client/src/hooks/useDisplayPayee.tsx (content)
⚔️ packages/desktop-client/src/hooks/useEffectAfterMount.ts (content)
⚔️ packages/desktop-client/src/hooks/useFormat.ts (content)
⚔️ packages/desktop-client/src/hooks/useFormatList.ts (content)
⚔️ packages/desktop-client/src/hooks/useFormulaExecution.ts (content)
⚔️ packages/desktop-client/src/hooks/useGlobalPref.ts (content)
⚔️ packages/desktop-client/src/hooks/useGoCardlessStatus.ts (content)
⚔️ packages/desktop-client/src/hooks/useIsInViewport.ts (content)
⚔️ packages/desktop-client/src/hooks/useLocalPref.ts (content)
⚔️ packages/desktop-client/src/hooks/useMergedRefs.ts (content)
⚔️ packages/desktop-client/src/hooks/useMetadataPref.ts (content)
⚔️ packages/desktop-client/src/hooks/useModalState.ts (content)
⚔️ packages/desktop-client/src/hooks/useNavigate.ts (content)
⚔️ packages/desktop-client/src/hooks/useNotes.ts (content)
⚔️ packages/desktop-client/src/hooks/useOffBudgetAccounts.ts (content)
⚔️ packages/desktop-client/src/hooks/useOnBudgetAccounts.ts (content)
⚔️ packages/desktop-client/src/hooks/useOverspentCategories.ts (content)
⚔️ packages/desktop-client/src/hooks/usePayeeRuleCounts.ts (content)
⚔️ packages/desktop-client/src/hooks/usePluggyAiStatus.ts (content)
⚔️ packages/desktop-client/src/hooks/usePreviewTransactions.ts (content)
⚔️ packages/desktop-client/src/hooks/useProperFocus.tsx (content)
⚔️ packages/desktop-client/src/hooks/useQuery.ts (content)
⚔️ packages/desktop-client/src/hooks/useReport.ts (content)
⚔️ packages/desktop-client/src/hooks/useReports.ts (content)
⚔️ packages/desktop-client/src/hooks/useRuleConditionFilters.ts (content)
⚔️ packages/desktop-client/src/hooks/useScheduleEdit.ts (content)
⚔️ packages/desktop-client/src/hooks/useSchedules.ts (content)
⚔️ packages/desktop-client/src/hooks/useScrollListener.tsx (content)
⚔️ packages/desktop-client/src/hooks/useSelected.tsx (content)
⚔️ packages/desktop-client/src/hooks/useSendPlatformRequest.ts (content)
⚔️ packages/desktop-client/src/hooks/useServerPref.ts (content)
⚔️ packages/desktop-client/src/hooks/useSheetName.tsx (content)
⚔️ packages/desktop-client/src/hooks/useSheetValue.ts (content)
⚔️ packages/desktop-client/src/hooks/useSimpleFinStatus.ts (content)
⚔️ packages/desktop-client/src/hooks/useSingleActiveEditForm.tsx (content)
⚔️ packages/desktop-client/src/hooks/useSplitsExpanded.tsx (content)
⚔️ packages/desktop-client/src/hooks/useSpreadsheet.tsx (content)
⚔️ packages/desktop-client/src/hooks/useSyncedPref.ts (content)
⚔️ packages/desktop-client/src/hooks/useSyncedPrefs.ts (content)
⚔️ packages/desktop-client/src/hooks/useTagCSS.ts (content)
⚔️ packages/desktop-client/src/hooks/useTags.ts (content)
⚔️ packages/desktop-client/src/hooks/useThemeCatalog.ts (content)
⚔️ packages/desktop-client/src/hooks/useTransactionBatchActions.ts (content)
⚔️ packages/desktop-client/src/hooks/useTransactionFilters.ts (content)
⚔️ packages/desktop-client/src/hooks/useTransactions.ts (content)
⚔️ packages/desktop-client/src/hooks/useUndo.ts (content)
⚔️ packages/desktop-client/src/hooks/useUrlParam.ts (content)
⚔️ packages/desktop-client/src/hooks/useWidget.ts (content)
⚔️ packages/desktop-client/src/index.tsx (content)
⚔️ packages/desktop-client/src/modals/modalsSlice.ts (content)
⚔️ packages/desktop-client/src/notes/DesktopLinkedNotes.tsx (content)
⚔️ packages/desktop-client/src/notifications/notificationsSlice.ts (content)
⚔️ packages/desktop-client/src/payees/payeesSlice.ts (content)
⚔️ packages/desktop-client/src/prefs/prefsSlice.ts (content)
⚔️ packages/desktop-client/src/queries/aqlQuery.test.ts (content)
⚔️ packages/desktop-client/src/queries/aqlQuery.ts (content)
⚔️ packages/desktop-client/src/queries/index.ts (content)
⚔️ packages/desktop-client/src/queries/liveQuery.test.ts (content)
⚔️ packages/desktop-client/src/queries/liveQuery.ts (content)
⚔️ packages/desktop-client/src/queries/pagedQuery.test.ts (content)
⚔️ packages/desktop-client/src/queries/pagedQuery.ts (content)
⚔️ packages/desktop-client/src/redux/index.ts (content)
⚔️ packages/desktop-client/src/redux/store.ts (content)
⚔️ packages/desktop-client/src/spreadsheet/bindings.ts (content)
⚔️ packages/desktop-client/src/spreadsheet/index.ts (content)
⚔️ packages/desktop-client/src/style/customThemes.test.ts (content)
⚔️ packages/desktop-client/src/style/palette.ts (content)
⚔️ packages/desktop-client/src/style/themes/dark.ts (content)
⚔️ packages/desktop-client/src/style/themes/development.ts (content)
⚔️ packages/desktop-client/src/style/themes/light.ts (content)
⚔️ packages/desktop-client/src/style/themes/midnight.ts (content)
⚔️ packages/desktop-client/src/sync-events.ts (content)
⚔️ packages/desktop-client/src/transactions/transactionsSlice.ts (content)
⚔️ packages/desktop-client/src/undo/index.ts (content)
⚔️ packages/desktop-client/src/users/usersSlice.ts (content)
⚔️ packages/desktop-client/src/util/ruleUtils.ts (content)
⚔️ packages/desktop-client/vite.config.mts (content)
⚔️ packages/desktop-electron/beforePackHook.ts (content)
⚔️ packages/desktop-electron/e2e/fixtures.ts (content)
⚔️ packages/desktop-electron/index.ts (content)
⚔️ packages/desktop-electron/menu.ts (content)
⚔️ packages/desktop-electron/preload.ts (content)
⚔️ packages/desktop-electron/window-state.ts (content)
⚔️ packages/docs/docs-sidebar.js (content)
⚔️ packages/docs/docs/api/types.jsx (content)
⚔️ packages/docs/docs/contributing/leadership/new-core-contributors-guide.md (content)
⚔️ packages/docs/docs/contributing/releasing.md (content)
⚔️ packages/loot-core/package.json (content)
⚔️ packages/loot-core/src/mocks/arbitrary-schema.ts (content)
⚔️ packages/loot-core/src/mocks/budget.ts (content)
⚔️ packages/loot-core/src/mocks/index.ts (content)
⚔️ packages/loot-core/src/mocks/setup.ts (content)
⚔️ packages/loot-core/src/platform/client/undo/index.ts (content)
⚔️ packages/loot-core/src/platform/server/asyncStorage/__mocks__/index.ts (content)
⚔️ packages/loot-core/src/platform/server/asyncStorage/index.electron.ts (content)
⚔️ packages/loot-core/src/platform/server/asyncStorage/index.ts (content)
⚔️ packages/loot-core/src/platform/server/connection/index.electron.ts (content)
⚔️ packages/loot-core/src/platform/server/connection/index.ts (content)
⚔️ packages/loot-core/src/platform/server/fs/index.web.ts (content)
⚔️ packages/loot-core/src/platform/server/sqlite/index.ts (content)
⚔️ packages/loot-core/src/platform/server/sqlite/index.web.ts (content)
⚔️ packages/loot-core/src/server/accounts/app.ts (content)
⚔️ packages/loot-core/src/server/accounts/sync.test.ts (content)
⚔️ packages/loot-core/src/server/accounts/sync.ts (content)
⚔️ packages/loot-core/src/server/admin/app.ts (content)
⚔️ packages/loot-core/src/server/api-models.ts (content)
⚔️ packages/loot-core/src/server/api.test.ts (content)
⚔️ packages/loot-core/src/server/api.ts (content)
⚔️ packages/loot-core/src/server/app.ts (content)
⚔️ packages/loot-core/src/server/aql/compiler.ts (content)
⚔️ packages/loot-core/src/server/aql/exec.ts (content)
⚔️ packages/loot-core/src/server/aql/index.ts (content)
⚔️ packages/loot-core/src/server/aql/schema/executors.ts (content)
⚔️ packages/loot-core/src/server/aql/schema/index.ts (content)
⚔️ packages/loot-core/src/server/auth/app.ts (content)
⚔️ packages/loot-core/src/server/budget/actions.ts (content)
⚔️ packages/loot-core/src/server/budget/app.ts (content)
⚔️ packages/loot-core/src/server/budget/base.ts (content)
⚔️ packages/loot-core/src/server/budget/category-template-context.test.ts (content)
⚔️ packages/loot-core/src/server/budget/category-template-context.ts (content)
⚔️ packages/loot-core/src/server/budget/goal-template.ts (content)
⚔️ packages/loot-core/src/server/budget/schedule-template.test.ts (content)
⚔️ packages/loot-core/src/server/budget/schedule-template.ts (content)
⚔️ packages/loot-core/src/server/budget/statements.ts (content)
⚔️ packages/loot-core/src/server/budget/template-notes.test.ts (content)
⚔️ packages/loot-core/src/server/budget/template-notes.ts (content)
⚔️ packages/loot-core/src/server/budgetfiles/app.ts (content)
⚔️ packages/loot-core/src/server/dashboard/app.ts (content)
⚔️ packages/loot-core/src/server/db/index.ts (content)
⚔️ packages/loot-core/src/server/db/types/index.ts (content)
⚔️ packages/loot-core/src/server/encryption/app.ts (content)
⚔️ packages/loot-core/src/server/filters/app.ts (content)
⚔️ packages/loot-core/src/server/importers/ynab5.ts (content)
⚔️ packages/loot-core/src/server/main-app.ts (content)
⚔️ packages/loot-core/src/server/main.ts (content)
⚔️ packages/loot-core/src/server/migrate/migrations.ts (content)
⚔️ packages/loot-core/src/server/models.ts (content)
⚔️ packages/loot-core/src/server/mutators.ts (content)
⚔️ packages/loot-core/src/server/notes/app.ts (content)
⚔️ packages/loot-core/src/server/payees/app.ts (content)
⚔️ packages/loot-core/src/server/preferences/app.ts (content)
⚔️ packages/loot-core/src/server/prefs.ts (content)
⚔️ packages/loot-core/src/server/reports/app.ts (content)
⚔️ packages/loot-core/src/server/rules/action.ts (content)
⚔️ packages/loot-core/src/server/rules/app.ts (content)
⚔️ packages/loot-core/src/server/rules/customFunctions.ts (content)
⚔️ packages/loot-core/src/server/rules/formula-action.test.ts (content)
⚔️ packages/loot-core/src/server/rules/rule-indexer.ts (content)
⚔️ packages/loot-core/src/server/rules/rule-utils.ts (content)
⚔️ packages/loot-core/src/server/rules/rule.ts (content)
⚔️ packages/loot-core/src/server/schedules/app.ts (content)
⚔️ packages/loot-core/src/server/sheet.ts (content)
⚔️ packages/loot-core/src/server/spreadsheet/app.ts (content)
⚔️ packages/loot-core/src/server/spreadsheet/spreadsheet.ts (content)
⚔️ packages/loot-core/src/server/sync/encoder.ts (content)
⚔️ packages/loot-core/src/server/sync/index.ts (content)
⚔️ packages/loot-core/src/server/sync/migrate.test.ts (content)
⚔️ packages/loot-core/src/server/sync/migrate.ts (content)
⚔️ packages/loot-core/src/server/sync/sync.property.test.ts (content)
⚔️ packages/loot-core/src/server/tags/app.ts (content)
⚔️ packages/loot-core/src/server/tests/mockSyncServer.ts (content)
⚔️ packages/loot-core/src/server/tools/app.ts (content)
⚔️ packages/loot-core/src/server/transactions/app.ts (content)
⚔️ packages/loot-core/src/server/transactions/index.ts (content)
⚔️ packages/loot-core/src/server/transactions/merge.test.ts (content)
⚔️ packages/loot-core/src/server/transactions/merge.ts (content)
⚔️ packages/loot-core/src/server/transactions/transaction-rules.ts (content)
⚔️ packages/loot-core/src/server/undo.ts (content)
⚔️ packages/loot-core/src/shared/currencies.ts (content)
⚔️ packages/loot-core/src/shared/dashboard.ts (content)
⚔️ packages/loot-core/src/shared/months.ts (content)
⚔️ packages/loot-core/src/shared/query.ts (content)
⚔️ packages/loot-core/src/shared/rules.ts (content)
⚔️ packages/loot-core/src/shared/schedules.test.ts (content)
⚔️ packages/loot-core/src/shared/schedules.ts (content)
⚔️ packages/loot-core/src/shared/transactions.test.ts (content)
⚔️ packages/loot-core/src/shared/transactions.ts (content)
⚔️ packages/loot-core/src/shared/util.ts (content)
⚔️ packages/loot-core/src/types/api-handlers.ts (content)
⚔️ packages/loot-core/src/types/file.ts (content)
⚔️ packages/loot-core/src/types/models/account.ts (content)
⚔️ packages/loot-core/src/types/models/bank-sync.ts (content)
⚔️ packages/loot-core/src/types/models/category-group.ts (content)
⚔️ packages/loot-core/src/types/models/category.ts (content)
⚔️ packages/loot-core/src/types/models/dashboard.ts (content)
⚔️ packages/loot-core/src/types/models/payee.ts (content)
⚔️ packages/loot-core/src/types/models/reports.ts (content)
⚔️ packages/loot-core/src/types/models/rule.ts (content)
⚔️ packages/loot-core/src/types/models/simplefin.ts (content)
⚔️ packages/loot-core/src/types/models/transaction-filter.ts (content)
⚔️ packages/loot-core/src/types/models/transaction.ts (content)
⚔️ packages/loot-core/src/types/server-events.ts (content)
⚔️ packages/loot-core/src/types/server-handlers.ts (content)
⚔️ packages/sync-server/src/app-gocardless/banks/bank.interface.ts (content)
⚔️ packages/sync-server/src/app-gocardless/gocardless.types.ts (content)
⚔️ packages/sync-server/src/config-types.ts (content)
⚔️ packages/sync-server/src/util/validate-user.ts (content)
⚔️ yarn.lock (content)

These conflicts must be resolved before merging into master.
Resolve conflicts locally and push changes to this branch.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: adding theming to charts and allowing custom themes, which aligns with the PR's core objective of making charts theme-aware across Light, Dark, Midnight, and custom themes.
Description check ✅ Passed The pull request description clearly explains the changes: adding theme-aware chart colors, how the system works (palette → themes → CSS variables → chart-theme), and provides examples for custom themes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
⚔️ Resolve merge conflicts (beta)
  • Auto-commit resolved conflicts to branch chart-theme
  • Post resolved changes as copyable diffs in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot]
coderabbitai bot previously approved these changes Feb 8, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 8, 2026

@karimkodera I'll review the changes in this PR for you!


🧠 Learnings used
Learnt from: psybers
Repo: actualbudget/actual PR: 3298
File: packages/desktop-client/src/style/themes/light.ts:212-214
Timestamp: 2024-09-20T03:54:11.640Z
Learning: The tooltip styling constants `tooltipText`, `tooltipBackground`, and `tooltipBorder` have been added to all theme files, including `dark.ts`, `development.ts`, and `midnight.ts`.

Learnt from: psybers
Repo: actualbudget/actual PR: 3298
File: packages/desktop-client/src/style/themes/light.ts:212-214
Timestamp: 2024-10-08T15:46:15.739Z
Learning: The tooltip styling constants `tooltipText`, `tooltipBackground`, and `tooltipBorder` have been added to all theme files, including `dark.ts`, `development.ts`, and `midnight.ts`.
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@karimkodera karimkodera marked this pull request as draft February 8, 2026 19:50
@karimkodera karimkodera marked this pull request as ready for review February 8, 2026 19:51
@actual-github-bot actual-github-bot bot changed the title [WIP] Add theming to charts and hence allowing custom themes on charts Add theming to charts and hence allowing custom themes on charts Feb 8, 2026
@matt-fidd
Copy link
Member

Looking at the codebase quickly, unless I'm mistaken only the qualitative colours are actually used. Maybe it's time to strip out the ones we don't use and rename qualitative to something more obvious for custom themers.

@karimkodera
Copy link
Contributor Author

Looking at the codebase quickly, unless I'm mistaken only the qualitative colours are actually used. Maybe it's time to strip out the ones we don't use and rename qualitative to something more obvious for custom themers.

Hi Matt,

Qualitative are the ones currently used. I believe that the usage of the heat map is at least quite useful for future use cases. I am happy to remove the rest if that is ok with you. I agree that once theming is there the other palettes are useless.

@matt-fidd
Copy link
Member

Looking at the codebase quickly, unless I'm mistaken only the qualitative colours are actually used. Maybe it's time to strip out the ones we don't use and rename qualitative to something more obvious for custom themers.

Hi Matt,

Qualitative are the ones currently used. I believe that the usage of the heat map is at least quite useful for future use cases. I am happy to remove the rest if that is ok with you. I agree that once theming is there the other palettes are useless.

I'd rather just keep the ones in use, we shouldn't just keep bloat around in case it's useful in the future. Would you be able to strip out the unused ones and just keep the qualitative ones please?

@netlify
Copy link

netlify bot commented Feb 14, 2026

Deploy Preview for actualbudget-storybook ready!

Name Link
🔨 Latest commit e6ec5e5
🔍 Latest deploy log https://app.netlify.com/projects/actualbudget-storybook/deploys/699045e6193c1700086ef8f8
😎 Deploy Preview https://deploy-preview-6909--actualbudget-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Feb 14, 2026

Deploy Preview for actualbudget-website ready!

Name Link
🔨 Latest commit 71edfed
🔍 Latest deploy log https://app.netlify.com/projects/actualbudget-website/deploys/6994a008e718990008ba5152
😎 Deploy Preview https://deploy-preview-6909.www.actualbudget.org
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@karimkodera
Copy link
Contributor Author

Looking at the codebase quickly, unless I'm mistaken only the qualitative colours are actually used. Maybe it's time to strip out the ones we don't use and rename qualitative to something more obvious for custom themers.

Hi Matt,
Qualitative are the ones currently used. I believe that the usage of the heat map is at least quite useful for future use cases. I am happy to remove the rest if that is ok with you. I agree that once theming is there the other palettes are useless.

I'd rather just keep the ones in use, we shouldn't just keep bloat around in case it's useful in the future. Would you be able to strip out the unused ones and just keep the qualitative ones please?

Hi Matt, Done. Please check.

Copy link
Member

@matt-fidd matt-fidd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@matt-fidd matt-fidd enabled auto-merge February 17, 2026 20:00
@matt-fidd matt-fidd added this pull request to the merge queue Feb 17, 2026
Merged via the queue into actualbudget:master with commit c7efb61 Feb 17, 2026
35 checks passed
@matt-fidd matt-fidd mentioned this pull request Feb 17, 2026
9 tasks
@karimkodera karimkodera deleted the chart-theme branch February 19, 2026 21:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants