Frameworks are incredibly useful, as they can save time in implementing certain features that would take decent commitment of time to program to achieve the same result. All of the features a framework offers is achievable by anyone, so frameworks are not meant to be a tool to revolutionize someone’s coding techniques. Instead, frameworks like SemanticUI are representative of the saying, reinventing the wheel. A person could recreate a similar button using raw HTML and CSS, or they could use a framework’s already built button and modify it slightly to fit the desired style. This is the benefit it offers for software engineering. These frameworks can offer a baseline function like a button, layout tools, or tabs that one can use straight out of the box, or choose to modify. This saves a great deal of work, as doing layout with raw HTML and CSS can be rather uncooperative and difficult to position just right.
There are, of course, many different frameworks available, and all of them offer their take on how a certain function should look on a website. For example, SemanticUI is a very basic looking framework. There is nothing flashy about it, but with that comes the ease of overriding SemanticUI’s styles. When one tries to override styles from SemanticUI, it is relatively painless, as the simplicity of SemanticUI’s components mean it requires less required CSS to put the component together. A stark contrast to SemanticUI’s simplicity would be AngularJS Material’s framework. This framework has very stylized components, and trying to override styles from this framework can be a nightmare, or straight up break the entire look of the component. When it comes to overriding the CSS, using Material’s components can also be tricky, as some components generated by Material will sometimes be appended outside of the body, which can make styling with nested classes near impossible using certain components.