npm install @gyldendal/kobber-components<script>
import "@gyldendal/kobber-components/web-components";
</script>
<div class="kobber-theme-default">
<kobber-button>Hello Kobber</kobber-button>
</div>Tip
Check components readme on registering components, and adding fonts.
npm install @gyldendal/kobber-icons<script>
import "@gyldendal/kobber-icons/web-components";
</script>
<kobber-arrow_right />Tip
Check icons readme on registering icons, and more options.
If you use more than one kobber package in your project: Remember to always keep all version numbers the same! Components has Icons as a dependency, so using different version numbers for Components and Icons is to ask for trouble.
This monorepo contains all code related to Kobber. They share dependencies and common commands can be run from root using Turbo CLI syntax.
- Node.js - Node latest LTS
- Corepack enabled (comes with Node.js):
corepack enable
# First time setup
yarn install # Will prompt to download Yarn via Corepack - answer Y
# Start Storybook (main development environment)
# Runs dev server at http://localhost:6006 for /apps/storybook-web-components
yarn storybookComponents are in packages/kobber-components/src/. Edit files and see changes live in Storybook at http://localhost:6006.
Note
Storybook automatically builds dependencies (like CSS variables from design tokens in kobber-base) and has hot reload for component changes.
yarn install
# Build only this package and all its dependencies
yarn build -F @gyldendal/kobber-components
# Start docs dev server. Runs /apps/docs project locally (kobber.gyldendal.no)
yarn dev -F docsAlso requires an .env file in the docs folder with the following secrets in Keeper.
yarn install
# Produce css variables from design tokens, required by components
yarn build -F @gyldendal/kobber-base
# runs the dev server for /apps/storybook-web-components (kobber-storybook.gyldendaldigital.no)
yarn storybookyarn integration-checker
Uses the internal integration-checker tool to find Kobber imports across consumer repositories. Generates:
- .references.mts in kobber-base, kobber-components and kobber-icons for quick symbol lookups in editors
- CSV summaries in this folder
Methods such as npm link exist for testing NPM packages locally before deploying to the NPM registry.
Import aliases can also be used for developing Kobber locally in parallel with other projects.
In the project using Kobber, add import aliases that point to the local Kobber repo:
// vite.config.js
import { resolve } from "path";
import { defineConfig } from "vite";
export default defineConfig({
resolve: {
alias: {
"@gyldendal/kobber-base": resolve(import.meta.dirname, "../kobber/packages/kobber-base"),
"@gyldendal/kobber-components": resolve(import.meta.dirname, "../kobber/packages/kobber-components/dist"),
},
},
});Webpack also has a resolve.alias option.
After updating the config it might be necessary to run Vite with the force option: vite --force.