style: Phase 1+2 — FA→Lucide, variant-* → preset-*, dark mode forms

Phase 1 (global quick wins):
- app.css: add global dark mode utility for .input/.select/.textarea
- events menu nav + layout: replace all FontAwesome icons with Lucide
- events settings: replace FA icons, standardize variant-* → preset-*

Phase 2 (module-by-module migration):
- root +layout.svelte: fix hardcoded banner colors → preset-filled-error/warning
- journals entry list: replace slate-* with gray-*, HSL eye colors → CSS tokens
- pres mgmt presenter view: variant-soft-warning → preset-tonal-warning, FA edit → Lucide
- badges (4 files): variant-* → preset-*, FA spinner → Lucide Loader2, dynamic alert fix
- events session list + event hub: variant-soft/filled → preset-tonal/filled
- leads module (12 files): complete variant-* → preset-* migration across all
  exhibitor sign-in, QR scanner, manual search, tracking list, manage tab,
  custom questions, license list, exhibit page, lead detail page + form

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-03-16 11:53:07 -04:00
parent a79be722ae
commit 99df204763
25 changed files with 159 additions and 122 deletions

View File

@@ -137,6 +137,37 @@ html.light { color-scheme: light; }
}
}
/* ============================================================
* Global dark mode fix for Skeleton UI form elements.
*
* Skeleton v3 form classes (.input, .select, .textarea) do not
* include dark mode styles — browser renders them light even when
* html.dark is active, producing white text on white backgrounds.
*
* This eliminates the need for per-component <style> patches.
* Components that previously had local overrides for this can
* remove them and rely on this rule instead.
*
* Matches the gray-700 bg / gray-100 text palette used throughout
* the app for dark mode neutral surfaces.
* ============================================================ */
.dark .input:not([type='checkbox']):not([type='radio']):not([type='range']),
.dark .select,
.dark .textarea {
color: rgb(243 244 246); /* gray-100 */
background-color: rgb(55 65 81); /* gray-700 */
border-color: rgb(75 85 99); /* gray-600 */
}
.dark .input::placeholder,
.dark .textarea::placeholder {
color: rgb(156 163 175); /* gray-400 — legible at reduced opacity */
}
/* Option elements in dark selects — forces browser native dark chrome */
.dark .select option {
color: rgb(243 244 246);
background-color: rgb(55 65 81);
}
/* There are no more Tailwind layers. */
html,