Just wrapped up a full styling overhaul - ditched vanilla CSS for Tailwind CSS v4. Way cleaner code, solid mobile-first responsive base that matches our Figma specs perfectly.
@theme magic: Set up TW v4’s new module system. All my custom vars (–color-primary, –sidebar-bg) live in src/index.css via @theme - no more tailwind.config.js
Light/Dark modes: Native [data-theme=“dark”] support with smooth transitions. Fixed sidebar bg (#141625) for pixel-perfect dark mode
1.2 Forms & Custom Controls
Custom dropdowns/dates: Built CustomDropdown (payment terms) + CustomDatePicker (issue date) to replace lame browser defaults. Custom chevrons, purple hovers, proper padding - matches designs 1:1
Fixed invoice bug: ‘Issue Date’ was hardcoded disabled on new invoices. Now only disables when !!existingInvoice
1.3 Layout + Responsive
Invoices/modals: Added sm:, md:, xl: breakpoints. InvoiceForm goes full-screen mobile → desktop sidebar overlay (no clipping)
Icon cleanup: Swapped unicode arrows (←) for proper SVG chevrons + “Go back” icons in InvoiceDetail/InvoiceForm
Summary
TW v4 migration done , cleaner code, pixel-perfect designs, fully responsive. Next up: perf audits or more component abstractions