Skip to content

Refactor Frontend#2502

Open
GrahamSH-LLK wants to merge 41 commits into
PhotonVision:mainfrom
GrahamSH-LLK:drop-vuetify
Open

Refactor Frontend#2502
GrahamSH-LLK wants to merge 41 commits into
PhotonVision:mainfrom
GrahamSH-LLK:drop-vuetify

Conversation

@GrahamSH-LLK

Copy link
Copy Markdown
Contributor

Description

This PR completely removes Vuetify from the photon-client codebase in favor of a custom component set built with Tailwind CSS and Reka UI.

Summary of changes

  1. Completely removed Vuetify. This lowers build times, allows much more flexibility, and shrinks CSS bundles a lot.
  2. Implemented simpler Tailwind + Reka component library (src/components/common/). This allows for more modern, accessible and custom components that fit our theme better.
  3. Generally tighten up UI styling. Tweak breakpoints so that the UI is more usable at small viewports.
  4. Moved body font from Prompt to Lato- Prompt is a really terrible body text font and doesn't support tabular numbers which leads to layout shifting and jittering. Lato is what our brandards recommend for body text anyways
  5. Improved tree shaking of various parts of the app (Migrating icons alone cut <30% of content loaded)
  6. Upgraded minor outdated deps
image

Meta

Merge checklist:

  • Pull Request title is short, imperative summary of proposed changes
  • The description documents the what and why, including events that led to this PR
  • If this PR changes behavior or adds a feature, user documentation is updated
  • If this PR touches photon-serde, all messages have been regenerated and hashes have not changed unexpectedly
  • If this PR touches configuration, this is backwards compatible with all settings going back to the previous seasons's last release (seasons end after champs ends)
  • If this PR touches pipeline settings or anything related to data exchange, the frontend typing is updated
  • If this PR addresses a bug, a regression test for it is added
  • If this PR adds a dependency, the license has been checked for compatibility and steps taken to follow it

@GrahamSH-LLK GrahamSH-LLK requested a review from a team as a code owner May 23, 2026 16:44
@github-actions github-actions Bot added the frontend Having to do with PhotonClient and its related items label May 23, 2026
@mcm001

mcm001 commented May 24, 2026

Copy link
Copy Markdown
Contributor

Stream padding seems largely improved with 1ebedd6

image image

Comment thread photon-client/src/views/CameraSettingsView.vue
Comment thread photon-client/src/components/cameras/CameraCalibrationCard.vue Outdated
<div class="pt-0">
<div v-if="useCameraSettingsStore().isConnected" class="d-flex flex-column">
<div v-if="!isCalibrating" class="pt-4 pb-3 pl-0 text-base font-semibold opacity-100">
Configure New Calibration

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Image

There's a lot of vertical padding here that at 1080p or 720p feels like wasted space. How do you feel about tightening this up?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

All of the padding comes from the input elements and is standardized across the app. I personally think dropping the padding by multiple of our spacing constant looks worse.

Comment thread photon-client/src/views/DashboardView.vue
@github-actions github-actions Bot added the backend Things relating to photon-core and photon-server label May 24, 2026
Comment thread photon-client/src/components/cameras/CameraCalibrationCard.vue Outdated
Comment thread photon-client/src/views/GeneralSettingsView.vue
Comment thread photon-client/src/components/dashboard/CamerasCard.vue
Comment thread photon-client/src/views/DashboardView.vue Outdated
Comment thread photon-client/src/components/settings/GlobalSettingsCard.vue
@thatcomputerguy0101

Copy link
Copy Markdown
Contributor

We should probably have a fallback for CSS contrast-color since some environments (like the VSCode integrated browser) don't support it yet.

This alternative gives acceptable fallback results: oklch(from var(--name) round(1.21 - L) 0 0), (from https://css-tricks.com/approximating-contrast-color-with-other-css-features/)

@spacey-sooty spacey-sooty left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I can't toggle the low latency mode switch with this on my laptop with its in built webcam whereas I can (and observe that it has an effect) on main

@samfreund

Copy link
Copy Markdown
Member

I don't like how you can't tell whether an element is a button or not. There should be some sort of indicator of whether something is clickable, which is currently missing.

@GrahamSH-LLK

Copy link
Copy Markdown
Contributor Author

I don't like how you can't tell whether an element is a button or not. There should be some sort of indicator of whether something is clickable, which is currently missing.

Could you give an example of something that isn't clearly clickable? Buttons in the app have relatively consistent styling but I'm not sure if there's a specific spot I'm missing

@GrahamSH-LLK GrahamSH-LLK requested a review from mcm001 June 12, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend Things relating to photon-core and photon-server frontend Having to do with PhotonClient and its related items

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants