Ga naar hoofdinhoud

· 2 minuten leestijd
Thomas Rijsewijk

De vorige breaking release is nog niet afgekoeld of er ligt alweer een nieuwe breaking release op de plank. Hoewel v55.0.0 alleen formeel een breaking release was (er ging niets stuk), zal dat voor afnemers van Accordion, Annotation Button, Annotation Output, Expandable en Expandable Heading wel het geval zijn.

Accordion

Zoals in de vorige blogpost aangekondigd hebben wij onze visie op State en toolkitcomponenten herzien. De Web Component implementatie van Accordion is het eerste component wat we bijwerken naar deze nieuwe visie.

De HTML/CSS implementatie van Accordion heeft geen changes.

API changes

  • De property status is hernoemd naar statusExplanation. De werking is ongewijzigd.
  • De property state is hernoemd naar status. De werking is ongewijzigd.

De events dsoToggleSection en dsoToggleSectionAnimationEnd zitten niet meer op Accordion maar zijn verhuisd naar de Accordion Section en zijn hernoemd naar dsoToggleClick en dsoAnimationEnd.

Met het verwijderen van interne state is de property allowMultipleOpen obsolete geraakt. Deze property is dus ook verwijderd.

Geen interne state

De interne state van de Accordion is verwijderd. Dit betekent dat afnemers meer moeten aansluiten. Het voordeel is dat afnemers meer invloed op de Accordion hebben en dat de Accordion volledig opgaat in de state van de applicatie.

Helper functie scrollIntoView().

Op het AccordionSectionAnimationEndEvent object staat een helperfunctie scrollIntoView(). De afnemer kan deze aanroepen om de Accordion Section in beeld te scrollen.

Annotation Button

Dit component is stateless gemaakt. De afnemer moet zorg dragen voor state management. Bij het tonen van Annotation Output moet ook dit component open="true" krijgen.

<dso-annotation-button [...] open>[...]</dso-annotation-button>

Annotation Output

Het event dsoToggle is hernoemd naar dsoClose. Daarnaast is dit component stateless gemaakt. Dit betekent dat de content van dit element pas toont als open="true" is gezet:

<dso-annotation-output [...] open>[...]</dso-annotation-output>

Expandable

Het named slot "expandable-content" is omgezet naar een nameless slot:


<dso-expandable>
<div slot="expandable-content">
[...]
</div>
</div>


<dso-expandable>
<div>
[...]
</div>
</div>

Expandable Heading

Dit component is komen te vervallen met de komst van Document Component.

· 3 minuten leestijd
Thomas Rijsewijk

Het is alweer een aantal releases geleden dat er een blogpost is geplaatst. Maar dat mag de pret voor deze release niet drukken.

Samenstelling team

Thomas Rijsewijk (@tfrijsewijk) is sinds 15 mei Product Owner van de DSO Toolkit. Hans Grimm (@hansgrimm) is sinds 1 juni Front-End Developer en toegankelijkheidsexpert.

In de loop van dit jaar wordt het team nog met een developer versterkt.

Stateful vs. stateless components

Sinds 3 jaar biedt de toolkit Web Components aan. Sommige componenten waren daarnaast ook voorzien van een interne state. Met name het afgelopen half jaar is duidelijk geworden dat de interne state conflicteert met de wensen van de afnemers.

Daarom gaan wij onze componenten stateless maken. Het gevolg is dat het koppelvlak groter wordt en dat afnemers meer zullen moeten programmeren. Daartegenover staat dat afnemers alle invloed hebben op de state van het component. Een groot voordeel daarvan is dat componenten hun state uit de URL kunnen krijgen en dat de state van de applicatie beter te delen is.

Dit is een breaking change en voor elk component dat is omgebouwd zal een breaking release worden uitgebracht.

De uitverkorenen om op korte termijn te worden aangepakt zijn:

  • Accordion.
  • Image Overlay.
  • Viewer Grid.

Dit betekent niet dat toolkitcomponenten stateless moeten zijn. De grens zal liggen tussen de interne werking van een component (bv. de state van animaties) en presentatie (bv. de breedte van een paneel of hoeveel Accordion secties er open staan.) Waar de grens precies ligt zullen we in overleg met afnemers en de UX designers bepalen.

Uitgelicht

In deze release hebben we 8 bugs gefixed. Daarnaast hebben we twee nieuwe features geintroduceerd en één breaking change doorgevoerd.

Voor alle wijzigingen verwijs ik je naar de CHANGELOG van deze release.

