Schritte

current ist der Index des Schritts, der gerade läuft. Alles davor ist abgeschlossen und bekommt ein Häkchen; alles danach steht noch aus. Der aktuelle trägt aria-current="step" und wird damit nicht nur eingefärbt, sondern auch angesagt.

Einfache Schritte

  1. Installieren

  2. Eine Seite schreiben

  3. Bauen

  4. Deployen

steps({
  current: 1,
  items: [
    { title: 'Installieren' },
    { title: 'Eine Seite schreiben' },
    { title: 'Bauen' },
    { title: 'Deployen' },
  ],
})

Mit Beschreibungen

  1. Installieren

    npm install -D sitelo

  2. Eine Seite schreiben

    src/index.ht.js

  3. Bauen

    sitelo build

  4. Deployen

    dist/ veröffentlichen

steps({
  current: 2,
  items: [
    { title: 'Installieren', description: 'npm install -D sitelo' },
    { title: 'Eine Seite schreiben', description: 'src/index.ht.js' },
    { title: 'Bauen', description: 'sitelo build' },
    { title: 'Deployen', description: 'dist/ veröffentlichen' },
  ],
})

Vertikal

Besser, wenn die Beschreibungen länger als ein paar Wörter sind.

  1. Das Paket hinzufügen

    sitelo bringt sein eigenes Vite mit, es gibt also nichts weiter zu installieren.

  2. Eine Funktion schreiben, die HTML zurückgibt

    Eine Datei unter src/ ist bereits eine ganze Website.

  3. Die Ausgabe veröffentlichen

    dist/ sind schlichte statische Dateien — jeder Host nimmt sie.

steps({
  direction: 'vertical',
  current: 1,
  items: [
    { title: 'Das Paket hinzufügen', description: 'sitelo bringt sein eigenes Vite mit, es gibt also nichts weiter zu installieren.' },
    { title: 'Eine Funktion schreiben, die HTML zurückgibt', description: 'Eine Datei unter src/ ist bereits eine ganze Website.' },
    { title: 'Die Ausgabe veröffentlichen', description: 'dist/ sind schlichte statische Dateien — jeder Host nimmt sie.' },
  ],
})

Noch nichts erledigt

  1. Installieren

  2. Konfigurieren

  3. Deployen

steps({ current: 0, items: ['Installieren', 'Konfigurieren', 'Deployen'] })

Alles erledigt

Setze current hinter den letzten Index, und jeder Schritt liest sich als abgeschlossen.

  1. Installieren

  2. Konfigurieren

  3. Deployen

steps({ current: 3, items: ['Installieren', 'Konfigurieren', 'Deployen'] })

Am Telefon

Eine waagerechte Reihe hat auf schmalem Bildschirm keinen Platz, deshalb wird sie unterhalb von 40rem von selbst senkrecht — ohne Prop. Mach dieses Fenster schmaler, um es zu sehen.

Sie beschriften

Die Liste ist ein <ol>, das die Reihenfolge bereits trägt. Ergänze label, wenn eine Seite mehr als eine Schrittfolge hat und sie auseinandergehalten werden müssen.

  1. Bauen

  2. Hochladen

  3. Cache invalidieren

steps({
  label: 'Fortschritt des Deployments',
  current: 1,
  items: ['Bauen', 'Hochladen', 'Cache invalidieren'],
})

Den Ablauf weiterschalten

Der Zustand sind drei Klassennamen und ein aria-current, verteilt über alle Schritte. setStep() bewegt sie zusammen — ein Assistent, der im Browser weiterschaltet, ist ein Aufruf statt einer Schleife.

Ein Index hinter dem letzten Schritt lässt alle abgeschlossen zurück — so sieht ein fertiger Ablauf aus. Oder aus einem Event-Attribut heraus, ohne irgendetwas zu bündeln:

button({ onclick: "import('/su/steps.js').then(m=>m.set('checkout',2))" }, 'Next')

Oder aus deinem eigenen Modul, wenn ohnehin schon eines läuft:

import { setStep } from 'sitelo/ui/client'

setStep('checkout', 2)

Props

PropTypStandardBeschreibung
itemsArray[]Strings oder { title, description }-Objekte.
currentnumber0Index des laufenden Schritts.
direction'horizontal' | 'vertical''horizontal'Anordnung. Waagerecht wird unter 40rem senkrecht.
labelstring—Zugänglicher Name der Liste.