demo.webm
In B2B software development, adapting app styles to match clients' branding is crucial. But managing separate CSS files for each client quickly becomes impractical.
With database-driven themes, updating branding is as simple as a database edit, saving hours of development time and enabling clients to manage their own themes (through the UI) for a seamless user experience.
-
Run
npm installto install dependencies. -
Run
npm run serverto start the backend server (server.ts) on port 3000. The server keeps an in-memory database of the client themes and products. -
In another terminal, run
npm startto start the Angular dev server on port 4200. -
Navigate to
http://localhost:4200/
-
Instant Branding Updates: By storing themes in the database, developers can effortlessly update branding with a simple row edit, eliminating the need for extensive development cycles.
-
Seamless User Experience: Since themes are just data, we can create an API and UI for users to update their own branding without the need for developer intervention.
-
Dynamic CSS Variables: Leveraging
document.documentElement.style.setProperty(), we can dynamically set CSS variables at runtime. -
Dynamic Font Loading: Utilizing dynamically-generated
<link>elements, we can import Google Fonts (or any other fonts) at runtime. -
Route Resolver: Avoid a "flash of unstyled content" by loading the theme in a route resolver, before components are rendered.