Files
ai-for-dummies/src/components/blocks/SiteFooter.astro
T
Marcos Paulo 61de2f6270
verify-and-publish / gate (push) Successful in 5m35s
verify-and-publish / publish (push) Has been skipped
fix: unify typography and review interactions
2026-09-06 16:34:39 +00:00

64 lines
1.5 KiB
TypeScript

---
// SiteFooter — the bottom of every chapter page. Holds the inline-nav links
// (chapter-to-chapter or to the field guide) plus the small footer text.
//
// The chapter pages use a "pill" link style: 1px ink border, ink text,
// inverts on hover. Padding and gap are inherited from chapters.css
// `.links`. The block element is the lower bound of the page main — no
// margin/padding magic, just the rule above the first link.
//
// Footer text (the muted paragraph) goes into the default slot.
interface Props {
/** Optional accessible label for the inline-nav region. */
navLabel?: string;
}
const { navLabel = 'Chapter navigation' } = Astro.props;
---
<section class="footer">
<nav class="links" aria-label={navLabel}>
<slot name="links" />
</nav>
<div class="text">
<slot />
</div>
</section>
<style>
.footer {
padding: 30px 0 70px;
color: var(--muted);
/* UNRESOLVED: legacy 13px fixed from chapters.css. No token matches.
Reported in task 09 report. */
font-size: clamp(13px, 13px, 13px);
}
.links {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin: 28px 0 70px;
}
.links :global(a) {
padding: 10px 13px;
color: var(--ink);
border: 1px solid var(--ink);
text-decoration: none;
font: var(--step-0) var(--font-mono);
text-transform: uppercase;
}
.links :global(a:hover) {
color: var(--paper);
background: var(--ink);
}
.links :global(a:focus-visible) {
outline: 3px solid var(--red);
outline-offset: 2px;
}
</style>