Changed
- Dashboard: eliminated double-render flicker — initial paint uses skeleton widgets and a stat-less greeting; real widgets replace skeletons in-place without resetting
container.innerHTML - Dashboard: weather widget now derives temperature unit symbol (°C / °F / K) from the
unitsfield returned by the weather API instead of always showing °C - Dark mode: removed duplicate
@media (prefers-color-scheme: dark)block fromtokens.css; system-preference detection moved to amatchMedialistener inindex.htmlfor flash-free sync - Tasks: view-toggle (list / Kanban) fades out at 40% opacity during re-render and fades back in, giving visible feedback of the switch
Fixed
- Tasks: inline
style="width/height"on all Lucide icon instances replaced with utility CSS classes (icon-xs…icon-2xl,icon-11) defined inlayout.css - Tasks: edit-button inline size overrides removed; replaced with new
.btn--icon-smutility class - Tasks:
textarearesize: verticaland selectmin-height: 44pxmoved from inline styles tolayout.css - Dashboard:
chipIconinline style variable eliminated; chip icons now useclass="icon-sm" - Dashboard: settings, refresh, chevron, and other action icons converted from inline styles to CSS classes
- Weather API: server now forwards the configured
unitsvalue in the response payload so the frontend can render the correct unit symbol