Oppsett (utvikler)
Komponentbiblioteket og design-tokens er splittet opp i hver sin pakke. Du kan derfor bruke design-tokens, selv uten å bruke React. Her følger en oppsetts-guide for deg som konsumerer bibliotekene.
Installasjon med React
Installer avhengigheter for @aneo-org/design-react.
npm install @aneo-org/design-react @aneo-org/design-tokens
Oppsett med komponenter
Du må importere style.css
, for å få med styling på komponentene. style.css
inkluderer ikke tokens, så du må legge til en separat separat import for tokens.
Importer styling i rotfila, f.eks. app.tsx
eller layout.tsx
(Next.js). Husk å importere dine lokale stilfiler etter komponentstylingen, så du kan overstyre komponentstylingen:
import "@aneo-org/design-react/style.css"; import "@aneo-org/design-tokens/tokens.css" // ... your local style files
Tokens er også tilgjengelig som SCSS fra design-react pakka. Det kan importeres som /tokens.scss
. Siden vanilla CSS ikke aksepterer CSS-variabler som media queries, er det også lagd en SCSS-fil som kun inneholder breakpoints, breakpoints.scss
.
import "@aneo-org/design-react/breakpoints.scss";
Bruk av komponenter
Importer komponenter eller funksjoner som named imports.
import { Button, Input } from "@aneo-org/design-react/clientComponents";
Hvorfor varierer pathen til komponentene?
For å støtte React serverkomponenter, kan ikke klientkomponenter være i samme bundle som serverkomponenter.
Komponenter som bruker klientfunksjonalitet som useState
, useEffect
og context
vil derfor kunne hentes fra /clientComponents
, mens serverkomponenter vil hentes fra /serverComponents
.
import { Heading } from "@aneo-org/design-react/serverComponents"; import { Button } from "@aneo-org/design-react/clientComponents";
Installasjon kun med design tokens
Tokens er tilgjengelige som CSS, SCSS og JavaScript. Først installer avhengigheter for @aneo-org/design-tokens:
npm install @aneo-org/design-tokens
Oppsett med design tokens
For CSS, importer:
import "@aneo-org/design-tokens/tokens.css";
For SCSS, importer:
import "@aneo-org/design-tokens/tokens.scss";
For JavaScript, importer:
import { LayoutBreakpointExtraLarge, LayoutBreakpointExtraSmall, LayoutBreakpointLarge, LayoutBreakpointMedium, LayoutBreakpointSmall } from "@aneo-org/design-tokens";
Reset-CSS
Designsystemet bruker CSS-layers for å deklarere stiler. Dette er gjort for å gi designsystemet lavest mulig presedens, slik at det er enkelt å overstyre stilene ved behov. En ulempe med denne tilnærmingen er at typiske reset-stiler vil kunne overstyre designsystem-stilene.
Det finnes to forskjellige fremgangsmåter for å løse dette. Enten kan man definere et eget CSS-lag som ligger under designsystemet sine lag, eller så kan man legge reset-stilene i et eget aneo.reset
lag som er definert av designsystemet.
Under følger oppskrifter for begge fremgangsmåter.
Lage eget reset-lag
Hvis du vil lage ditt eget reset-lag kan det gjøres på følgende måte. Hvis du for eksempel har følgende reset-CSS:
p, h1, h2 { display: block; }
For å gjøre denne reset-koden kompatibel kan følgende gjøres:
@layer my-reset, aneo; @layer my-reset { p, h1, h2 { display: block; } }
For at dette skal fungere må reset-CSSen importeres før designsystem-CSSen, slik at lagene opprettes i riktig rekkefølge. Når designsystem-CSSen importeres vil den deklarere sine egne lag i sin rekkefølge, og det vil ikke lenger være mulig å overstyre rekkefølgen og legge lag under designsystem-lagene.
Bruke eksisterende reset-lag
Designsystem-CSSen deklarerer allerede et lag som kan brukes for å sette inn stiler som skal ha lavere presedens enn designsystem-stilene. Dette laget heter aneo.reset
. Hvis du vil bruke dette laget til å resette stilene kan det gjøres på følgende måte.
Ved f.eks denne CSSen:
p, h1, h2 { display: block; }
Kan man gi den lavere presedens enn designsystem-CSSen ved hjelp av:
@layer aneo.reset { p, h1, h2 { display: block; } }