TODO: PageHeader

Hoofdmenu

Stappenplan: Community door het kernteam

Het kernteam volgt dit stappenplan om een component van alle checkpoints 🚩 te voorzien die nodig zijn voor de ‘Community’ status van het Estafettemodel. Organisaties die een component bij willen dragen kunnen het Stappenplan voor organisaties gebruiken.

Onderstaande stappen zijn van toepassing op 1 implementatie uit de community. Alle checks die je uitvoert gelden dus voor deze ene implementatie.

Er kunnen meerdere community implementaties zijn die volledig voldoen, maar voor dit bord kijken we naar een component die het meest ver is. De component heeft een Community status als er minimaal één implementatie beschikbaar is die aan alle checkpoints voldoet. Voordat je begint kies je het Community Componenten bord op GitHub waar de component de meeste checks heeft behaald. Dit bord gebruik je vervolgens om de checks die kijken naar “tenminste één organisatie” mee te beoordelen.

Welke organisatie

Doel

Het kernteam controleert één component tegelijk op de Definition of Done voor Community-componenten.

Actie

Selecteer naar welk organisatiebord je hebt gekeken voor de Definition of Done van ‘Community’ status.

🚩 Checkpoint: Welk bord

Beschikbaar in CSS

Doel

Developers kunnen een component parallel in meerdere frameworks implementeren, zonder de CSS te herhalen.

Verbeteringen die in de CSS worden gedaan, werken door in alle implementaties van de component.

Developers voor een specifiek framework werken niet elk aan een afzonderlijke CSS-implementatie, maar ze werken efficient samen om een gedeelde CSS-implementatie te verbeteren.

De CSS-implementatie krijgt een hogere kwaliteit, wanneer een grotere groep developers betrokken is.

Actie

De component moet beschikbaar zijn in code. Minimaal als HTML/CSS.

Check of de gekozen organisatie hieraan voldoet. Dit doe je door de component te bekijken via de ‘GitHub URL (CSS)’ die in het Communitybord is ingevuld.

De GitHub omgeving moet te bekijken zijn zonder dat je moet inloggen.

🚩 Checkpoint: GitHub (CSS)

Publiek beschikbaar in Storybook

Doel

Developers hebben documentatie waaruit blijkt welke varianten de component heeft, welke HTML gebruikt wordt, en wat de API is van de component.

Developers hebben documentatie met een werkend voorbeeld van de component.

Actie

De component moet publiek beschikbaar zijn in Storybook.

Check of de gekozen organisatie hieraan voldoet. Dit doe je door de component te bekijken via de ‘Storybook URL (CSS)’ die in het Communitybord is ingevuld.

De Storybook omgeving moet te bekijken zijn zonder te hoeven inloggen.

🚩 Checkpoint: Storybook (CSS)

Implementatie voldoet aan naam en beschrijving uit de GitHub Discussion

Doel

De implementatie van de component voldoet aan de verwachtingen, die gebruikers hebben op basis van de naam en de beschrijving van de component op de website van het design system.

Actie

In de GitHub Discussion van de component staan de naam en de beschrijving genoteerd. Check of de implementatie van de gekozen organisatie hieraan voldoet. Dit doe je door de component te bekijken via de ‘Storybook URL (CSS)’ die in het Communitybord is ingevuld.

Vervolgens heb je twee opties:

Tip! Met implementatie bedoelen we bijvoorbeeld utrecht-button of ams-button. Een specifiek type van een implementatie, bijvoorbeeld zonnedael-sparkly-button, noemen we een variant.

🚩 Checkpoint: Implementatie voldoet

Implementatie heeft minimaal kleur en typografie beslissingen met design tokens geïmplementeerd

Doel

De component kan gebruikt worden in pagina’s met andere huisstijlen, zonder dat het visueel ontwerp van dit onderdeel opvallend afwijkt van de rest van de pagina.

Het is makkelijk om een component als white-label component te publiceren, door het aanbieden van een beperkte set standaard design tokens.

Actie

Door met design tokens te werken zorgen we ervoor dat meerdere organisaties de component van een eigen huisstijl kunnen voorzien. Minimaal zouden er design tokens beschikbaar moeten zijn om kleur en typografie beslissingen door te voeren.

