--- version: "2.13.0" name: "Ananke Hugo Theme" description: "Tachyons-first visual system for the Ananke Hugo theme, with Ananke defaults, Hugo configuration hooks, and theme-specific components layered on top." colors: primary: "#000000" secondary: "#555555" tertiary: "#357EDD" neutral: "#F4F4F4" on-primary: "#FFFFFF" on-secondary: "#FFFFFF" on-tertiary: "#FFFFFF" text: "#555555" text-strong: "#111111" text-muted: "#777777" link: "#357EDD" link-hover: "#000000" surface: "#FFFFFF" surface-subtle: "#F4F4F4" surface-raised: "#FFFFFF" border: "#CCCCCC" border-subtle: "#EEEEEE" overlay-dark: "#000000" code-background: "#222222" code-text: "#DDDDDD" social-icon: "#BABABA" social-icon-hover: "#6B7280" black: "#000000" near-black: "#111111" dark-gray: "#333333" mid-gray: "#555555" gray: "#777777" silver: "#999999" light-silver: "#AAAAAA" moon-gray: "#CCCCCC" light-gray: "#EEEEEE" near-white: "#F4F4F4" white: "#FFFFFF" dark-red: "#E7040F" red: "#FF4136" light-red: "#FF725C" orange: "#FF6300" gold: "#FFB700" yellow: "#FFD700" light-yellow: "#FBF1A9" purple: "#5E2CA5" light-purple: "#A463F2" dark-pink: "#D5008F" hot-pink: "#FF41B4" pink: "#FF80CC" light-pink: "#FFA3D7" dark-green: "#137752" green: "#19A974" light-green: "#9EEBCF" navy: "#001B44" dark-blue: "#00449E" blue: "#357EDD" light-blue: "#96CCFF" lightest-blue: "#CDECFF" washed-blue: "#F6FFFE" washed-green: "#E8FDF5" washed-yellow: "#FFFCEB" washed-red: "#FFDFDF" bluesky: "#1185FE" email: "#555555" facebook: "#3B5998" github: "#6CC644" gitlab: "#FC6D26" hackernews: "#FF4000" instagram: "#E1306C" keybase: "#3D76FF" linkedin: "#0077B5" medium: "#0077B5" mastodon: "#6364FF" pinterest: "#E60023" reddit: "#FF4500" rss: "#FF6F1A" slack: "#E01E5A" stackoverflow: "#F48024" telegram: "#0088CC" tiktok: "#FE2C55" tumblr: "#35465C" whatsapp: "#25D366" xing: "#026466" x-twitter: "#000000" youtube: "#CD201F" typography: body: fontFamily: "Avenir, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif" fontSize: "1rem" fontWeight: "400" lineHeight: "1.5" body-serif: fontFamily: "Georgia, Times, serif" fontSize: "1rem" fontWeight: "400" lineHeight: "1.5" display: fontFamily: "Athelas, Georgia, serif" fontSize: "3rem" fontWeight: "400" lineHeight: "1.25" hero-title: fontFamily: "Avenir, system-ui, sans-serif" fontSize: "2.25rem" fontWeight: "200" lineHeight: "1.25" headline: fontFamily: "Athelas, Georgia, serif" fontSize: "3rem" fontWeight: "400" lineHeight: "1.25" subheadline: fontFamily: "Avenir, system-ui, sans-serif" fontSize: "1.5rem" fontWeight: "100" lineHeight: "1.5" nav: fontFamily: "Avenir, system-ui, sans-serif" fontSize: "1rem" fontWeight: "400" lineHeight: "1.5" label-caps: fontFamily: "Helvetica, Arial, sans-serif" fontSize: "0.875rem" fontWeight: "700" lineHeight: "1.5" letterSpacing: "0.1em" code: fontFamily: "Menlo, Consolas, Monaco, monospace" fontSize: "0.875rem" fontWeight: "400" lineHeight: "2" spacing: none: "0" xs: "0.25rem" sm: "0.5rem" md: "1rem" lg: "2rem" xl: "4rem" xxl: "8rem" xxxl: "16rem" content-gutter: "1rem" content-gutter-wide: "2rem" section-y: "2rem" section-y-large: "4rem" rounded: none: "0px" sm: "0.125rem" md: "0.25rem" lg: "0.5rem" xl: "1rem" pill: "9999px" components: body: backgroundColor: "{colors.neutral}" textColor: "{colors.text}" typography: "{typography.body}" site-header-with-image: backgroundColor: "{colors.overlay-dark}" textColor: "{colors.on-primary}" typography: "{typography.hero-title}" padding: "{spacing.xl}" site-header-plain: backgroundColor: "{colors.primary}" textColor: "{colors.light-silver}" typography: "{typography.hero-title}" padding: "{spacing.lg}" site-navigation: backgroundColor: "{colors.primary}" textColor: "{colors.on-primary}" typography: "{typography.nav}" padding: "{spacing.md}" site-footer: backgroundColor: "{colors.primary}" textColor: "{colors.light-silver}" typography: "{typography.nav}" padding: "{spacing.md}" content-card: backgroundColor: "{colors.surface-raised}" textColor: "{colors.text}" typography: "{typography.body}" padding: "{spacing.lg}" summary-card: backgroundColor: "{colors.surface-raised}" textColor: "{colors.text}" typography: "{typography.body}" padding: "{spacing.lg}" article-title: textColor: "{colors.text-strong}" typography: "{typography.headline}" article-body: backgroundColor: "{colors.surface-subtle}" textColor: "{colors.text}" typography: "{typography.body-serif}" read-more-button: backgroundColor: "{colors.light-gray}" textColor: "{colors.text}" rounded: "{rounded.md}" padding: "{spacing.sm}" read-more-button-hover: backgroundColor: "{colors.moon-gray}" textColor: "{colors.text-strong}" rounded: "{rounded.md}" padding: "{spacing.sm}" tag-pill: backgroundColor: "{colors.surface}" textColor: "{colors.black}" rounded: "{rounded.pill}" padding: "{spacing.md}" contact-form: backgroundColor: "{colors.surface}" textColor: "{colors.black}" typography: "{typography.body}" form-input: backgroundColor: "{colors.light-gray}" textColor: "{colors.black}" padding: "{spacing.md}" form-submit: backgroundColor: "{colors.primary}" textColor: "{colors.on-primary}" padding: "{spacing.md}" code-block: backgroundColor: "{colors.code-background}" textColor: "{colors.code-text}" typography: "{typography.code}" padding: "{spacing.lg}" contextual-menu: backgroundColor: "{colors.light-gray}" textColor: "{colors.text}" padding: "{spacing.md}" social-link: textColor: "{colors.social-icon}" size: "32px" social-link-hover: textColor: "{colors.social-icon-hover}" size: "32px" --- ## Overview Ananke is a production-ready Hugo starter theme whose visual system is intentionally **Tachyons-first**. The default design language is fast, responsive, accessible, and utility-driven: templates compose Tachyons classes directly, while Hugo parameters let sites override key classes and append custom CSS. Treat Tachyons v4 as the baseline. The theme ships the Tachyons bundle first, then code styles, Hugo internal-template styles, social icon styles, and finally Ananke's local overrides. Custom site CSS is appended after those layers, so project-specific decisions should build on the tokens and class hooks documented here rather than replacing the base system wholesale. The default experience is neutral and editorial: an Avenir-like sans-serif shell, serif article bodies, Athelas headlines, black or image-backed headers, near-white page backgrounds, white content cards, and low-chrome links/buttons. Accessibility and performance are more important than decorative complexity. ## Colors ### Token hierarchy * **Primary (`#000000`)** is the default structural color for headers, navigation, footers, and primary submit actions. * **Secondary (`#555555`)** maps to Tachyons `mid-gray` and is the default reading color for most text via the `text_color` parameter. * **Tertiary (`#357EDD`)** maps to Tachyons `blue` and is available for links and accent states, though many theme links inherit black/gray and rely on `dim` or hover utilities. * **Neutral (`#F4F4F4`)** maps to Tachyons `near-white` and is the default body background through `avenir bg-near-white`. * **Surface (`#FFFFFF`)** is used by summary cards and content blocks. * **Border (`#CCCCCC`)** maps to Tachyons `moon-gray`, used for low-contrast separators and bordered buttons. ### Tachyons defaults Use the full Tachyons color vocabulary when adding template classes: grayscale (`black`, `near-black`, `dark-gray`, `mid-gray`, `gray`, `silver`, `light-silver`, `moon-gray`, `light-gray`, `near-white`, `white`), accent colors (`dark-red`, `red`, `light-red`, `orange`, `gold`, `yellow`, `purple`, `pink`, `green`, `navy`, `blue`), and washed backgrounds (`washed-blue`, `washed-green`, `washed-yellow`, `washed-red`). Prefer these named utilities over one-off hex values in templates. Tachyons opacity colors such as `black-60`, `white-90`, and `white-70` are part of the operational design even though the machine-readable token schema stores solid sRGB hex values. Use them for overlays and text-on-image hierarchy: default cover dimming is `bg-black-60`, hero title text is `white-90`, and supporting hero text is `white-80`. ### Ananke additions Ananke adds social-network brand colors through configuration. Follow-link hover colors are generated at build time from `params.ananke.social.networks.*.color`; use those configured colors instead of hard-coding social brand values in templates. Base social icons are `#BABABA`, with a neutral hover fallback of `rgb(107, 114, 128)`. Site authors can override structural color classes with Hugo params such as `background_color_class`, `cover_dimming_class`, `text_color`, and `body_classes`. These params should contain Tachyons utility classes by default. ## Typography Tachyons typography utilities define the scale and families. Ananke's defaults layer these choices on top: * **Body shell:** `avenir` with `bg-near-white` on the `
`. * **Article body:** `serif f4 lh-copy nested-links`, overridable with `post_content_classes`. * **Headlines:** `athelas` for article and summary headings; site hero headings use lightweight sans-serif (`fw2`). * **Navigation:** lightweight sans-serif with responsive sizes (`f5 f4-ns` for menu items and `f3 fw2` for the site title/logo text). * **Metadata:** `helvetica tracked ttu` and small text sizes for section labels, dates, reading time, and word count. * **Code:** dark preformatted blocks with `.875rem` code text and generous line height. Keep typography sparse. Use Tachyons font-size utilities (`f1` through `f7`, `f-subheadline-l`), line-height utilities (`lh-title`, `lh-copy`), font-weight utilities (`fw1`, `fw2`, `fw4`, `b`), and tracking utilities (`tracked`, `ttu`) before adding custom CSS. ## Layout Ananke uses Tachyons spacing, width, flexbox, and breakpoint suffixes as its layout language. ### Global shell * Base layout: ``, a header block, `