In (#2092) hebben we de presentatie van het Modal verbeterd. Bij het na-testen kwamen nog twee kleine puntjes aan het licht. Deze worden in (#2223) opgelost.

Dit is een breaking change omdat de markup voorschriften van de HTML/CSS implementatie van Modal zijn gewijzigd. Het element <div class="dso-body"> moet door een Scrollable worden gewrapped:

<div class="dso-modal">
<!-- [...] -->
<div class="dso-dialog">
<dso-scrollable>
<div class="dso-body">
<!-- Inhoud van Modal -->
</div>
</dso-scrollable>
</div>
</div>

Voor het Web Component zijn er geen breaking changes. Daar krijg je de functionaliteit van Scrollable cadeau.

Voor afnemers die geen gebruik maakt van Web Componenten kan het <dso-scrollable> component achterwege worden gelaten. De Modal zal dan nog steeds werken maar zonder de schaduwrandjes die Scrollable levert.

Button Row

Button Row heeft een nieuwe variant "emphasized" om knoppen uit te lichten.

  • HTML/CSS implementatie: Onder de modifier class .dso-emphasized.
  • Web Component: Onder het attribuut [emphasized] en de property HTMLDsoButtonRowElement.emphasized = true.

Map Controls

De knop waarmee de Map Controls wordt getoond heeft op smalle viewport geen visueel label meer.

Lifecycle management

We hebben een update naar Storybook 7 gedaan. Dit was niet geheel pijnloos. Wij maken geen gebruik van CSF. De komende periode gaan we onze stories omschrijven naar CSF zodat we ook naar Storybook 8 kunnen.

· 2 minuten leestijd
Thomas Rijsewijk

In deze breaking release is met name de CDN een punt van aandacht.

CDN

De CDN heeft een andere layout gekregen. Toen we begonnen met de toolkit was er maar één package. Inmiddels zijn er veel meer packages. Vanaf deze release worden packages in een eigen directory naar de CDN gepubliceerd.

Dit betekent applicaties die dso-toolkit via de CDN gebruiken een andere URL moeten gebruiken.

  • voorheen: https://cdn.dso-toolkit.nl/<versie>/<dso-toolkit artifacts>
  • nu: https://cdn.dso-toolkit.nl/dso-toolkit/<versie>/<dso-toolkit artifacts>.

Zie de documentatie over de CDN voor meer informatie.

Incomplete release artifacts

Sinds versie 48.0.0 zijn er incomplete releases naar de CDN gepubliceerd. De package layout van dso-toolkit is gewijzigd. Voorheen zat alles in /dist. Uitsluitend de bestanden in deze directory werden naar de CDN gepubliceerd. Icons, illustraties en fonts zijn verhuisd naar /assets en werden niet gepubliceerd naar de CDN. Fonts die vanuit dso.css worden aangeroepen werken dus niet.

Concreet betekent dit dat CDN gebruikers vanaf nu de volgende url voor dso.css kunnen gebruiken:

https://cdn.dso-toolkit.nl/dso-toolkit/<versie>/dist/dso.css

Waar <versie> een semver zonder prefix vanaf 50.0.0, of master is.

Minified CSS

De toolkit levert dso.css nu ook geminified: dso.min.css. Daarnaast zijn beide stylesheets voorzien van sourcemaps vanaf de SCSS stylesheets.

Vertrek Thomas Rijsewijk

Per 1 februari werk ik niet meer aan de toolkit en daarmee is deze release mijn laatste.

Ik ben trots op wat we bereikt hebben. Waar we 6 jaar geleden begonnen met een stijlgids zijn we inmiddels uitgegroeid tot een volwaardig open source Design System.

Simon Rijsewijk neemt mijn taken over. Ik weet zeker dat hij de toolkit naar een nog hover niveau weet te brengen.

Iedereen bedankt voor het vertrouwen en de prettige samenwerking, het was een mooie reis.

· Een minuut leestijd
Thomas Rijsewijk

In deze release is #1989 opgelost.

  • Voor het HTML/CSS component zijn de markup voorschriften gewijzigd: Het element .dso-modal .dso-body moet een attribuut tabindex="0" krijgen.
  • Voor het Web Component zijn geen wijzigingen voor afnemers.

· 2 minuten leestijd
Thomas Rijsewijk

In versie 49.0.0 werken de fonts niet, dit is gefixed in 49.0.1

Dit is de laatste (BREAKING) release van 2022.

Breaking changes

De indeling van de NPM package dso-toolkit is aangepast.

  • De stylesheet: dso-toolkit/dist/toolkit/styles/dso.css -> dso-toolkit/dist/dso.css
  • De icon spritesheet: dso-toolkit/dist/toolkit/dso-icons.svg -> dso-toolkit/dist/dso-icons.svg
  • De fonts: dso-toolkit/dist/toolkit/fonts -> dso-toolkit/assets/fonts

Er is geen formele definitie wat de publieke API van de toolkit is. Hier zijn we mee bezig in het kader #1882. We helpen je graag verder als je bij het updaten naar versie 49.0.0 vastloopt op de package layout.

Issue highlights

  • Feature: Accordion is uitgebreid met scroll into view (#1875).
  • Fixed: dso-accordion props komen niet goed door bij initiele render van de React binding <DsoAccordion /> (#1930).

Angular

Vanaf nu publiceren we Angular bindings in @dso-toolkit/angular. Dit deden we al een tijd voor React met @dso-toolkit/react. Zie de documentatie voor meer informatie: Angular bindings.

Storybook Composition

Met de komst van Angular bindings was er ook noodzaak voor een extra Storybook. Samen met de HTML/CSS + Web Components en React bindings levert de DSO Toolkit 3 Storybooks. Tot de vorige release publiceerden we deze Storybooks los naar https://storybook.dso-toolkit.nl en https://react.storybook.nl. Vanaf nu publiceren we alle Storybooks als één Storybook naar https://storybook.dso-toolkit.nl.

Zie de link in de primaire navigatie om de Storybook voor de huidige versie te openen.

Tot volgend jaar!

· 4 minuten leestijd
Thomas Rijsewijk

Hello DSO!

🎊 Vandaag lanceren wij onze nieuwe documentatie site 🎉

Lees verder voor meer informatie over deze release.

· Een minuut leestijd
Thomas Rijsewijk

Welkom op de nieuwe documentatie site van de DSO Toolkit 👋

Deze site is gemaakt met Docusaurus en zal binnenkort de huidige documentatie site vervangen.