Skip to content

UI cleanup, dark mode, and filter improvements#5272

Merged
itsouvalas merged 43 commits intodevelopfrom
feature/ui-additional-cleanup
Mar 23, 2026
Merged

UI cleanup, dark mode, and filter improvements#5272
itsouvalas merged 43 commits intodevelopfrom
feature/ui-additional-cleanup

Conversation

@norman-abramovitz
Copy link
Contributor

@norman-abramovitz norman-abramovitz commented Mar 20, 2026

Summary

  • Dark/light theme toggle — fixed initialization race, inline CSS variables, branding persistence
  • Loading bar animation — added indeterminate progress bar CSS that was missing after Tailwind migration
  • Space dropdown "All" mode — shows all spaces with org disambiguation when no org selected
  • Raw gray sweep — converted core components from hardcoded Tailwind grays to semantic CSS variable tokens for dark mode support
  • Filter reset — reset button now clears org/space dropdown selections and text filter
  • Sort/search separator — visual divider between search input and sort dropdown for clarity
  • Scroll shadow — gradient overlay on dashboard content when scrollable
  • About page redesign — 3-column layout with Angular/TS version info
  • Build system — Linux binary validation, branch ldflag, Makefile improvements
  • Dependencies — Angular 20.3.18, Helm 3.20.1, baseline-browser-mapping update
  • Theming architecture doc — comprehensive guide to CSS variable system

Test plan

  • Light mode: verify login page, home dashboard, applications, CF summary render correctly
  • Dark mode: toggle to dark, verify cards/text/nav respond, refresh page stays dark
  • Filter reset: on Applications page, select org/space, click reset, verify dropdowns return to "All"
  • Loading bar: navigate between pages, verify blue sliding animation during data fetch
  • Space dropdown: set Organization to "All", verify Space dropdown shows all spaces with org names
  • Sort separator: in card view, verify visual divider between search and sort controls
  • About page: verify version info, Angular/TS versions, VCS links

AI Disclosure

AI tooling (Claude Code) was used for code generation, analysis, and testing per CF RFC-0047.

norman-abramovitz and others added 9 commits March 16, 2026 15:48
Replace the old bin/package that compiled from
source with a script that uses Makefile build
targets and produces a zip for cf push -p with
binary_buildpack. Old script kept as package.old
until verified by Kevin Rutten.
Add PLATFORM override parsing, fe-version target in version.mk,
bump dev version to v4.9.3-dev.12. Gitignore .env files.
Improve list/table component consistency, add behavioral specs,
remove pageSplitCache, fix CF services list config patterns.
Rewrite contributing guide with correct commands, versions, and
setup steps. Add developer-environment.md reference. Add list
filter E2E test and plan files.
CF requires a Linux ELF binary. Validate dist/bin/jetstream
is a Linux binary before packaging, with a clear error message
if the wrong platform binary is present.

Binary must be pre-built: make build PLATFORM=linux/amd64
release-cf.sh validates dist/bin/jetstream is a Linux ELF binary
before packaging. version.mk moves BUILD_VCS_BRANCH before GO_LDFLAGS
so the branch name is correctly injected via ldflag.
Expose git_branch in the Versions struct so the About page
can display the backend branch alongside commit and build date.
Three-column card: logo | frontend+backend versions | signed in.
Semantic theme colors, formatted timestamps, native hover tooltips
on all truncated fields, GitHub links for commit and branch.
Backend branch displayed alongside frontend branch.
Admin row full-width with orange tint. Responsive: 2-col tablet,
1-col phone. Unit and E2E tests added.
Document binary naming, cross-compilation requirement on macOS,
and the Linux ELF validation in make release cf.
@tristanpoland
Copy link
Contributor

I can test this later today or on Monday depending on scheduling. I'll update with any findings!

@norman-abramovitz norman-abramovitz force-pushed the feature/ui-additional-cleanup branch from 88548a4 to c40ed1d Compare March 20, 2026 21:35
Patch-level upgrade. Includes CVE-2025-59052 security fix (SSR),
iframe src sanitization, and translated attribute sanitization.
No breaking change impact — Stratos does not use the affected
bootstrapApplication/getPlatform/destroyPlatform APIs.

Vitest: 1029 passed, 5 pre-existing errors unchanged.
Playwright: 6 passed, 0 failed.

Also fix about-page E2E fixture name to connectedEndpointsAdminPage.

FWT-839
Show Angular runtime version in About page
Frontend section. Add Runtime Versions card
to Diagnostics with Angular, TypeScript,
Node.js, and Bun. Fix diagnostics build date
to use BUILD_INFO for consistency with About.

FWT-835
AI: claude-code
Replace raw text-gray-900 with semantic
text-content-text in card-number-metric so
count values respect the active theme.

FWT-835
AI: claude-code
Replace app-metadata-item selectors with
dt/dd locators matching the redesigned About
page template. Add Angular version E2E test.

