16 — Components

Slider / Carousel

Image carousel with dots and arrows. Add data-slider-auto="5000" for auto-play.

Image only with dots & arrows

Slide 1
Slide 2
Slide 3
Slide 4
<div class="slider" data-slider data-slider-dots data-slider-arrows>
  <div class="slider-track">
    <div class="slider-slide"><img src="image.jpg" alt="Slide 1"></div>
    <div class="slider-slide"><img src="image.jpg" alt="Slide 2"></div>
    <div class="slider-slide"><img src="image.jpg" alt="Slide 3"></div>
  </div>
</div>

Hero slider (image + text overlay)

Nordic design at its core

Clean lines, warm neutrals, functional beauty. Built for the web, crafted with intention.

Zero dependencies

Pure CSS and vanilla JS. No build step, no npm, no complexity. Just drop and go.

Dark mode built-in

Every token adapts automatically. One codebase, two themes, zero effort.

<div class="slider slider-hero" data-slider data-slider-dots data-slider-arrows data-slider-auto="6000">
  <div class="slider-track">
    <div class="slider-slide">
      <img src="image.jpg" alt="">
      <div class="slider-hero-overlay">
        <div class="slider-hero-content">
          <h2>Slide title</h2>
          <p>Slide description text.</p>
        </div>
      </div>
    </div>
  </div>
</div>

17 — Components

Video Player

Minimal custom video player. Auto-builds controls from a <video> tag.

<!-- Add data-video-player to auto-init the custom controls -->
<div class="video-player" data-video-player>
  <video src="video.mp4" preload="metadata"></video>
</div>

18 — Components

Audio Player

Lightweight audio player built from data attributes.

<div class="audio-player" data-audio-player
  data-src="audio.mp3"
  data-title="Track Title"
  data-artist="Artist Name">
</div>

29 — Utilities

Image Filters

CSS filter classes for quick image treatment. Hover variants restore the original.

Original

Original
Original

.img-bw

B/W
.img-bw

.img-sepia

Sepia
.img-sepia

.img-muted

Muted
.img-muted
<!-- Original (no filter) -->
<img src="image.jpg" alt="Original">

<!-- Black & white -->
<img src="image.jpg" alt="B/W" class="img-bw">

<!-- Sepia -->
<img src="image.jpg" alt="Sepia" class="img-sepia">

<!-- Muted -->
<img src="image.jpg" alt="Muted" class="img-muted">

Hover to reveal

.img-bw .img-bw-hover
B/W hover
.img-bw .img-bw-hover
.img-sepia .img-sepia-hover
Sepia hover
.img-sepia .img-sepia-hover
.img-warm
Warm
.img-warm
<!-- B/W → colour on hover -->
<img src="image.jpg" alt="B/W hover" class="img-bw img-bw-hover">

<!-- Sepia → colour on hover -->
<img src="image.jpg" alt="Sepia hover" class="img-sepia img-sepia-hover">

<!-- Warm filter -->
<img src="image.jpg" alt="Warm" class="img-warm">