After learning about Tailwind CSS from Epic Web Conference, it piqued my curiosity so here I am trying to learn more about how it works. But first, we need to set it up.
There are probably a ton of installation tutorials out there but I want to document mine.
Installing TailwindCSS With Next.js
Create a new Next.js project
Start by creating a new Next.js project with this command.
I used tailwind-next
as my project name. I added typescript because I want to use it in this project.
npx create-next-app@latest tailwind-next --typescript --eslint
It will show the following output:
Need to install the following packages:
create-next-app@14.2.15
Ok to proceed? (y) y
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '>=18.17.0' },
npm WARN EBADENGINE current: { node: 'v18.16.1', npm: '9.5.1' }
npm WARN EBADENGINE }
✔ Would you like to use Tailwind CSS? … Yes
✔ Would you like to use `src/` directory? … Yes
✔ Would you like to use App Router? (recommended) … Yes
✔ Would you like to customize the default import alias (@/*)? … No
As of today, create-next-app
is in version 14.2.15 which is the latest. We specified to use the latest when we invoked the command to install. You can change the version in here. For a list of available versions, always check the npm package.
You also have to select the answers to the questions. The answers you put here will matter. I retained my choices above.
When this shows, our directory is now ready!
Success! Created tailwind-next at /path/to/tailwind-next
Install and initialize Tailwind
Go to the directory and let's install and initialize Tailwind.
cd tailwind-next
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
Update the config file.
Update the tailwind config file to include the paths. The filename should be tailwind.config.js
.
From | To |
---|---|
content: [] | content: ["./src/*/.{js,ts,jsx,tsx,mdx}"] |
Verify the tailwind directives are configured
Make sure the tailwind directives are in the globals.css
file. In my case, it's found in src/app
.
@tailwind base;
@tailwind components;
@tailwind utilities;
Run the project
Start the project.
npm run dev
In my case, after trying to start the project, I was prompted my version of Node.js is not compatible with the installed Next.js.
% npm run dev
> tailwind-next@0.1.0 dev
> next dev
You are using Node.js 18.16.1. For Next.js, Node.js version >= v18.17.0 is required.
So I had to install a new version. Good thing I'm using nvm
so I confirmed the installed versions on my device and checked if I installed the v18.17.0.
% nvm list
v4.0.0
v16.20.1
v18.16.0
-> v18.16.1
As expected, I don't have it so I had to install and switch to that version.
% nvm install 18.17.0
Downloading and installing node v18.17.0...
...
Now using node v18.17.0 (npm v9.6.7)
To verify if it's now using the intended version, I ran the node version check.
% node -v
v18.17.0
Now we're finally ready to meet the new project!
% npm run dev
> tailwind-next@0.1.0 dev
> next dev
▲ Next.js 14.2.15
- Local: http://localhost:3000
✓ Starting...
✓ Ready in 2.3s
Access the page in the browser
After accessing localhost, I'm greeted with the default page.
Ready to work!
Start playing with the page.
I removed the code found in src/app/page.tsx
and replaced it with the following code:
export default function Home() {
return (
<div className="grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen">
<main className="row-start-2 items-center">
Hello world!
</main>
</div>
);
}
I just want to replace the entire page with a Hello world!
in the center. I'm still learning so I just experimented with the classNames and retained what I think works.
With this code, the page looks like this now:
PC mode:
Smartphone mode:
Sweet! Now I can start learning more about Tailwind from here!
Thanks for reading!
See you around! じゃあ、またね!
All photos are screenshots from my code unless stated otherwise.
Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!
Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).
You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support.
Congratulations @wittythedev! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)
Your next target is to reach 6000 upvotes.
You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP