A lot of cool designs can be created with just HTML and CSS.
For the following examples I use labels, radio and checkbox inputs in combination with the css selectors :checked, + and ~.
These are associated with one input, either by containing that input or by using the attribute for to target the id of a certain input.
Once clicked the label will transmit the click to the associated input.
Several labels can be associated with a single input by using the for attribute.
These inputs are extremely helpful since they have 2 states that depend on user interaction, either :clicked or :not(:clicked) which can be targeted by CSS.
After targeting the state of the radio and checkbox inputs with the :checked selector we can combine that with the + selector which gives us the element placed immediately after the input and ~ which gives us all elements placed after the input. With that we style said elements according to each state of the input.
You may want to create a super light website that doesn't rely on javascript, or the audience you target doesn't like running javascript, or you may even want to make a website for TOR. And finally, why not?
This is the first tab
This is the second one
And this the last