feat: unify CSS/JS into single files (#85) #36
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "85-css-js-unification"
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
shared/style.csswith the red/black westside brand as the visual identity for all pagesshared/app.jswith mobile nav toggle incorporatedChanges
shared/style.css(new, 3175 lines): unified design system mergingcss/style.css(brand foundation) withshared/app.css(authenticated page components). Status color tokens, token aliases, and all responsive breakpoints preserved.shared/app.js(modified, +18 lines): mobile nav toggle added to DOMContentLoaded auto-init from the 20-line duplicate filesshared/style.css, JS refs ->shared/app.js, missing JS refs addedshared/app.css,shared/westside-style.css,shared/westside-main.js,css/style.css,js/main.js,css/,js/Test Plan
ls shared/shows onlystyle.css,app.js,logo.jpegReview Checklist
Related
Self-Review
Scope: 25 files changed, +3223 / -4292 lines. Single commit on
85-css-js-unificationbased on75-strip-tryout-content.Verified
shared/style.css) and 1 JS ref (shared/app.js)app.css,westside-style.css,westside-main.js,css/style.css,js/main.js)shared/contains onlystyle.css,app.js,logo.jpegcss/andjs/directories removedfaq-list,hero-contentwere never styled in originals either)--radius,--transition) preserved for backward compat with authenticated page componentsKnown trade-off
--max-widthchanged from900px(app.css) to1200px(brand CSS) for authenticated pages. This only affects desktop viewport -- on 390px mobile (the review gate) content is identical. The 1200px value is correct for the unified brand.Dependency
mainbut includes commits from75-strip-tryout-content(PR #35). PR #35 must merge first for a clean diff. The single commit from this PR isedf21dc.No issues found. Ready for phone review.
PR #36 Review
PR: feat: unify CSS/JS into single files (#85)
Branch:
85-css-js-unificationParent issue: forgejo_admin/westside-app#85 — Playground overhaul 1/4: CSS/JS unification
DOMAIN REVIEW
Tech stack: Static HTML playground (18 pages), vanilla CSS, vanilla JS. Mobile-first design system with red/black brand.
CSS quality (shared/style.css — 3175 lines):
:root— colors, typography, spacing, layout, transitions all tokenized/* ============ Section Name ============ */comment blocks throughout@media (min-width: 640px)for tablet,@media (min-width: 1024px)for desktop,@media (max-width: 400px)for small mobile:focus-visiblestyles present (line 116) with red outline for keyboard navigation.sr-onlyscreen reader utility class present (line 135).btn,.btn-primary,.btn-outline,.btn-secondary,.btn-danger,.btn-disabled,.btn-sm,.btn-lg,.btn-block--color-green,--color-danger,--color-yellow,--color-bluewith matching bg/border variantsJS quality (shared/app.js — 428 lines):
DOMContentLoadedauto-init detects page features and wires up appropriate handlersaria-selected,aria-controls) correctly?filter=X)HTML quality (18 pages):
lang="en", viewport meta, and referenceshared/style.css+shared/app.js@route,@auth,@api,@state,@interactivity,@gaps,@notescomment specs in HTML serve as SvelteKit promotion guides — excellent documentationaria-label="Main navigation"), hamburger (aria-expanded,aria-controls), tabs (role="tab",aria-selected)shared/style.css,shared/app.js,shared/logo.jpeg, andassets/images/Accessibility:
:focus-visiblesr-onlyclass availablearia-expandedstate toggling in JSBLOCKERS
None. This is a static HTML playground — no server-side code, no user input processing, no auth flows, no secrets. The BLOCKER criteria (test coverage, input validation, secrets, DRY auth) do not apply to playground prototype consolidation.
NITS
Inconsistent
deferattribute on script tags. 11 pages use<script src="shared/app.js" defer>, 7 pages omitdefer. Since the scripts are at the bottom of<body>and onclick handlers fire well after load,deferwould work on all pages. Theadmin-teams.htmlinline<script>block following the tag is the one legitimate reason to omitdeferon that page, but the other 6 pages without it (register, player-profile, coach, billing, admin-players) could be consistent. Non-blocking.Dead file:
shared/logo.jpeg. The file exists in theshared/directory but no HTML page references it. All logo references point to eitherassets/images/logo.jpeg(public pages) orhttps://minio-api.tail5b443a.ts.net/assets/westside/branding/logo.jpeg(authenticated pages). Could be cleaned up or documented as intentional.Stale OG meta URLs.
westside-index.html,staff.html,original-index.htmlreferencehttps://ldraney.github.io/west-side-basketball/in Open Graph tags. These are GitHub Pages URLs from before the Tailscale migration. Non-blocking for playground — will be corrected when promoting to SvelteKit.Some raw values instead of design tokens. A handful of places use hardcoded rem values (e.g.,
0.4rem,0.75remin.btn-sm,0.15remin.bottom-nav a) instead of the defined--space-*tokens. Low priority — the token system is solid and these are edge cases where the tokens don't have exact matches.Mixed image sourcing pattern. Public site pages use
assets/images/(local), authenticated pages usehttps://minio-api.tail5b443a.ts.net/assets/westside/(MinIO). This is consistent with the original architecture but worth noting for the overhaul tickets #86/#87 if unification is desired.SOP COMPLIANCE
85-css-js-unificationmatches westside-app#85.envfiles committedPROCESS OBSERVATIONS
@route/@api/@statecomments in every HTML page are excellent SvelteKit promotion guides. This playground is spec-level documentation, not just visual prototypes.VERDICT: APPROVED
edf21dc8f9to0f70078ab2