materialize-sass
is a Sass powered version of Materialize, a modern responsive front-end framework based on Material Design.
example: http://materialize.labs.my/
source: https://github.com/mkhairi/materialize-rails
Rails 5.1+
The Rails JavaScript helpers has been rewritten in a new gem called rails-ujs and they use vanilla JavaScript, so jQuery is not a dependency of Rails anymore. Since materializecss relies on it, install it with bin/yarn add jquery
or via gem 'jquery-rails'
and add //= require jquery
to application.js
.
NOTE: Ensure that the sass-rails
gem is presented in your Gemfile.
In your Gemfile you need to add the materialize-sass
gem:
gem 'materialize-sass'
And then run the bundler and restart your server to make the files available through the pipeline:
$ bundle install
Or install it separately:
$ gem install materialize-sass
Import Materialize styles in app/assets/stylesheets/application.scss
:
@import "materialize";
NOTE: If you have just generated a new Rails application, it may come with a .css
file instead. If this file exists, it will be served instead of Sass, so remove it.
$ rm app/assets/stylesheets/application.css
HINT: Override materialize color variable.
Since materialize color scheme are declared in color.scss you should import the color.scss first. then you can override color variable just like this:
@import "materialize/components/color";
$primary-color: color("blue", "lighten-2") !default;
$secondary-color: color("yellow", "base") !default;
@import 'materialize';
or
You can import each component just like in this file below: https://github.com/mkhairi/materialize-sass/blob/master/app/assets/stylesheets/materialize.scss
Require Materialize javascripts in app/assets/javascripts/application.js
:
For turbolinks 5 users
//= require jquery
//= require turbolinks
//= require materialize-sprockets
For turbolinks classic users
Add jquery-turbolinks
gem to Gemfile
gem 'jquery-turbolinks'
//= require jquery
//= require jquery.turbolinks
//= require materialize
//= require turbolinks
For non turbolinks users
//= require jquery
//= require materialize
in your application.scss
@import "materialize/extras/nouislider";
in your application.js
//= require materialize/extras/nouislider
Include this line in the portion of your HTML code
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
or import this line in your application.scss
@import "https://fonts.googleapis.com/icon?family=Material+Icons";
or install this gem for offline icons
gem 'material_icons'
see docs
note: Any changes or Pull Request regarding materialize assets should be made in official materialize repo.
- Fork it ( https://github.com/mkhairi/materialize-sass/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request