Skip to content

SnowSignal v1.0.0-beta.4 — seasonal polish#5

Merged
DawsonCodes merged 3 commits into
mainfrom
feature/v1.0.0-beta.4-seasonal-polish
Jun 6, 2026
Merged

SnowSignal v1.0.0-beta.4 — seasonal polish#5
DawsonCodes merged 3 commits into
mainfrom
feature/v1.0.0-beta.4-seasonal-polish

Conversation

@DawsonCodes

@DawsonCodes DawsonCodes commented Jun 6, 2026

Copy link
Copy Markdown
Owner

SnowSignal v1.0.0-beta.4 — seasonal-polish beta (not a stable release)

The last planned visual-polish pass for a while, on the existing transparent, deterministic engine. No engine changes, no backend, no framework, no build step, no analytics/tracking, no new runtime dependencies. Stays fully static under GitHub Pages /snowsignal/; all beta.2/beta.3 preferences, saved/recent locations, and share links keep working.

What changed

  1. Seasonal palette (Appearance → Seasonal palette): Auto / Winter / Spring / Summer / Fall / Custom.
    • Auto follows the location's latitude + local date (Southern Hemisphere inverts; browser date fallback before a location is chosen) and shows a read-only Auto palette: <Season> badge.
    • Restrained accents: Winter icy blue/cyan, Spring soft pink/lavender, Summer fresh green, Fall amber/orange, each with a matching ambient glow. Persisted in localStorage.
    • The existing constrained hue slider stays; adjusting it switches the palette to Custom, and Reset restores Auto. Semantic warning/success/error colors are fixed and never follow the accent.
  2. Time-of-day ambient intensity (Auto only): subtle day/evening/night variation of the ambient glow and particle brightness from the location's local time (browser fallback) — brighter by day, softer/slightly warmer evening, deeper/dimmer night. Not separate themes.
  3. Atmosphere refinement: varied drifting snow, swaying spring petals, firefly-like summer motes (restrained brightness pulses), slowly rotating fall leaves. Low counts, pointer-events: none, no layout impact, disabled under reduced motion, tuned for light & dark.
  4. Settings-tab motion polish: ~160ms fade + 4px slide-in of the selected panel and a smoothly animated active-tab underline. Keyboard focus, tab semantics, Arrow/Home/End nav, focus trap, Escape/X/click-outside close all preserved; switching tabs doesn't replay result animations; zeroed under reduced motion.
  5. Hourly forecast scrolling: smooth horizontal scroll, subtler scrollbar, optional desktop-only prev/next arrows, no horizontal page overflow.
  6. Empty state: clearer prompt ("Search a location to check tonight's forecast.") with one restrained seasonal icon.

Compatibility & persistence

Preserves theme, accent hue, atmosphere, motion, temperature unit, saved/recent locations, school settings, estimate counter, clean URLs, explicit share-link generation, beta.2/beta.3 share-link restoration, geolocation friendly-label fallback, and relative paths under /snowsignal/. New seasonalPalette preference added to localStorage (defaults to auto).

Tests

node --test112 passing (was 94). New/updated coverage: seasonal-palette resolution + persistence, Southern-Hemisphere inversion, Custom-hue persistence, manual-adjust→Custom and Reset→Auto end-states, daypart bucketing, tab semantics, atmosphere/tab/scroll CSS guards, semantic colors independent of the accent, beta.2/beta.3 share-link restoration, and the beta.4 version stamp.

Manual checks

Served locally: ES-module MIME text/javascript, CSS text/css, all assets resolve via relative paths; no console errors or debug leftovers in source.

Limitations / notes

  • Daypart/season use the location's UTC offset + latitude from the forecast (browser fallback before a forecast loads).
  • The accent stays on the constrained hue slider by design (no raw color picker); status colors are intentionally fixed.
  • Seasonal CSS :has()-based pill highlighting needs a modern browser; selection remains fully functional without it.

…phere/tab/scroll polish

- Seasonal palette (Auto/Winter/Spring/Summer/Fall/Custom) with location-aware Auto
  and a read-only Auto badge; reuses the constrained hue slider for Custom
- Subtle day/evening/night ambient intensity under Auto via data-daypart
- Refined per-season atmosphere (spring sway, summer firefly pulse) tuned for light/dark
- Settings-tab underline + panel entrance animation; smoother/subtler hourly scrolling
  with optional desktop arrows; clearer seasonal empty state
- Bump in-app version and package.json to 1.0.0-beta.4
Update README, CHANGELOG, and ROADMAP for the seasonal palette, time-of-day
ambient intensity, atmosphere refinement, settings-tab motion, hourly-scroll,
and empty-state changes. Documented as a polish beta, not a stable release.
Cover seasonal-palette resolution and persistence, Southern-Hemisphere inversion,
Custom-hue persistence, daypart bucketing, tab semantics, atmosphere/tab/scroll CSS
guards, semantic-color independence from the accent, beta.2/beta.3 share-link
restoration, and the beta.4 version stamp.
@DawsonCodes DawsonCodes marked this pull request as ready for review June 6, 2026 23:38
@DawsonCodes DawsonCodes merged commit caa55d8 into main Jun 6, 2026
2 checks passed
@DawsonCodes DawsonCodes deleted the feature/v1.0.0-beta.4-seasonal-polish branch June 6, 2026 23:38
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.

1 participant