diff --git a/app/layout.tsx b/app/layout.tsx index 80d4e48..3060eac 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -14,7 +14,7 @@ export const metadata: Metadata = { export default function RootLayout({ children }: { children: React.ReactNode }) { return ( -
+ {children} diff --git a/src/shared/styles/theme.css b/src/shared/styles/theme.css index b4a6007..b091140 100644 --- a/src/shared/styles/theme.css +++ b/src/shared/styles/theme.css @@ -84,7 +84,6 @@ /* === GRID === */ --grid-gap: var(--space-3); --section-content-width: 72rem; - /* === ANIMATION === */ --ease-default: ease; --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); @@ -121,6 +120,8 @@ --radius-md: var(--radius); --radius-lg: var(--radius); --container-section: var(--section-content-width); + --spacing-footer: 5rem; + --spacing-footer-wide: 4rem; --text-section-title: var(--text-section-title); --shadow-brutal-xs: var(--shadow-brutal-xs); @@ -226,12 +227,6 @@ a { color: var(--blue); text-decoration: none; - border-bottom: 2px solid var(--blue); - transition: all 0.2s; - } - - a:hover { - border-bottom-width: 4px; } blockquote { @@ -258,19 +253,19 @@ .brutal-shadow-lg { box-shadow: var(--shadow-brutal-lg); } -.brutal-border { +@utility brutal-border { border: var(--border-width) solid var(--blue); } -.brutal-border-top { +@utility brutal-border-top { border-top: var(--border-width) solid var(--blue); } -.brutal-border-bottom { +@utility brutal-border-bottom { border-bottom: var(--border-width) solid var(--blue); } -.brutal-border-left { +@utility brutal-border-left { border-left: var(--border-width) solid var(--blue); } -.brutal-border-right { +@utility brutal-border-right { border-right: var(--border-width) solid var(--blue); } /* Apply Fraunces variable axes to non-heading elements using the heading font */ @@ -300,6 +295,16 @@ text-wrap: pretty; } +.rich-text a { + border-bottom: var(--border-width) solid var(--blue); + opacity: 1; + transition: opacity var(--duration-normal); +} + +.rich-text a:hover { + opacity: 0.6; +} + .rich-text p + p { margin-top: 1.2em; } diff --git a/src/widgets/Footer/ui/Footer/Footer.tsx b/src/widgets/Footer/ui/Footer/Footer.tsx index b89068f..54f4e06 100644 --- a/src/widgets/Footer/ui/Footer/Footer.tsx +++ b/src/widgets/Footer/ui/Footer/Footer.tsx @@ -1,7 +1,7 @@ import type { SiteSettingsRecord } from '$shared/api'; import { getFirstRecord } from '$shared/api'; import { buildFileUrl } from '$shared/lib'; -import { Button, Link } from '$shared/ui'; +import { Button, InlineSvg, Link } from '$shared/ui'; /** * Site-wide footer with contact email, social links, and CV download. @@ -9,21 +9,23 @@ import { Button, Link } from '$shared/ui'; */ export async function Footer() { const settings = await getFirstRecord