-
Notifications
You must be signed in to change notification settings - Fork 1
feat(nve-navigation-card): Legg til ny navigasjonskomponent for hovednavigasjon #810
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
olmabo
wants to merge
5
commits into
main
Choose a base branch
from
feature/nve-navigation-card
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
4edd6f5
feat(nve-navigation-card): legg til ny navigasjonskomponent
olmabo 1327332
test(nve-navigation-card): legg til tester for komponenten
olmabo 170bb61
feat(nve-navigation-card): legg til støtte for clickAction-varianter …
olmabo 54aabec
fix(nve-navigation-card): vis testid-attributt kun når testId har ver…
olmabo aba1352
fix(nve-navigation-card): rettet testid-attributt og label rendering …
olmabo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,185 @@ | ||
| --- | ||
| layout: component | ||
| --- | ||
|
|
||
| <CodeExamplePreview> | ||
|
|
||
| ```html | ||
| <nve-navigation-card | ||
| href="#" | ||
| label="Om hydrologisk avdeling" | ||
| additionalText="Norges vassdrags- og energidirektorat er nasjonal faginstitusjon i hydrologi." | ||
| ></nve-navigation-card> | ||
| <nve-navigation-card | ||
| href="#" | ||
| label="Fakta om vannets kretsløp" | ||
| iconPath="/assets/nve-illustrasjoner-ikon-vannkraft.png" | ||
| ></nve-navigation-card> | ||
| ``` | ||
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| ## Eksempler | ||
|
|
||
| ### Tittel | ||
|
|
||
| Tittel vises alltid øverst i kortet, og under ikon dersom ikon er lagt inn med `iconPath`. Tittelen er det viktigste innholdet og bør være kort og beskrivende. | ||
|
|
||
| <CodeExamplePreview> | ||
|
|
||
| ```html | ||
| <nve-navigation-card href="#" label="Tittel" /> | ||
| ``` | ||
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| ### Med tilleggstekst | ||
|
|
||
| Du kan legge til en ekstra tekst under hovedlenkens overskrift ved å bruke `additionalText`-egenskapen. Både overskriften og den tilhørende teksten blir lest opp av skjermlesere, så sørg for at teksten er kortfattet og lett å forstå. | ||
|
|
||
| <CodeExamplePreview> | ||
|
|
||
| ```html | ||
| <nve-navigation-card | ||
| href="#" | ||
| label="Om hydrologisk avdeling" | ||
| additionalText="Norges vassdrags- og energidirektorat er nasjonal faginstitusjon i hydrologi." | ||
| /> | ||
| ``` | ||
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| ### Med lang tilleggstekst | ||
|
|
||
| Tilleggstekst vises maksimalt på 3 linjer. Dersom teksten er lengre, kuttes den av med `...`. | ||
|
|
||
| <CodeExamplePreview> | ||
|
|
||
| ```html | ||
| <nve-navigation-card | ||
| href="#" | ||
| label="Vannkraft i Norge" | ||
| additionalText="Norge er verdens sjette største produsent av vannkraft, og nesten all norsk strømproduksjon kommer fra vannkraftverk. Vannkraften utnytter høydeforskjeller i elver og innsjøer til å produsere ren og fornybar energi. NVE forvalter Norges vannressurser og har ansvar for å regulere og overvåke kraftproduksjonen i landet." | ||
| /> | ||
| ``` | ||
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| ### Med ikon fra ikon-fil | ||
|
|
||
| Ikonsettet som skal brukes er de som hos NVE kalles [Illustrasjonsikoner](https://nve.frontify.com/d/n2ujvoktZ3dr/nve-profil#/ikoner-illustrasjoner/illustrasjonsikoner-1). Ikon skal **ikke** kombineres med ekstratekst (`additionalText`). Dersom både `additionalText` og `iconPath` er brukt, vil ikonet vises og `additionalText` skjules. | ||
|
|
||
| <CodeExamplePreview> | ||
|
|
||
| ```html | ||
| <nve-navigation-card | ||
| href="#" | ||
| label="Fakta om vannets kretsløp" | ||
| iconPath="/assets/nve-illustrasjoner-ikon-vannkraft.png" | ||
| > | ||
| </nve-navigation-card> | ||
| <nve-navigation-card href="#" label="Fakta om flom og farer" iconPath="/assets/nve-illustrasjoner-ikon-flom.png"> | ||
| </nve-navigation-card> | ||
| ``` | ||
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| ### Klikkhandlinger | ||
|
|
||
| Man kan velge mellom 3 klikk-handlinger ved bruk av `clickAction`-egenskapen. Handlingen bestemmer både funksjonaliteten og hvilket ikon som vises i kortet. Standardverdi er `internal`. | ||
|
|
||
| #### Intern | ||
|
|
||
| `internal` håndterer intern routing. Brukes når brukeren skal navigere innenfor samme applikasjon. Sett `href` for å definere URL-en. | ||
|
|
||
| <CodeExamplePreview> | ||
|
|
||
| ```html | ||
| <nve-navigation-card | ||
| label="Intern" | ||
| additionalText="Klikk for å gå til intern linke" | ||
| clickAction="internal" | ||
| href="/components/nve-button.html" | ||
| > | ||
| </nve-navigation-card> | ||
| ``` | ||
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| #### Ekstern | ||
|
|
||
| `external` åpner en ekstern side. Automatisk settes `target="_blank"` på `<a>`-elementet. Se anbefalinger for eksterne lenker i seksjonen [Tilgjengelighet](#tilgjengelighet). | ||
|
|
||
| <CodeExamplePreview> | ||
|
|
||
| ```html | ||
| <nve-navigation-card label="Ekstern (åpnes i en ny fane)" clickAction="external" href="https://www.nve.no/"> | ||
| </nve-navigation-card> | ||
| ``` | ||
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| #### Nedlasting | ||
|
|
||
| `download` starter nedlasting av en fil. Legger til `download`-attributtet slik at nettleseren forstår at lenken ikke skal navigere videre. Dersom du ønsker spesifikk filhåndtering, kan du implementere det selv med en vanlig `onClick`-metode (avhengig av rammeverket du bruker). | ||
|
|
||
| <nve-message-card variant="warning" label="Viktig!" size="compact"> | ||
| <p>Hvis filen ligger på en annen origin enn applikasjonen, vil lenken ikke laste ned filen, men i stedet åpne adressen fra <b>href</b>-attributtet. I slike tilfeller må du selv håndtere nedlastingen med onClick.</p> | ||
| </nve-message-card> | ||
|
|
||
| <CodeExamplePreview> | ||
|
|
||
| ```html | ||
| <nve-navigation-card label="Last ned Mardalsfossen bilde (JPEG, 72 KB)" clickAction="download"> </nve-navigation-card> | ||
| ``` | ||
|
|
||
| </CodeExamplePreview> | ||
|
|
||
| ## Bruk med klient-side routing i SPA-applikasjoner | ||
|
|
||
| Når man benytter klientside-routing, for eksempel med `routerLink` (Vue) eller `Link` (React), genereres et eget `<a>`-element av rammeverket. | ||
| I disse tilfellene blir `nve-navigation-card` pakket inn i en `<a>`. For å unngå ugyldig HTML-struktur med `<a>`-elementer inni hverandre, sjekker `nve-navigation-card` derfor om dets direkte forelder er et `<a>`. Hvis dette er tilfelle, rendres kortet som et `<div>` i stedet for et `<a>`. | ||
|
|
||
| På denne måten beholdes mest funksjonalitet og styling fra `nve-navigation-card`, samtidig som man unngår semantiske og tekniske problemer med nestede lenker. | ||
|
|
||
| **Eksempel i Vue:** | ||
|
|
||
| ```vue | ||
| <RouterLink to="components/Komponentoversikt"> | ||
| <nve-navigation-card | ||
| href="#" | ||
| label="Om hydrologisk avdeling" | ||
| additionalText="Tekst her skal ikke kombineres med ikon" | ||
| /> | ||
| </RouterLink> | ||
| ``` | ||
|
|
||
| **Eksempel i React:** | ||
|
|
||
| ```jsx | ||
| <Link to="/components/Komponentoversikt"> | ||
| <nve-navigation-card | ||
| href="#" | ||
| label="Om hydrologisk avdeling" | ||
| additionalText="Tekst her skal ikke kombineres med ikon" | ||
| /> | ||
| </Link> | ||
| ``` | ||
|
|
||
| ## Retningslinjer | ||
|
|
||
| - **Bruk `nve-navigation-card`** for hovednavigasjon på oversikts- eller inngangssider der brukeren skal velge mellom flere hovedtemaer eller seksjoner. | ||
| - **Bruk [`nve-link-card`](/components/nve-link-card)** for sekundære lenker, handlinger, eller når du trenger støtte for eksterne lenker, nedlasting eller e-post. | ||
| - Ikke bruk `nve-navigation-card` for valg, ekspanderbare paneler eller andre interaktive kort – bruk dedikerte komponenter for dette. | ||
| - Komponentet har både minimum og maksimum høyde for konsistent layout. | ||
| - **Ikon skal ikke kombineres med ekstratekst** (`additionalText`). Hvis `ikonPath` er lagt inn, vises ikke tilleggstekst. | ||
| - **Kun illustrasjonsikoner skal brukes som ikon**. Disse finnes i [NVE Frontify – Illustrasjonsikoner](https://nve.frontify.com/d/n2ujvoktZ3dr/nve-profil#/ikoner-illustrasjoner/illustrasjonsikoner-1/nedlasting). Illustrasjonsikonene illustrerer NVEs virksomhetsområder og er detaljrike. De skal ikke brukes for å indikere navigasjon eller handling, og fungerer dårlig i små størrelser. | ||
| - Bruk alltid komponenten i et grid- eller flex-oppsett for å sikre riktig spacing og responsivitet. | ||
|
|
||
| ## Tilgjengelighet | ||
|
|
||
| - **Tittel (`label`-feltet) rendres som `<h2>`** for å sikre god semantikk og tilgjengelighet. Dette gjør det enklere for brukere med skjermleser å navigere mellom hovedseksjoner på siden. Hvis du har flere navigation-cards på samme side, vil de automatisk utgjøre en oversiktlig seksjonsstruktur. | ||
| - Komponentet rendres som `<a>` hvis det ikke ligger inni en lenke, og som `<div>` hvis det pakkes inn i en `<a>` (for å unngå nestede lenker). | ||
| - Ikon og tilleggstekst skal **ikke** vises samtidig. | ||
| - Ekstratekst trunkeres automatisk etter 3 linjer for å sikre at kortet ikke blir for høyt og at innholdet er lett å skanne. | ||
| - Understrek (text-decoration) på wrapper-`<a>` fjernes av designsystemet ved hjelp av en regel i `global.css` (`a:has(nve-navigation-card) { text-decoration: unset; }`). Dette sikrer at det ikke vises uønsket understrek på lenker som wrapper `nve-navigation-card`, siden webkomponenter bruker Shadow DOM og ikke kan påvirke wrapperens styling direkte. | ||
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.