# Semantic Semantic is a set of specifications for sharing UI elements between developers. Semantic is also a UI library to make front end development simpler and easier to learn. ## About Semantic's goal is to define a vocabulary for interface elements based on consensus, and convention. For developers, this means defining class names conventions for UI elements, outlining states that an elements can exist, and describing common variations of tnat element. ## How Just like English, adjectives, or *variations*, have meaning based on the context of the noun, the *ui element*. We know a big planet is a different size than a big house, but we can still describe the quality of something that is big. In the same way, in Semantic, variations maintain context based on the element they modify, but keep the same vocabulary between elements, e.g. a big activity feed, is different than a big progress bar. For example here is part of Semantic's definition of a button **Standard**: A button is a shape that can be pressed in to complete an action ```html
``` **State**: A button can sometimes be active, or selected by the user ``` html