Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documents the body_class parameter #1541

Merged
merged 10 commits into from
Aug 7, 2024
44 changes: 44 additions & 0 deletions userguide/content/en/docs/adding-content/lookandfeel.md
Original file line number Diff line number Diff line change
Expand Up @@ -527,4 +527,48 @@ which is used by all the other page templates:
</html>
```

## Adding custom class to the body element

By default, Docsy adds the `td-{{ .Kind }}` class, where the kind is the kind of
the page, like section, blog, and so on. For example:

<!-- prettier-ignore -->
```html
<body class="td-section">
```

Sometimes it's useful to assign custom classes to a page, or to an entire
section, for example, to apply custom styling. To do so, add the `body_class`
parameter to the frontmatter of your page. The value of the parameter will then
be added to the class attribute of your page's body element.

To add the classes `myclass` and `anotherclass`, add the following line to the
frontmatter of the page:

<!-- prettier-ignore -->
{{< tabpane persistLang=false >}}
{{< tab header="Configuration file:" disabled=true />}}
{{< tab header="hugo.toml" lang="toml" >}}
body_class = "myclass anotherclass"
{{< /tab >}}
{{< tab header="hugo.yaml" lang="yaml" >}}
body_class : myclass anotherclass
{{< /tab >}}
{{< tab header="hugo.json" lang="json" >}}
"body_class" : "myclass anotherclass"
{{< /tab >}}
{{< /tabpane >}}

The page's opening body tag will look like this (assuming it is a section page):

<!-- prettier-ignore -->
```html
<body class="td-section myclass anotherclass">
```

To apply the custom class to every page of a section or a directory, use the
[Front Matter Cascade](https://gohugo.io/content-management/front-matter/#front-matter-cascade)
feature of Hugo in your configuration file, or in the frontmatter of the
highest-level page you want to modify.

[bs-docs]: https://getbootstrap.com/docs/