Как подсчитать li списки и вывести нумерацию?

Всем доброго времени суток! Подскажите, пожалуйста, как сделать вывод такого списка, чтобы рядом где нумерация выводилось еще сколько осталось списков ниже, а последний список выводил не номер списка, а слово например "Готово".

Сделал нумерацию через css, но это немного не то. Пример вывода нумерации

Вот код как я вывожу сейчас:

ol li {
  display: flex;
  padding: 40px 0 20px;
  margin-bottom: 10px;
  position: relative;
  counter-increment: my-awesome-counter;
  border-bottom: 2px dashed #e6e6e6;
}

ol li::after {
  position: absolute;
  top: 7px;
  left: 0;
  content: "Шаг" " " counter(my-awesome-counter);
  font-size: 1.2rem;
  font-weight: 600;
  color: brown;
}

ol li:last-child::after {
  content: "Готово!";
}
<ol>
  <li>Пример списка</li>
  <li>Пример списка</li>
  <li>Пример списка</li>
  <li>Пример списка</li>
  <li>Пример списка</li>
</ol>


Ответы (1 шт):

Автор решения: Sumskyi Vasyl

Вот решение с помощью JS

window.addEventListener('DOMContentLoaded', () => {
  list('#list li')
})


const list = selector => {
  const listItems = document.querySelectorAll(selector) // достаем все нужные ДОМ узлы

  listItems.forEach((item, index) => { // перебераем каждый елемент и вставляем в него нужный спан с каунтером
    let span = document.createElement('span')
    span.classList.add('counter')
    span.innerHTML = `Шаг ${index + 1} из ${listItems.length}` // тут текст каунтера
    item.append(span)
  })

  const lastItem = document.querySelectorAll('#list li')[listItems.length - 1] // последний елемент списка 
  lastItem.lastChild.innerHTML = 'Готово'
}
ol li {
  display: flex;
  padding: 40px 0 20px;
  margin-bottom: 10px;
  position: relative;
  counter-increment: my-awesome-counter;
  border-bottom: 2px dashed #e6e6e6;
}

ol li .counter {
  position: absolute;
  top: 7px;
  left: 0;
  font-size: 1.2rem;
  font-weight: 600;
  color: brown;
}
<ol id="list">
  <li>Пример списка</li>
  <li>Пример списка</li>
  <li>Пример списка</li>
  <li>Пример списка</li>
  <li>Пример списка</li>
</ol>

→ Ссылка