Skip to content

feat(apollo-vertex): add customize appearance pattern (store + form + utilities)#596

Draft
creilly11235 wants to merge 1 commit intomainfrom
creilly11235/vertex-customize-core
Draft

feat(apollo-vertex): add customize appearance pattern (store + form + utilities)#596
creilly11235 wants to merge 1 commit intomainfrom
creilly11235/vertex-customize-core

Conversation

@creilly11235
Copy link
Copy Markdown
Contributor

@creilly11235 creilly11235 commented Apr 24, 2026

Add a pattern for allowing users to customize the appearance of their apps by updating the company name, logo, and primary and accent colors (custom colors lock the user into light mode only).

… utilities)

Ports the CustomizeAppearance page from vertical-medical-mrs into a
reusable Apollo Vertex pattern: a tenant-admin settings form for
company name, logo, and brand colors. This slice is the grab-and-go
core — the form composition, state store, color math, and theme
enforcer. Preview and docs follow in a stacked PR.

- CustomizeAppearance.tsx uses only @uipath/* registry primitives
  (Button, Card, Collapsible, Input, Label, PageHeader, Spinner,
  Sonner). Layout uses Tailwind v4 container queries so the form
  responds to its rendered container width — sidebar-collapsed
  shells, iframes, and narrow panels all lay out correctly. Cards
  reveal color pickers via the registry Collapsible with a parallel
  fade.
- branding-store.ts exposes useSyncExternalStore + a pluggable
  BrandingAdapter with load / save / uploadLogo / clearLogo hooks.
  Default adapter persists to localStorage. Logo uploads are staged
  locally and only pushed to the adapter on Save, so backends that
  separate settings records from file attachments (e.g. Data Fabric)
  don't upload on every preview.
- color-utils.ts provides oklch <-> hex conversion and generates a
  full primary-shade ramp plus sidebar vars from a single primary
  color.
- use-branding-theme-enforcer.ts locks the app to light mode when a
  custom theme is active (primary ramp is light-calibrated) and
  restores the user's previous theme on switch-back. Call from the
  app root inside ThemeProvider.
@creilly11235 creilly11235 requested a review from a team as a code owner April 24, 2026 21:11
@creilly11235 creilly11235 requested review from 0xr3ngar and alincadariu and removed request for a team April 24, 2026 21:11
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 24, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (PT)
apollo-design 🟢 Ready Preview, Logs Apr 24, 2026, 02:12:33 PM
apollo-docs ❌ Failed: Building: Summary: /vercel/path0/.turbo/runs/3CowGqFf6v7aab84dF9bHcYFOTd.json Building: Failed: ... N/A, Logs Apr 24, 2026, 02:12:22 PM
apollo-landing 🟢 Ready Preview, Logs Apr 24, 2026, 02:12:16 PM
apollo-ui-react 🟢 Ready Preview, Logs Apr 24, 2026, 02:12:24 PM
apollo-vertex 🟢 Ready Preview, Logs Apr 24, 2026, 02:14:11 PM

@github-actions
Copy link
Copy Markdown

Dependency License Review

  • 1941 package(s) scanned
  • ✅ No license issues found
  • ⚠️ 3 package(s) excluded (see details below)
License distribution
License Packages
MIT 1701
ISC 89
Apache-2.0 61
BSD-3-Clause 28
BSD-2-Clause 23
BlueOak-1.0.0 8
MPL-2.0 5
MIT OR Apache-2.0 3
MIT-0 3
CC0-1.0 3
LGPL-3.0-or-later 2
(MIT OR Apache-2.0) 2
Unlicense 2
Python-2.0 1
CC-BY-4.0 1
(MPL-2.0 OR Apache-2.0) 1
Unknown 1
Artistic-2.0 1
(WTFPL OR MIT) 1
(BSD-2-Clause OR MIT OR Apache-2.0) 1
CC-BY-3.0 1
0BSD 1
(MIT OR CC0-1.0) 1
MIT AND ISC 1
Excluded packages
Package Version License Reason
@img/sharp-libvips-linux-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
@img/sharp-libvips-linuxmusl-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
khroma 2.1.0 Unknown MIT per GitHub repo, missing license field in package.json

@alincadariu
Copy link
Copy Markdown
Collaborator

alincadariu commented Apr 28, 2026

@petervachon this one needs integration with the platform, as this PR currently stores it in local storage. so if user A changes company logo, it won't be visible to others (only to him). switched it to draft for now

cc: @0xr3ngar

@alincadariu alincadariu marked this pull request as draft April 28, 2026 13:36
auto-merge was automatically disabled April 28, 2026 13:36

Pull request was converted to draft

@petervachon
Copy link
Copy Markdown
Collaborator

Totally makes sense. When it comes to storage and relying on the platform, what is the best way to flag requests like this? I imagine our team may use local or session storage to work through the UX, but will need to work in the hooks later on. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app:apollo-vertex size:XL 500-999 changed lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants