HugoBlog

hugo-classless — Hugo Blog Template

By mozanunal

Hugo Classless is a minimal Hugo blog theme that outputs semantic HTML without preset classes, and can be paired with any classless CSS framework to switch appearance.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-03View source

What stands out

A quick read of the recorded project description.

01

Outputs semantic HTML without preset classes, compatible with any classless CSS framework

02

Navigation bar offers a three-state toggle: light, dark, and follow system, with the choice persisted to localStorage

03

Demo mode allows real-time switching between different CSS frameworks via a page dropdown

04

Configure navigation menu, available theme list, and light/dark stylesheets via hugo.yml

05

Built-in KaTeX math support, requiring enablement in configuration and math: true in page front matter

06

Uses semantic tags such as header, main, article, nav, and time

Template Details

Hugo Classless is a Hugo blog theme whose core idea is to output pure semantic HTML without preset classes or fixed styles. It does not bind to a particular visual design; instead, it leaves styling decisions to external classless CSS frameworks such as Pico.css, Water.css, Simple.css, Sakura.css, New.css, and others.

The theme is configured via hugo.yml. In production mode, you can specify themeBase, themeLight, and themeDark to point to CSS files in the assets directory. In demo mode, you can configure a themes list to provide a dropdown in the navigation bar for real-time switching between different frameworks, making it easy to compare how the same content appears under different styles.

Built-in features include: a three-state light/dark toggle in the navigation bar (force light, force dark, follow system), with the selection saved in localStorage and falling back to prefers-color-scheme when JavaScript is unavailable; math typesetting via KaTeX; and use of semantic tags such as header, main, article, nav, and time.

Limitations: the theme itself provides no visual design; appearance depends entirely on the chosen classless CSS framework. The theme does not include common blog extensions such as comments, search, or pagination. The frameworks listed in the example site are only optional style sources, not built-in dependencies of the theme.

HugoBlog

Is it right for your project?

Use Cases

  • Quickly compare the appearance of classless frameworks like Pico.css, Water.css, and Simple.css using the same content
  • Want a Hugo blog that is not bound to a specific visual style and outputs only clean semantic HTML
  • Personal sites that need light/dark mode switching and follow system preference
  • Technical blogs that need to typeset mathematical formulas in articles

Suitable For

  • Users familiar with Hugo who are willing to choose or write their own CSS
  • Bloggers who prefer minimalism, no preset styles, and content structure first
  • Projects that want to use a classless CSS framework as the site's visual foundation

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    You can add the theme to themes/hugo-classless via git submodule add, and set theme: 'hugo-classless' in hugo.yml

  2. 2

    Alternatively, download the ZIP from Releases, extract it to the themes/hugo-classless directory, and configure the theme

  3. 3

    In production mode, set themeBase, themeLight, and themeDark in params to point to CSS files in assets

  4. 4

    In demo mode, list at least two themes in params.themes to enable the real-time switching dropdown, with the first item as default

  5. 5

    To enable KaTeX, set markup.katex.enabled: true in the configuration and set math: true in the page front matter

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • The exampleSite preconfigures multiple third-party classless CSS frameworks (such as Pico.css, Water.css, Simple.css, etc.). These frameworks are independently licensed by their respective projects; verify their license terms before use.
  • The demo mode configuration example loads external CSS frameworks via the jsDelivr CDN. Actual deployment will depend on external CDN services, which may involve third-party availability and privacy costs.
  • Math formula typesetting depends on KaTeX, which must be explicitly enabled via markup.katex.enabled: true in the configuration and math: true in the page front matter; otherwise it will not take effect.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; they cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

The `exampleSite` comes pre-configured with a wide variety of popular classless frameworks.

Original README

url: "https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"

Original README

If you have enabled KaTeX in your configuration (`markup.katex.enabled: true`),