Check of de implementatie van de gekozen organisatie hieraan voldoet. Dit doe je door de component te bekijken via de ‘Storybook URL (CSS)’ die in het Communitybord is ingevuld.

Tip! Om te controleren of er design tokens zijn toegepast kun je gebruik maken van de ‘Inspect’ functionaliteit van je browser. Wanneer je in de CSS verwijzingen ziet naar CSS variabelen zoals bijvoorbeeld --denhaag-button-primary-action-background-color of --ams-button-font-family kun je er vanuit gaan dat er design tokens zijn gebruikt.

Tip! Soms heeft een component geen specifieke design tokens nodig. Denk bijvoorbeeld aan design tokens voor font-family bij componenten zoals Mark of Icon. Gebruik in dit soort gevallen je gezonde verstand.

🚩 Checkpoint: Minimale design tokens

API’s zoals design tokens hebben een prefix van de verantwoordelijke organisatie

Doel

Gebruikers kunnen componenten uit verschillende design systems combineren, zonder dat ze elkaars werking verstoren.

Actie

Om componenten van elkaar te kunnen gebruiken is het toevoegen van een prefix zoals bijvoorbeeld utrecht- of ams- verplicht.

Check of de prefix van de gekozen organisatie is toegevoegd aan de onderstaande onderdelen:

🚩 Checkpoint: Prefix

Gebruikte design tokens voldoen aan naamgeving conventie van NL Design System

Doel

Gebruikers die het design van een component willen instellen, kunnen voorspellen wat de naam is van de design tokens die ze moeten instellen.

Gebruikers kunnen het design van de component instellen met component-tokens, zonder dat het noodzakelijk is common tokens of brand tokens in te stellen.

Gebruikers kunnen white-label componenten uit verschillende design systems combineren, zonder dat het noodzakelijk is common tokens van meerdere design systems in te stellen.

Actie

Voor NL Design System zijn er afspraken gemaakt voor duidelijke en voorspelbare namen. De beschikbare design tokens van een component moeten voldoen aan de naamgeving conventie van NL Design System. Zo is een component herbruikbaar voor alle verschillende thema’s.

Check of de implementatie van de gekozen organisatie hieraan voldoet.

🚩 Checkpoint: Naamgeving design tokens

EUPL-1.2 licentie toegepast

Doel

De component mag door andere organisaties gebruikt worden, zodat de investering grotere waarde oplevert.

Verbeteringen die anderen bijdragen aan de component, kunnen toegevoegd worden aan de code zonder juridische problemen te veroorzaken.

Developers van organisaties die waarschijnlijk willen bijdragen, hebben geen juridische belemmeringen om bij te dragen.

Producten die met de component gemaakt worden hoeven niet per se open source te zijn, zodat zoveel mogelijk websites toegankelijker en gebruiksvriendelijker gemaakt kunnen worden.

Actie

Binnen het NL Design System werken we voor componenten met de Openbare Licentie van de Europese Unie (EUPL-1.2).

Check of de gekozen organisatie naar de EUPL-1.2 licentie verwijst op de onderstaande posities:

🚩 Checkpoint: Licentie component

Documentatie heeft de Creative Commons 0 licentie (CC0)

Doel

Anderen kunnen onvoorwaardelijk de documentatie hergebruiken, aanpassen, vertalen en op nieuwe manieren gebruiken.

Wanneer anderen een eigen implementatie van een component maken, kunnen ze delen van de documentatie hergebruiken, en daarmee sneller een de definition of done voldoen.

Doordat bronvermelding en auteursrechten vermelden niet nodig is, kan iedereen moeiteloos de documentatie gebruiken op eigen manieren.

Het is duidelijk dat de documentatie auteursrechtenvrij is, en niet dezelfde licentie heeft als de code.

Actie

Binnen het NL Design System werken we voor de documentatie met de Creative Commons 0 licentie (CC0).

Check of de gekozen organisatie de CC0 licentie benoemt in het README.md bestand van de component in GitHub.

Tip! Door de ‘Code’ of ‘Raw’ weergave van het README.md bestand te bekijken zou je bovenaan <!-- @license CC0-1.0 --> moeten zien staan.

🚩 Checkpoint: Licentie documentatie

Beschikbaar in de Storybook met alle NL Design System thema’s

