EasyWind is a CLI designed to be the easiest way to get started with TailwindCSS for static websites.
EasyWind is a tailwind project generator, tailwind compiler/watcher and a livereload server.
With EasyWind you don't need anything else, no need to download brew, node or even the standalone Tailwind CLI. If you don't have node, EasyWind will download the tailwind cli and use it.
To you get started you only need two commands
# initialize a new project, with index.html and tailwind.config.js
easywind init new-project
# cd into the new project
cd new-project
# start a livereload server and a tailwind watcher in the same process
easywind start . --open
If you are already using Tailwind with Next.js or any other frontend or backend framework, you probably don't need EasyWind.
EasyWind is designed for people new to HTML/CSS and for people who just want an easy way to make static websites, without any fancy frameworks.
Install using homebrew (mac and linux):
brew install avencera/tap/easywind
or
Install from a github release:
curl -LSfs https://avencera.github.io/easywind/install.sh | sh -s -- --git avencera/easywind
or
Install using yarn
yarn global add easywind
or
Install using npm
npm i -g easywind
or
Install from crates.io (if you already have Rust installed)
cargo install easywind_cli
or
Download a release directly from github: github.com/avencera/easywind/releases
You only need two commands to get started (no dependencies not even node or the tailwind cli):
easywind init mywebsite
will create a project in a new directory, with a tailwind.config.js
file and an index.html
file.
NOTE: This command will also download the standalone tailwindcss cli if you don't have node on your system.
easywind start mywebsite --open
will start the tailwind watcher and a live reloading server
easywind_demo.mov
Initialize a new project
Usage: easywind init <PROJECT_NAME>
Arguments:
<PROJECT_NAME>
Name of the project to initialize
This will be used to create a directory with the same name (usage: easywind init portfolio)
Options:
-h, --help
Print help (see a summary with '-h')
Start the server and tailwind watcher
Usage: easywind start [OPTIONS] [ROOT_DIR]
Arguments:
[ROOT_DIR] [default: .]
Options:
-p, --port <PORT> Port the server shoud use, defaults to 3500 [default: 3500]
-O, --open Open in your browser
-i, --input <INPUT> Input css file to process
-o, --output <OUTPUT> Where you want the final CSS file to be written
-h, --help Print help
Run a live reloading server to serve content
Usage: easywind serve [OPTIONS] [ROOT_DIR]
Arguments:
[ROOT_DIR] [default: .]
Options:
-p, --port <PORT> Port the server shoud use, defaults to 3500 [default: 3500]
-o, --open Open in your browser
-h, --help Print help
![easywind_serve](https://private-user-images.githubusercontent.com/1775346/261818972-bb816533-9df6-42a2-953b-eea96ebab090.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQxMTM3NTgsIm5iZiI6MTcyNDExMzQ1OCwicGF0aCI6Ii8xNzc1MzQ2LzI2MTgxODk3Mi1iYjgxNjUzMy05ZGY2LTQyYTItOTUzYi1lZWE5NmViYWIwOTAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjBUMDAyNDE4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MmMzNzJkNGE1N2YwMmMyYmYyYTJlOGRjM2Y1Njc4OWU2ODEzMjZjZDEyOTNmMmFmYWJiOGJmZGFhNmMzZjBiZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.sUUrKst4uz66FuojZjoFhd-q__haaNdn-0A3H1wXKxM)
Run the tailwind watcher that generates the CSS
Usage: easywind tailwind [OPTIONS] [ROOT_DIR]
Arguments:
[ROOT_DIR]
Path to the root directory of the project. This is where the `tailwind.config.js` file is located.
Defaults to the current directory
[default: .]
Options:
-i, --input <INPUT>
Input css file to process
[default: src/app.css]
-o, --output <OUTPUT>
Where you want the final CSS file to be written
[default: dist/app.css]
-w, --watch
Watch for changes in input CSS and recompile the output CSS
-h, --help
Print help (see a summary with '-h')