Nieuwe functies in CSS: 4 features die jouw werk makkelijker maken 

CSS heeft zich in de afgelopen jaren enorm ontwikkeld en biedt tegenwoordig krachtige tools om aantrekkelijke, herbruikbare en responsieve componenten te bouwen. Veel problemen die ik vroeger alleen met JavaScript of preprocessors zoals Sass kon oplossen,  kunnen nu in native CSS. Hier zijn een aantal nieuwe functies die je als ontwikkelaar zeker niet mag missen. 

1. Container Queries 

In baseline sinds: 2023 

Iets waar ik vaker tegenaan ben gelopen, is dat het lastig kan zijn om een generiek component responsive te maken.  Denk bijvoorbeeld aan een gebruikerskaart: afhankelijk van waar je deze plaatst, wil je dat de kaart een halve pagina of een klein blok beslaat. 

Hier bieden Container Queries een uitkomst. Container Queries stellen je in staat om een parent-element in je HTML aan te wijzen als container, waarmee je vervolgens media query-achtige CSS kunt schrijven. 

Het toewijzen doe je via: 

.container-element { 

  container-type: inline-size; 

  container-name: usercard; 

}

Hierbij is de container-name optioneel en alleen nodig als je meerdere containers door elkaar wilt gebruiken. 

Voor container-type kun je de volgende waardes gebruiken: 

  • size - Staat container queries op breedte en hoogte toe 
  • inline-size - Staat container queries toe op breedte 
  • normal - Staat geen container queries toe 

Vervolgens kun je de container op child-elementen op de volgende manier gebruiken: 

Voorbeeld: 

@container (width <= 300px) { 

  .card { 

    font-size: 1.2rem; 

  } 

}

Zie https://stackblitz.com/edit/cloudrepublic-container-queries?file=styles.css voor een compleet voorbeeld 

2. Container Units 

In baseline sinds: 2023 

Container Query Units zijn een logische uitbreiding op Container Queries en maken het mogelijk om relatieve eenheden te gebruiken die afhankelijk zijn van de grootte van een container. Dit biedt een nog nauwkeurigere controle over responsieve ontwerpen, omdat je stijlen kunt baseren op de container zelf, in plaats van op de viewport. 

Met eenheden zoals cqw (container width), cqh (container height), cqi (inline size), en cqb (block size) kun je eenvoudig flexibele stijlen creëren. 

Voorbeeld: 

.container { 

padding: 2cqi; 

} 

.card { 

font-size: 1cqh; 

border-radius: 0.5cqw; 

}

Hier worden de padding, font-grootte en border-radius allemaal dynamisch aangepast op basis van de containerafmetingen, wat vooral handig is voor complexe lay-outs en schaalbare componenten. 

Met Container Query Units kun je je CSS verder abstraheren en je stijlen nog flexibeler maken zonder onnodige hardcoding. 

Zie https://stackblitz.com/edit/cloudrepublic-container-query-units?file=styles.css voor een compleet voorbeeld 

3. Relative color syntax 

In baseline sinds: 2024 

Ik merk vaak dat het consistent houden van kleurenschema’s over een hele website een uitdaging kan zijn, vooral bij dynamische ontwerpen. De relative color syntax biedt een krachtige oplossing door het mogelijk te maken om kleuren direct af te leiden van bestaande waarden. 

Met de relative color syntax kun je bijvoorbeeld tinten, verzadiging of lichtheid aanpassen op basis van een bestaande kleur, zonder nieuwe kleurcodes te hoeven definiëren. Dit maakt het eenvoudig om thema’s en variaties consistent te houden. 

Voorbeeld: 

:root { 

  --base-color: rgb(100, 150, 200); 

  --darker-shade: hsl(from var(--base-color) h s calc(l * 0.8)); 

  --lighter-shade: hsl(from var(--base-color) h s calc(l * 1.2)); 

} 

button { 

  background-color: var(--base-color); 

  border-color: var(--darker-shade); 

  color: var(--lighter-shade); 

}

Dit maakt het ontwerpen van kleurenschema’s niet alleen efficiënter, maar ook veel flexibeler. Relative color syntax is ideaal voor het creëren van dynamische thema’s die eenvoudig kunnen worden aangepast. 

Zie https://stackblitz.com/edit/cloudrepublic-relative-color-syntax?file=styles.css voor een compleet voorbeeld 

4. CSS Nesting 

In baseline sinds: 2023 

De grootste reden dat ik eigenlijk altijd sass gebruik is de mogelijk om css te nesten. Dit maakt het zo veel simpeler om complexere componenten zoals een layout van een pagina overzichtelijk te houden. 

Met CSS Nesting kun je stijlen hiërarchisch organiseren binnen een selector. Hierdoor kun je contextueel gerichte stijlen schrijven die nauwkeuriger aansluiten bij de structuur van je HTML. 

Voorbeeld: 

.article { 

  color: black; 

  h2 { 

    font-size: 2rem; 

  } 

  p { 

    line-height: 1.6; 

  } 

  & .highlight { 

    background-color: yellow; 

  } 

}

Deze benadering bespaart tijd, reduceert herhaling en zorgt ervoor dat stijlen overzichtelijk blijven, zelfs in grotere projecten. 

Zie https://stackblitz.com/edit/cloudrepublic-css-nesting?file=styles.css voor een compleet voorbeeld 

Conclusie 

CSS blijft zich ontwikkelen en biedt steeds meer mogelijkheden om efficiënter en overzichtelijker te werken. Met functies zoals Container Queries, Relative Color Syntax en CSS Nesting krijgen ontwikkelaars meer controle en flexibiliteit bij het ontwerpen van moderne websites. Door deze tools te gebruiken, kun je niet alleen je code vereenvoudigen, maar ook je workflow verbeteren. Probeer ze uit en ontdek hoe ze jouw projecten naar een hoger niveau kunnen tillen. 

Meer weten over werken bij Cloud Republic?

Bij Cloud Republic werken echte teamplayers. We zijn vastberaden om, samen met elkaar, steengoede oplossingen te ontwikkelen. We zijn trots op onze cultuur die persoonlijke en professionele groei stimuleert door samenwerking en creativiteit en kunnen niet wachten om jou hiermee kennis te laten maken.

Altijd de laatste trends en development nieuws in je inbox?

Schrijf je in voor onze .NET updates. Hier delen we de onze blogs, cases en tips over de nieuwste tech. Zo weet je zeker dat altijd op de hoogte blijft van de laatste trends in software development.