Skip to content

Commit b861c07

Browse files
authored
🐦 tailwind v4 (#453)
1 parent 3da481c commit b861c07

File tree

32 files changed

+639
-467
lines changed

32 files changed

+639
-467
lines changed

package-lock.json

Lines changed: 544 additions & 345 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "bradgarropy.com",
3-
"version": "8.4.0",
3+
"version": "8.5.0",
44
"description": "🏠 my home on the web",
55
"type": "module",
66
"keywords": [
@@ -92,6 +92,7 @@
9292
"@remix-run/serve": "^2.5.1",
9393
"@rollup/pluginutils": "^5.1.0",
9494
"@tailwindcss/typography": "^0.5.9",
95+
"@tailwindcss/vite": "^4.0.0",
9596
"@testing-library/dom": "^10.4.0",
9697
"@testing-library/jest-dom": "^6.1.5",
9798
"@testing-library/react": "^16.2.0",
@@ -109,10 +110,10 @@
109110
"plop-helper-date": "^1.0.0",
110111
"plop-helper-slugify": "^1.1.0",
111112
"prettier": "^3.1.1",
112-
"prettier-plugin-tailwindcss": "^0.5.9",
113+
"prettier-plugin-tailwindcss": "^0.6.11",
113114
"react": "^19.0.0",
114115
"remix-development-tools": "^4.7.7",
115-
"tailwindcss": "^3.3.0",
116+
"tailwindcss": "^4.0.0",
116117
"tsx": "^4.6.0",
117118
"typescript": "^5.0.2",
118119
"vite": "^6.0.11",

postcss.config.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/components/Contact/Contact.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import FancyLink from "~/components/FancyLink"
44

55
const Contact: FC = () => {
66
return (
7-
<div className="grid h-full w-full place-content-center">
8-
<h1 className="mb-7 font-heading text-[2rem] font-semibold">
7+
<div className="grid h-full w-full place-content-center">
8+
<h1 className="font-heading mb-7 text-[2rem] font-semibold">
99
👋🏼 say hi
1010
</h1>
1111

src/components/FancyLink/FancyLink.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ type FancyLinkProps = {
99
const FancyLink: FC<FancyLinkProps> = ({children, to}) => {
1010
return (
1111
<Link
12-
className="shadow-link transition duration-300 hover:shadow-link-hover"
12+
className="shadow-link hover:shadow-link-hover transition duration-300"
1313
to={to}
1414
prefetch="intent"
1515
>

src/components/Footer/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import SocialLink from "~/components/SocialLink"
44

55
const Footer: FC = () => {
66
return (
7-
<footer className="flex flex-wrap content-center justify-center gap-5 px-5 pb-20 pt-28">
7+
<footer className="flex flex-wrap content-center justify-center gap-5 px-5 pt-28 pb-20">
88
<SocialLink platform="youtube" />
99
<SocialLink platform="discord" />
1010
<SocialLink platform="bluesky" />

src/components/FourOhFour/FourOhFour.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type FourOhFourProps = {
1313
const FourOhFour: FC<FourOhFourProps> = ({post, videos}) => {
1414
return (
1515
<div className="grid h-full content-center">
16-
<h1 className="mb-2 font-heading text-6xl font-black tracking-[-0.2rem]">
16+
<h1 className="font-heading mb-2 text-6xl font-black tracking-[-0.2rem]">
1717
There&apos;s nothing here.
1818
</h1>
1919

src/components/Heading/Heading.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,21 @@ const Heading: FC<HeadingProps> = ({level, id, children}) => {
3636
switch (level) {
3737
case 1:
3838
return (
39-
<h1 id={slug} className="group relative font-heading">
39+
<h1 id={slug} className="group font-heading relative">
4040
{link}
4141
{children}
4242
</h1>
4343
)
4444
case 2:
4545
return (
46-
<h2 id={slug} className="group relative font-heading">
46+
<h2 id={slug} className="group font-heading relative">
4747
{link}
4848
{children}
4949
</h2>
5050
)
5151
case 3:
5252
return (
53-
<h3 id={slug} className="group relative font-heading">
53+
<h3 id={slug} className="group font-heading relative">
5454
{link}
5555
{children}
5656
</h3>

src/components/Hero/Hero.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {createImageUrl} from "~/utils/cloudinary"
55

66
const Hero: FC = () => {
77
return (
8-
<div className="grid grid-cols-hero items-start self-center justify-self-center max-[700px]:grid-cols-1">
8+
<div className="grid-cols-hero grid items-start self-center justify-self-center max-[700px]:grid-cols-1">
99
<Link
1010
to="https://instagram.com/bradgarropy"
1111
className="max-[700px]:m-auto max-[700px]:w-4/5"
@@ -20,36 +20,36 @@ const Hero: FC = () => {
2020
</Link>
2121

2222
<div>
23-
<h1 className="m-0 font-heading text-5xl font-black leading-normal -tracking-[0.2rem]">
23+
<h1 className="font-heading m-0 text-5xl leading-normal font-black -tracking-[0.2rem]">
2424
i&apos;m brad garropy
2525
</h1>
2626

2727
<div className="grid grid-cols-[repeat(2,auto)] justify-start justify-items-center gap-x-3 pl-10 leading-normal">
2828
<h2 className="m-0 justify-self-start text-2xl font-medium">
2929
lead frontend developer
3030
</h2>
31-
<span className="m-0 text-2xl font-medium leading-normal">
31+
<span className="m-0 text-2xl leading-normal font-medium">
3232
👨🏼‍💻
3333
</span>
3434

3535
<h2 className="m-0 justify-self-start text-2xl font-medium">
3636
growing content creator
3737
</h2>
38-
<span className="m-0 text-2xl font-medium leading-normal">
38+
<span className="m-0 text-2xl leading-normal font-medium">
3939
🎥
4040
</span>
4141

4242
<h2 className="m-0 justify-self-start text-2xl font-medium">
4343
side project connoisseur
4444
</h2>
45-
<span className="m-0 text-2xl font-medium leading-normal">
45+
<span className="m-0 text-2xl leading-normal font-medium">
4646
🥃
4747
</span>
4848

4949
<h2 className="m-0 justify-self-start text-2xl font-medium">
5050
open source maintainer
5151
</h2>
52-
<span className="m-0 text-2xl font-medium leading-normal">
52+
<span className="m-0 text-2xl leading-normal font-medium">
5353
5454
</span>
5555
</div>

src/components/HireMe/HireMe.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const HireMe: FC<HireMeProps> = ({testimonials}) => {
1313
return (
1414
<div className="grid gap-y-16">
1515
<section>
16-
<h1 className="mb-9 font-heading text-4xl font-extrabold">
16+
<h1 className="font-heading mb-9 text-4xl font-extrabold">
1717
🤝 let&apos;s work together
1818
</h1>
1919

@@ -50,7 +50,7 @@ const HireMe: FC<HireMeProps> = ({testimonials}) => {
5050
</section>
5151

5252
<section>
53-
<div className="prose mb-9 dark:prose-invert prose-h1:font-bold">
53+
<div className="prose dark:prose-invert prose-h1:font-bold mb-9">
5454
<Heading level={1} id="testimonials">
5555
💯 what people think of me
5656
</Heading>

src/components/LatestVideos/LatestVideos.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const LatestVideos: FC<LatestVideosProps> = ({latestVideos}) => {
2626
alt={latestVideo.title}
2727
width="1280"
2828
height="720"
29-
className="rounded border-3 border-solid border-black shadow-box transition duration-300 hover:shadow-none dark:border-white dark:shadow-box-white hover:dark:shadow-none"
29+
className="shadow-box dark:shadow-box-white rounded border-3 border-solid border-black transition duration-300 hover:shadow-none dark:border-white dark:hover:shadow-none"
3030
/>
3131
</Link>
3232
)

src/components/Layout/Layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ type LayoutProps = {
99

1010
const Layout: FC<LayoutProps> = ({children}) => {
1111
return (
12-
<div className="m-auto grid min-h-screen max-w-5xl grid-rows-[auto_1fr_auto] gap-y-10 font-text text-black transition-all dark:text-white">
12+
<div className="font-text m-auto grid min-h-screen max-w-5xl grid-rows-[auto_1fr_auto] gap-y-10 text-black transition-all dark:text-white">
1313
<Header />
1414

1515
<main className="box-border w-full max-w-[700px] justify-self-center px-5 py-0">

src/components/LinkButton/LinkButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const LinkButton: FC<LinkButtonProps> = ({
2121
"shadow-reverse-box dark:shadow-reverse-box-white": reverse,
2222
"text-gray-300 dark:text-gray-300 border-gray-300 shadow-gray-300":
2323
disabled,
24-
"hover:text-inherit hover:shadow-none hover:dark:shadow-none":
24+
"hover:text-inherit hover:shadow-none dark:hover:shadow-none":
2525
!disabled,
2626
},
2727
)

src/components/Markdown/Markdown.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const Markdown: FC<MarkdownProps> = ({content, className}) => {
1010
return (
1111
<div
1212
className={classnames(
13-
"prose-md prose-[iframe]:w-100 prose prose-purple max-w-3xl dark:prose-invert prose-a:font-normal prose-a:text-gray-700 prose-a:no-underline prose-a:shadow-link prose-a:transition prose-a:duration-300 hover:prose-a:shadow-link-hover prose-code:rounded prose-code:bg-[#2d2b55] prose-code:px-2 prose-code:py-1 prose-code:font-normal prose-code:text-[#fad000] before:prose-code:content-none after:prose-code:content-none prose-pre:bg-[#2D2B55] prose-img:mx-auto prose-img:rounded dark:prose-a:text-gray-300",
13+
"prose-md prose-[iframe]:w-100 prose prose-purple dark:prose-invert prose-a:font-normal prose-a:text-gray-700 prose-a:no-underline prose-a:shadow-link prose-a:transition prose-a:duration-300 prose-a:hover:shadow-link-hover prose-code:rounded prose-code:bg-[#2d2b55] prose-code:px-2 prose-code:py-1 prose-code:font-normal prose-code:text-[#fad000] prose-code:before:content-none prose-code:after:content-none prose-pre:bg-[#2D2B55] prose-img:mx-auto prose-img:rounded dark:prose-a:text-gray-300 max-w-3xl",
1414
className,
1515
)}
1616
>

src/components/Newsletter/Newsletter.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const Newsletter: FC = () => {
3333
onSubmit={onSubmit}
3434
>
3535
<input
36-
className="rounded border-3 border-black px-8 py-4 text-base shadow-box placeholder:text-gray-400 focus:border-purple-400 focus:outline-none dark:shadow-box-white"
36+
className="shadow-box dark:shadow-box-white rounded border-3 border-black px-8 py-4 text-base placeholder:text-gray-400 focus:border-purple-400 focus:outline-hidden"
3737
placeholder="email@example.com"
3838
type="email"
3939
name="email"
@@ -43,7 +43,7 @@ const Newsletter: FC = () => {
4343
/>
4444

4545
<button
46-
className="mb-[5px] inline-block cursor-pointer rounded border-2 border-black bg-purple-500 px-3 py-2 font-heading text-base font-black tracking-normal text-white shadow-box transition duration-300 hover:enabled:shadow-none disabled:cursor-default dark:shadow-box-white"
46+
className="font-heading shadow-box dark:shadow-box-white mb-[5px] inline-block cursor-pointer rounded border-2 border-black bg-purple-500 px-3 py-2 text-base font-black tracking-normal text-white transition duration-300 hover:enabled:shadow-none disabled:cursor-default"
4747
type="submit"
4848
disabled={subscribed}
4949
>

src/components/PageLayout/PageLayout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ type PageLayoutProps = {
66

77
const PageLayout: FC<PageLayoutProps> = ({children}) => {
88
return (
9-
<main className="grid min-h-screen content-center justify-center px-5 py-0 font-text text-black transition-all dark:text-white">
9+
<main className="font-text grid min-h-screen content-center justify-center px-5 py-0 text-black transition-all dark:text-white">
1010
{children}
1111
</main>
1212
)

src/components/Podcasts/Podcasts.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const Podcast: FC = () => {
1313
<img
1414
src={createImageUrl("/pages/home/compressed-fm.jpg")}
1515
alt="Compressed.fm"
16-
className="box-border rounded border-3 border-black shadow-box transition duration-300 hover:shadow-none dark:border-white dark:shadow-box-white hover:dark:shadow-none"
16+
className="shadow-box dark:shadow-box-white box-border rounded border-3 border-black transition duration-300 hover:shadow-none dark:border-white dark:hover:shadow-none"
1717
width="500"
1818
height="500"
1919
/>
@@ -26,7 +26,7 @@ const Podcast: FC = () => {
2626
<img
2727
src={createImageUrl("/pages/home/web-dev-weekly.jpg")}
2828
alt="Web Dev Weekly"
29-
className="box-border rounded border-3 border-black shadow-box transition duration-300 hover:shadow-none dark:border-white dark:shadow-box-white hover:dark:shadow-none"
29+
className="shadow-box dark:shadow-box-white box-border rounded border-3 border-black transition duration-300 hover:shadow-none dark:border-white dark:hover:shadow-none"
3030
width="500"
3131
height="500"
3232
/>

src/components/PostCard/PostCard.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ const PostCard: FC<PostCardProps> = ({post, className}) => {
1414
return (
1515
<div
1616
className={classnames(
17-
"rounded border-3 border-black px-8 py-8 shadow-box duration-300 hover:shadow-none dark:border-white dark:shadow-box-white hover:dark:shadow-none",
17+
"shadow-box dark:shadow-box-white rounded border-3 border-black px-8 py-8 duration-300 hover:shadow-none dark:border-white dark:hover:shadow-none",
1818
className,
1919
)}
2020
>
21-
<h1 className="mb-10 font-heading text-3xl font-semibold max-[750px]:text-2xl">
21+
<h1 className="font-heading mb-10 text-3xl font-semibold max-[750px]:text-2xl">
2222
<Link
2323
prefetch="intent"
2424
to={`/blog/${post.slug}`}

src/components/PostHeader/PostHeader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const PostHeader: FC<PostHeaderProps> = ({date, tags, topic, title}) => {
1515
<section>
1616
<PostMeta date={date} topic={topic} tags={tags} />
1717

18-
<h1 className="mt-6 font-heading text-4xl font-semibold">
18+
<h1 className="font-heading mt-6 text-4xl font-semibold">
1919
{title}
2020
</h1>
2121
</section>

src/components/PostMeta/PostMeta.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const PostMeta: FC<PostMetaProps> = ({date, tags, topic}) => {
2525
return (
2626
<Link
2727
key={tag}
28-
className="rounded bg-black px-2 font-heading text-sm font-bold text-white duration-300 hover:bg-purple-400 dark:bg-white dark:text-black dark:hover:bg-purple-400"
28+
className="font-heading rounded bg-black px-2 text-sm font-bold text-white duration-300 hover:bg-purple-400 dark:bg-white dark:text-black dark:hover:bg-purple-400"
2929
to={`/tag/${tag}`}
3030
prefetch="intent"
3131
>

src/components/PostSearchBar/PostSearchBar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ const PostSearchBar: FC<PostSearchBarProps> = ({posts, onSearch}) => {
6060
</label>
6161

6262
<input
63-
className="w-full rounded border-3 border-black px-8 py-4 text-base shadow-box placeholder:text-gray-400 focus:border-purple-400 focus:outline-none dark:shadow-box-white"
63+
className="shadow-box dark:shadow-box-white w-full rounded border-3 border-black px-8 py-4 text-base placeholder:text-gray-400 focus:border-purple-400 focus:outline-hidden"
6464
type="search"
6565
id="search"
6666
placeholder="search by title, topic, or tag..."

src/components/Project/Project.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ type ProjectProps = {
1111
const Project: FC<ProjectProps> = ({project}) => {
1212
return (
1313
<Link
14-
className="grid content-between gap-y-4 rounded border-3 border-black p-[1.125rem] shadow-box transition duration-300 hover:shadow-none dark:border-white dark:shadow-box-white hover:dark:shadow-none"
14+
className="shadow-box dark:shadow-box-white grid content-between gap-y-4 rounded border-3 border-black p-[1.125rem] transition duration-300 hover:shadow-none dark:border-white dark:hover:shadow-none"
1515
to={`${project.url}#readme`}
1616
>
1717
<div>
18-
<h3 className="m-0 font-heading text-2xl font-black tracking-[-0.075rem]">
18+
<h3 className="font-heading m-0 text-2xl font-black tracking-[-0.075rem]">
1919
{project.name}
2020
</h3>
2121

src/components/Section/Section.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type TitleProps = {
1212

1313
const Title: FC<TitleProps> = ({title}) => {
1414
return (
15-
<h2 className="hover:text-shadow-3 m-0 font-heading text-[clamp(3rem,_10vw,_4.5rem)] font-black tracking-[-0.2rem] transition-all duration-300">
15+
<h2 className="hover:text-shadow-3 font-heading m-0 text-[clamp(3rem,_10vw,_4.5rem)] font-black tracking-[-0.2rem] transition-all duration-300">
1616
{title}
1717
</h2>
1818
)

src/components/SocialLink/SocialLink.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ const SocialLink: FC<SocialLinkProps> = ({platform}) => {
7676
return (
7777
<Link to={url} reloadDocument>
7878
<Icon
79-
className="h-8 fill-black transition duration-300 hover:fill-purple-400 dark:fill-white hover:dark:fill-purple-400"
79+
className="h-8 fill-black transition duration-300 hover:fill-purple-400 dark:fill-white dark:hover:fill-purple-400"
8080
name={name}
8181
/>
8282
</Link>

src/components/Sponsors/Sponsors.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const Sponsors: FC<SponsorsProps> = ({sponsors}) => {
3838
to={sponsor.profile}
3939
>
4040
<img
41-
className="m-0 w-[6.625rem] rounded-full border-5 border-black transition duration-300 hover:-rotate-2 hover:border-purple-400 dark:border-white hover:dark:border-purple-400"
41+
className="m-0 w-[6.625rem] rounded-full border-5 border-black transition duration-300 hover:-rotate-2 hover:border-purple-400 dark:border-white dark:hover:border-purple-400"
4242
src={createExternalImageUrl(
4343
sponsor.avatar,
4444
)}
@@ -47,7 +47,7 @@ const Sponsors: FC<SponsorsProps> = ({sponsors}) => {
4747
height="460"
4848
/>
4949

50-
<span className="absolute -left-4 -top-4 text-[2.5rem]">
50+
<span className="absolute -top-4 -left-4 text-[2.5rem]">
5151
{sponsor.tier}
5252
</span>
5353
</Link>

src/components/Streaming/Streaming.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import type {FC} from "react"
44
const Streaming: FC = () => {
55
return (
66
<Link to="https://twitch.tv/bradgarropy">
7-
<span className="animate-pulse font-heading text-lg font-black tracking-[-0.075rem]">
7+
<span className="font-heading animate-pulse text-lg font-black tracking-[-0.075rem]">
88
🎥 streaming
99
</span>
1010
</Link>

src/components/Testimonial/Testimonial.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const Testimonial: FC<TestimonialProps> = ({testimonial}) => {
1717

1818
return (
1919
<div
20-
className="grid max-w-xl justify-items-start gap-8 rounded border-3 border-black p-8 shadow-box transition duration-300 hover:shadow-none dark:border-white dark:shadow-box-white hover:dark:shadow-none"
20+
className="shadow-box dark:shadow-box-white grid max-w-xl justify-items-start gap-8 rounded border-3 border-black p-8 transition duration-300 hover:shadow-none dark:border-white dark:hover:shadow-none"
2121
id={slug}
2222
key={testimonial.frontmatter.name}
2323
>
@@ -33,7 +33,7 @@ const Testimonial: FC<TestimonialProps> = ({testimonial}) => {
3333
className="rounded-full border-3 border-black dark:border-white"
3434
/>
3535

36-
<p className="m-0 font-heading text-2xl font-black tracking-[-0.075rem]">
36+
<p className="font-heading m-0 text-2xl font-black tracking-[-0.075rem]">
3737
{testimonial.frontmatter.name}
3838
</p>
3939
</Link>

0 commit comments

Comments
 (0)