npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@oslokommune/punkt-css

v11.12.8

Published

CSS-rammeverket til Punkt, et designsystem laget av Oslo Origo

Downloads

2,856

Readme

Bruk av punkt-css

Denne pakken inneholder CSS-rammeverket som gjenspeiler skissene i Figma. Det er ikke automatikk mellom Figma og denne koden, så kode vil som regel henge litt etter hva som oppdateres i Figma.

📖 Innhold

@oslokommune/punkt-css
├── dist/                          # Distribusjonsversjonen av pakken
|   ├── css/                       # generert css
|   |   ├── components/            # hver komponent separat
|   |   |   ├── alert.css          # komponent alert
|   |   |   └── ...
|   |   ├── pkt.css                # alle moduler
|   |   ├── pkt.min.css            # alle moduler minimert
|   |   ├── pkt-base.css           # base modul
|   |   ├── pkt-base.min.css       # base modul minimert
|   |   ├── pkt-components.css     # komponent modul med alle komponenter
|   |   ├── pkt-components.min.css # komponent modul minimert
|   |   ├── pkt-elements.css       # element modul
|   |   ├── pkt-elements.min.css   # element modul minimert
|   |   ├── pkt-normalise.css      # normalisering modul
|   |   └── pkt-normalise.min.css  # normalisering modul minimert
|   ├── scripts/                   # javascript for utvidet funksjonalitet
|   └── scss/                      # css-rammeverket med dets moduler
├── CHANGELOG.md                   # alle nevneverdige endringer
├── index.js                       # peker på komplett rammeverk
├── LICENSE                        # MIT lisens
├── package.json                   # all info om prosjektet
└── README.md                      # kom i gang-informasjon

🚀 Kom i gang - npm

Eksempelet under viser installasjon i en applikasjon med Vue 3 + Vite.

1. Installer punkt-css

For å kunne bruke logo, ikoner og fonter med CSS-pakken må du installere punkt-assets

npm add -D sass                    # Viktig å bruke denne og ikke node-sass
npm add @oslokommune/punkt-assets  # Pakken med svg-ressurser
npm add @oslokommune/punkt-css     # Ja denne

2. Opprett en scss-fil

touch ./src/main.scss          # her eller i en egen css-folder

3. Importer scss-filen

// src/main.js
import './main.scss'

4. Importer Punkt

/* src/main.scss

Overstyr stien til fontene (rammeverkspesifikt) */
@use '@oslokommune/punkt-css/dist/scss/abstracts/variables' with (
  $font-path: '@oslokommune/punkt-assets/dist'
);

/* Bruk designsystemet */
@use '@oslokommune/punkt-css/dist/scss/pkt';

5. Fjern lokal css

/* src/App.vue

Fjern app-spesifikk fontoppsett */
font-family: Avenir, Helvetica, Arial, sans-serif;

6. Legg på klasse på sidetittel

/* src/main.scss

Legg til responsiv header */
@use 'sass:map';
@use '@oslokommune/punkt-css/dist/scss/abstracts/variables';
/* Legg merke til at breakpoints hentes inn uten namespace: */
@use '@oslokommune/punkt-css/dist/scss/abstracts/mixins/breakpoints' as *;
@use '@oslokommune/punkt-css/dist/scss/abstracts/mixins/typography';

.h1 {
  @include typography.get-text('pkt-txt-28');
  margin-bottom: map.get(variables.$spacing, 'size-30');

  @include bp('tablet-up') {
    @include typography.get-text('pkt-txt-36');
  }
}
<!-- src/components/HelloWorld.vue

Legg til den nye klassen -->
<h1 class="h1">{{ msg }}</h1>

7. Legg til OsloLogo

<!-- src/App.vue

Legg til logo -->
<img
  class="oslologo"
  alt="Oslo kommune logo"
  src="@oslokommune/punkt-assets/dist/logos/oslologo.svg"
/>

<style lang="scss">
  /* Legg til moduler */
  @use 'sass:map';
  @use '@oslokommune/punkt-css/dist/scss/abstracts/variables';

  /* Legg til klassen for logoen */
  .oslologo {
    margin-bottom: map.get(variables.$spacing, 'size-30');
    height: 12rem;
  }
</style>

🏎️ Kom i gang - cdn

Ved å inkludere Punkts css via vår cdn på punkt-cdn.oslo.kommune.no, er du kjapt igang uten noe byggesteg.

Link til ønsket CSS-fil i <head>-taggen din. Vi anbefaler å bruke pkt.min.css for å få den minifiserte versjonen av hele css-rammeverket. Du kan også velge å importere enkelte moduler, eller bare base-modulen.

Se tilgjengelige filer på cdn.

<!DOCTYPE html>
<html lang="no">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Punkt</title>
    <link href="https://punkt-cdn.oslo.kommune.no/latest/css/pkt.min.css" rel="stylesheet" />
  </head>
  <body>
    <h1>Velkommen til Oslo Origo</h1>
    <img
      src="https://punkt-cdn.oslo.kommune.no/latest/logos/oslologo.svg"
      alt="Oslo kommune logo"
      height="64"
    />
  </body>
</html>

🟪 Ikoner

