Wire up the new stylesheet: self-host fonts, fix markup/class mismatch
deploy / deploy (push) Successful in 4s

Self-hosts the five EB Garamond/Source Serif 4/Inter woff2 files the
new CSS's @font-face rules point at (static/fonts/ didn't exist before
now, so those requests just 404'd). Removes the old Google Fonts link
that was pulling Roboto/Open Sans/Source Code Pro — fonts the new
stylesheet never references.

Updates baseof.html's header/footer markup from the old scaffold's
.site/.brand/.inner classes to .site-header/.site-title/.site-footer,
matching what the new CSS actually targets — without this the header
and footer rendered completely unstyled.

Adds the component styles the new CSS didn't include at all: .btn,
.enroll-form/.enroll-status/.enroll-download, .course-hero and
friends, and .skip-link. Most importantly .field-honeypot — its
absence meant the anti-spam honeypot field rendered visibly on the
page instead of off-screen, which would silently break a real
visitor's signup if they filled it in.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-15 10:14:21 -04:00
parent f380af16a1
commit 8f0204b928
7 changed files with 420 additions and 250 deletions
+14 -21
View File
@@ -5,9 +5,6 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} · {{ .Site.Title }}{{ end }}</title>
<meta name="description" content="{{ .Site.Params.description }}">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&family=Open+Sans:wght@400;600;700&family=Source+Code+Pro:wght@400;600&display=swap">
{{ $css := resources.Get "css/main.css" }}
{{ if hugo.IsProduction }}
{{ $css = $css | minify | fingerprint }}
@@ -19,30 +16,26 @@
<body>
<a class="skip-link" href="#main-content">Skip to content</a>
<header class="site">
<div class="inner">
<a class="brand" href="/">{{ .Site.Title }}</a>
<nav aria-label="Primary">
{{ range .Site.Menus.main }}
<a href="{{ .URL }}">{{ .Name }}</a>
{{ end }}
</nav>
</div>
<header class="site-header">
<a class="site-title" href="/">{{ .Site.Title }}</a>
<nav aria-label="Primary">
{{ range .Site.Menus.main }}
<a href="{{ .URL }}">{{ .Name }}</a>
{{ end }}
</nav>
</header>
<main id="main-content">
{{ block "main" . }}{{ end }}
</main>
<footer class="site">
<div class="inner">
<span>&copy; {{ now.Year }} {{ .Site.Title }}</span>
<nav aria-label="Footer">
{{ range .Site.Menus.footer }}
<a href="{{ .URL }}">{{ .Name }}</a>
{{ end }}
</nav>
</div>
<footer class="site-footer">
<span>&copy; {{ now.Year }} {{ .Site.Title }}</span>
<nav aria-label="Footer">
{{ range .Site.Menus.footer }}
<a href="{{ .URL }}">{{ .Name }}</a>
{{ end }}
</nav>
</footer>
</body>
</html>