This was found in this GoRails guide:
Install Tailwind
If when running the server tailwind is not working and you see this JS error: Error: PostCSS plugin tailwindcss requires PostCSS 8.
it means you will need to run this ( )
Copy npm uninstall tailwindcss postcss autoprefixer
npm install tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9
Create the stylesheets folder and application.scss file
Create this file and folder:
Copy app/javascript/stylesheets/application.css
Drop in the Tailwind styles
From Tailwind docs:
Copy @import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";
Require the stylesheet in app/javascripts/packs/application.js
In app/javascripts/packs/application.js add this line:
Copy require("stylesheets/application.css")
Add the stylesheet_pack_tag to the head
This should be present in addition to the stylesheet_link_tag. This will ensure that styles from webpack (inside app/javascript/stylesheets) get compiled and included.
Copy <%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
Update postcss.config.js
Add this line below require('postcss-import')
If it is not below postcss-import, then @apply rules won't work in the CSS files.
Copy require('tailwindcss'),
Generate the Tailwind config file
This will create the empty tailwind.config.js file in the project root. This is where you will place configs to override Tailwind's defaults.
Create a full version of the Tailwind config so you can reference it
This will be used to reference and copy/paste settings that you want to override inside tailwind.config.js.
Copy npx tailwind init tailwind-full.config.js --full
To override any config settings, place those overrides inside the theme: { ... }
section in tailwind.config.js
Add my custom utilities CSS
Create another file at app/javascript/stylesheets/global/custom-utilities.scss
Reference this file in application.scss, in between tailwindcss/base
and tailwindcss/components
:
Copy @import "global/custom-utilities.scss";
These are my common custom utilities to include in custom-utilities.scss:
Copy .top-1 { top: 1px; }
.top-2 { top: 2px; }
.top-3 { top: 3px; }
.top-4 { top: 4px; }
.top-5 { top: 5px; }
.top-6 { top: 6px; }
.top-7 { top: 7px; }
.top-8 { top: 8px; }
.top-9 { top: 9px; }
.top-10 { top: 10px; }
.top-11 { top: 11px; }
.top-12 { top: 12px; }
.top-13 { top: 13px; }
.top-14 { top: 14px; }
.top-15 { top: 15px; }
.bottom-1 { bottom: 1px; }
.bottom-2 { bottom: 2px; }
.bottom-3 { bottom: 3px; }
.bottom-4 { bottom: 4px; }
.bottom-5 { bottom: 5px; }
.bottom-6 { bottom: 6px; }
.bottom-7 { bottom: 7px; }
.bottom-8 { bottom: 8px; }
.bottom-9 { bottom: 9px; }
.bottom-10 { bottom: 10px; }
.bottom-11 { bottom: 11px; }
.bottom-12 { bottom: 12px; }
.bottom-13 { bottom: 13px; }
.bottom-14 { bottom: 14px; }
.bottom-15 { bottom: 15px; }
.left-1 { left: 1px; }
.left-2 { left: 2px; }
.left-3 { left: 3px; }
.left-4 { left: 4px; }
.left-5 { left: 5px; }
.left-6 { left: 6px; }
.left-7 { left: 7px; }
.left-8 { left: 8px; }
.left-9 { left: 9px; }
.left-10 { left: 10px; }
.left-11 { left: 11px; }
.left-12 { left: 12px; }
.left-13 { left: 13px; }
.left-14 { left: 14px; }
.left-15 { left: 15px; }
.right-1 { right: 1px; }
.right-2 { right: 2px; }
.right-3 { right: 3px; }
.right-4 { right: 4px; }
.right-5 { right: 5px; }
.right-6 { right: 6px; }
.right-7 { right: 7px; }
.right-8 { right: 8px; }
.right-9 { right: 9px; }
.right-10 { right: 10px; }
.right-11 { right: 11px; }
.right-12 { right: 12px; }
.right-13 { right: 13px; }
.right-14 { right: 14px; }
.right-15 { right: 15px; }