- 100/100 Google PageSpeed Insights
- Lazy loading and JS defer
- PostCSS + PurgeCSS
- Responsive images and WebP
- SEO friendly
- Accessibility friendly
- Blocks
- Forms (Netlify or other)
- Responsive design
- Search
- Shortcodes
hugolify-theme provides layouts, content types, i18n and archetypes only — no CSS, no JavaScript.
Styling and JS are provided by a separate styling module, declared in the site config. This makes it possible to swap the entire CSS/JS layer without touching the theme or templates.
| Module | CSS | JS |
|---|---|---|
| hugolify-theme-bootstrap | Bootstrap 5 + SASS | Bootstrap 5 + Vanilla JS |
| hugolify-theme-design-system (wip) | Vanilla CSS / Design tokens | Vanilla JS |
You can build your own styling layer in two ways:
-
As a Hugo module (
hugolify-theme-tailwind,hugolify-theme-bulma…) — sharable, versionable, swappable via the site config. -
Directly in the site — add
assets/sass/(orassets/scss/orassets/css/) andassets/js/to your project. Hugo merges assets from all sources, so your files take priority over the module.
The contracts to respect in either case:
- CSS classes used by templates are semantic (
btn,col-small,modal,badge-primary…) — no framework-specific names - JS hooks are
js-*CSS classes — nodata-framework-*attributes - JS entry point:
assets/js/main.js - SASS entry point:
assets/sass/main.sass(ormain.scssormain.css)
- Chart.js
- CookieConsent
- LeafletJS OpenStreetMap
- SplideJS Carousel
- Tobii Lightbox
- Pagefind
- Rellax parallax
- English
- French
Use the Hugolify starter template:
https://github.com/Hugolify/hugolify-template/
Or add as Hugo modules. Edit config/_default/module.yaml:
imports:
- path: github.com/hugolify/hugolify-theme/v2
- path: github.com/hugolify/hugolify-theme-bootstrapTo switch styling module, replace the second import:
imports:
- path: github.com/hugolify/hugolify-theme/v2
- path: github.com/hugolify/hugolify-theme-design-systemIn v1, Bootstrap (CSS and JS) was bundled directly inside hugolify-theme. In v2, the theme is framework-agnostic — styling is provided by a separate module declared explicitly in the site config (see Install above).
Other breaking changes:
- JS hooks:
data-bs-toggle/target→class="js-*"+data-target - Grid classes:
col-md-*→col-small,col-medium,col-large,col-xsmall - Badge states:
text-bg-*→badge-*
Hugolify is free for personal or commercial projects (MIT license)
