Делаешь активному пункту класс active (или любой другой), стилизуешь этот active как тебе угодно.
Написать логику, какой из пунктов будет иметь класс active, нужно на js.
wonderingpeanut, любой год, любой век, тут вопрос не в интерфейсе, а в логике, которая у вас будет размазана по приложению. Если фронт общается с бэком по апи и строит из условного жсона страничку, то вполне норм на фронте этим заниматься, если же бэк управляет логикой отрисовки хтмл шаблонов, логично вынести на бэк в том числе и управление активными элементами.