Minimal dark theme for Hugo, MIT licensed, repository includes a demo site
hugo-theme-nightfall — Hugo Starter Template
By lordmathis
Nightfall is a minimal dark theme for Hugo, installed via Hugo Module or manual clone, offering configuration for author information, social links, color scheme, post metadata, and pagination.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Supports installation via Hugo Module or manual clone to themes/nightfall
Configurable author information, social links, opening external links in new tabs, and date display format
params.styles.color supports preset colors (blue, orange, green, red) or custom hex colors
Post metadata (date, reading time, tags, authors, categories) supports site-level and per-post front matter overrides, with false taking precedence
Provides configuration entries for menus, site/post descriptions, footer HTML, and custom head
Template Details
Nightfall is a Hugo theme maintained by lordmathis, positioned as a minimal dark style, with the repository under the MIT license. The theme is imported as a Hugo Module, or manually cloned to themes/nightfall and set as theme = "nightfall" in hugo.toml. Building requires Hugo and dart-sass; the README states that since v0.146.0 the theme adapts to Hugo's new template system, and building the site requires Hugo >= 0.146.0. If you previously made overrides under /layouts, you need to migrate to the new directory structure (move _default content to /layouts, rename _markup, _partials, _shortcodes, and change index.html to home.html).
Configuration is centralized in the params section of hugo.toml: you can set user, hostname, author name/avatar/avatar size/email/avatar priority display, openLinksInNewTab controls whether external links open in a new tab, displayDateFormat customizes the date display format, and [pagination] pagerSize adjusts the number of posts per page (default 10). Social links are configured via the [[params.social]] array, supporting fields such as name, url, icon, target, aria, rel; to use icon fonts, you must include them yourself in layouts/partials/custom-head.html.
For appearance and content, params.styles.color can specify a hex color or preset colors blue, orange, green, red, with blue as default. Post metadata (tags, published date, reading time, authors, categories) is controlled by the showMetadata master switch and showPublishedDate, showReadingTime, showTags, showAuthors, showCategories, which can be overridden at the site level or in individual post front matter, with the rule "false takes precedence"; when showMetadata is false, all are hidden. Site description uses params.sitedescription, and individual post description uses the front matter description; menus are added via [[menu.header]]; footer text is customized with params.footerHtml, and the content is rendered inside a span tag.
Limitations: the theme itself does not include third-party resources such as icon fonts, which must be included separately; licenses for demo images, fonts, icons, and other assets need to be checked individually, and the MIT license only covers the code of this version; external services such as domain and hosting may incur separate charges.
Is it right for your project?
Use Cases
- Building a dark reading interface for a personal blog
- Constructing a content site with Hugo focused on post lists and single-page reading
- Writing scenarios that require site-level unified control of post metadata display while allowing per-post overrides
- Sites that want to display author information via social links and a custom footer
Suitable For
- Developers using Hugo who accept the build requirement of Hugo >= 0.146.0
- Bloggers who prefer dark, minimal typography and are willing to configure via hugo.toml
- Users who need MIT-licensed code and can independently verify third-party asset licenses
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Install Hugo and dart-sass; since v0.146.0, building the site requires Hugo >= 0.146.0
- 2
In hugo.toml, import github.com/LordMathis/hugo-theme-nightfall via [module] imports, or git clone to themes/nightfall and set theme = "nightfall"
- 3
If you previously made overrides under /layouts, migrate to the new template system: move _default content to /layouts, rename _markup/_partials/_shortcodes, and change index.html to home.html
- 4
Social icons require you to include the icon font link yourself in layouts/partials/custom-head.html
- 5
See the repository exampleSite/hugo.toml for a complete configuration example; licenses for demo images, fonts, icons, and other third-party assets need to be checked individually
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis 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 imply that 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 liability limitations are governed by the original license and applicable law.
Additional costs & items to verify
- Building a site with this theme requires installing Hugo and dart-sass yourself; the theme does not include them.
- Since this version, building the site requires Hugo version 0.146.0 or higher; lower versions cannot build properly.
- If you previously made template overrides in the /layouts directory, after upgrading you must migrate the directory structure to the new template system, otherwise custom layouts will fail.
- Social link icons depend on icon fonts, which you must include via a font link in custom-head.html; the theme does not bundle this resource.
- 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 domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Install [Hugo](https://gohugo.io/installation/) and **[dart-sass](https://gohugo.io/functions/resources/tocss/#dart-sass)**.
Original README
building the site now requires Hugo **>= 0.146.0**
Original README
If you have made manual layout modifications (overrides in your `/layouts` folder), you will need to adjust them:
Original README
https://github.com/lordmathis/hugo-theme-nightfall/blob/main/LICENSEhttps://github.com/lordmathis/hugo-theme-nightfall/blob/main/README.mdTo use icons for social links, you also need to add the link to icon font to custom-head.html
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. 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 · 83 / 100
- Technologies
- Hugo
- Website type
- Starter
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-03-21
- Screenshot last checked
- 2026-10-02
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.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 4f2bd9b9c680fe0ec14412969792b6cafe1d00fb86f233b8cddad3097a89b3e1
2026-10-02T22:21:03.915Z
Source file / repository# Nightfall
[](https://app.netlify.com/sites/hugo-theme-nightfall/deploys)
Nightfall is a minimal dark theme for Hugo. [Demo](https://hugo-theme-nightfall.netlify.app)



## Get the theme
Install [Hugo](https://gohugo.io/installation/) and **[dart-sass](https://gohugo.io/functions/resources/tocss/#dart-sass)**.
Import as [hugo module](https://gohugo.io/hugo-modules/use-modules/#use-a-module-for-a-theme) in `hugo.toml`:
```toml
[module]
[[module.imports]]
path = 'github.com/LordMathis/hugo-theme-nightfall'
```
OR
Import manually:
1. `git clone https://github.com/LordMathis/hugo-theme-nightfall themes/nightfall`
2. Add `theme = "nightfall"` in your `hugo.toml`:
## Hugo Theme Update Notice (v0.146.0)
The theme has been adapted for Hugo’s new template system starting with version **0.146.0**.
With this theme update, building the site now requires Hugo **>= 0.146.0**.
If you have made manual layout modifications (overrides in your `/layouts` folder), you will need to adjust them:
1. All files that were previously located in `/layouts/_default` must be moved directly to `/layouts`. The `_default` subfolder can be deleted if it is empty.
2. If you had a `/layouts/_default/_markup` folder, this must also be moved to `/layouts/_markup`.
3. If you had `partials` or `shortcodes` as subfolders within `/layouts`, they must be renamed to `_partials` and `_shortcodes`.
4. If there is an `index.html` under `/layouts`, it must be renamed to `home.html`.
For more details, please refer to the Hugo documentation:
👉 [Hugo New Template System Overview](https://gohugo.io/templates/new-templatesystem-overview/)
## Configuration
For full example check `exampleSite/hugo.toml`
Add these params to your `hugo.toml`
```toml
[params]
user = "hello"
hostname = "gohugo.io"
[params.author]
name = "Mr Hugo"
avatar = "/avatar.png"
avatarSize = "size-m"
email = "[email protected]"
avatarFirst = false
```
### External Links
You can configure external links to open in new tabs by adding this parameter:
```toml
[params]
openLinksInNewTab = true
```
When enabled, all external links (links which using http(s) in the markdown-destination) will automatically open in a new tab. Internal links will continue to open in the same tab.
### Configurable Date Format
You can configure the Date-Format for display
default:
```toml
[params]
displayDateFormat = "2006-01-02"
```
example in german:
```toml
[params]
displayDateFormat = "02.01.2006"
```
### Pagination for Posts
The default is 10 per page. To change this adding this to the config:
```toml
[pagination]
pagerSize = 3
```
### Social links
You can also add social links. To use icons for social links, you also need to add the link to icon font to custom-head.html
```toml
[[params.social]]
key = 0
name = "github"
url = "https://github.com/gohugoio"
icon = "fa-brands fa-github" # Add link to your icon font to `layouts/partials/custom-head.html`
target = "_blank" # Defines your target option in a-href. _blank for a new Tab for example.
aria = "GitHub Profile" # Define the aria label for accessibility like page reader - this is better for your SEO
[[params.social]]
key = 1
name = "twitter"
url = "https://www.example.com"
[[params.social]]
key = 2
name = "mastodon"
url = "https://www.example.com"
rel = "me" # You can also add rel to social link
[[params.social]]
key = 3
name = "email"
url = "mailto:[email protected]"
```
### Color
You can customize post title and link color
```toml
[params.styles]
color = "orange"
```
Specify your own color with hex value or use one of the predefined colors (blue, orange, green or red). The default color is blue. Best contrast is provided by orange.
### Post metadata
Post metadata such as tags, published date, reading time, authors, and categories can be displayed on post pages. The theme provides flexible control over metadata display with both global and per-post settings.
#### Global Metadata Settings
Add these parameters to your `hugo.toml` to control metadata display site-wide:
```toml
[params]
# Global metadata display settings
showMetadata = true # Master switch for all metadata display (default: true)
showPublishedDate = true # Show published date on post page (default: true)
showReadingTime = true # Show reading time on post page (default: true)
showTags = true # Show tags on post page (default: true)
showAuthors = true # Show authors on post page (default: true)
showCategories = true # Show categories on post page (default: true)
# Legacy settings (still supported for backward compatibility):
# published = true # Use showPublishedDate instead (recommended)
# readingTime = true # Use showReadingTime instead (recommended)
```
#### Per-Post Metadata Control
You can override any global setting for individual posts by adding the same parameters to the post's frontmatter:
```yaml
---
title: 'My Post'
date: 2024-01-15
tags: ['hugo', 'theme']
categories: ['web development']
# Override global settings for this post
showMetadata: true # Master switch
showPublishedDate: true # Hide published date for this post
showReadingTime: true # Hide reading time for this post
showTags: true # Show tags
showAuthors: true # Hide authors
showCategories: true # Show categories
---
```
#### Setting Precedence
The metadata display follows a simple "false wins" approach:
1. Default behavior: All metadata is shown (true)
2. Any false setting hides the metadata
3. Master switch override: If showMetadata is false, no metadata is shown regardless of individual settings
#### Master Switch
The `showMetadata` setting acts as a master switch. If set to `false`, no metadata will be displayed regardless of other individual settings. This is useful for pages like "About" where you don't want any metadata shown.
### Description
To add a site wide description, add `sitedescription` to `hugo.toml`. For example:
```toml
[params]
sitedescription = 'Your website description'
```
You can also add a description to individual posts in you website by adding `description` to the front matter. For example:
```toml
+++
title = 'This is the post title'
draft = false
date = 2024-01-23
description = 'This is the description'
+++
```
### Menu
To add a menu item add `[[menu.header]]` item to `hugo.toml`. For example:
```toml
[menu]
[[menu.header]]
name = "posts"
weight = 0
url = "/posts"
```
### Custom Head
To use custom icons, css, js or other resources create `layouts/partials/custom-head.html` and add your links there.
### Custom footer
You can customize the text displayed in footer with `footerHtml` in `[params]` section. The value will be rendered inside `<span>` tag. For example:
```toml
[params]
footerHtml = 'CC-0, Built with <a href="https://gohugo.io" class="footerLink">Hugo</a> and <a href="https://github.com/LordMathis/hugo-theme-nightfall" class="footerLink">Nightfall</a> theme'
```
Explore similar templates
Compare previews and descriptions within the same stack and category.

hugo-xmin
hugo-xmin is an extremely minimal Hugo theme written by Yihui Xie for template beginners. HTML and CSS total about 140 lines, with no external dependencies, and it uses the MIT license.
Hugo · Starter

hugo-theme-gallery
A Hugo Extended photo gallery theme that organizes images with Page Bundles, automatically generating album lists and gallery pages with a Justified layout and PhotoSwipe lightbox.
Hugo · Starter

reveal-hugo
reveal-hugo is a Hugo theme that converts Markdown content into Reveal.js-based HTML presentations. It supports slide separation with `---`, shortcodes for fragments, slides, sections, notes, Markdown, and MathJax, and organizes content as root or section presentations with order controlled by weight.
Hugo · Starter

anatole
Anatole is a minimalistic two-column Hugo theme ported from farbox-theme-Anatole, featuring dark mode, multilingual and RTL support, and optional portfolio, comments, analytics, KaTeX, and Mermaid integrations. It suits personal blogs, portfolios, or documentation sites built with Hugo.
Hugo · Starter

hugo-theme-diary
A Hugo diary-style theme ported from the Hexo theme Journal, with a grid homepage for essays and daily notes. It supports six languages, dark mode, table-of-contents scroll positioning, reading time, code highlighting, and configurable sidebar, fonts, and colors.
Hugo · Starter

risotto
risotto is a minimalist, responsive Hugo theme inspired by terminal ricing aesthetics. It uses semantic HTML and pure CSS with no JavaScript, and its layout relies on CSS Grid for native responsiveness without manual breakpoints.
Hugo · Starter
