A collection of low-severity findings from the poll page UI audit. None are blocking, but fixing them improves consistency.
1. Publish to OpenMeet button style
PollView.jsx:448-453 — uses raw <button> with underline style, inconsistent with other CTAs. Should be Button variant="link" or Button variant="outline" size="sm".
2. GuestModal missing DialogFooter
GuestModal.jsx:49-55 — submit button sits inside a <form> directly, missing the DialogFooter wrapper used by EditPollDialog and DeletePollDialog.
3. Extract hardcoded hex colors into CSS custom properties
Colors like #faf9f6, #0d9488, #1a1a1a, #6b6560, #e8e5df, #a09a94 are hardcoded across all components. Extracting into CSS variables in globals.css centralizes them and prevents drift.
4. React fragment missing keys
AvailGrid.jsx:338 and SchedulingGrid.jsx:180 use bare <> fragments in times.map(). Replace with <Fragment key={time}>.
Replaces #56, #58, #59. Medium-severity button findings moved to #61.
A collection of low-severity findings from the poll page UI audit. None are blocking, but fixing them improves consistency.
1. Publish to OpenMeet button style
PollView.jsx:448-453— uses raw<button>with underline style, inconsistent with other CTAs. Should beButton variant="link"orButton variant="outline" size="sm".2. GuestModal missing DialogFooter
GuestModal.jsx:49-55— submit button sits inside a<form>directly, missing theDialogFooterwrapper used by EditPollDialog and DeletePollDialog.3. Extract hardcoded hex colors into CSS custom properties
Colors like
#faf9f6,#0d9488,#1a1a1a,#6b6560,#e8e5df,#a09a94are hardcoded across all components. Extracting into CSS variables inglobals.csscentralizes them and prevents drift.4. React fragment missing keys
AvailGrid.jsx:338andSchedulingGrid.jsx:180use bare<>fragments intimes.map(). Replace with<Fragment key={time}>.Replaces #56, #58, #59. Medium-severity button findings moved to #61.