Design system ten op zichte van CSS
all
all: revert kan de display property aanpassen, waardoor het hidden HTML attribute niet werkt. Lees onder onder display wat een oplossing is.
display
Het display attribuut overschrijft de browser stylesheet voor het hidden attribuut, waardoor je onverwacht gedrag hebt wanneer je hidden gebruikt op componenten.
Wanneer je display gebruikt, zorg dat het hidden HTML attribuut nog steeds werkt. Bijvoorbeeld:
.my-selector {
display: flex;
}
.my-selector[hidden] {
display: none;
}
Bij web components kun je het zo doen:
:host {
display: contents;
}
:host[hidden] {
display: none;
}
font-size
- Gebruik geen
font-sizekleiner dan16px. - Gebruik een
font-weight
- Let op wanneer je
font-weightgebruikt bij states zoalshover,focusofaria-current, dat er geen layout shift ontstaat. Zie ook: Bold on Hover… Without the Layout Shift — CSS Tricks. - Bij een
font-weightlager dan400wordt het contrast met de achtergrond lager, kies eventueel een kleur met meer contrast. - We gebruiken
400en700in plaats van keywords zoalsnormalenbold, omdat ze als design token duidelijker zijn in andere platforms.
overflow: hidden
Let op dat de focus ring van componenten binnen zo’n element volledig zichtbaar is, bijvoorbeeld door padding te gebruiken die groter is dan calc(var(--utrecht-focus-outline-width, 0) + var(--utrecht-focus-outline-offset, 0)).
pointer-events: none
Gebruik pointer-events: none niet om een interactief element disabled te maken, want toetsenbord gebruikers kunnen dan nog wel het component activeren. Gebruik een HTML attribuut zoals disabled, of gebruik event.preventDefault() in een script.
top, right, bottom en left
- Gebruik in de meeste gevallen
inset-inline-startin plaats vanleft. - Gebruik in de meeste gevallen
inset-inline-endin plaats vanright. - Gebruik in de meeste gevallen
inset-block-startin plaats vantop. - Gebruik in de meeste gevallen
inset-block-endin plaats vanbottom.
user-select: none
Onder andere de volgende componenten moeten user-select: none; gebruiken:
- form controls zonder tekstinvoer:
- checkbox
- radio button
- toggle button
- knoppen
- button
- button that looks like a link
- componenten die niet moeten reageren op interactie (inerte componenten)
- backdrop