[](http://badge.fury.io/rb/material_icons)

# Material Icons
[Google Material Icons](https://google.github.io/material-design-icons/) is a +750 set of icons based on Material Design guidelines. With this gem you can add it easily to your Rails projects.
# Installation
To install the gem, add this line to your `Gemfile`:
gem 'material_icons'
Then, execute `bundle install`.
# CSS
In your `application.css.erb` file you need to reference material icons CSS. There are two versions: ligature or unicode (See [Compatibility](#compatibility) section for more info).
Add this line at top of `application.css.erb` to use ligature:
//= require material_icons
These files provide multiple CSS classes to use in your views. Main classes are:
.material-icons, .mi
Some CSS classes are provided too:
/* Size */
.md-18
.md-24
.md-36
.md-48
/* Color */
.md-dark
.md-light
/* Rotation */
.r90
.r180
.r270
.flip-horizontal
.flip-vertical
Don't forget to see material_icons.css.erb ;).
# Views
Google Material Icons uses a feature called ligatures. We can define the icon in the text of the HTML tag. Go to [Google Guide](https://google.github.io/material-design-icons/#using-the-icons-in-html) to get more info.
An example of icon is:
face
face
## Helpers
MaterialIcons provide a two helpers to build the HTML code of icons. The methods are `material_icon` and `mi`. These helpers use cascade style to set the icon and options. Using same example:
<%= material_icon.face %>
# face
<%= material_icon.face.md_36 %>
# face
# Rotation and custom css class
<%= mi.face.r90.css_class('my_class') %>
# face
Predefined methods are:
# Rotation methods
r90
r180
r270
flip_horizontal
flip_vertical
# Size methods
md_18
md_24
md_36
md_48
# Add some classes to the icon
css_class('classes')
# Add style to the icon
style('margin-top: 5px;')
# Add some HTML attributes to an icon. This method receive a Hash
html({ data: { id: 1 } })
Remember this is a helper, you always can use HTML syntax ;).
# Compatibility
Ligature feature requires a supported browser:
Google Chrome >= 11
Mozilla Firefox >= 3.5
Apple Safari >= 5
Microsoft IE >= 10
Opera >= 15
Apple MobileSafari >= iOS 4.2
Android Browser >= 3.0
To increase compatibility you can use Unicode version of the library. To set Unicode icons, you need to change the line to load ligature CSS file on `application.css.erb` ~> `//= require material_icons` to this line:
//= require material_icons_unicode
Next, you need to specify the helper to use unicode because it uses ligatures by default. Create an initializer file on `config/initializers/material_icon.rb` and set this content:
# Initialize material icons setup
MaterialIcons.setup do |config|
config.unicode = true
end
Now, the text inside of HTML tag is the CSS class!
The [Helpers](#helpers) has the same syntax.
This version increase the size of the CSS file too. To see the difference, these are the size for uncompressed CSS files:
material_icons.css.erb 3 KB
material_icons_unicode.css.erb 68 KB
# License
Google Material Icons are under [Creative Common Attribution 4.0 International License (CC-BY 4.0)](http://creativecommons.org/licenses/by/4.0/). But attribution [is not required](https://github.com/google/material-design-icons#license).
Material Icons gem isgs released under the MIT license.