ixiz, можно без js, но это уже на любителя:
<ul class="nav-list">
<label>
<input type="radio" name="color"/>
<li style="--active-color: red" class="nav-list__item">
Красный
</li>
</label>
<label>
<input type="radio" name="color"/>
<li style="--active-color: green" class="nav-list__item">
Зеленый
</li>
</label>
<label>
<input type="radio" name="color"/>
<li style="--active-color: blue" class="nav-list__item">
Синий
</li>
</label>
<label>
<input type="radio" name="color"/>
<li style="--active-color: gray" class="nav-list__item">
Сброс
</li>
</label>
</ul>
<style>
.nav-list input[type="radio"] {
display: none;
}
.nav-list input[type="radio"]:checked + li {
color: var(--active-color);
}
</style>
Кстати возможно тебе бы хватило :target если ссылки по хэшу.