Original README
https://github.com/mozanunal/hugo-classless/blob/main/LICENSEhttps://github.com/mozanunal/hugo-classless/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
Hugo Themes
Documentation and maintenance reference score
More documented · 87 / 100
Technologies
Hugo
Website type
Blog
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-02-07
Screenshot last checked
2026-10-03

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Hugo as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: [email protected] · 2026-10-04

Inspect the recorded source material

SHA-256: b6424591d3bcacc3d20822acf69a19b634651f69a5889cb7afb1c690a0911ba6

2026-10-03T22:44:51.588Z

Source file / repository
[![Netlify Status](https://api.netlify.com/api/v1/badges/a6ea1653-ceea-42a1-a6d0-7dc005c86441/deploy-status)](https://app.netlify.com/projects/hugo-classless/deploys)
[![Build and Deploy](https://github.com/mozanunal/hugo-classless/actions/workflows/ci.yml/badge.svg)](https://github.com/mozanunal/hugo-classless/actions/workflows/ci.yml)

[View the Live Demo on Netlify](https://hugo-classless.netlify.app/)

# Hugo Classless Theme

Hugo Classless is not just another theme; it's a flexible foundation designed to
work with **any classless CSS framework**. Instead of locking you into one
design, it provides clean, semantic HTML, allowing you to get a beautiful
website up and running in minutes by simply choosing a stylesheet.

![Screenshot of the Hugo Classless Theme](https://github.com/user-attachments/assets/9423caf5-ff25-4b84-813c-e01e3528395d)

---

## The "Classless" Philosophy

Most themes come with their own specific styling. This theme does the opposite.
It generates pure, well-structured HTML without any preset classes. This means
you can point it to a classless CSS framework like
[Pico.css](https://picocss.com/), [Water.css](https://watercss.kognise.dev/),
[Simple.css](https://simplecss.org/), or **any other you prefer**, and the site
will instantly adopt its appearance.

The best way to understand this is to try it yourself! Use the **live
theme-switcher** on the demo site to see how the same content dramatically
changes its look with different frameworks.

## Live Demo

[View the Live Demo on Netlify](https://hugo-classless.netlify.app/)

## Installation

You can install the `hugo-classless` theme in two ways:

### Method 1: As a Git Submodule (Recommended)

1.  From the root of your Hugo site, add the theme as a submodule:
    ```bash
    git submodule add https://github.com/mozanunal/hugo-classless.git themes/hugo-classless
    ```

2.  Add the theme to your `hugo.yml` file:
    ```yaml
    theme: 'hugo-classless'
    ```

### Method 2: Manual Installation

1.  Download the latest release ZIP file from the [Releases](https://github.com/mozanunal/hugo-classless/releases) page.
2.  Extract the contents into the `themes/hugo-classless` directory in your site's root.
3.  Add the theme to your `hugo.yml` file.

## Features

- **Plug & Play Styling:** By using pure semantic HTML, the theme is compatible
  with any classless CSS framework out of the box.
- **Dark / Light / System Toggle:** A built-in navbar toggle lets users switch
  between light mode, dark mode, and automatic (system preference). Each theme
  can optionally provide a separate dark stylesheet via config.
- **Live Theme-Switcher:** The perfect tool for demonstrating the power of
  classless CSS. Add a dropdown to your site to switch between your favorite
  frameworks on the fly.
- **Fully Configurable:** Control every key aspect, from the navigation menu to
  the list of available themes, right from your `hugo.yml` file.
- **Minimal & Fast:** No bloated JavaScript or complex dependencies. Just clean
  HTML and the style you choose.
- **Math Typesetting:** Built-in support for beautiful mathematical formulas
  using KaTeX.
- **SEO Friendly:** Uses proper semantic tags (`<header>`, `<main>`,
  `<article>`, `<nav>`, `<time>`) for better search engine indexing.

## Configuration

This theme is configured entirely through your site's `hugo.yml` file. Below is
a basic example to get you started.

### Basic Configuration Example

```yaml
# hugo.yml
baseURL: "https://example.org/"
title: "My Awesome Website"
theme: "hugo-classless"

params:
  author: "John Doe"
  description: "A personal website about cool things."

  # --- Production mode (single theme) ---
  # Point to a CSS file inside assets/.
  # Optionally add a dark stylesheet for the dark/light toggle.
  themeBase: "css/base.css"
  themeLight: "css/light.css"
  themeDark: "css/dark.css"

  # --- Demo mode (theme-switcher) ---
  # Define two or more themes to enable the live switcher dropdown.
  # The first one is the default. Each entry can have an optional
  # "dark" URL to enable the dark/light mode toggle for that theme.
  # Local paths (no "http" prefix) are resolved from assets/ and
  # processed through Hugo's asset pipeline (minified + fingerprinted).
  # themes:
  #   - name: "Pico"
  #     url: "https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css"
  #   - name: "Water.css"
  #     url: "https://cdn.jsdelivr.net/npm/water.css@2/out/water.min.css"
  #     dark: "https://cdn.jsdelivr.net/npm/water.css@2/out/dark.min.css"
  #   - name: "HTML only"
  #     url: ""

menu:
  main:
    - name: "Home"
      pageRef: "/"
      weight: 10
```

### Dark Mode

The theme includes a three-state toggle button in the navbar:

- **Sun icon** — forced light mode
- **Moon icon** — forced dark mode
- **Monitor icon** — follows the operating system preference (default)

The user's choice is persisted in `localStorage`. Without JavaScript the
site falls back to the system preference via `prefers-color-scheme`.

To enable the toggle for a theme, provide a separate dark stylesheet:

**Production mode:**

```yaml
params:
  themeBase: "css/base.css"
  themeLight: "css/light.css"
  themeDark: "css/dark.css"
```

**Demo mode (theme-switcher):**

```yaml
params:
  themes:
    - name: "Classless.css"
      url: "css/light.css"
      dark: "css/dark.css"
    - name: "Water.css"
      url: "https://cdn.jsdelivr.net/npm/water.css@2/out/water.min.css"
      dark: "https://cdn.jsdelivr.net/npm/water.css@2/out/dark.min.css"
```

Themes without a `dark` entry still work — the toggle will continue to
control the syntax-highlight stylesheets and the `data-theme` attribute on
`<html>`.

## Included Frameworks

The `exampleSite` comes pre-configured with a wide variety of popular classless
frameworks. You can use any of these in your own `themes` list or explore them
to find your favorite.

- [Classless.css](https://classless.de/)
- [Pico.css](https://picocss.com/)
- [Water.css](https://watercss.kognise.dev/)
- [Sakura.css](https://oxal.org/projects/sakura/)
- [Simple.css](https://simplecss.org/)
- [Almond.css](https://almond.css.alvaromontoro.com/)
- [New.css](https://newcss.net/)
- [Missing.css](https://missing.style/)
- [Bolt.css](https://boltcss.com/)
- [PerfectMFWS](https://perfectmotherfuckingwebsite.com/)

Simply copy the entry from the
[exampleSite's hugo.yml](https://github.com/mozanunal/hugo-classless/blob/main/exampleSite/hugo.yml)
and paste it into your own configuration file.

## Creating Content

To create a new post, run the following command from your site's root:

```bash
hugo new posts/my-first-post.md
```

Remember to set `draft: false` in the front matter of the file when you are
ready to publish it.

## Using Math Typesetting

If you have enabled KaTeX in your configuration (`markup.katex.enabled: true`),
you can write mathematical formulas in your Markdown files by setting
`math: true` in the page's front matter.

- **Inline math:** Wrap your formula in `\\(` and `\\)`.
- **Block math:** Wrap your formula in `\\[` and `\\]`.

## Contributing

Found a bug or have a suggestion? Please
[open an issue](https://github.com/mozanunal/hugo-classless/issues). Pull
requests are also welcome!

## License

This theme is licensed under the [MIT License](LICENSE).
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.