I would rather use semantic elements for the examples like the one in the article and use web components/custom elements where appropriate.
Web Components are underrated for sure. I had a need for a custom element[0] and it was not difficult to implement.