• Stars
    star
    197
  • Rank 190,655 (Top 4 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created almost 3 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The source for https://themes.gohugo.io

Hugo themes

This repository contains a list of themes developed by the Hugo community, which can be accessed at themes.gohugo.io. For any queries, refer to the FAQ section below.

Netlify Status

Adding a theme

You can use the command hugo new theme THEME_NAME to create a new theme.

Then, from the root of your theme's repository, you need to perform the following steps:

  • Create a config.toml file that specifies the Hugo version(s) supported by your theme. Also, add a theme.toml file and include some relevant metadata about the theme (see below).
  • Add a descriptive README.md (see below).
  • Include a screenshot image in /images/screenshot.{png,jpg} and a thumbnail image in /images/tn.{png,jpg} (see below).
  • Push the changes.

After making your theme available online, you can include it here by following the steps mentioned below.

  1. Clone this repository
    git clone https://github.com/gohugoio/hugoThemesSiteBuilder.git
  2. Add your theme's URL (e.g. github.com/user/my-blog-theme) in themes.txt in lexicographical order.
  3. Write a meaningful commit message (e.g. Add theme my-blog-theme).
  4. Create a pull request(PR) and ensure that deploy preview looks good.

The deploy preview is automatically updated whenever there is a change in the PR content. For instance, if you pushed a commit to resolve an issue in your theme, such as a missing thumbnail image, Netlify will re-deploy the website with the updated changes from your PR. You can track the deployment status in the Netlify comment of your PR.

Note: The themes site is scheduled to rebuild every day at UTC 00:00 (HH:MM). Any new theme addition or changes to existing theme will be reflected on the website after the next scheduled rebuild is complete.

Theme configuration

Your theme should have a theme.toml file in the root directory. This file should contain relevant metadata about the theme and its creator(s). It's important to note that only the theme.toml file format is supported. theme.yaml or theme.json files are not supported currently.

name = "Theme Name"
license = "MIT"
licenselink = "Link to theme's license"
description = "Theme description"

# The home page of the theme, where the source can be found.
homepage = "https://github.com/gohugoio/gohugoioTheme"

# If you have a running demo of the theme.
demosite = "https://gohugo.io"

tags = ["blog", "company"]
features = ["some", "awesome", "features"]

# If the theme has multiple authors
authors = [
  {name = "Name of author", homepage = "Website of author"},
  {name = "Name of author", homepage = "Website of author"}
]

# If the theme has a single author
[author]
    name = "Your name"
    homepage = "Your website"

# If porting an existing theme
[original]
    author = "Name of original author"
    homepage = "His/Her website"
    repo = "Link to source code of original theme"

Your theme should also have a configuration file (such as config.toml) that specifies the Hugo versions supported by the theme.

[module]
  [module.hugoVersion]
    extended = true
    min = "0.55.0"
    max = "0.84.2"

You may omit the fields extended, min, or max.

Theme maintainers are requested not to delete Git references or tags from your theme's repository. Doing so may cause issues with fetching specific version of a module, leading to errors.

Media

Screenshots are used as theme previews in the list. They should feature a theme's layout (without any browser chrome or device mockups) and have the following dimensions:

  • Both the Thumbnail and Screenshot must be in 3:2 aspect ratio.
  • Screenshot (screenshot.png or screenshot.jpg) should have a dimension of at least 1500ร—1000 in pixels.
  • Thumbnail (tn.png or tn.jpg) should have a dimension of at least 900ร—600 in pixels.
  • Media must be located in:
    • [ThemeDir]/images/screenshot.{png,jpg}
    • [ThemeDir]/images/tn.{png,jpg}

Additional media may be provided in the same directory.

README.md

Your theme's README file (which should be written in Markdown and called README.md) serves a two purposes. It's content appears in two places, which are:

  1. On your theme's detail page on themes.gohugo.io website.
  2. On your theme's regular main page at GitHub/GitLab (as usual).

To make your theme more accessible to users across the globe, it would be helpful if you could include an English translation of the README, at the very least.

Note: If you add screenshots to the README, please make sure to use absolute file paths instead of relative ones (like /images/screenshot.png). Relative paths work great on GitHub/GitLab, but they don't correspond to the directory structure of themes.gohugo.io website. Therefore, browsers will not be able to display screenshots if relative paths are used.

Criteria for acceptance of a theme

1. Forks must be notably different

A theme based on an existing Hugo theme (aka a fork) must be notably different for it to be considered a separate theme altogether. In such cases, you should list few arguments in README.md file mentioning why your theme should be included.

The definition of notably different can be subjective, but in most cases, it should be clear. Changing a few colors or making a few style changes, for example, does not result in a notably different theme. It would be better if you submit a pull request to the original theme to include your proposed changes.

2. LICENSE

Themes in this repository are accepted only if they come with an Open Source license that allows for the theme to be freely used, modified, and shared. To view a list of popular licenses, you can visit Open Source Initiative website.

2.1 License of derivative works

If you are porting an existing theme from another platform to Hugo, or if you're forking an existing Hugo theme to incorporate new features and plan to submit the derivative work; it's essential to ensure that the original theme's license requirements are met.

In case the original theme lacks an Open Source license, you should try to obtain one from the creator of the original work. You cannot add a license on your own. Such derivative work where license of the original work is unclear, will not be accepted.

In any other case, if a submission is found to be in violation of licence of the original work, it will be rejected without further discussion.

3. Paid themes

Themes that require payment are not accepted. Themes with READMEs set up as marketing campaigns for other products (e.g. paid version of a free theme) will not be accepted.

Outdated themes

According to our current policy, themes that have not been updated within the last 3 years are deemed outdated and are removed. Even if your theme is fully functional, it is recommended that you periodically check and confirm its compatibility with the latest version of Hugo.

FAQ

Question: My theme is flagged as 'old' when it's been updated recently.

Answer: We use Hugo Modules to manage the themes -- which is backed by Go Modules. If you have one or more tagged releases (e.g. v1.0.0), we will choose the last version within the current major version. To get rid of that warning you need to tag a new release and wait for us to rebuild the theme site. Note that for unversioned themes, the latest commit gets picked.

Question: Can I submit a theme with a repository hosted on git.sr.ht (or any other platform for that matter), given that themes.txt contains links to github.com and gitlab.com?

Answer: Yes, it would be accepted if the repository hosted on git.sr.ht (or any other platform) is supported by Go Modules. To confirm the same, you can create a pull request and check if the build process succeeds.

More Repositories

1

hugo

The worldโ€™s fastest framework for building websites.
Go
71,900
star
2

hugoThemes

A curated directory of Hugo themes
Shell
1,747
star
3

hugoDocs

The source for https://gohugo.io/
CSS
1,007
star
4

hugoBasicExample

280
star
5

gohugoioTheme

A [wip] theme for the gohugo.io home page, docs and theme sites.
CSS
99
star
6

hugo-mod-jslibs

A collection of JS libraries that works great with Hugo.
HTML
47
star
7

hugo-mod-bootstrap-scss

Packages Bootstrap SCSS (v4 and v5) as a Hugo Module
SCSS
38
star
8

hugoThemesSite

The source for https://themes.gohugo.io.
HTML
32
star
9

hugo-mod-heroicons

Work In Progress: Provides Heroicons as a simple to use Hugo Module
17
star
10

hugo-mod-bootstrap-scss-v4

Bootstrap SCSS v4 packaged as a Hugo Module
10
star
11

gohugoioTheme2

Work in progress.
HTML
10
star
12

hugo-goldmark-extensions

Work in progress.
Go
10
star
13

hugoTestProjectJSModImports

Test project used for integration testing.
JavaScript
9
star
14

hugoreleaser

Build, archive and release.
Go
8
star
15

hugo-mod-jslibs-dist

Thin Hugo Module wrappers around some popular JS libs' distribution source code.
JavaScript
7
star
16

hugo-mod-bootstrap-scss-v5

Bootstrap SCSS v5 packaged as a Hugo Module
4
star
17

hugoTestModules1_darwin

Some autogenerated modules used in Hugo tests.
3
star
18

localescompressed

The locales from https://github.com/gohugoio/locales in one package/struct.
Go
3
star
19

hugoTestModules1_linux

Some autogenerated modules used in Hugo tests.
2
star
20

netlify-test-site

Just a test site to test/debug Netlify issues.
JavaScript
2
star
21

hugoTestModules1_windows

Some autogenerated modules used in Hugo tests.
2
star
22

.github

Default community health files
1
star
23

hugoTestModule2

Module used in Hugo integration testing.
JavaScript
1
star
24

hugoTestModulesJS

Test project used for integration testing.
JavaScript
1
star
25

hugoreleaser-plugins-api

Plugins API for https://github.com/gohugoio/hugoreleaser
Go
1
star
26

hugo-mod-bin-dartsass

Work in progress
1
star
27

testmodBuilder

Some helper scripts used for Hugo testing.
Go
1
star
28

hugoreleaser-archive-plugins

Archive Plugins for https://github.com/gohugoio/hugoreleaser
Go
1
star