# Getting started

### What is Flat UI?

Flat UI is a beautiful theme for Bootstrap. We have redesigned many of its components to look flat in every pixel.

For the most part, it is very simple to use, however, to be able to make some form elements and others look exactly how we want, we ended up using some JS plugins, which means it takes a little bit more effort to integrate them into your project.

### How to Use It?

Since Flat UI is built on top of Bootstrap as a theme, you can use it in your Bootstrap 3 project. We did not modify any line of Bootstrap, so you will be safe using Flat UI in your ongoing project (unless you hacked it yourself :)

We provide you with the CSS and the Less sources.
1. Using CSS is as easy as dropping `css/flat-ui.css` into your project folder and including it in your template/html page: `<link href="css/flat-ui.css" rel="stylesheet">`

2. Use Less if you want to modify/extend Flat UI in your project. It is built just like Bootstrap so you won't find a big difference.

The easiest way to start is to use our start-up template where all the files are already included and ready to use. (The JS plugins are included, but not initialized. You will have to initialize them as needed.)

### File Structure

Once purchased, unzip the compressed archive to see the following structure:

      flat-ui/
      ├── bootstrap/
      ├── css/
          ├── demo.css
          ├── docs.css
          └── flat-ui.css
      ├── fonts/
      ├── images/
      ├── js/
      └── less/
          ├── demo.less
          ├── docs.less
          ├── variables.less
          ├── flat-ui.less
          ├── fonts.less
          ├── icon-font.less
          ├── mixins.less
          ├── scaffolding.less
          ├── spaces.less
          └── modules/

Let's go through this list:

bootstrap/ — as you can guess this is the folder where all the original Bootstrap files are located (untouched). Before using our theme, please make sure you didn't modify anything in Bootstrap that can cause compatibility issues: paddings, margins, etc.
Note: you can safely modify `variables.less`.

css/ — the compiled Flat UI CSS. If you like everything and you don't want to change the look of our components, it is better to use the CSS version. This is the easiest way to start using Flat UI.

fonts/ — yes, this is an icon font. When integrating this into your project, make sure you copy all the font files correctly. You might want to change/add some glyphs. If so, open IcoMoon and import `icomoon-session.json` there to make all glyhps editable. You can also watch this video screencast on how to add your custom glyphs.

images/ — unfortunately we have to use them in few cases, where we cannot just use glyphs.

js/ — we have tried hard to make all our components look true Flat. In order to do that we have used some JS plugins. Most of them are well known, while some of them are not. The most JS-ified components are the form components: checkboxes, radios, switches, selects, since it is not currently possible to style them identically in all browsers. Look at `application.js` for integration examples.

less/ — is where all our stylesheets are located (not preprocessed).

- `variables.less` is where all the variables are.
- `flat-ui.less` links everything into one single bundle.
- `icon-font.less` makes all the icon glyphs work. Converted with IcoMoon.
- `docs.less` where all our stylesheets for documentation.
- `icon-font.less` makes all icon glyphs work. Converted by IcoMoon.
- `fonts.less` is where all custom fonts are.
- `mixins.less` helps automate things. Feel free to add your own here.
- `scaffolding.less` is where you can find some basic styles for the body, the anchors and other elements.
- `modules/` is where all the components are. If you want to add your own, create module-name.less files here. Name them as a class name if possible.

### New components

- `checkbox-and-radio.less` Custom checkboxes and radios.
- `iconbar.less` Icon bar (another navigation type).
- `select.less` Custom selects.
- `switch.less` Custom switch.
- `tagsinput.less` Tags input field.
- `datepicker.less` Datepicker widget.
- `slider.less` Range slider.
- `spinner.less` Text input with increment/decrement.
- `input-icons.less` Icons for text-based form fields.

### Components restyled

Components documentation.

- `buttons.less`
- `caret.less`
- `dropdown.less`
- `forms.less.less`
- `navbar.less`
- `pager.less`
- `pagination.less`
- `progress-bars.less`
- `tooltip.less`
- `type.less`