Typografi
Indeks deler typografi i tre komponenter:
Alle bruker data-size for å styre visuell størrelse uavhengig av semantisk element.
Overskrifter (Heading)
Overskrifter i Indeks skiller mellom semantisk nivå og visuell størrelse. Semantisk nivå bestemmer dokumentstrukturen og hva skjermlesere annonserer — alltid et HTML-element fra h1 til h6. Visuell størrelse styrer utseendet og følger som standard en fast mapping, men kan overstyres hvis det visuelle hierarkiet krever det.
De tre største størrelsene (2xl–lg) bruker SpareBank 1 Title, de tre minste bruker SpareBank 1.
Størrelse (size) | Heading-nivå (as) | Font | Eksempel |
|---|---|---|---|
2xl | h1 | SpareBank 1 Title | Overskrift |
xl | h2 | SpareBank 1 Title | Overskrift |
lg | h3 | SpareBank 1 Title | Overskrift |
md | h4 | SpareBank 1 | Overskrift |
sm | h5 | SpareBank 1 | Overskrift |
xs | h6 | SpareBank 1 | Overskrift |
Kom i gang
import { Heading } from '@sb1/indeks-react';
Kode
<Heading as="h1">Renter og betingelser</Heading>
Heading-nivå kan overstyres med size hvis det visuelle hierarkiet ikke samsvarer med det semantiske:
Kode
<> <Heading as="h1" size="lg"> Renter og betingelser </Heading> <Heading as="h2" size="md"> Effektiv rente </Heading> </>
Spacing i overskrifter
Alle overskrifter kommer uten spacing som standard. Du kan legge til anbefalt spacing basert på størrelsen, eller bruke spacing-utility-klasser til å sette margin selv.
Bruk addRecommendedSpacing-propen for å legge til anbefalt margin-bottom basert på størrelse:
Kode
<> <Heading as="h1" addRecommendedSpacing>Renter og betingelser</Heading> <Heading as="h2" addRecommendedSpacing>Effektiv rente</Heading> </>
Props — Heading
| Prop | Type | Standard | Beskrivelse |
|---|---|---|---|
as | h1, h2, h3, h4, h5, h6 | — (påkrevd) | Semantisk HTML-element. Bestemmer heading-nivå. |
size | 2xl, xl, lg, md, sm, xs | Utledet fra as | Visuell størrelse. Overstyrer standard mapping. |
addRecommendedSpacing | boolean | false | Legger til margin-bottom basert på størrelse. |
className | string | — | Ekstra CSS-klasser. |
Brødtekst (Text)
Text er utgangspunktet for all løpende tekst — beskrivelser, hjelpetekster, meldinger og innhold som ikke er overskrift eller lenke. Standard størrelse er md, og standard element er <p>.
Størrelsene (xs–2xl) følger samme skala som spacing, noe som gjør det lett å kombinere tekststørrelse og luft uten å blande ulike skalaer.
Kom i gang
import { Text } from '@sb1/indeks-react';
Kode
<Text>Kontoen din har en saldo på 12 345,00 kr.</Text>
Eget element
ix-text-klassen kan settes på alle block- og inline-elementer.
Tekst rendres som standard i en <p>. Bruk as når elementet ikke er en paragraf — for eksempel i lister eller tabellceller:
Kode
<ul> <Text as="li">Brukskonto</Text> <Text as="li">Sparekonto</Text> </ul>
Linjehøyde
Standard linjehøyde er 1.2. Brødtekst over flere linjer trenger større linjehøyde for bedre lesbarhet — sett den til 1.4 med modifikatoren under:
Kode
<Text long> Renten på boliglånet ditt er basert på Nibor pluss et påslag. Den effektive renten inkluderer alle gebyrer og kostnader knyttet til lånet, og gir deg et mer realistisk bilde av hva lånet faktisk koster deg per år. </Text>
Bold og emphasized tekst
Bruk <strong> og <em> for å utheve tekst med henholdsvis fet og kursiv stil. Begge har semantisk betydning. Bruk <b> og <i> kun når du vil ha visuell effekt uten semantisk mening.
Kode
<> <Text> Saldo: <strong>12 345,00 kr</strong> </Text> <Text> Renten er <em>variabel</em> og kan endres. </Text> </>
Vil du utheve en hel paragraf uten <p>-elementet, bruk as:
Kode
<Text as="strong">Denne teksten er uthevet i sin helhet</Text>
Props — Text
| Prop | Type | Standard | Beskrivelse |
|---|---|---|---|
as | ElementType | p | HTML-element som rendres. Kan være span, strong, em, etc. |
size | 2xl, xl, lg, md, sm, xs | md | Skriftstørrelse. |
long | boolean | false | Øker linjehøyden til 1.4. Bruk for tekst over flere linjer. |
addRecommendedSpacing | boolean | false | Legger til anbefalt margin-bottom under teksten. |
className | string | — | Ekstra CSS-klasser. |
Lenker (LinkText)
LinkText er lenker som sitter i løpende tekst — ikke frittstående knapper eller navigasjonslenker. Komponenten setter riktig lenkefarge, understrek og aktiv-tilstand, og fungerer med <a> eller en hvilken som helst router-komponent.
Kom i gang
import { LinkText } from '@sb1/indeks-react';
Kode
<LinkText href="/konto">Se kontooversikt</LinkText>
Props — LinkText
| Prop | Type | Standard | Beskrivelse |
|---|---|---|---|
as | ElementType | a | HTML-element som rendres. Bruk f.eks. Link fra React Router. |
size | 'sm', 'md', 'lg' | md | Skriftstørrelse. |
underline | boolean | true | Viser understrek. Deaktiver kun i spesielle kontekster. |
isActive | boolean | false | Markerer lenken som aktiv — brukes i navigasjonsmenyer o.l. |
className | string | — | Ekstra CSS-klasser. |
Utility-klasser
For tilfeller der du ikke bruker Text-komponenten, finnes det utility-klasser for typografi.
Skriftstørrelse
Kode
<> <p className="ix-font-size-xs">xs — ekstra liten tekst</p> <p className="ix-font-size-sm">sm — liten tekst</p> <p className="ix-font-size-md">md — standardstørrelse</p> <p className="ix-font-size-lg">lg — stor tekst</p> <p className="ix-font-size-xl">xl — ekstra stor tekst</p> <p className="ix-font-size-2xl">2xl</p> <p className="ix-font-size-3xl">3xl</p> <p className="ix-font-size-4xl">4xl</p> <p className="ix-font-size-5xl">5xl</p> </>
Vekt og stil
| Klasse | Beskrivelse |
|---|---|
.ix-text-bold | Setter font-weight: medium. Tilsvarer effekten av <strong> og <b>. |
.ix-text-italic | Setter font-style: italic. Tilsvarer effekten av <em> og <i>. |
strong og b arver automatisk bold-stilen fra .ix-body. Det samme gjelder em og i for kursiv. Utility-klassene er nyttige når du ikke kan endre HTML-semantikken.
Tilpasning med CSS
Typografi i Indeks er ikke bygget rundt én blokkklasse — stilene er i stedet fordelt på klasser per komponent og størrelse. Du kan bruke disse direkte i egenhåndig HTML uten React-komponentene.
Tilgjengelige klasser og selektorer
| Komponent | Basisklasse | Størrelse | Modifikatorer |
|---|---|---|---|
| Heading | ix-heading | data-size="2xl|xl|lg|md|sm|xs" | — |
| Text | ix-text | data-size="2xl|xl|lg|md|sm|xs" | ix-text--long |
| LinkText | ix-link-text | — | ix-link-text--no-underline ix-link-text--active |
Se fullstendig klasseliste med beskrivelse under Props-tabellene i HTML-fanene ovenfor.
Eksempel: bruk i eigen HTML-struktur
<h1 class="ix-heading" data-size="2xl">Renter og betingelser</h1>
<p class="ix-text ix-text--long" data-size="md">Renten på boliglånet ditt er basert på Nibor pluss et påslag.</p>
<a class="ix-link-text" href="/konto">Se kontooversikt</a>