Overview
Sinatra::Tailwind provides zero-configuration TailwindCSS setup for Sinatra applications. This gem offers:
- 🚀 Instant setup with smart defaults
- 🔄 Automatic CSS reloading
- 🛠 Production-ready builds
- 📦 Zero configuration
- 🎨 Full TailwindCSS features
Installation
Add to your Gemfile:
bundle add sinatra-tailwindUsage
1. Install Sinatra::Tailwind:
bundle exec tailwind installThis command will create the following files:
public/
└── css/
├── application.css
└── application.min.css # will be generated after build2. Add the stylesheet to your layout:
<!-- views/layout.erb -->
<link rel="stylesheet" href="/css/application.min.css">Use TailwindCSS in your views:
<div class="container mx-auto p-4">
<h1 class="text-3xl font-bold">Hello World</h1>
</div>3. Import the Sinatra::Tailwind module in your application:
require 'sinatra'
register Sinatra::Tailwind
get '/' do
erb :index
endAll Done! 🎉
Development
Start the development server:
💡 If you are using the
Procfile.dev, you can run the following command:
bin/devOr manually:
bundle exec tailwind watch # Watch CSS changes
bundle exec ruby app.rb # Run Sinatra serverCommands
tailwind install # Install TailwindCSS
tailwind watch # Watch for changes
tailwind build # Build for production
tailwind setup # Configure developmentProject Structure
my-app/
├── app.rb
├── Procfile.dev
├── bin/
│ └── dev
├── views/
│ └── layout.erb -- Yoy need to add the stylesheet here
└── public/
└── css/
├── application.css
└── application.min.css
Configuration
TailwindCSS configuration is available in tailwind.config.js:
module.exports = {
content: ['./views/**/*.{erb,haml,slim}', './public/**/*.{html,js}'],
theme: {
extend: {},
},
plugins: [],
}Example Application
# app.rb
require 'sinatra'
require 'sinatra/tailwind'
class MyApp < Sinatra::Base
register Sinatra::Tailwind
get '/' do
erb :index
end
endSupport
Contributing
Bug reports and pull requests are welcome. See CONTRIBUTING.md.
