README.md in material_icons-2.0.1 vs README.md in material_icons-2.2.0

- old
+ new

@@ -2,15 +2,15 @@ ![Material Icons for Rails](https://raw.githubusercontent.com/Angelmmiguel/material_icons/master/material.png) # Material Icons for Rails -[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. +[Google Material Icons](https://google.github.io/material-design-icons/) is a +900 set of icons based on Material Design guidelines. With this gem you can add it easily to your Rails projects. -## Google Material Icons v2.1 +## Google Material Icons v2.2 -Google updates Material Icons to version 2.1. It's include 96 new icons! +Google updates Material Icons to version 2.2. It's include 41 new icons! # Installation To install the gem, add this line to your `Gemfile`: @@ -18,131 +18,170 @@ 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). +In your `app/assets/stylesheets/application.css` 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: +Add this line at top of `application.css` to use ligature: - //= require material_icons +```css +/* +*= require material_icons +*/ +``` +**NOTE**: Depending on the comment style of `application.css`, you may need to add `//= require material_icons` instead of the previous line. See [Rails Asset Pipeline](http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives) for more info. + 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 +``` +/* Size */ +.md-18 +.md-24 +.md-36 +.md-48 - /* Color */ - .md-dark - .md-light +/* Color */ +.md-dark +.md-light - /* Rotation */ - .r90 - .r180 - .r270 - .flip-horizontal - .flip-vertical +/* 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: - - <i class="material-icons">face</i> - <i class="material-icons md-36">face</i> +```html +<i class="material-icons">face</i> +<i class="material-icons md-36">face</i> +``` + ## Helpers Material Icons provide 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 %> - # <i class="material-icons">face</i> +``` +<%= material_icon.face %> +# <i class="material-icons">face</i> - <%= material_icon.face.md_36 %> - # <i class="material-icons md-36">face</i> +<%= material_icon.face.md_36 %> +# <i class="material-icons md-36">face</i> - # This is a special case because the icon name starts with a number. Only - # 3d_rotation has this trouble. - <%= material_icon.three_d_rotation.md_36 %> - # <i class="material-icons md-36">3d_rotation</i> +# This is a special case because the icon name starts with a number. Only +# 3d_rotation has this trouble. +<%= material_icon.three_d_rotation.md_36 %> +# <i class="material-icons md-36">3d_rotation</i> - # Rotation and custom css class - <%= mi.face.r90.css_class('my_class') %> - # <i class="material-icons r90 my_class">face</i> +# Rotation and custom css class +<%= mi.face.r90.css_class('my_class') %> +# <i class="material-icons r90 my_class">face</i> +``` Allowed methods are: - - # Rotation methods - r90 - r180 - r270 - flip_horizontal - flip_vertical - # Size methods - md_18 - md_24 - md_36 - md_48 +``` +# Rotation methods +r90 +r180 +r270 +flip_horizontal +flip_vertical - # Add some classes to the icon - css_class('classes') +# Size methods +md_18 +md_24 +md_36 +md_48 - # Add style to the icon - style('margin-top: 5px;') +# Add some classes to the icon +css_class('classes') - # Add some HTML attributes to an icon. This method receive a Hash - html({ data: { id: 1 } }) +# 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 ;). +# Slim templating engine + +If you are using [Slim templating engine](http://slim-lang.com/) in your Rails application, use double equal `==` method to render icons or the content won't be marked as HTML safe. We are working on this issue, because we use `content_tag` and it sets the text as HTML safe (see [ActionView::Helpers::TagHelper line 146](https://github.com/rails/rails/blob/4-2-stable/actionview/lib/action_view/helpers/tag_helper.rb#L146)). + +``` +p.text + == material_icon.search.md_18 +``` + +Reference [#9](https://github.com/Angelmmiguel/material_icons/issues/9) + # Compatibility -Ligature feature requires a supported browser: +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 +Browser | Version +---- | ---- +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: +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 `app/assets/stylesheets/application.css` (`*= require material_icons`) to this line: - //= require material_icons_unicode +```css +/* +*= 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 +**NOTE**: Depending on the comment style of `application.css`, you may need to add `//= require material_icons_unicode` instead of the previous line. See [Rails Asset Pipeline](http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives) for more info. +Next, you need to specify the helper to use unicode because it uses ligatures by default. Create an initializer file on `config/initializers/material_icons.rb` and set this content: + +```ruby +# Initialize material icons setup +MaterialIcons.setup do |config| + config.unicode = true +end +``` + The [Helpers](#helpers) has the same syntax. Now, the text inside of HTML tag is the CSS class! CSS Icon classes use underscores. - <i class="material-icons face"></i> - <i class="mi md-36 face"></i> - <i class="mi add_box"></i> - <i class="mi three_d_rotation"></i> +```html +<i class="material-icons face"></i> +<i class="mi md-36 face"></i> +<i class="mi add_box"></i> +<i class="mi three_d_rotation"></i> +``` 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 +File | Size +---- | ---- +material_icons.css.erb | 3 KB +material_icons_unicode.css.erb | 68 KB # Tested on Tested with [Travis CI](https://travis-ci.org/Angelmmiguel/material_icons). @@ -160,10 +199,10 @@ * 4.2 * master # They are using Material icons for Rails :) -* [Materialup.com](http://www.materialup.com): a big community to share, discover and learn about Material Design. +* [Materialup.com](http://www.materialup.com): a big community to share, discover and learn about Material Design. # 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).