Een standaard Tailwind-installatie genereert gemiddeld 3 tot 5 MB aan CSS vóór purge. Met de juiste configuratie voor Hyvä UI kom je uit op minder dan 15 kB gecomprimeerd. Dat verschil zit niet in magie, maar in drie concrete ingrepen: correcte content-paden, een scherpe theme.extend en slimme pluginkeuzes.
Tailwind config tunen voor Hyvä UI
Een standaard Tailwind-installatie genereert gemiddeld 3 tot 5 MB aan CSS vóór purge. Met de juiste configuratie voor Hyvä UI kom je uit op minder dan 15 kB gecomprimeerd. Dat verschil zit niet in magie, maar in drie concrete ingrepen: correcte content-paden, een scherpe theme.extend en slimme pluginkeuzes.
Waarom de standaard config tekortschiet
Hyvä UI is gebouwd op Tailwind CSS en Alpine.js. Componenten zijn HTML-first: buttons, forms, modals, dropdowns, accordions, navigatie, tabs, product cards — allemaal geschreven in gewone HTML-klassen. Geen runtime CSS-in-JS, geen grote abstractielagen.
Maar dat betekent ook: Tailwind moet precies weten waar die klassen staan. Mis je een pad in je content-array, dan worden componenten weggepurgd uit de build. Je ziet dan live een button zonder styling — terwijl de klassen gewoon in de HTML staan.
Dat is de meest voorkomende fout die wij zien bij teams die voor het eerst met Hyvä UI werken.
Stap 1: content-paden goed zetten
De content-configuratie bepaalt welke bestanden Tailwind scant op klassen. Voor Hyvä UI in een Magento 2-context ziet dat er zo uit:
// tailwind.config.js
module.exports = {
content: [
// Hyvä UI component-bestanden
'./vendor/hyva-themes/hyva-ui/src/**/*.{html,phtml,js}',
// Eigen templates
'./app/design/frontend/<Vendor>/<Theme>/**/*.{phtml,html,xml,js}',
// Alpine.js x-data strings in phtml
'./app/design/frontend/<Vendor>/<Theme>/**/*.phtml',
// Magento layout XML (class-attributen worden soms inline gezet)
'./app/design/frontend/<Vendor>/<Theme>/**/layout/*.xml',
],
// ...
}
Gebruik je Hyvä UI buiten Magento — in Laravel, een headless setup of een statische site — dan past je de paden aan naar je eigen mapstructuur. Hyvä UI is framework-agnostisch, dus de configuratie verschilt per context.
Tip: voeg nooit node_modules toe aan je content-paden. Dat vertraagt de build enorm en levert vrijwel nooit nuttige klassen op.
Stap 2: theme.extend in plaats van overschrijven
Hyvä UI leunt op een set design tokens: kleuren, spacing, typografie, border-radius. Die tokens zijn gedocumenteerd in het bijgeleverde Figma Community-bestand, waar ontwerp en code 1-op-1 matchen.
De fout die je hier wilt vermijden: het volledige theme overschrijven in plaats van uitbreiden. Als je theme.colors direct instelt (zonder extend), gooit Tailwind alle standaard-klassen weg. Inclusief klassen die Hyvä UI intern gebruikt.
Gebruik altijd theme.extend:
module.exports = {
content: [ /* zie boven */ ],
theme: {
extend: {
colors: {
primary: {
DEFAULT: '#1a56db',
dark: '#1e429f',
light: '#ebf5ff',
},
secondary: {
DEFAULT: '#0e9f6e',
dark: '#057a55',
},
},
fontFamily: {
sans: ['Inter', 'ui-sans-serif', 'system-ui'],
},
borderRadius: {
'btn': '0.375rem',
},
spacing: {
'header': '4rem',
},
},
},
}
Zo behoud je alle standaard-utilities en voeg je alleen je eigen tokens toe. Dit matcht direct met hoe Hyvä UI zijn componenten opbouwt.
Stap 3: plugins selectief toevoegen
Tailwind heeft een aantal officiële plugins: @tailwindcss/forms, @tailwindcss/typography, @tailwindcss/aspect-ratio. Voeg alleen toe wat je écht gebruikt.
Voor Hyvä UI is @tailwindcss/forms bijna altijd nuttig: het geeft form-elementen een consistente basis. Zonder die plugin zien , en er per browser anders uit.
const forms = require('@tailwindcss/forms')
module.exports = {
content: [ /* ... */ ],
theme: { extend: { /* ... */ } },
plugins: [
forms({ strategy: 'class' }), // 'class' zodat je bestaande stijlen niet overschrijft
],
}
Gebruik strategy: 'class' als je een bestaand Hyvä theme hebt met eigen form-stijlen. Dan activeer je de plugin-stijlen alleen expliciet via klassen als form-input en form-select.
@tailwindcss/typography heeft weinig zin tenzij je een CMS-blok met rijke tekst rendert. Voeg het dan alleen toe op de pagina's waar het nodig is via een eigen prose-wrapper. Niet projectbreed.
Performance-impact: wat levert dit concreet op?
Hieronder een vergelijking gebaseerd op een standaard Hyvä Magento 2-project — vóór en na het opschonen van de Tailwind-configuratie:
| Situatie | CSS-bundle (gzip) | Build-tijd |
|---|---|---|
| Standaard config, brede content-paden | 48 kB | 12s |
| Gecorrigeerde content-paden | 22 kB | 7s |
| + scherpe theme.extend (geen overschrijven) | 18 kB | 6s |
| + alleen relevante plugins | 14 kB | 5s |
De getallen variëren per project, maar de trend is consistent: elke stap bespaart zowel bundle-grootte als build-tijd. Bij een Hyvä-gebaseerd project is een Lighthouse-score van 95+ haalbaar. Een te grote CSS-bundle is daarin een van de grootste obstakels.
Wij zien bij klanten dat incorrect ingestelde content-paden de meest voorkomende oorzaak zijn van opgeblazen CSS. Soms tot 5× groter dan nodig.
Hyvä UI-specifieke optimalisaties
Een paar extra instellingen die specifiek bij Hyvä UI lonen:
Safelist gebruiken voor dynamisch gegenereerde klassenAlpine.js werkt soms met dynamische klassen via x-bind:class of ternary-expressies. Tailwind kan die niet statisch analyseren. Zet ze op de safelist:
module.exports = {
safelist: [
'opacity-0',
'opacity-100',
'translate-x-full',
'-translate-x-full',
'pointer-events-none',
// Modal en drawer open/close-states
{ pattern: /^(overflow|scroll)-/, variants: ['sm', 'lg'] },
],
// ...
}
Beperk de safelist tot klassen die écht dynamisch zijn. Een te brede safelist doet de winst van purging teniet.
JIT-mode is standaard aan in Tailwind v3Hyvä UI werkt prima met Tailwind v3 JIT. Je hoeft niets extra te doen — maar controleer of je Tailwind-versie actueel is. Oudere projecten draaien soms nog op v2 zonder JIT, wat veel langzamere builds geeft.
Geen@layer components misbruiken
Het is verleidelijk om Hyvä UI-componenten te overschrijven via @layer components. Dat werkt, maar veroorzaakt specificiteitsproblemen. Gebruik liever theme.extend voor tokens en utility-klassen voor afwijkingen. Zo blijft je CSS onderhoudbaar.
Integratie met het Figma-bestand
Hyvä UI levert een Figma Community-bestand: design tokens en componenten die 1-op-1 matchen met de code. Dat betekent dat wat je in Figma definieert als primary-dark, letterlijk primary.dark wordt in je theme.extend.colors.
Dit is waardevol in teams waar design en development parallel lopen. De designer werkt in Figma met dezelfde tokens als de developer in Tailwind. Geen vertaalslag, geen losse spreadsheet met kleurcodes.
Meer over dit token-systeem lees je in ons artikel over Hyvä UI design tokens en Tailwind.
Wanneer Hyvä UI niet de juiste keuze is
Hyvä UI kost eenmalig ongeveer 250 euro per ontwikkelaar of project. Dat is goedkoop voor een serieuze componentbibliotheek. Maar er zijn situaties waarin het geen goede fit is:
- Je gebruikt geen Tailwind. Hyvä UI is volledig gebouwd op Tailwind en Alpine.js. Zonder die stack heb je niets aan de componenten.
- Je hebt een volledig custom design system. Als je al een uitgebreid eigen design system hebt, voegt Hyvä UI weinig toe. Je betaalt dan voor componenten die je toch overschrijft.
- Je project is bijna af. Hyvä UI integreren in een bestaand project vlak voor livegang is risicovol. Plan het in bij een nieuwe fase of een redesign.
- Je team kent Alpine.js niet. Hyvä UI-componenten gebruiken Alpine.js voor interactie. Zonder basiskennis kost het meer tijd dan het oplevert. Eerste een dag Alpine.js leren, dan pas integreren.
Eerlijk is eerlijk: voor de meeste Hyvä-projecten die van de grond af beginnen, is Hyvä UI een logische keuze. Maar niet voor elk project.
Samengevat: de drie ingrepen die het meest opleveren
Als je nu met Hyvä UI werkt en je CSS-bundle te groot is, begin dan hier:
- Controleer je
content-paden — mis je een map, dan worden klassen weggepurgd of juist niet. - Gebruik
theme.extendin plaats vanthemedirect — zo overschrijf je nooit per ongeluk Hyvä UI-utilities. - Voeg alleen de plugins toe die je écht gebruikt —
@tailwindcss/formsbijna altijd, de rest situationeel.
Meer weten over de volledige opzet van Hyvä UI in jouw project? Lees dan eerst de Hyvä UI-overzichtspagina.
Wil je weten of jouw huidige Tailwind-setup optimaal is ingericht voor Hyvä UI? Via /contact kun je een gratis Tech Check aanvragen. We kijken dan mee in jouw configuratie en geven direct feedback.

Geschreven door Ruthger Idema
15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.
Meer over ons team →