For utviklere
Bruk av designsystemet i Vue 3
Installer designsystem-pakka
npm i nve-designsystem
Fortell Vue at komponentene våre er web-komponenter
I vite.config
, legg inn isCustomElement
, som forteller Vue hva som er web-komponenter. Hvis du ikke har vite.config
fra før, lag en ny fil i rot-mappa.
Les her for mer info og andre løsninger hvis du ikke bruker Vite.
export default defineConfig({
plugins: [
vue({
template: {
compilerOptions: {
isCustomElement: (tag) => tag.includes('nve-'),
},
},
}),
],
});
Stiler
Importer en .css-fil for farge-tema i main.ts
. Filene finnes i mappa nve-designsystem/css/
. For NVE-tema, bruk:
import 'nve-designsystem/css/nve.css';
For Varsom-tema, bruk:
import 'nve-designsystem/css/varsom.css';
Det finnes også varianter av disse to filene med mørkt tema.
Ikoner
Fordi vi overstyrer Shoelace sine system-ikoner i våre komponenter må vi registrere disse manuelt. Her er mer info. Legg denne kodesnutten i main.ts eller App.vue:
import { icons, registerIconLibrary } from 'nve-designsystem/registerIcons/systemLibraryCustomization.js';
registerIconLibrary('system', {
resolver: (name) => {
return `data:image/svg+xml, ${encodeURIComponent(icons[name])}`;
},
});
Eslint-regler og VS Code
Hvis du bruker VS Code og starter et nytt prosjekt gjennom npm run create vue@latest og bruker standard eslint-regler, kan du få feil fra eslint-regler og automatisk retting fra VS-kode. Du kan legge til disse ESLint-reglene for å unngå dette:
"vue/no-deprecated-slot-attribute": "off",
"vue/attribute-hyphenation": "off",
"vue/v-on-event-hyphenation": "off",
Eksempel på bruk av komponent
<template>
<nve-button @Click="count++">Du har trykket på denne NVE-knappen {{ count }} gang(er)</nve-button>
</template>
<script setup lang="ts">
import 'nve-designsystem/components/nve-button/nve-button.component.js';
import { ref } from 'vue';
const count = ref(0);
</script>
Under kjører vi denne koden i en sandkasse. Du kan endre koden selv ved å velge 'Open Sandbox' og fila 'App.vue'.
Hvis du ikke ser komponenten når du kjører sida, sjekk om du har importert den riktig.
Les også om bruk av Shoelace-komponenter i Vue. Det meste der gjelder for Nve-komponenter også.
Mer hjelp i VS Code
Vi bruker Custom Element VS Code Integration til å generere hjelpedokumentasjon til VS Code.
Legg denne inn i .vscode/settings.json
, for få dokumentasjon og autofullføring av attributt-verdier i VS Code:
"html.customData": ["./node_modules/nve-designsystem/vscode.html-custom-data.json"],
"css.customData": ["./node_modules/nve-designsystem/vscode.css-custom-data.json"]
Da får du disse funksjonene:
- Hold muspeker over komponentnavnet i html-malen for å se dokumentasjon på komponenten
- Bruk Ctrl-space for hjelp til å fullføre attributtnavn og for å vise tilgjengelige valg der et attributt har et begrenset sett av lovlige valg.