diff --git a/docs/configuration.md b/docs/configuration.md
index 0f076fd..bc87d30 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -3,6 +3,7 @@
- [Intro](#intro)
- [Preconfigured page](#preconfigured-page)
- [Server](#server)
+- [Branding](#branding)
- [Theme](#theme)
- [Themes](#themes)
- [Pages & Columns](#pages--columns)
@@ -173,6 +174,42 @@ To be able to point to an asset from your assets path, use the `/assets/` path l
icon: /assets/gitea-icon.png
```
+## Branding
+You can adjust the various parts of the branding through a top level `branding` property. Example:
+
+```yaml
+branding:
+ custom-footer: |
+
+ logo-url: /assets/logo.png
+ favicon-url: /assets/logo.png
+```
+
+### Properties
+
+| Name | Type | Required | Default |
+| ---- | ---- | -------- | ------- |
+| hide-footer | bool | no | false |
+| custom-footer | string | no | |
+| logo-text | string | no | G |
+| logo-url | string | no | |
+| favicon-url | string | no | |
+
+#### `hide-footer`
+Hides the footer when set to `true`.
+
+#### `custom-footer`
+Specify custom HTML to use for the footer.
+
+#### `logo-text`
+Specify custom text to use instead of the "G" found in the navigation.
+
+#### `logo-url`
+Specify a URL to a custom image to use instead of the "G" found in the navigation. If both `logo-text` and `logo-url` are set, only `logo-url` will be used.
+
+#### `favicon-url`
+Specify a URL to a custom image to use for the favicon.
+
## Theme
Theming is done through a top level `theme` property. Values for the colors are in [HSL](https://giggster.com/guide/basics/hue-saturation-lightness/) (hue, saturation, lightness) format. You can use a color picker [like this one](https://hslpicker.com/) to convert colors from other formats to HSL. The values are separated by a space and `%` is not required for any of the numbers.
diff --git a/internal/assets/static/main.css b/internal/assets/static/main.css
index 1a4692e..af94e64 100644
--- a/internal/assets/static/main.css
+++ b/internal/assets/static/main.css
@@ -660,6 +660,15 @@ kbd:active {
padding-right: var(--widget-content-horizontal-padding);
}
+.logo:has(img) {
+ display: flex;
+ align-items: center;
+}
+
+.logo img {
+ max-height: 2.7rem;
+}
+
.nav {
height: 100%;
gap: var(--header-items-gap);
diff --git a/internal/assets/templates/document.html b/internal/assets/templates/document.html
index d37ac56..4ac65d8 100644
--- a/internal/assets/templates/document.html
+++ b/internal/assets/templates/document.html
@@ -12,9 +12,8 @@
-
-
+
{{ block "document-head-after" . }}{{ end }}
diff --git a/internal/assets/templates/page.html b/internal/assets/templates/page.html
index 73c17d0..4d08e61 100644
--- a/internal/assets/templates/page.html
+++ b/internal/assets/templates/page.html
@@ -32,7 +32,7 @@
-
G
+
{{ if ne "" .App.Config.Branding.LogoURL }}{{ else if ne "" .App.Config.Branding.LogoText }}{{ .App.Config.Branding.LogoText }}{{ else }}G{{ end }}