I did this tutorial because I wanted to improve my design to code skills, and learn about animations.
Build and Deploy a Modern Next 13 Website With Framer Motion & Tailwind CSS
Next.js 13, Framer Motion and TailwindCSS
- Create a styles/index.js file with tailwind class constant strings to have more consistency across multiple pages.
- A technique to create background gradient blurs
- How to use framer motion for stunning animations
- Advanced tailwind arbitrary values (more info in notes)
- It made me realize how much better the DX is when using TypeScript. TS for the win!
- I learned about the existence of Responsively, an open-source multi-viewport browser.
- That I should use arbitrary values more.
- I am okay at design to code, but suck at designing. -> I need to take a design course -> uxcel.com
- When to use self closing divs
in the following example, the text is rotated 90 degrees, origin-[0, 0] means the top left corner of the element.
lg:rotate-[-90deg] lg:origin-[0,0]
transition from relative to flex in 0.7 seconds
relative flex transition-[flex] duration-[0.7s] ease-out
active === id ? "lg:flex-[3.5] flex-[10]" : "lg:flex-[0.5] flex-[2]"
- true:
lg:flex-[3.5]
: On large (lg:
) screens, the flex item will take up3.5
parts (or fractions) of the available space. false:lg:flex-[0.5]
: On large (lg:
) screens, the flex item will take up0.5
parts (or fractions) of the available space.
leading (line height) of an element, which in the context of text means the space between the lines of text.
- Create a self closing div
- (optional) set its z-index
<div className="gradient-04 z-0" />
- Create a custom css class and write a custom gradient that fits your needs. Examples:
.gradient-03 {
position: absolute;
width: 404px;
height: 800px;
left: 20%;
top: 5%;
background: rgba(149, 66, 232, 0.35);
filter: blur(175px);
transform: rotate(-114.2deg);
}
.gradient-04 {
position: absolute;
width: 304px;
height: 100vh;
left: 30%;
top: 10%;
background: rgba(45, 72, 152, 0.75);
filter: blur(200px);
transform: rotate(-53.13deg);
}
.gradient-05 {
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0.04) 0%,
rgba(255, 255, 255, 0) 100%
);
}
This tutorial is for frontend developers who have intermediate to novice experience and are keen to dive into topics like tailwind arbitrary values and framer motion. A word of caution: while the tutor adeptly codes in real-time, there's a tendency to narrate actions rather than delve into the underlying reasoning or mechanics. So, it's imperative to actively engage, question the code, and delve deeper when concepts seem unclear. If approached with this mindset, expect to invest at least three times the tutorial's length in time and research.
I rate this tutorial 2/5, would instead recommend Code With Antonio for builds with a more in depth explanation.