Du kan selv velge hvordan du tar i bruk ikoner. Men vi har et ikon-oppsett for SVG-sprites ved bruk av vårt CLI-verktøy.

Våre CSS-klasser som inneholder et ikon importerer ikonet fra vår CDN. Om du har en content security policy(CSP) satt opp må du åpne for https://punkt-cdn.oslo.kommune.no/ i din CSP.

Les mer om ikoner her.

🎨 CSS-rammeverket

  • Modulært - import modulene du selv ønsker.
  • Må bruke css-klasser - ingen overstyring utenom å bruke OsloSans.
  • Komponentbibliotekene bruker samme css.
  • Sass abstracts gir ekstra nytteverdi for deg som bruker.

Innhold

| Kategori | Beskrivelse | | :--------- | :--------------------------------------------------------------------------------------- | | Abstracts | Variabler, funksjoner, mixins: Alle Sass-verktøy som brukes på tvers av rammeverket | | Normalise | Normalisering for å ha en felles baseline | | Base | Grunnleggende moduler som farger, grid, spacing, hjelpeklasser, mm. | | Elements | HTML-elementer som er stylet, som knapper, lister og tabeller. | | Components | Komponenter som kombinerer elementer og komponenter for å lage mer komplekse komponenter |

Abstracts

Abstracts består av /variables, /functions, og /mixins og samler alle globale Sass variabler og verktøy på tvers av rammeverket. Disse er et fundament for resten av rammeverket.

Ingenting under denne folderen skal generere en eneste linje CSS når den er kompilert på egen hånd. Disse er bare Sass hjelpeverktøy.

Variables

Folderen /variables er en samling Sass-variabler skrevet på formen Sass maps. Dette gir en fin måte å kategorisere variablene og gir mulighet for nested maps.

/* abstracts/variables/_breakpoints.scss */

$breakpoints: (
  'mobile': 0,
  'phablet': 36rem /* ~576px */,
  'tablet': 48rem /* ~768px */,
  'tablet-big': 64rem /* ~1024px */,
  'laptop': 80rem /* ~1280px */,
  'desktop': 100rem /* ~1600px */,
) !default;

For prekompilerte .css er hver kategori pakket i en fil, mens for .scss kan hver modul brukes hver for seg.

Functions

Nedenfor er et eksempel på bruk av en SCSS map-get-funksjon. Den brukes til å hente ut verdier fra våre variabler.

Man kan hente verdier med denne funksjonen fra:

@use 'sass:map';
@use '@oslokommune/punkt-css/scss/abstracts/variables';

.wrapper {
  max-width: map.get(variables.$breakpoints, 'phablet');
  padding: map.get(variables.$spacing, 'size-24');
  background-color: map.get(variables.$pkt-colors, 'color-red');
  font-size: map.get(variables.$font-size, 'size-54');
}

Mixins

Mixins er nyttige når du ønsker å gjenbruke en gruppe av CSS-regler på flere steder i stilsettet ditt. Se eksempel nedenfor på hva som finnes i Punkt:

Breakpoints

@use '@oslokommune/punkt-css/scss/abstracts/mixins/breakpoints' as *;

@include bp('phablet') { /* 576 til 767px */
  ...;
}

Typografi

@use '@oslokommune/punkt-css/dist/scss/abstracts/mixins/typography' as *;

.page-header {
  @include get-text('pkt-txt-40-light');
  margin-top: 0.6em;
  margin-bottom: 0.4em;
}

Les mer om breakpoints og typografi.

Normalise

De fleste applikasjoner i dag bruker en eller annen form for normalisering eller reset. Dette gjør vi for å gi en mer konsistent utseende og oppførsel av HTML-elementer på tvers av ulike nettlesere. Nettlesere har sin egen innebygde stil, og disse stilene varierer fra nettleser til nettleser. For eksempel kan margins, padding og linjehøyde variere.

Normaliseringen vi gjør i Punkt er forsøkt gjort så liten som mulig.

Se i koden for hva som er normalisert i Punkt.

Base

Vår base har Oslo kommune-stiler som typografi, farger, spacing og hjelpeklasser som for eksempel synlighet og screen-readers-only.

Les mer om:

Elements

I et designsystem refererer elementer og komponenter til forskjellige nivåer av gjenbrukbarhet og abstraksjon i koden. Elementer er de minste byggeklossene i vårt designsystem, som for eksempel pkt-list eller pkt-section.

<div class="pkt-section--grey p-size-20">
  <p class="pkt-txt-18-medium">Lista:</p>
  <ul class="pkt-list">
    <li>listelement</li>
  </ul>
</div>

Components

Komponenter er sammensatte elementer som består av en gruppe av elementer og/eller andre komponenter. De representerer en mer kompleks visuell enhet, som en knapp eller en alert-boks. Komponenter har vanligvis flere egenskaper og kan ha flere avhengigheter, og dermed har de en mer kompleks struktur enn elementer.

Alle våre komponenter er dokumentert under komponenter.

🔢 Versjonering

Punkt bruker Semantic Versioning 2.0.0 for versjonering av pakkene.

👮 Lisens

Punkt er distribuert under MIT-lisens for åpen kildekode.

NPM License