# 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. ## The Library ### Getting Started The Semantic library describes many UI elements. In most instances it might be best to build a custom build with only the elements you need. You can use our build tool to select only the components you want http://semantic-ui.com/download Or download the entire library and build out the code yourself using [Grunt](http://gruntjs.com/) or another package management system. git clone git@github.com:quirkyinc/semantic.git If you prefer to download the whole kit and kaboodle you can grab that as well. http://semantic-ui.com/ui/semantic.min.css http://semantic-ui.com/ui/semantic.min.js ## The Specification The aim of the specification is to develop conventions around structuring and naming code for interface elements. By defining a vocabulary the development community can exchange javascript and css definitions of UI in a similar language, making new code easier to grock, and reducing the complexity of starting a new project, or changing a sites design. ### How it is defined #### Scope of a definition **All UI**: The specification defines class name and html structures which can be used to represent an element **Elements**: The specification outlines states that an elements can exist, lists common types, or variations, of an element, and if necessary, defines how the element functions in groups. **Collections**: The specification defines a list of elements that it can include, and ways which variations in the collection can affect each element. **Modules**: The specification defines a set of behaviors the module is expected to perform. **Views**: The specification defines the types of content it usually contains, and a standard heirarchy for presenting the content to the user. #### Based on class Semantic is based on class names, instead of tags. This means, except for links, tables and form elements, you can use semantic with tags like ``