# 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**: An element definition gives states which an elements can occupy, common types of that element, and if necessary, defines how the element functions in groups. **Collections**: Collection definitions list elements that it can include, and variations which can apply to both the collection, or individual elements found in the collection. **Modules**: Module definitions include a list of behaviors that are commonly associated with an element **Views**: View specifications defines the types of content the view usually display, and the heirarchy typical to presenting this 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 ``