FWT-835
AI: claude-code
Seed BehaviorSubjects from persisted store values
on init so org/space dropdowns match the filter
state from first render. Fix selectItem to wait
for async options before validating and to treat
empty string as a clear operation.

FWT-834
Playwright tests verify org/space dropdowns stay
consistent with NgRx store across load, filter,
clear, and navigation. Update list component
locators for custom paginator and progress bar.

FWT-834
File-by-file analysis of ~40 templates using raw
Tailwind grays instead of semantic color classes.

FWT-847, FWT-852
Use [selected] binding on each <option> instead
of [value] on <select> — native selects ignore
[value] when options render asynchronously. Make
MultiFilterManager.value$ a BehaviorSubject so
the async pipe triggers OnPush change detection.

FWT-848
Central tracking for FWT tickets, status, commits,
decisions and learnings across work sessions.
Non-list pages (About, Diagnostics, Home) scroll via the
dashboard-base #content div. macOS hides scrollbars by
default, leaving no visual cue that more content exists.

Add a gradient shadow overlay that appears when content
overflows and fades on scroll-to-bottom. Reuses the list
component pattern with signal + scroll handler. Router
NavigationEnd subscription re-evaluates after page changes.

Includes Playwright E2E tests for DOM structure, visibility
behavior, cross-page navigation, and positioning.

AI: claude-opus-4-6
When no org is selected, aggregate spaces from all
orgs with "space (org)" labels for disambiguation.
Deduplicate by GUID, sort alphabetically. When an
org is selected, plain space names are unchanged.
Fix 9 templates broken in dark mode by replacing
text-gray-500 with text-content-muted on elements
that render on theme-controlled backgrounds.
Documents that @angular/material is fully removed.
Only @angular/cdk remains for non-UI utilities.
Remaining work is cleanup, not migration.
Silences stale data warning during builds.
Remove stale go.sum entries, reclassify
swaggo/swag as indirect dependency.
Drops docker/docker, docker/cli, and ~20 other
transitive dependencies. Bumps Kubernetes client
libs to v0.35.1. Eliminates ~30 Dependabot alerts.
Update .table-cell to .table-row-cell to match
the actual DOM class on table row data cells.
Fix card count assertion for partial rendering.
applyThemeMode() only toggled CSS classes but never
called applyTheme() to set CSS custom properties.
initializeTheme() loaded stale theme from localStorage
that could contain light colors even when mode was dark.

Now applyThemeMode() selects the correct base theme and
applies CSS variables inline. Branding is stored
separately so it survives mode switches. Default mode
changed from system to light.
The progress-bar-indeterminate class had no CSS definition
after the Tailwind migration, making the loading indicator
invisible during data fetches. Add keyframes animation and
fix bg-primary-500 (nonexistent) to bg-primary.

Includes vitest unit tests and Playwright E2E tests.
Convert core components from hardcoded Tailwind grays
to semantic CSS variable tokens (bg-content-bg,
text-content-text, text-content-muted, etc.) for dark
mode support. Add page side nav theming, fix card
progress overlay colors, fix login page text contrast.

Set all CSS variables inline in applyTheme() to prevent
race condition where dark mode loads before stylesheet.

Add theming architecture documentation.
Card header border, card title text, custom card colors,
and table header styles now use semantic CSS variables
for dark mode support.
The reset button now clears org/space dropdown selections
and text filter in addition to sort and pagination state.
Also fix orphaned subscriptions and lifecycle cleanup in
CfOrgSpaceDataService.
Add border divider between search input and sort dropdown
for visual clarity in both light and dark modes. Update
search placeholder to "Search by name". Reset button now
clears org/space dropdown selections and text filter.
Strip company-internal Jira references from test
descriptions and comments. Not useful to external
contributors.
@norman-abramovitz norman-abramovitz force-pushed the feature/ui-additional-cleanup branch from a584515 to 3fd19db Compare March 22, 2026 03:25
Plans migrated to external knowledge store.
Getting Started now links to deploy overview
instead of duplicating the Docs introduction.
Added Introduction link to footer Docs section.
Use "Filter by" consistently across all list
configs. Title case for all placeholder text.
Add CompanyConfigService layer, login page
theming, styling recipes, dark mode checklist.
Remove internal ticket references.
krutten
krutten previously approved these changes Mar 23, 2026
Copy link
Contributor

@krutten krutten left a comment

Choose a reason for hiding this comment

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

Paired with Norm A on review

Fix broken PR checks: Go 1.21→1.25, Node 16→24,
npm→Bun, old make targets to verb+modifier pattern,
disable TSLint (removed in Angular 20).
Copy link
Contributor

@itsouvalas itsouvalas left a comment

Choose a reason for hiding this comment

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

LGTM

@tristanpoland
Copy link
Contributor

I did not see anything concerning in my testing, so LGTM

@itsouvalas itsouvalas merged commit cdb44ba into develop Mar 23, 2026
3 of 14 checks passed
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