Jøkul er et designsystem utviklet av Fremtind.
Jøkul gir deg ferdige React-komponenter samt CSS- og SCSS-stilark for de grunnleggende komponentene og designmønstrene til Fremtind. De følger Fremtinds designprinsipper.
React-komponentene våre er den raskeste og enkleste måten å ta i bruk Jøkul. Alle komponenter og stilark leveres nå som én konsolidert pakke: @fremtind/jokul. CSSen er tilgjengelig som separate stilark, så om du ikke bruker React kan du fremdeles bruke Jøkul.
For å starte utviklingsserveren for Jøkul lokalt må du først ha installert:
- Node-versjonen definert i
.nvmrc, gjerne via Node Version Manager (NVM). - pnpm, gjerne via
corepackellernpm.- På de nye Fremtind-Macene kan det hende at du må installere
corepackvia Homebrew for at det skal fungere ordentlig: Installer medbrew install corepack, og gjør klar medcorepack installinne i Jøkul-mappa.
- På de nye Fremtind-Macene kan det hende at du må installere
For å komme i gang med Jøkul-prosjektet, klon repoet og installer avhengighetene:
- Kjør
pnpm ipå rot i repoet for å installere avhengighetene. - Kjør
pnpm devfor å starte portal + Storybook. - Kjør
pnpm dev:portalfor kun portalen. - Kjør
pnpm dev:storybookfor kun Storybook.
Vi bruker verktøyet Biome for både formatering og linting av koden i prosjektet. Linting og formatering skjer automatisk ved commit, men vi anbefaler også at du setter opp IDEen din til å bruke Biome så den ikke krangler med våre innstillinger.
Det finnes plugins for både VSCode og IntelliJ, som må installeres for å få funksjonaliteten i editoren. Etter å ha installert plugin-en må du fortelle editoren at den skal bruke Biome for formatering og linting.
Etter å ha installert plugin-en, åpne innstillingene og søk på format. Velg Biome under valget "Editor: Default Formatter". NB! vi anbefaler at du gjør dette under "Workspace", siden de fleste andre prosjekter bruker Prettier for formatering.
Deretter kan du søke etter eslint og fjerne avkrysningen ved "Eslint: Enable", for å unngå at Eslint krangler med Biome. Sørg også for at "Eslint > Format: Enable" er skrudd av. Disse endringene bør også gjøres under "Workspace".
- Kjør
pnpm rebootom du kommer tilbake til Jøkul-prosjektet etter en stund, eller noe ikke fungerer som du forventer. - Om du opplever feil fra
nx, prøvpnpm dlx nx resetog kjør kommandoen på nytt.
Repoet bruker Changesets på standard måte med .changeset/config.json, changeset-filer i .changeset/ og changesets/action i GitHub Actions.
Vi bruker to tydelige release-brancher:
mainpubliserer stabile versjoner.release/nextpubliserer prereleases med npm-taggennext.
Dette er splittet i to egne GitHub Actions-workflows: én for stabile releases og én for prereleases.
pnpm changesetoppretter en changeset.pnpm release:versionkjørerchangeset version.pnpm release:pre:enterkjørerchangeset pre enter next.pnpm release:pre:exitkjørerchangeset pre exit.pnpm release:publishbygger og publiserer.
release/next er den faste branchen for prereleases.
- Gå til
release/next. - Hvis vi starter en ny prerelease-runde og
.changeset/pre.jsonikke finnes, kjørpnpm release:pre:enter. - Hvis
.changeset/pre.jsonble opprettet eller endret, commit filen tilrelease/next. - Lag en branch fra
release/next. - Gjør endringene dine på branchen.
- Hvis endringen skal publiseres, kjør
pnpm changeset. - Lag en PR inn mot
release/next. - Når PR-en merges til
release/next, håndterer CI prerelease-versjonering og publisering mednext. - Når innholdet i
release/nexter ferdig testet og klart for stabil release, kjørpnpm release:pre:exit, deretterpnpm release:version, og commit resultatet pårelease/next. - Merge
release/nexttilbake tilmain. Neste publisering framaingår da ut som en vanlig stabil versjon.
Steg 2 og 3 er bare nødvendig når vi starter en ny prerelease-runde. Filen .changeset/pre.json forteller Changesets og CI at release/next er i prerelease-modus med taggen next.
Kort sagt: main er for stabile releases, og release/next er for testing og publisering av prereleases.
Vi har en egen guide som hjelper deg med å komme i gang som ny bruker av Jøkul.
I dokumentasjonen finner du:
- Informasjon om hvordan du bruker Jøkul.
- Designprinsippene til Fremtind.
- Detaljert dokumentasjon for hver komponent, inkludert eksempler.
- Guider for ulike ting, blant annet hvordan gjøre endringer i Jøkul.
- Bloggen vår, med jevnlige oppsummeringer av hva som er nytt i Jøkul.
Jøkul er et åpent og positivt felleskap der alle skal føle seg velkommen. Gjør deg kjent med våre etiske regler for bidragsytere før du deltar med bidrag.
Jøkul er distribuert under MIT-lisensen for åpen kildekode.
Takk for bidrag fra disse flotte menneskene (emoji-oversikt):
Dette prosjektet følger retningslinjene i spesifikasjonen all-contributors. Vi setter pris på alle bidrag!