Passaggi

current è l’indice del passaggio in corso. Tutto ciò che lo precede è completo e riceve una spunta; tutto ciò che segue è ancora da venire. Quello corrente è marcato aria-current="step", quindi viene annunciato oltre che colorato.

Passaggi di base

  1. Installa

  2. Scrivi una pagina

  3. Build

  4. Pubblica

steps({
  current: 1,
  items: [
    { title: 'Installa' },
    { title: 'Scrivi una pagina' },
    { title: 'Build' },
    { title: 'Pubblica' },
  ],
})

Con descrizioni

  1. Installa

    npm install -D sitelo

  2. Scrivi una pagina

    src/index.ht.js

  3. Build

    sitelo build

  4. Pubblica

    Pubblica dist/

steps({
  current: 2,
  items: [
    { title: 'Installa', description: 'npm install -D sitelo' },
    { title: 'Scrivi una pagina', description: 'src/index.ht.js' },
    { title: 'Build', description: 'sitelo build' },
    { title: 'Pubblica', description: 'Pubblica dist/' },
  ],
})

Verticale

Meglio quando le descrizioni sono più lunghe di qualche parola.

  1. Aggiungi il pacchetto

    sitelo porta con sé il proprio Vite, quindi non c’è altro da installare.

  2. Scrivi una funzione che restituisce HTML

    Un file sotto src/ è un sito intero.

  3. Pubblica l’output

    dist/ è fatta di semplici file statici — qualunque host se li prende.

steps({
  direction: 'vertical',
  current: 1,
  items: [
    { title: 'Aggiungi il pacchetto', description: 'sitelo porta con sé il proprio Vite, quindi non c’è altro da installare.' },
    { title: 'Scrivi una funzione che restituisce HTML', description: 'Un file sotto src/ è un sito intero.' },
    { title: 'Pubblica l’output', description: 'dist/ è fatta di semplici file statici — qualunque host se li prende.' },
  ],
})

Ancora niente di fatto

  1. Installa

  2. Configura

  3. Pubblica

steps({ current: 0, items: ['Installa', 'Configura', 'Pubblica'] })

Tutto fatto

Imposta current oltre l’ultimo indice e ogni passaggio si legge come completo.

  1. Installa

  2. Configura

  3. Pubblica

steps({ current: 3, items: ['Installa', 'Configura', 'Pubblica'] })

Su un telefono

Una riga orizzontale non ha dove andare su uno schermo stretto, quindi sotto i 40rem diventa verticale da sola — nessuna prop necessaria. Restringi questa finestra per vederlo.

Dargli un nome

L’elenco è un <ol>, che porta già con sé l’ordine. Aggiungi label quando la pagina ha più di una serie di passaggi e vanno distinte.

  1. Build

  2. Caricamento

  3. Invalidazione della cache

steps({
  label: 'Avanzamento della pubblicazione',
  current: 1,
  items: ['Build', 'Caricamento', 'Invalidazione della cache'],
})

Far avanzare il percorso

Lo stato è fatto di tre nomi di classe e un aria-current, sparsi su ogni passaggio. setStep() li muove insieme, così una procedura guidata che avanza nel browser è una sola chiamata invece di un ciclo.

Un indice oltre l’ultimo passaggio li lascia tutti completi, che è l’aspetto di un percorso finito. Oppure da un attributo di evento, senza nulla nel bundle:

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

Oppure dal tuo modulo, quando ne hai già uno in esecuzione:

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

setStep('checkout', 2)

Props

PropTipoPredefinitoDescrizione
itemsArray[]Stringhe, oppure oggetti { title, description }.
currentnumber0Indice del passaggio in corso.
direction'horizontal' | 'vertical''horizontal'Disposizione. L’orizzontale diventa verticale sotto i 40rem.
labelstring—Nome accessibile dell’elenco.