diff --git a/astro.config.ts b/astro.config.ts index 1eb7f9f..b03b105 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -2,13 +2,16 @@ import { defineConfig, passthroughImageService } from "astro/config"; import sitemap from "@astrojs/sitemap"; import rehypeExternalLinks from "rehype-external-links"; import mdx from "@astrojs/mdx"; -import tailwind from "@astrojs/tailwind"; +import tailwindcss from "@tailwindcss/vite"; import icon from "astro-icon"; // https://astro.build/config export default defineConfig({ site: "https://troylusty.com", - integrations: [sitemap(), mdx(), tailwind(), icon()], + integrations: [sitemap(), mdx(), icon()], + vite: { + plugins: [tailwindcss()], + }, output: "static", markdown: { rehypePlugins: [ diff --git a/bun.lockb b/bun.lockb index a3bac85..b4cd955 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index b943b07..d55029d 100644 --- a/package.json +++ b/package.json @@ -12,22 +12,23 @@ }, "dependencies": { "@astrojs/check": "0.9.4", - "@astrojs/mdx": "^4.0.6", + "@astrojs/mdx": "^4.0.7", "@astrojs/rss": "^4.0.11", "@astrojs/sitemap": "3.2.1", - "@astrojs/tailwind": "^5.1.4", + "@astrojs/tailwind": "^5.1.5", "@fontsource-variable/outfit": "^5.1.1", "@fontsource-variable/red-hat-mono": "^5.1.1", "@fontsource/borel": "^5.1.1", - "astro": "^5.1.7", + "@tailwindcss/vite": "^4.0.0", + "astro": "^5.1.8", "astro-icon": "^1.1.5", "rehype-external-links": "^3.0.0", - "tailwindcss": "^3.4.17", + "tailwindcss": "^4.0.0", "typescript": "^5.7.3" }, "devDependencies": { - "@iconify-json/mdi": "^1.2.2", - "@iconify-json/simple-icons": "^1.2.20", + "@iconify-json/mdi": "^1.2.3", + "@iconify-json/simple-icons": "^1.2.21", "@tailwindcss/typography": "^0.5.16", "@types/node": "^22.10.7", "prettier": "^3.4.2", diff --git a/src/components/Accordion.astro b/src/components/Accordion.astro index bfee392..61d727e 100644 --- a/src/components/Accordion.astro +++ b/src/components/Accordion.astro @@ -16,18 +16,18 @@ const { institution, qualification, grades, isOpen = false } = Astro.props; <summary class="flex cursor-pointer items-center justify-between py-3 font-bold" > - <p class="m-0 text-balance font-semibold text-secondary"> + <p class="text-secondary m-0 font-semibold text-balance"> {qualification} </p> <span class="transition group-open:rotate-180"> <Icon name="mdi:chevron-down" - class="h-6 w-auto text-secondary transition-colors group-open:text-tertiary" + class="text-secondary group-open:text-tertiary h-6 w-auto transition-colors" /> </span> </summary> <div class="p-4"> - <p class="my-0 mb-2 font-semibold text-tertiary"> + <p class="text-tertiary my-0 mb-2 font-semibold"> {institution} </p> <ol class="list-inside list-disc"> diff --git a/src/components/Article.astro b/src/components/Article.astro index 6a611b6..e2338d9 100644 --- a/src/components/Article.astro +++ b/src/components/Article.astro @@ -30,14 +30,14 @@ const listFormatter = new Intl.ListFormat("en-GB", { > <div class="mx-auto mb-8"> <h1 - class="animate-reveal break-words text-start text-2xl font-semibold opacity-0" + class="animate-reveal text-start text-2xl font-semibold break-words opacity-0" > <span class="text-secondary">{article.data.title}</span><span - class="ml-2 text-tertiary">{article.data.description}</span + class="text-tertiary ml-2">{article.data.description}</span > </h1> <div - class="mt-4 flex animate-reveal flex-col flex-wrap items-start gap-2 text-tertiary opacity-0 [animation-delay:0.1s] md:flex-row" + class="animate-reveal text-tertiary mt-4 flex flex-col flex-wrap items-start gap-2 opacity-0 [animation-delay:0.1s] md:flex-row" > <div class="flex items-center gap-2"> <Icon name="mdi:calendar" /> @@ -79,7 +79,7 @@ const listFormatter = new Intl.ListFormat("en-GB", { } </div> </div> - <div class="mx-auto animate-reveal opacity-0 [animation-delay:0.2s]"> + <div class="animate-reveal mx-auto opacity-0 [animation-delay:0.2s]"> <Prose> <Content /> </Prose> diff --git a/src/components/Button.astro b/src/components/Button.astro index aa1c22f..122acd0 100644 --- a/src/components/Button.astro +++ b/src/components/Button.astro @@ -9,7 +9,7 @@ const { href, link } = Astro.props; <a href={`${href}`}> <div - class="m-4 flex w-fit animate-reveal flex-row items-center gap-1 justify-self-center rounded-full bg-tertiary px-2 py-1 text-sm font-medium capitalize text-primary opacity-0 transition-colors [animation-delay:0.1s] hover:bg-accent text-center text-nowrap" + class="animate-reveal bg-tertiary text-primary hover:bg-accent m-4 flex w-fit flex-row items-center gap-1 justify-self-center rounded-full px-2 py-1 text-center text-sm font-medium text-nowrap capitalize opacity-0 transition-colors [animation-delay:0.1s]" > {link} </div> diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 54cf814..c61d77e 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -4,27 +4,31 @@ import Link from "@components/Link.astro"; import { Icon } from "astro-icon/components"; --- -<footer class="mx-auto mb-8 mt-auto w-full max-w-prose space-y-6 pt-12"> +<footer class="mx-auto mt-auto mb-8 w-full max-w-prose space-y-6 pt-12"> <div class="md:flex md:justify-between"> - <div class="mb-6 text-secondary md:mb-0"> - <a class="inline-flex items-center group" href="#top" title="Back to top"> - <Icon name="icon" title={SITE.TITLE} class="h-8 w-auto ease-in-out transition-colors duration-500 group-hover:text-tertiary" /> + <div class="text-secondary mb-6 md:mb-0"> + <a class="group inline-flex items-center" href="#top" title="Back to top"> + <Icon + name="icon" + title={SITE.TITLE} + class="group-hover:text-tertiary h-8 w-auto transition-colors duration-500 ease-in-out" + /> <div - class="ml-2 hidden flex-none text-sm font-bold capitalize md:visible lg:block transition-colors duration-500 group-hover:text-tertiary" + class="group-hover:text-tertiary ml-2 hidden flex-none text-sm font-bold capitalize transition-colors duration-500 md:visible lg:block" > Troy Lusty </div> </a> </div> <div class="text-left sm:gap-6 md:text-right"> - <ul class="font-medium text-tertiary"> + <ul class="text-tertiary font-medium"> { SITE.NAVLINKS.map((i) => ( <li class="mb-1 last:mb-0"> <a data-navlink href={i.href} - class="capitalize transition-colors hover:text-secondary" + class="hover:text-secondary capitalize transition-colors" > {i.name} </a> @@ -35,9 +39,9 @@ import { Icon } from "astro-icon/components"; </div> </div> <div class="mt-12 sm:flex sm:items-center sm:justify-between lg:mt-16"> - <span class="text-sm text-tertiary sm:text-center" + <span class="text-tertiary text-sm sm:text-center" >© {new Date().getFullYear()} - <a href="/" class="transition-colors hover:text-secondary">{SITE.TITLE}</a + <a href="/" class="hover:text-secondary transition-colors">{SITE.TITLE}</a >. All Rights Reserved. </span> <div class="mt-4 flex gap-2 sm:mt-0 sm:justify-center"> @@ -47,7 +51,7 @@ import { Icon } from "astro-icon/components"; <Icon name={i.icon} title={i.name} - class="h-5 w-5 text-tertiary transition-colors hover:text-secondary" + class="text-tertiary hover:text-secondary h-5 w-5 transition-colors" /> </Link> )) diff --git a/src/components/Header.astro b/src/components/Header.astro index 3bd1dd6..91a7221 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -5,12 +5,16 @@ import { Icon } from "astro-icon/components"; <header class="mx-auto mb-8 w-full max-w-prose space-y-6 pt-12"> <div - class="flex h-12 items-center justify-between leading-[0px] text-secondary group" + class="text-secondary group flex h-12 items-center justify-between leading-[0px]" > <a class="inline-flex items-center" href="/" title={SITE.TITLE}> - <Icon name="icon" title={SITE.TITLE} class="h-8 w-auto ease-in-out group-hover:text-tertiary transition-colors duration-500" /> + <Icon + name="icon" + title={SITE.TITLE} + class="group-hover:text-tertiary h-8 w-auto transition-colors duration-500 ease-in-out" + /> <div - class="ml-2 hidden flex-none text-sm font-bold capitalize md:visible lg:block group-hover:text-tertiary transition-colors duration-500" + class="group-hover:text-tertiary ml-2 hidden flex-none text-sm font-bold capitalize transition-colors duration-500 md:visible lg:block" > Troy Lusty </div> diff --git a/src/components/Hero.astro b/src/components/Hero.astro index 69bc294..b81aa84 100644 --- a/src/components/Hero.astro +++ b/src/components/Hero.astro @@ -12,7 +12,7 @@ import borel from "@fontsource/borel/files/borel-latin-400-normal.woff2?url"; <section class="mb-32 overflow-clip"> <h1 - class="--translate-y-full animate-logo text-pretty text-4xl font-bold md:text-6xl" + class="--translate-y-full animate-logo text-4xl font-bold text-pretty md:text-6xl" > Digital designer based in the <span class="animate-gradient-x bg-gradient-to-r from-indigo-500 from-10% via-sky-500 via-30% to-emerald-500 to-90% bg-clip-text px-1 font-['Borel'] text-3xl font-bold text-transparent md:text-5xl" diff --git a/src/components/Prose.astro b/src/components/Prose.astro index 2f1ccdc..506359f 100644 --- a/src/components/Prose.astro +++ b/src/components/Prose.astro @@ -1,5 +1,5 @@ <div - class="prose max-w-full prose-headings:text-secondary prose-h1:text-xl prose-h1:font-bold prose-p:max-w-full prose-p:text-pretty prose-p:break-words prose-p:text-secondary prose-a:text-secondary prose-a:underline prose-a:decoration-tertiary prose-a:decoration-wavy prose-blockquote:border-secondary prose-strong:text-secondary prose-code:whitespace-pre-wrap prose-code:font-medium prose-code:text-secondary prose-code:before:content-none prose-code:after:content-none prose-li:text-secondary prose-li:marker:text-secondary prose-img:max-h-[90vh] prose-img:w-auto prose-img:max-w-full prose-img:rounded prose-video:max-h-[90vh] prose-video:w-auto prose-video:max-w-full prose-video:rounded" + class="prose prose-headings:text-secondary prose-h1:text-xl prose-h1:font-bold prose-p:max-w-full prose-p:text-pretty prose-p:break-words prose-p:text-secondary prose-a:text-secondary prose-a:underline prose-a:decoration-tertiary prose-a:decoration-wavy prose-blockquote:border-secondary prose-strong:text-secondary prose-code:whitespace-pre-wrap prose-code:font-medium prose-code:text-secondary prose-code:before:content-none prose-code:after:content-none prose-li:text-secondary prose-li:marker:text-secondary prose-img:max-h-[90vh] prose-img:w-auto prose-img:max-w-full prose-img:rounded prose-video:max-h-[90vh] prose-video:w-auto prose-video:max-w-full prose-video:rounded max-w-full" > <slot /> </div> diff --git a/src/components/RelatedArticles.astro b/src/components/RelatedArticles.astro index b99fa4c..d8ae7aa 100644 --- a/src/components/RelatedArticles.astro +++ b/src/components/RelatedArticles.astro @@ -19,15 +19,15 @@ const next = items[(index + 1) % items.length]; { items.length > 1 ? ( - <div class="mx-auto mt-8 flex max-w-prose md:flex-row justify-between gap-4 md:gap-0 flex-col-reverse"> - <Button - href={`/${prev.collection}/${prev.slug}`} - link={`Previous: ${prev.data.title}`} - /> - <Button - href={`/${next.collection}/${next.slug}`} - link={`Next: ${next.data.title}`} - /> + <div class="mx-auto mt-8 flex max-w-prose flex-col-reverse justify-between gap-4 md:flex-row md:gap-0"> + <Button + href={`/${prev.collection}/${prev.slug}`} + link={`Previous: ${prev.data.title}`} + /> + <Button + href={`/${next.collection}/${next.slug}`} + link={`Next: ${next.data.title}`} + /> </div> ) : null } diff --git a/src/components/ShowcasePost.astro b/src/components/ShowcasePost.astro index a1b61f2..b8d8d42 100644 --- a/src/components/ShowcasePost.astro +++ b/src/components/ShowcasePost.astro @@ -10,17 +10,17 @@ const { collection } = Astro.props; <li> <a - class="group bg-none hover:bg-tertiary/30" + class="group hover:bg-tertiary/30 bg-none" href={`/${collection.collection}/${collection.slug}`} > <article class="flex flex-col"> - <h3 class="mb-1 text-balance font-semibold"> + <h3 class="mb-1 font-semibold text-balance"> <span class="text-secondary">{collection.data.title}</span><span - class="ml-2 text-tertiary transition-colors group-hover:text-accent" + class="text-tertiary group-hover:text-accent ml-2 transition-colors" >{collection.data.description}</span > </h3> - <time class="block text-sm text-accent" + <time class="text-accent block text-sm" ><FormattedDate date={collection.data.date} /></time > </article> diff --git a/src/components/ShowcaseProject.astro b/src/components/ShowcaseProject.astro index 4b88db7..6e79387 100644 --- a/src/components/ShowcaseProject.astro +++ b/src/components/ShowcaseProject.astro @@ -11,7 +11,7 @@ const { collection } = Astro.props; <li> <article - class="group relative isolate mx-auto flex h-full w-full flex-col justify-end overflow-hidden rounded px-8 pb-8 pt-40" + class="group relative isolate mx-auto flex h-full w-full flex-col justify-end overflow-hidden rounded px-8 pt-40 pb-8" > <Image src={collection.data.image.url} @@ -27,12 +27,12 @@ const { collection } = Astro.props; href={`/${collection.collection}/${collection.slug}`} aria-label={collection.data.title}></a> <h3 - class="z-10 w-fit text-xl font-semibold text-primary opacity-0 transition-opacity duration-300 group-hover:opacity-100 dark:text-secondary" + class="text-primary dark:text-secondary z-10 w-fit text-xl font-semibold opacity-0 transition-opacity duration-300 group-hover:opacity-100" > {collection.data.title} </h3> <div - class="z-10 w-fit gap-y-1 overflow-hidden text-sm leading-6 text-accent opacity-0 transition-opacity duration-500 group-hover:opacity-100" + class="text-accent z-10 w-fit gap-y-1 overflow-hidden text-sm leading-6 opacity-0 transition-opacity duration-500 group-hover:opacity-100" > { collection.data.collection ? ( diff --git a/src/components/Skills.astro b/src/components/Skills.astro index c076912..6f3ed87 100644 --- a/src/components/Skills.astro +++ b/src/components/Skills.astro @@ -15,10 +15,10 @@ const skills = await Promise.all( <ul class="flex max-w-full list-none flex-wrap gap-4 px-0"> { skills.map((entry) => ( - <li class="group flex items-center gap-2 rounded border border-tertiary p-2 text-tertiary transition-colors hover:border-accent hover:text-accent"> + <li class="group border-tertiary text-tertiary hover:border-accent hover:text-accent flex items-center gap-2 rounded border p-2 transition-colors"> <Icon name={entry.data.icon} - class="h-5 w-auto text-tertiary transition-colors group-hover:text-accent" + class="text-tertiary group-hover:text-accent h-5 w-auto transition-colors" /> <p class="m-0 cursor-default">{entry.data.title}</p> </li> diff --git a/src/components/SkinnyCenter.astro b/src/components/SkinnyCenter.astro index 5eea84b..1f0ae0c 100644 --- a/src/components/SkinnyCenter.astro +++ b/src/components/SkinnyCenter.astro @@ -1,5 +1,5 @@ <div - class="mx-auto mb-8 mt-2 w-full max-w-[60ch] p-4 pb-16 md:mb-32 md:mt-16 md:p-5" + class="mx-auto mt-2 mb-8 w-full max-w-[60ch] p-4 pb-16 md:mt-16 md:mb-32 md:p-5" > <slot /> </div> diff --git a/src/components/Work.astro b/src/components/Work.astro index 895a89e..16c924d 100644 --- a/src/components/Work.astro +++ b/src/components/Work.astro @@ -20,14 +20,14 @@ const work = await Promise.all( { work.map((entry) => ( <li class="pb-4 pl-0 last:pb-0"> - <h3 class="mb-1 mt-4 text-balance font-semibold text-secondary"> + <h3 class="text-secondary mt-4 mb-1 font-semibold text-balance"> <span class="text-tertiary">{entry.data.role} at</span> {entry.data.company} </h3> - <time class="block text-accent"> + <time class="text-accent block"> {dateRange(entry.data.dateStart, entry.data.dateEnd)} </time> - <article class="mt-2 text-secondary prose-a:underline prose-a:decoration-tertiary prose-a:decoration-wavy"> + <article class="text-secondary prose-a:underline prose-a:decoration-tertiary prose-a:decoration-wavy mt-2"> <entry.Content /> </article> {entry.data.article ? ( diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index fcd5914..15eea60 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -27,7 +27,7 @@ const { title, description, image, date, updated, tags } = Astro.props; tags={tags} /> <body - class="flex min-h-screen flex-col justify-start bg-primary p-8 pt-0 text-secondary md:pt-8" + class="bg-primary text-secondary flex min-h-screen flex-col justify-start p-8 pt-0 md:pt-8" > <Header /> <main diff --git a/src/pages/404.astro b/src/pages/404.astro index 9c83232..964b0d2 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -11,13 +11,13 @@ import Button from "@components/Button.astro"; > <div> <h2 - class="animate-reveal break-words text-2xl font-semibold opacity-0" + class="animate-reveal text-2xl font-semibold break-words opacity-0" id="featured-projects" > 404 </h2> <h3 - class="mt-2 animate-reveal font-bold opacity-0 [animation-delay:0.1s]" + class="animate-reveal mt-2 font-bold opacity-0 [animation-delay:0.1s]" > Content not found </h3> diff --git a/src/pages/cv.astro b/src/pages/cv.astro index dd8a90b..0205f1b 100644 --- a/src/pages/cv.astro +++ b/src/pages/cv.astro @@ -13,15 +13,15 @@ import Link from "@components/Link.astro"; <div class="flex flex-col items-start justify-between gap-6 md:flex-row md:items-center" > - <h1 class="animate-reveal break-words text-2xl font-semibold opacity-0"> + <h1 class="animate-reveal text-2xl font-semibold break-words opacity-0"> Troy Lusty </h1> <div - class="mt-4 flex flex-col items-start gap-2 text-tertiary md:flex-row" + class="text-tertiary mt-4 flex flex-col items-start gap-2 md:flex-row" > - <div class="flex animate-reveal items-center gap-2 opacity-0"> + <div class="animate-reveal flex items-center gap-2 opacity-0"> <div - class="flex flex-row items-center gap-2 text-tertiary transition-colors hover:text-accent" + class="text-tertiary hover:text-accent flex flex-row items-center gap-2 transition-colors" > <Icon name="mdi:email" /> <Link href="mailto:hello@troylusty.com"> @@ -29,7 +29,7 @@ import Link from "@components/Link.astro"; </Link> </div> <div - class="flex flex-row items-center gap-2 text-tertiary transition-colors hover:text-accent" + class="text-tertiary hover:text-accent flex flex-row items-center gap-2 transition-colors" > <Icon name="mdi:web" /> <Link href="/"> @@ -40,8 +40,8 @@ import Link from "@components/Link.astro"; </div> </div> </section> - <section class="mt-16 animate-reveal opacity-0 [animation-delay:0.1s]"> - <h2 class="mb-4 break-words text-2xl font-semibold capitalize">About me</h2> + <section class="animate-reveal mt-16 opacity-0 [animation-delay:0.1s]"> + <h2 class="mb-4 text-2xl font-semibold break-words capitalize">About me</h2> <p class="mb-2"> Hi, my name is Troy and I’m a student 3D artist studying on a BA (Hons) Game Arts and Design course in the UK. @@ -57,19 +57,19 @@ import Link from "@components/Link.astro"; <p class="mb-2"> My current portfolio of work can be found on my website at: <a - class="text-secondary underline decoration-tertiary decoration-wavy" + class="text-secondary decoration-tertiary underline decoration-wavy" href="/projects">troylusty.com/projects</a >. </p> </section> - <section class="mt-16 animate-reveal opacity-0 [animation-delay:0.2s]"> - <h2 class="mb-4 break-words text-2xl font-semibold capitalize"> + <section class="animate-reveal mt-16 opacity-0 [animation-delay:0.2s]"> + <h2 class="mb-4 text-2xl font-semibold break-words capitalize"> Education </h2> <Education /> </section> - <section class="mt-16 animate-reveal opacity-0 [animation-delay:0.3s]"> - <h2 class="mb-4 break-words text-2xl font-semibold capitalize">Skills</h2> + <section class="animate-reveal mt-16 opacity-0 [animation-delay:0.3s]"> + <h2 class="mb-4 text-2xl font-semibold break-words capitalize">Skills</h2> <p class="mb-2"> My specific chosen area of focus is design, lighting, and rendering focusing on 3D environments within software such as Blender and Unreal @@ -78,8 +78,8 @@ import Link from "@components/Link.astro"; </p> <Skills /> </section> - <section class="mt-16 animate-reveal opacity-0 [animation-delay:0.4s]"> - <h2 class="mb-4 break-words text-2xl font-semibold capitalize"> + <section class="animate-reveal mt-16 opacity-0 [animation-delay:0.4s]"> + <h2 class="mb-4 text-2xl font-semibold break-words capitalize"> Experience </h2> <Work /> diff --git a/src/pages/index.astro b/src/pages/index.astro index 6894f1c..e61295e 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -28,7 +28,7 @@ const projects = allProjects <div class="group flex w-fit flex-row items-center justify-between gap-6"> <a href="/projects"> <h2 - class="animate-reveal break-words text-2xl font-semibold capitalize opacity-0 transition-colors duration-500 group-hover:text-tertiary" + class="animate-reveal group-hover:text-tertiary text-2xl font-semibold break-words capitalize opacity-0 transition-colors duration-500" id="featured-projects" > Featured projects @@ -36,7 +36,7 @@ const projects = allProjects </a> </div> <ol - class="mt-8 grid animate-reveal grid-cols-1 gap-4 opacity-0 [animation-delay:0.1s] md:grid-cols-2" + class="animate-reveal mt-8 grid grid-cols-1 gap-4 opacity-0 [animation-delay:0.1s] md:grid-cols-2" > {projects.map((project) => <ShowcaseProject collection={project} />)} </ol> @@ -50,7 +50,7 @@ const projects = allProjects <div class="group flex w-fit flex-row items-center justify-between gap-6"> <a href="/posts"> <h2 - class="animate-reveal break-words text-2xl font-semibold capitalize opacity-0 transition-colors duration-500 [animation-delay:0.2s] group-hover:text-tertiary" + class="animate-reveal group-hover:text-tertiary text-2xl font-semibold break-words capitalize opacity-0 transition-colors duration-500 [animation-delay:0.2s]" id="featured-projects" > Recent posts @@ -58,7 +58,7 @@ const projects = allProjects </a> </div> <ol - class="mt-8 grid animate-reveal grid-cols-1 gap-6 opacity-0 [animation-delay:0.3s]" + class="animate-reveal mt-8 grid grid-cols-1 gap-6 opacity-0 [animation-delay:0.3s]" > {posts.map((post) => <ShowcasePost collection={post} />)} </ol> diff --git a/src/pages/posts/index.astro b/src/pages/posts/index.astro index 5737ed4..8e1f828 100644 --- a/src/pages/posts/index.astro +++ b/src/pages/posts/index.astro @@ -10,11 +10,11 @@ const posts = (await getCollection("posts")) --- <Layout title={SITE.TITLE} description={POSTS.DESCRIPTION}> - <h1 class="animate-reveal break-words text-2xl font-semibold opacity-0"> + <h1 class="animate-reveal text-2xl font-semibold break-words opacity-0"> {POSTS.TITLE} </h1> <ol - class="mt-16 grid animate-reveal grid-cols-1 gap-6 opacity-0 [animation-delay:0.1s]" + class="animate-reveal mt-16 grid grid-cols-1 gap-6 opacity-0 [animation-delay:0.1s]" > {posts.map((article: any) => <ShowcasePost collection={article} />)} </ol> diff --git a/src/pages/projects/index.astro b/src/pages/projects/index.astro index 2238093..953f773 100644 --- a/src/pages/projects/index.astro +++ b/src/pages/projects/index.astro @@ -10,11 +10,11 @@ const projects = (await getCollection("projects")) --- <Layout title={SITE.TITLE} description={PROJECTS.DESCRIPTION}> - <h1 class="animate-reveal break-words text-2xl font-semibold opacity-0"> + <h1 class="animate-reveal text-2xl font-semibold break-words opacity-0"> {PROJECTS.TITLE} </h1> <ol - class="mt-16 grid animate-reveal grid-cols-1 gap-4 opacity-0 [animation-delay:0.1s] md:grid-cols-2" + class="animate-reveal mt-16 grid grid-cols-1 gap-4 opacity-0 [animation-delay:0.1s] md:grid-cols-2" > {projects.map((article: any) => <ShowcaseProject collection={article} />)} </ol> diff --git a/src/styles/global.css b/src/styles/global.css index d9e9532..0e9b70e 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -2,9 +2,23 @@ @import "@fontsource-variable/outfit"; @import "@fontsource/borel"; -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; +@plugin "@tailwindcss/typography"; +@config "../../tailwind.config.ts"; + +@theme { + --font-display: "Satoshi", "sans-serif"; + --breakpoint-3xl: 1920px; + --color-avocado-100: oklch(0.99 0 0); + --color-avocado-200: oklch(0.98 0.04 113.22); + --color-avocado-300: oklch(0.94 0.11 115.03); + --color-avocado-400: oklch(0.92 0.19 114.08); + --color-avocado-500: oklch(0.84 0.18 117.33); + --color-avocado-600: oklch(0.53 0.12 118.34); + --ease-fluid: cubic-bezier(0.3, 0, 0, 1); + --ease-snappy: cubic-bezier(0.2, 0, 0, 1); + /* ... */ +} @layer base { :root {