Doel

Het is voldoende om alleen te testen met de eigen huisstijl, wanneer je een white-label component deelt met de community, omdat testen met andere huisstijlen door anderen wordt gedaan.

Wanneer de wijziging van een white-label component gevolgen heeft voor andere huisstijlen, dan wordt dit automatisch herkend door een visuele regressietest.

Actie

Als kernteam maken we de component beschikbaar in de ‘Themes’ repository, zodat deze terug te vinden is in de Storybook met alle NL Design System thema’s. Andere organisaties kunnen de component vervolgens gebruiken.

🚩 Checkpoint: Storybook thema’s

Git repository kan gebruikt worden voor doorontwikkeling

Doel

Developers die de component gebruiken kunnen de code zien en suggesties doen voor verbeteringen. Dit helpt het samenwerken aan toegankelijke en gebruiksvriendelijke componenten die voor iedereen bruikbaar zijn.

Gebruikers van de component kunnen bugs en feature requests melden, en er is een publiek overzicht van de meldingen van anderen.

Gebruikers kunnen een backup maken van de code van componenten die ze nodig hebben.

Alle wijzigingen tussen versies van de component zijn voor anderen te controleren.

Actie

Externe developers kunnen bijdragen

Doel

De repository kan door externe developers gebruikt worden voor doorontwikkeling van de component.

Developers hebben de mogelijkheid om een bug fixen in een component, zelfs als ze de component niet zelf hebben ontwikkeld.

Developers die een bugfix willen bijdragen hebben een prettige ervaring die voldoet aan de verwachtingen, en hebben geen aanleiding om liever de component in eigen beheer te hebben.

Actie

Visuele regressietests zijn beschikbaar in de Thema Storybook

Doel

Met het Voorbeeld-thema kan getest worden worden of de essentiële design tokens in code en design werken.

Er wordt aangetoond dat de npm package van de component ook werkt als dependency in andere projecten.

Organisaties die wel een eigen huisstijl hebben, maar geen eigen Storybook, kunnen met visuele regressietests controleren dat nieuwe versies van componenten goed blijven werken in combinatie met hun huisstijl.

Actie

🚩 Checkpoint: Visuele regressietest

Beschikbaar in de NL Design System Figma bibliotheek

Doel

Designers kunnen alle componenten direct gebruiken in hun Figma ontwerpen door te koppelen met de NL Design System Figma bibliotheek, en elke component met een code-implementatie is beschikaar.

Developers kunnen ontwerpen in Figma gebruiken om te vinden welke component-implementaties ze kunnen gebruiken in code, doordat het ontwerp is voorzien van links naar alle relevante informatie.

Er worden vaker toegankelijke componenten uit het design system gebruikt, doordat designers dit aanbevelen aan developers voordat de ontwikkeling van een website begint.

Gebruikers van de Basis-tokens kunnen gebruik maken van de nieuwe component door de component design tokens over te nemen van het Start-thema.

De component kan met het Voorbeeld-thema gebruikt worden in voorbeelden, templates en patronen.

Actie

Organisaties die de NL Design System Figma bibliotheek vanaf dat moment dupliceren, krijgen de component direct meegeleverd. Organisaties die de NL Design System Figma bibliotheek al hadden gedupliceerd, worden op basis van de Figma changelog geïnformeerd over hoe ze dit component ook kunnen overnemen.

🚩 Checkpoint: Figma URL

Beschikbaar in de NL Design System Component assessment (Figma)

Doel

Developers kunnen ontwerpen in Figma gebruiken om te vinden welke component-implementaties ze kunnen gebruiken in code, zelfs wanneer de designs niet gemaakt zijn met de bijbehorende Figma-componenten, doordat het ontwerp is voorzien van links naar alle relevante informatie.

Er worden vaker toegankelijke componenten uit het design system gebruikt, doordat designers dit aanbevelen aan developers voordat de ontwikkeling van een website begint.

Actie

Het kernteam voegt een ‘Component sticker’ toe aan het Figma bestand ‘NL Design System Component assessment’. Deze sticker linkt naar de documentatiepagina van de component op nldesignsystem.nl.

Door deze ‘Component stickers’ op screenshots te plakken, kunnen we geïnteresseerde organisaties inzicht bieden welke componenten beschikbaar zijn om hun website of applicatie mee op te bouwen.

