Branding changes how your instance looks to readers: the name and logo in the header, the browser tab icon, the template, the typeface and the colours. Repositories cannot change any of it, so every page of the instance looks the same.
You find all settings in the dashboard under Configuration → Branding. Changes apply right away and never trigger a new sync.
Name and logo
The header shows the instance's name, linking to the home page. Set it under Header name (brand.name). Without a name, the header shows the host of SPEICHER_PUBLIC_URL.
Under Branding → Logos you can upload three images:
| Image | Formats | Size limit | Used for |
|---|---|---|---|
| Header logo | PNG, WebP or SVG | 64 KB | The header, in light mode and in dark mode |
| Header logo for dark pages | PNG, WebP or SVG | 64 KB | The header for readers in dark mode, instead of the above |
| Favicon | PNG or SVG | 32 KB | The browser tab |
- The favicon must be square. A PNG favicon must be at least 32×32 pixels.
- SVG files may not contain scripts, event handlers, embedded HTML, entities, or references to anything outside the file, such as external images or stylesheets. Speicher refuses such a file when you upload it.
- Speicher checks the file's actual content, so a file whose extension does not match its format is refused.
With a logo, the name is still shown beside it. If your logo already contains the name, turn off Show name (brand.show_name). Name alignment (brand.name_align) decides whether the name is centred on the logo's height or sits on its bottom edge.
Note
Uploaded images are stored in the database, and the configuration refers to them as sha256:<hash>. In a configuration file, you can instead give an image as a data: URI, for example data:image/png;base64,iVBORw0….
Template
A template sets the overall look of every page. Choose it under Theme (theme.template). Speicher ships four:
defaultblueprinteditorialworkspace
The dashboard shows a preview of each one before you save. Every template has a light and a dark variant. Readers see the one their system asks for, unless they choose light or dark themselves.
Typeface
Body typeface (theme.font) sets the font of the body text:
| Value | Font |
|---|---|
system |
The reader's system font (default) |
sans |
A sans-serif font |
serif |
A serif font |
mono |
A monospace font |
Each value uses fonts already installed on the reader's device. Speicher loads no web fonts, so you cannot choose a font by name.
Colours
Under Branding → Appearance you can override any colour of the template, separately for light and dark mode (theme.palette.light and theme.palette.dark). A colour you leave empty keeps the template's own.
Three colours make most of the difference:
- Page background (
bg) - Body text (
fg) - Accent (
accent): links, focus rings and highlights. Use your brand colour here.
If you leave Quiet text, Rules and borders and Panels empty, Speicher mixes them from the background and text colours, so they stay in tune when you change those two. The other colours cover search highlights, the warning strip, the five callout types and syntax highlighting in code blocks.
Colours are hex values with three or six digits, such as #0b5fff or #fff.
Caution
Set the dark palette too if you change the light one. Otherwise, readers in dark mode keep the template's dark colours, which may not match your accent. Also check that text stays readable against the background in both modes.
The palette applies to the documentation only, not to the dashboard. If you choose colours that make pages hard to read, you can still fix them in the dashboard. Reset on the Appearance page removes all colour and typeface overrides.
Attribution
At the bottom of every page, Speicher shows Published with speicher.md, linking to the Speicher website. Turn it off with Show "Published with speicher.md" (attribution: false). The text itself cannot be changed.
Configuration file
brand:
name: Acme Engineering Docs
show_name: false
name_align: bottom
theme:
template: editorial
font: serif
palette:
light:
accent: '#0b5fff'
dark:
accent: '#7aa7ff'
attribution: false
Every colour key is listed under theme.palette in the instance configuration reference.
Settings
brand
| Key | Type | Default | Required | Description |
|---|---|---|---|---|
brand |
object | The name, logos and favicon in the page header and browser tab. Only the instance sets these; repositories cannot. | ||
brand.name |
string | The name shown at the top of every page, linking to the home page. It is also the logo's alt text. Without it, the header shows the host of SPEICHER_PUBLIC_URL. Example: Acme Engineering Docs. |
||
brand.show_name |
boolean | true |
Whether the name is shown beside the logo. Turn it off if your logo already contains the name. Without a logo, the name is always shown. Example: false. |
|
brand.name_align |
center, bottom |
center |
How the name lines up with the logo: center centres it on the logo's height, bottom sets it on the logo's bottom edge. Example: bottom. |
|
brand.logo |
string | The header logo: a PNG, WebP or SVG of at most 64 KB, as a data: URI or a sha256: reference to an uploaded image. Used in dark mode too, unless logo_dark is set. |
||
brand.logo_dark |
string | The header logo for readers in dark mode: a PNG, WebP or SVG of at most 64 KB, as a data: URI or a sha256: reference to an uploaded image. |
||
brand.icon |
string | The favicon shown in the browser tab: a square PNG or SVG of at most 32 KB, as a data: URI or a sha256: reference to an uploaded image. A PNG must be at least 32×32 pixels. |
||
brand.wallpaper |
string | Wallpaper behind the pages as base64 data URI (max 5 MB JPEG, PNG, WebP or SVG) | ||
brand.wallpaper_dark |
string | Wallpaper for dark mode as base64 data URI (max 5 MB JPEG, PNG, WebP or SVG) | ||
brand.wallpaper_all_themes |
boolean | false |
Whether the uploaded wallpaper is shown in every theme. When this is turned off, only themes with a wallpaper of their own, such as Glass, show it. |
theme
| Key | Type | Default | Required | Description |
|---|---|---|---|---|
theme.template |
string | default |
The template for all pages: default, blueprint, editorial or workspace. An unknown name falls back to default. |
| Key | Type | Default | Required | Description |
|---|---|---|---|---|
theme.font |
system, sans, serif, mono |
system |
The typeface of the body text. Each value uses fonts already installed on the reader's device; web fonts are not loaded. |
attribution
| Key | Type | Default | Required | Description |
|---|---|---|---|---|
attribution |
boolean | true |
Whether pages show Published with speicher.md at the bottom, linking to the Speicher website. The text cannot be changed. Example: false. |