nl-design-system / rijkshuisstijl-community

Unofficial Rijkshuisstijl components and design tokens based on the NL Design System architecture. This project is not endorsed by the Dutch Ministry of General Affairs.
https://rijkshuisstijl-community.vercel.app/
European Union Public License 1.2
5 stars 3 forks source link

Icon component #468

Open Robbert opened 1 month ago

Robbert commented 1 month ago

Extra uitdaging, de Rijkshuisstijl icons zijn niet open source. We moeten een mapping gaan aanleggen van bestaande proprietary icon IDs naar open source icons.

Robbert commented 2 weeks ago

Laten we een iconenset aanbieden, van iconen met dezelfde ID als de officiele iconen die je in productie gebruikt. De iconen vullen we dan langzaam aan voor zover we ze nodig hebben. Functionele iconen zijn waarschijnlijk als eerste aan de beurt, en elleboognies als laatste.

bijvoorbeeld zoiets:

import { IconHamburgerMenu } from '@tabler/icons-react';

const RijkshuisstijlIconID = 'menu' | 'meer' | 'elleboognies';
const IconenSet { [index: RijkshuisstijlIconID]: Icon } = {
  'menu': IconHamburgerMenu,
};

import { Icon } from '@utrecht/...';
import { IconArrowLeft } from '@tabler/icons-react';

<Icon>< IconArrowLeft/></Icon>

Voorbeeld van een iconenset-dropdown in Storybook: https://github.com/nl-design-system/utrecht/blob/7814d98cb8d8f35de250e10fb4686a7f9d0d6506/packages/storybook-css/src/Button.stories.tsx#L71-L75

AlineNap commented 1 week ago

Goed als wij dezelfde aanpak doen in Figma @Rozerinay. Dan bieden we via figma een biblotheek aan met alle iconen, dezelfde id namen als rijkshuisstijl zodat je die gemakkelijk kunt swappen. Dus twee bibliotheken met dezelfde component namen/ icoon-id's. 1 met de juiste rijkshuisstijl-iconen, die mag dan dus niet open source en 1 die dat nabootst.

Wellicht met instructies voor Rijkshuisstijl designers hoe je zo'n biblotheek maakt met de juiste iconen en id's.

Rozerinay commented 1 week ago

@AlineNap goed punt. Ik heb deze taak met een aantal subtaken in onze to-do's geplaatst.