npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

innbyggerkontakt-design-system

v0.4.14

Published

Innbyggerkontakt design system

Readme

Velkommen til innbyggerkontakt sin designsystem!

Kommandoer for linting

  1. Ser etter alle feil
  2. Fikser alle eslint feil
yarn run eslint . --ext .js,.jsx,.ts,.tsx
yarn run eslint . --fix

Innholdsfortegnelse

| Link | Beskrivelse | | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | | Start Storybook | Hvordan man starter opp prosjektet og kjapp forklaring av nettsiden | | Mappestruktur | Forklaring på hvordan mappestrukturen er foreløpig og hva stories er | | Stories | Forklaring på hva stories er og hvordan de skal vises i sidemenyen. Der får man også forklart hvordan filen for forhåndsvising er strukturert. | | Accessibility | Forklaring på accessibility testing i storybook | | Nettside | Hvordan få opp og oppdatere nettsiden til designsystemet | | NPM Publish | Hvordan publishe pakken | | TODO | Hva som skal gjøres i fremtiden |

This project was bootstrapped with Create React App.

Innbyggerkontakt er skrevet med typsecript og derfor skal alle komponentene i storybook være typed.

Start Storybook

For å starte prosjektet kjør yarn storybook. Standard port for storybook er localhost:6006.

Breakdown av storybook

Under finner du et bilde av storybook og tabell med forklaring på de viktigste funksjonene til applikasjonen. Storybook | 1. Søk | 2. Sidemeny | 3. Display | 4. Props | | - | - | - | - | | Her kan du søke på komponentene som har stories. | I sidemenyen ser du underkategoriene til komponentene som f.eks. "navigation". Der kan du finne alle komponenter som tilhører kategorien. | Her vises komponenten frem. Her kan du trykke, resize og generelt prøve ut komponenten og dens oppførsel. | Controls har oversikt over alle props som komponenten har. Her kan du fylle ut de ulike propsene og se hvordan komponenten kommer til å endre seg. | | - | Under komponenten kan du se ulike variasjoner av den som f.eks "size". Der demonstreres size prop og hvordan den påvirker komponenten. | I menyen over har man ulike innstillinger som f.eks bakgrunnsfarge, grid med mål og docs for å se hvordan komponenten brukes. | På bildet kan du f.eks se at man kan velge size og at den har 3 typer størrelse: big, small og svg. |

Mappestruktur

src
|---- commom
|---- components
|---- images
|---- stories
|---- tests
Her vil du legge til alle konstanter som skal/kan gjenbrukes i andre filer.
Det kan for eksempel være farger eller font størrelser
Det å lage komponenter i storybook er ikke noe forskjellig fra vanilla react.
Alle komponentene ligger i ```/components``` mappen.
Tittelen på filen skal være det samme som navnet til komponenten.
Dersom stylingen skal være påvirket av props så det det lettest å holde styling og koden til komponenten i samme fil.
Der kan du også lage egendefinerte props og styling.
Gode og enkle eksempler er ```RadioButton``` og ```Button```.
Sier seg selv, her skal bildene/svg blir lagret.
Dersom man trenger å bruke svg som en komponent er det anbefat å bruke svgr i command line.
Sier seg selv, her skal stories til komponentene blir laget.
well, u know the drill.

Stories

For å vise komponenten i canvas til Storybook må man lage **.stories.[tsx, mdx] fil, aka en story. I denne filen kan du vise frem ulike props og deres hensikt i komponenten.

Det er lurt å lage ulike stories både for å vise funksjonaliteten til brukeren men også for å oppdage eventuelle feil eller mangler. Artikkelen her forklarer bra hvordan dette kan gjøres.

Breakdown av en .stories fil

Under er det en Card.stories.tsx fil.

import React from 'react';
import {Card} from '../components/Card';

export default {
     title: "Components/Card",
     component: Card
 }

 export const Default = (args) => <Card {...args}/>

 export const Sizes = () =>
    <div>
        <Card size="small" title={'title'} image={''} lastChanged={''} bulletinType={'event'} bulletinStatus={'draft'}/>
        <Card size="large" title={'title'} image={''} lastChanged={''} bulletinType={'event'} bulletinStatus={'draft'}/>
    </div>

Part 1

export default {
     title: "Components/Card",
     component: Card
 }

Denne delen av koden kommer til å vises i sidemenyen av storybook (punkt 2).

| title: "Components/** " | title: "**/*Card* " | component: Card | | ---------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------ | | Underkategorien som komponenten skal ligge under | Navnet på komponenten som vises i menyen | Komponenten som blir importet og skal vises frem | | Kategori | Komponent | Import |

Part 2 Man vil også gjerne vise frem komponenten og ikke bare at den finnes. For å lage en forhåndsvisning i canvas skal man lage en story.

 export const Default = (args) => <Card {...args}/>

Første story-en til Card kommer nå til å hete Default. Her vil komponenten få alle props med default verdier.

Part 3 Dersom det finnes flere stories som er interessant å lage så er det bare å gjøre det! Under kan man se at Card har ulike størrelser og derfor har man laget story som viser frem 2 Card components, 1 med size={'small'} og en 1 med size={'large'}.

 export const Sizes = () =>
    <div>
        <Card size="small" title={'title'} image={''} lastCehanged={''} bulletinType={'event'} bulletinStatus={'draft'}/>
        <Card size="large" title={'title'} image={''} lastChanged={''} bulletinType={'event'} bulletinStatus={'draft'}/>
    </div>

Her vil underkapittelet til Card være Sizes. Noen av default props blir overskrevet.

Dersom du vil lese mer om hvordan man kan manipulere eller endre visningen av props i storybook besøk Storybook args

Accessibility

I samme panelet som props skal det være en tab kalt "Accessibility. Storybook har en a11y addon som kjører Axe. Den skal finne rundt 57% av WCAG feil automatisk.

Utvidelsen på WCAG sjekk burde skje så fort som mulig

Nettside

Tutorial for å publisere storybook som nettside finner du her

NPM publish

Først kjør yarn build da det er folderen som blir bygget som publiseres som en npm pakke. I package.json kan du se at pakken som publiseres heter dist. Der kan du også se versjon, beskrivelse av pakken, repository den ligger i. Gjerne endre det dersom det trengs.

Etter at du er ferdig med å bygge og har sett at alt som trengs er med i dist kan du starte med publiseringen.

Det letteste er å kjøre np istedenfor yarn publish. Det er fordi np tar seg av mange prosesser (les mer her) som kan være lurt å kjøre og gjør det litt lettere enn manuell publishing.

Versjonering

Dersom du er usikker på hvilken versjon du skal ha til neste publisering så er dette tabellen fra npmjs sine docs.

| Code status | Stage | Example | | ----------------------------------------- | ------------- | ------- | | First release | New Product | 1.0.0 | | Backward compatible bug fixes | Patch release | 1.0.1 | | Backward compatible new features | Minor release | 1.1.0 | | Changes that break backward compatibility | Major release | 2.0.0 |

Todo