Skip to content

Commit 30fc13b

Browse files
committed
docs: mark weather-sense and veneer migrations as skipped with rationale
1 parent 0cafb13 commit 30fc13b

1 file changed

Lines changed: 27 additions & 2 deletions

File tree

specs/vanilla-migration.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -679,8 +679,33 @@ Layout utilities (`.fluid`, `.bleed-edge`, `.bleed-wide`, `.bleed-full`, `.conta
679679

680680
### 6.5 weather-sense
681681

682-
**Status:** Not started
682+
**Status:** Skipped
683+
**Date:** 2026-03-30
684+
685+
**Rationale:** Cost/benefit analysis determined migration is not worthwhile. The project previously migrated *away* from PicoCSS to sanitize.css specifically to avoid framework interference with its highly custom UI. Adding nimble.css would partially reverse that decision.
686+
687+
**Key findings:**
688+
- ~1,783 lines of custom CSS across 12 files, with the main dashboard being the heaviest (529 lines)
689+
- Nearly every form element uses `appearance: none` with bespoke styling: gradient-border checkboxes, glassmorphic buttons with `backdrop-filter` and `color-mix()`, cross-browser custom range slider
690+
- `.no-nimble` would be needed on the main dashboard checkboxes, DailyTiles buttons, RadarTimeline range slider, and wmo-codes buttons — essentially every interactive element
691+
- Only `/radar` (table) and `/aqi` (details/summary, article cards) would benefit from nimble defaults, and both already work fine with minimal CSS
692+
- The existing `.container` class (max-width 960px) would collide with nimble's body grid
693+
- Net CSS reduction: approximately zero — lines saved by removing sanitize.css imports and `.container` would be offset by `.no-nimble` wrappers and override rules
683694

684695
### 6.6 veneer
685696

686-
**Status:** Not started
697+
**Status:** Skipped
698+
**Date:** 2026-03-30
699+
700+
**Rationale:** Marginal benefit (~6-7% CSS reduction) does not justify the integration effort and risk.
701+
702+
**Key findings:**
703+
- ~2,785 lines of custom CSS across 23 files
704+
- `forms.scss` (169 lines) is nearly identical to nimble's form layer but uses a different variable system (`--app-*` vs `--nc-*`). Replacing it would require remapping custom properties across the project.
705+
- ~30 custom HTML elements (`d-article`, `d-header`, `gh`, `gd`, `pl-*`, `fi-*`, `grid-table`, `nav-buttons`, etc.) mean nimble's classless element styling has very limited reach — most UI intentionally avoids standard elements to prevent iOS Safari Reader Mode activation
706+
- `html { font-size: 115% }` conflicts with nimble's `100%` default, affecting all rem/em-based sizing
707+
- nimble's `body { display: grid }` would break veneer's existing layout approach
708+
- `fieldset` border conflict: nimble adds borders, veneer strips them
709+
- Open Props SCSS (`@use 'open-props-scss' as *`) is imported in 13 files — this coexists fine with nimble, but the `--app-*` variable system built on top of it would need remapping
710+
- Net CSS reduction: ~170-200 lines out of 2,785 (6-7%), with 50-100 lines of bridge/override code needed
711+
- Only `presets/+page.svelte` (57 lines, basic content page) would meaningfully benefit from nimble defaults

0 commit comments

Comments
 (0)