No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/westside-landing!119
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "116-117-118-quick-fixes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Batch of three playground-approved quick fixes: Queens color toggle not switching accent to pink, staff page ordering (Abbie Sa below Coach Manny), and registration page using wrong logo.
Changes
src/routes/(public)/+layout.svelte: Replaced<svelte:body class:queens-active>directive with$effectthat togglesdocument.body.classListdirectly for reliable body class applicationsrc/app.css: Changed.queens-activetobody.queens-activefor proper specificity overriding:rootcustom properties; updated.reg-logotowidth: 150px, removedborder-radius: 50%and bordersrc/routes/(public)/staff/+page.svelte: Swapped Abbie Sa and Coach Manny article blocks so Abbie appears above Manny, matching playground referencesrc/routes/(app)/register/+page.svelte: Replaced logo URL fromlogo-transparent.pngtologo-hero-transparent.pngTest Plan
Review Checklist
Related Notes
westside-app-- the project this work belongs toQA Review -- PR #119
Fix 1: Queens color switch (#116)
<svelte:body class:queens-active>with$effect+document.body.classList-- correct approach for reliable DOM class toggling in Svelte 5body.queens-activefor proper specificity over:rootcustom properties -- correct$effectdid not return a cleanup function, meaning thequeens-activeclass would leak onto<body>when navigating from public to app routes. Fixed in commit97379b0-- added teardown return to remove the class on layout unmount.Fix 2: Staff page reorder (#117)
westside-playground/staff.htmlFix 3: Registration logo (#118)
logo-transparent.pngtologo-hero-transparent.png-- matches playground referenceborder-radius: 50%andborder, setwidth: 150pxwithheight: auto-- matches specChecklist
npm run buildclean)VERDICT: APPROVE
PR #119 Review
DOMAIN REVIEW
Tech stack: SvelteKit 5 (runes), pure CSS custom properties, adapter-static. No Tailwind (correct per convention).
Queens color switch (
$effect+body.queens-active)The core fix replaces the
<svelte:body class:queens-active={...}>directive with an imperative$effectthat togglesdocument.body.classList. This is the correct approach -- the Svelte 5class:directive on<svelte:body>has known limitations with CSS custom property inheritance when the selector needs to override:root.Specificity analysis:
:rootcustom properties (specificity 0,1,0 onhtml) are inherited bybody. Thebody.queens-activeselector (specificity 0,1,1) sets--color-red,--color-red-rgb, and--color-red-hoverdirectly on the body element. Because custom properties inherit down the DOM, all descendants will see the overridden values. This is correct and reliable.The
$effectcleanup function (return () => { document.body.classList.remove('queens-active') }) correctly removes the class when the(public)layout unmounts (e.g., navigating to(app)routes). This prevents the pink color from leaking into the registration/auth pages. Good defensive coding.Note: the playground CSS uses
.queens-active(withoutbody.prefix) while the app usesbody.queens-active. The app version is actually more correct -- the playground worked because its JS always targetsdocument.body, so the class was always onbody. Adding thebodytype selector makes the intent explicit and adds specificity.Staff reorder (Abbie Sa above Coach Manny)
Pure block swap -- no content added, removed, or modified. Both article blocks are byte-identical to their pre-swap versions. The order now matches the playground reference (
staff.htmllines 146-170: Abbie Sa at line 146, Coach Manny at line 159).Registration logo
logo-transparent.pngtologo-hero-transparent.png-- matches playground reference (register.htmlline 43 useslogo-hero.png, the MinIO asset equivalent islogo-hero-transparent.png)width: 60px->150px,height: 60px->auto,border-radius: 50%removed,border: 3px solid var(--color-red)->border: none,object-fit: cover->contain-- matches playground.reg-logostylingMinor discrepancy: playground CSS has
display: block; margin: 0 auto var(--space-md);on.reg-logothat the app version does not. The app keepsmargin-bottom: 1rem(functionally equivalent to--space-mdin this design system) and relies on the parent.reg-header { text-align: center }for centering instead ofdisplay: block; margin: 0 auto. Both approaches center the image correctly given the context -- this is fine.BLOCKERS
None.
Regarding the project's zero test infrastructure: westside-app has no test framework configured (
package.jsonhas no vitest/jest/playwright). This is a pre-existing condition, not introduced by this PR. These are CSS/content-only changes that would require visual regression testing anyway, which the manual Test Plan in the PR body adequately covers.NITS
Playground CSS drift: The playground
shared/style.cssline 2904 still uses.queens-activewhile the app now usesbody.queens-active. Consider updating the playground to stay in sync, so future copy-paste operations don't regress this fix. (Separate issue/PR scope.)reg-logomissingdisplay: block: The playground hasdisplay: block; margin: 0 autoon.reg-logofor explicit centering. The app relies ontext-align: centeron the parent. Both work, but the playground approach is more defensive if the image is ever moved outside.reg-header. Very minor.SOP COMPLIANCE
116-117-118-quick-fixesreferences all three issue numbersfeedback_todos_plan_pipeline.md("Bugs/fixes go straight to Forgejo issue + board").fix: Queens color switch + staff reorder + registration logo)PROCESS OBSERVATIONS
VERDICT: APPROVED