🚩 Checkpoint: Component assessment

Backup van de code

Doel

Gebruikers kunnen vertrouwen dat de code van de componenten die ze gebruiken langdurig beschikbaar is voor doorontwikkeling.

Gebruikers kunnen vertrouwen dat er backups zijn van de componenten die ze gebruiken.

Actie

Als de component wordt ontwikkeld met de NL Design System infrastructuur op github.com/nl-design-system, dan wordt al automatisch een backup gemaakt van de code met Rewind.

Als code van de component in eigen infrastructuur wordt ontwikkeld, dan moet handmatig een automatische backup ingesteld worden. Neem contact op met het kernteam, en vraag om een automatisch dagelijks een mirror te maken van jouw Git repository naar een repository bij NL Design System. De backup-repository zal private zijn, zodat geen verwarring ontstaat wat de originele repository is, en voorkom je dat de backup-repository hoger kan eindigen in zoekresultaten.

Status bijgewerkt naar Community

Doel

Gebruikers kunnen herkennen dat de component klaar is om te gebruiken in eigen projecten door de badge “Community”.

Actie

## ✨ Dit component is nu Community ✨

Help je mee hem door de Candidate stappen te krijgen?
[{naam-component} op het Candidate bord]({url-candidate-bord})

🚩 Checkpoint: Status

Over promotie

Zet het checkpoint ‘Promotie’ op ‘Done’ of ‘Scheduled’ vóór de promotie heeft plaatsgevonden. Dit doen we omdat de status ‘Community’ pas zichtbaar wordt nadat alle checkpoint zijn behaald.

🚩 Checkpoint: Promotie

Informatie van de component bijgewerkt op nldesignsystem.nl

Doel

Op nldesignsystem.nl is de meest recente informatie van de component beschikbaar, op het moment dat de component wordt gepromoot door het kernteam.

Actie

Branch

build/update-component-progress-{datum-of-versienummer}

Commit Message

build: update component progress {versienummer}

Title

build: update component progress {versienummer}

Description

This PR will update the component progress to version {versienummer}.

🚩 Checkpoint: nldesignsystem.nl

Gebruik van component uit de community gepromoot

Doel

De community weet dat hun inzet om de component te maken wordt gewaardeerd.

Bekendheid geven aan een component die een nieuwe implementatie heeft.

Gebruikers aanmoedigen een nieuwe component toe te passen in hun eigen huisstijl, in eigen code en in eigen ontwerpen, en daar feedback over te geven.

Actie

Communityleden selecteren voor credits

Het kernteam selecteert communityleden om credits toe te kennen. Dit kan bijvoorbeeld de maintainer van Storybook zijn of de betrokken designer. Activiteit in de Discussion of commits in de code van het community component kunnen hierbij als basis dienen.

Slack

Plaats dit bericht in #nl-design-system en vul het aan waar nodig.

✨ {naam-component} is nu Community ✨

Met dank aan {persoon/personen} van {organisatie} is {naam-component} nu beschikbaar in de Community!

[Bekijk {naam-component}]({url-nldesignsystem.nl}): {beschrijving-component}

Help je mee {naam-component} naar Candidate te brengen? Dat doe je bijvoorbeeld door ons in de [GitHub Discussion voor de {naam-component} component]({url-github-discussion}) te laten weten waar je {naam-component} component gebruikt.

Heartbeat, Nieuwsbrief en LinkedIn

Vanuit het kernteam benaderen we de organisatie die de component heeft ontwikkeld. We vragen of zij de component tijdens een Heartbeat willen presenteren. Als dit niet mogelijk is, nemen wij als kernteam deze taak op ons.

Daarnaast plaatsen we een bericht in de nieuwsbrief en op LinkedIn.

Promoties hoeven niet altijd dezelfde vorm aan te houden. Gebruik onderstaande punten als voorzet:

Promoties kunnen ook gecombineerd worden wanneer meerdere componenten van status veranderen.

🏁 Finish

Zo wat een werk! Je hebt alle stappen genomen en zo alle checkpoints behaald die nodig zijn voor de ‘Community’ status van het Estafettemodel. De component gaat nu door voor de ‘Candidate’ status.