Less-mixin wrappers are not the right way, but just one way that somebody once stated to be the best.
I used the semantic mixins method quite a while, and let me say that it does not feel that good. Once you have your html full of nice "article-box" classes, who will ever notice?
If you strip completely your css from your markup to re-use it in another project, you're left with literally nothing, if not a bunch of semantic classes than then may also be semantically wrong in respect of the new project (has the article become a tutorial?).
Using bootstrap classes are a convention you can reuse in other projects, as well as override when you need. If you strip your css then, and replace it with a vanilla bootstrap, you'll get a halfway good looking page you can work on.
It's perfectly ok to pursue semantics, except that semantic class attributes are the most useless form of semantics.
In a time where angular and react challenged the very concepts of markup/behaviour/styling separation, after the utter failure of XHTML (the parsable markup nobody ever parsed) and the mild failure of HTML5 semantic tags (whose cases of use are confusing at most, and overlap dramatically with the arya attributes) I try to avoid to be too strict about semantics.
I used the semantic mixins method quite a while, and let me say that it does not feel that good. Once you have your html full of nice "article-box" classes, who will ever notice?
If you strip completely your css from your markup to re-use it in another project, you're left with literally nothing, if not a bunch of semantic classes than then may also be semantically wrong in respect of the new project (has the article become a tutorial?).
Using bootstrap classes are a convention you can reuse in other projects, as well as override when you need. If you strip your css then, and replace it with a vanilla bootstrap, you'll get a halfway good looking page you can work on.
It's perfectly ok to pursue semantics, except that semantic class attributes are the most useless form of semantics.
In a time where angular and react challenged the very concepts of markup/behaviour/styling separation, after the utter failure of XHTML (the parsable markup nobody ever parsed) and the mild failure of HTML5 semantic tags (whose cases of use are confusing at most, and overlap dramatically with the arya attributes) I try to avoid to be too strict about semantics.