Шаги
На этой странице
current — индекс текущего шага. Всё, что до него, завершено и получает галочку; всё, что после, ещё впереди. Текущий помечается aria-current="step", поэтому он не только окрашен, но и объявляется.
Простые шаги
Установить
Написать страницу
Собрать
Развернуть
steps({
current: 1,
items: [
{ title: 'Установить' },
{ title: 'Написать страницу' },
{ title: 'Собрать' },
{ title: 'Развернуть' },
],
})С описаниями
Установить
npm install -D sitelo
Написать страницу
src/index.ht.js
Собрать
sitelo build
Развернуть
Опубликовать dist/
steps({
current: 2,
items: [
{ title: 'Установить', description: 'npm install -D sitelo' },
{ title: 'Написать страницу', description: 'src/index.ht.js' },
{ title: 'Собрать', description: 'sitelo build' },
{ title: 'Развернуть', description: 'Опубликовать dist/' },
],
})Вертикально
Лучше, когда описания длиннее пары слов.
Добавьте пакет
sitelo приносит собственный Vite, так что ставить больше нечего.
Напишите функцию, возвращающую HTML
Один файл в src/ — это уже целый сайт.
Опубликуйте результат
dist/ — это обычные статические файлы, их примет любой хостинг.
steps({
direction: 'vertical',
current: 1,
items: [
{ title: 'Добавьте пакет', description: 'sitelo приносит собственный Vite, так что ставить больше нечего.' },
{ title: 'Напишите функцию, возвращающую HTML', description: 'Один файл в src/ — это уже целый сайт.' },
{ title: 'Опубликуйте результат', description: 'dist/ — это обычные статические файлы, их примет любой хостинг.' },
],
})Пока ничего не сделано
Установить
Настроить
Развернуть
steps({ current: 0, items: ['Установить', 'Настроить', 'Развернуть'] })Всё сделано
Поставьте current за последний индекс — и все шаги читаются как завершённые.
Установить
Настроить
Развернуть
steps({ current: 3, items: ['Установить', 'Настроить', 'Развернуть'] })На телефоне
Горизонтальному ряду на узком экране деваться некуда, поэтому ниже 40rem он сам становится вертикальным — никаких пропсов не нужно. Сузьте это окно, чтобы увидеть.
Подпись для списка
Список — это <ol>, порядок в нём уже заложен. Добавляйте label, когда на странице больше одного набора шагов и их нужно различать.
Сборка
Загрузка
Сброс кэша
steps({
label: 'Ход развёртывания',
current: 1,
items: ['Сборка', 'Загрузка', 'Сброс кэша'],
})Продвигать поток
Состояние — это три имени класса и один aria-current, разбросанные по всем шагам. setStep() двигает их вместе, так что мастер, который идёт вперёд в браузере, — это один вызов, а не цикл.
Индекс за последним шагом оставляет завершёнными все — так и выглядит законченный поток. Или прямо из атрибута события, без единого байта в бандле:
button({ onclick: "import('/su/steps.js').then(m=>m.set('checkout',2))" }, 'Next')Или из вашего собственного модуля, если он и так уже работает:
import { setStep } from 'sitelo/ui/client'
setStep('checkout', 2)Пропсы
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
items | Array | [] | Строки или объекты { title, description }. |
current | number | 0 | Индекс текущего шага. |
direction | 'horizontal' | 'vertical' | 'horizontal' | Раскладка. Горизонтальная ниже 40rem становится вертикальной. |
label | string | — | Доступное имя списка. |