Ruby
Rails
Webpacker requied by Rails 6
Postcss required by webpacker 5.4
rails new rails6_tailwindcss2_webpack -d mysql --skip-spring
Book
bin/rails g scaffold book name:string price:integer
cd app/assets/stylesheets
mv scaffolds.scss scaffolds.scss.bak
bin/rails db:create
bin/rails db:migrate
Running on local computer
bin/rails s
Running on remote server
bin/rails s -b 0.0.0.0
https://github.com/charlietag/rails6_tailwindcss2_webpack/compare/v0.0.0...v0.0.1
PostCSS 7 compatibility build (Rails 6 does not support PostCSS 8 yet)
yarn add tailwindcss@npm:@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9
Create folder to place cutom SCSS file, which is used to be compiled by webpack
cd app/javascript
mkdir stylesheets
cd stylesheets && touch application.scss
Create TailwindCSS configuration file
cd app/javascript/stylesheets
npx tailwindcss init
Setup tailwind.config.js
// --- Only works for production(NODE_ENV) or works for JIT mode ---
purge: [
"./app/**/*.html.erb",
"./app/helpers/**/*.rb",
"./app/javascript/**/*.js"
],
// --- Only works for production(NODE_ENV) or works for JIT mode ---
Setup PostCSS configuration <rails_app>/postcss.config.js
module.exports = {
plugins: [
require('postcss-import'),
+ require('tailwindcss')('./app/javascript/stylesheets/tailwind.config.js'),
require('postcss-flexbugs-fixes'),
require('postcss-preset-env')({
autoprefixer: {
flexbox: 'no-2009'
},
stage: 3
})
]
}
https://github.com/charlietag/rails6_tailwindcss2_webpack/compare/v0.0.1...v0.0.2
yarn add @tailwindcss/typography @tailwindcss/forms @tailwindcss/line-clamp @tailwindcss/aspect-ratio
Edit app/javascript/stylesheets/tailwind.config.js
plugins: [
require('@tailwindcss/typography'),
require('@tailwindcss/forms'),
require('@tailwindcss/line-clamp'),
require('@tailwindcss/aspect-ratio'),
]
https://github.com/charlietag/rails6_tailwindcss2_webpack/compare/v0.0.2...v0.0.3
Edit app/javascript/packs/application.js
//...
// append at the bottom
+ import "stylesheets/application"
Edit app/javascript/stylesheets/application.scss
@import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";
Edit app/views/layouts/application.html.erb
, to make sure SCSS
, LESS
, CSS
configured under app/javascript/packs/application.js
will be compiled by webpack
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
+ <%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
</head>
https://github.com/charlietag/rails6_tailwindcss2_webpack/compare/v0.0.3...v0.0.4
Installation
With JIT mode
Optimizing-for-production
postcss.config.js
tailwind.config.js
application.js
application.scss
layouts/application.html.erb
table tag Tailwind CSS way
Run rails server on local computer
bin/rails s
Or run on remote server
bin/rails s -b 0.0.0.0
Run webpack-dev-server
bin/webpack-dev-server
https://github.com/charlietag/rails6_tailwindcss2_webpack/compare/v0.0.5...v0.0.6
configuring-variants
The
variants
section of yourtailwind.config.js
file is where you control which variants should be enabled for each core plugin:
tailwindcss-group-hover-not-working-on-border-color
Container
Table
Step by step from scratch
Components
Quick Cheatsheet
TailwindCSS Page Creator