feat: fixed footer with responsive height tokens

Footer is fixed bottom-0 with h-footer (5rem mobile) / md:h-footer-wide
(4rem desktop). Body gets matching pb-footer/md:pb-footer-wide to
reserve space. Tokens registered in @theme inline as --spacing-footer*.
This commit is contained in:
Ilia Mashkov
2026-05-19 18:05:46 +03:00
parent 4d6d78a528
commit 906ec3b805
3 changed files with 32 additions and 23 deletions
+17 -12
View File
@@ -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;
}