Skip to content

Conversation

@ironAiken2
Copy link
Contributor

@ironAiken2 ironAiken2 commented Nov 17, 2025

Add Theme Preview Mode and Export Functionality

Adds functionality for users to directly change the theme of the WebUI. Since the API for saving settings is not yet supported, currently only extraction to a JSON-formatted file is possible. Theme settings support a preview window; if the preview page is open, changing values in the origin window automatically applies them to the preview window.

This PR enhances the theme customization experience by adding:

  1. A theme preview mode that allows users to see their theme changes in a new window without affecting their current session
  2. The ability to export custom theme configurations as JSON files
  3. Warning alerts to inform users about theme preview mode and application process

The implementation includes:

  • A new "Preview" button that opens a new window with the custom theme applied
  • An "Export JSON" button to download the current theme configuration
  • A warning alert explaining that theme changes require support team assistance to apply
  • A notification banner that appears when in preview mode
  • Session storage management to track preview mode state
  • Event listeners to automatically refresh preview windows when theme settings change

Screen Recording 2025-11-17 at 5.07.41 PM.mov (uploaded via Graphite)

Checklist:

  • Documentation
  • Minium required manager version
  • Specific setting for review (eg., KB link, endpoint or how to setup)
  • Minimum requirements to check during review
  • Test case(s) to demonstrate the difference of before/after

@github-actions github-actions bot added area:ux UI / UX issue. area:i18n Localization size:L 100~500 LoC labels Nov 17, 2025
Copy link
Contributor Author

ironAiken2 commented Nov 17, 2025


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link

github-actions bot commented Nov 17, 2025

Coverage report for ./react

St.
Category Percentage Covered / Total
🔴 Statements 4.43% 517/11670
🔴 Branches 3.59% 297/8268
🔴 Functions 2.58% 92/3571
🔴 Lines 4.41% 503/11415

Test suite run success

118 tests passing in 13 suites.

Report generated by 🧪jest coverage report action from 5b5dda8

@ironAiken2 ironAiken2 marked this pull request as ready for review November 17, 2025 08:10
@ironAiken2 ironAiken2 changed the base branch from feat/theme-customization-in-user-settings to graphite-base/4653 November 18, 2025 07:24
@ironAiken2 ironAiken2 force-pushed the feat/FR-1580-implement-custom-theme-preview-mode-feature branch from fca5d13 to 7f543fb Compare November 18, 2025 07:38
@ironAiken2 ironAiken2 changed the base branch from graphite-base/4653 to feat/theme-customization-in-user-settings November 18, 2025 07:38
@ironAiken2 ironAiken2 requested a review from agatha197 November 18, 2025 07:39
@ironAiken2 ironAiken2 force-pushed the feat/FR-1580-implement-custom-theme-preview-mode-feature branch from 7f543fb to 31a4b01 Compare November 19, 2025 01:45
@ironAiken2 ironAiken2 force-pushed the feat/theme-customization-in-user-settings branch from 983d66d to ebff6b8 Compare November 19, 2025 01:45
@ironAiken2 ironAiken2 force-pushed the feat/FR-1580-implement-custom-theme-preview-mode-feature branch from 31a4b01 to cdd7a2d Compare November 19, 2025 01:52
@ironAiken2 ironAiken2 force-pushed the feat/theme-customization-in-user-settings branch from ebff6b8 to d3de3b8 Compare November 19, 2025 01:52
Copy link
Member

@yomybaby yomybaby left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@agatha197 agatha197 left a comment

Choose a reason for hiding this comment

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

LGTM

@ironAiken2 ironAiken2 force-pushed the feat/theme-customization-in-user-settings branch from d3de3b8 to 1510583 Compare November 19, 2025 04:01
@ironAiken2 ironAiken2 force-pushed the feat/FR-1580-implement-custom-theme-preview-mode-feature branch from cdd7a2d to 722c67a Compare November 19, 2025 04:01
@ironAiken2 ironAiken2 force-pushed the feat/FR-1580-implement-custom-theme-preview-mode-feature branch from 722c67a to 90e9244 Compare November 19, 2025 04:04
Copy link
Contributor

@nowgnuesLee nowgnuesLee left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@nowgnuesLee nowgnuesLee left a comment

Choose a reason for hiding this comment

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

LGTM

@ironAiken2 ironAiken2 force-pushed the feat/FR-1580-implement-custom-theme-preview-mode-feature branch from 90e9244 to 8dc01df Compare November 19, 2025 06:46
@ironAiken2 ironAiken2 force-pushed the feat/theme-customization-in-user-settings branch from 1510583 to 39ad54d Compare November 19, 2025 06:46
@graphite-app
Copy link

graphite-app bot commented Nov 19, 2025

Merge activity

@graphite-app graphite-app bot changed the base branch from feat/theme-customization-in-user-settings to graphite-base/4653 November 19, 2025 06:54
@graphite-app graphite-app bot changed the base branch from graphite-base/4653 to main November 19, 2025 06:56
@ironAiken2 ironAiken2 force-pushed the feat/FR-1580-implement-custom-theme-preview-mode-feature branch from 8dc01df to c82c461 Compare November 19, 2025 07:00
### Add Theme Preview Mode and Export Functionality

Adds functionality for users to directly change the theme of the WebUI. Since the API for saving settings is not yet supported, currently only extraction to a JSON-formatted file is possible. Theme settings support a preview window; if the preview page is open, changing values in the origin window automatically applies them to the preview window.

This PR enhances the theme customization experience by adding:

1. A theme preview mode that allows users to see their theme changes in a new window without affecting their current session
2. The ability to export custom theme configurations as JSON files
3. Warning alerts to inform users about theme preview mode and application process

The implementation includes:
- A new "Preview" button that opens a new window with the custom theme applied
- An "Export JSON" button to download the current theme configuration
- A warning alert explaining that theme changes require support team assistance to apply
- A notification banner that appears when in preview mode
- Session storage management to track preview mode state
- Event listeners to automatically refresh preview windows when theme settings change

[Screen Recording 2025-11-17 at 5.07.41 PM.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.com/user-attachments/thumbnails/610104d6-130d-4392-a7f1-f3c67d1cdc1b.mov" />](https://app.graphite.com/user-attachments/video/610104d6-130d-4392-a7f1-f3c67d1cdc1b.mov)

**Checklist:**

- [ ] Documentation
- [ ] Minium required manager version
- [ ] Specific setting for review (eg., KB link, endpoint or how to setup)
- [ ] Minimum requirements to check during review
- [ ] Test case(s) to demonstrate the difference of before/after
@graphite-app graphite-app bot force-pushed the feat/FR-1580-implement-custom-theme-preview-mode-feature branch from c82c461 to 5b5dda8 Compare November 19, 2025 07:03
@graphite-app graphite-app bot merged commit 5b5dda8 into main Nov 19, 2025
11 checks passed
@graphite-app graphite-app bot deleted the feat/FR-1580-implement-custom-theme-preview-mode-feature branch November 19, 2025 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:i18n Localization area:ux UI / UX issue. size:L 100~500 LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants