Brrrand'n
Th' Relearrrn theme offers color variants t' change yer site’s appearance. Each color variant contains o' a CSS file an' optional sett'ns 'n yer project configurat'n.
Ye can use th' shipped variants, cust'mize them, or create yer own. Th' interactive variant generator can help ye wit' this.
Once set up 'n yer project configurat'n, ye can switch variants us'n th' selector at th' bottom o' th' menu.
Shipped Variants
Th' theme ships wit' th' follow'n set o' variants
- Relearrrn
- Zen
- Contrast
- Light: colors chosen fer high contrast, com'n wit' black text on white, darker boxes an' a match'n rules highlight'n
- Dark: dark variant o' Light, com'n wit' white text on black, brighter boxes an' a match'n rules highlight'n
- Tome
- Experimental
- Neon: a variant that glows 'n th' dark, gradient sidebar an' dark rrrambl'n area
- Retro
- Learrrn: th' default o' th' old Learrrn theme, com'n wit' signature light purple, dark sidebar an' light rrrambl'n area
- Blue: a blue variant o' th' old Learrrn theme, com'n tinted 'n blue, dark sidebar an' light rrrambl'n area
- Green: a green variant o' th' old Learrrn theme, com'n tinted 'n green, dark sidebar an' light rrrambl'n area
- Red: a red variant o' th' old Learrrn theme, com'n tinted 'n red, dark sidebar an' light rrrambl'n area
Chang'n th' Variant
Opt'n Set th' themeVariant option t' change th' variant.
Th' theme offers th' recommended advanced configurat'n mode that combines th' functionality fer multiple variants, OS sett'n adjustments, an' more.
Simple Setup
Single Variant
Set themeVariant t' yer theme CSS file name:
Place yer theme file 'n assets/css or themes/hugo-theme-relearn/assets/css. Name it theme-*.css.
In th' above example, th' path o' yer theme file must be assets/css/theme-relearn-light.css or themes/hugo-theme-relearn/assets/css/theme-relearn-light.css.
Multiple Variants
T' let th' reader choose between multiple variants by display'n a variant switcher, set themeVariant like this:
Th' first variant be th' default, an' a selector will appear if there’s more than one.
If ye want t' have more control, whar' th' variant switcher be positioned or ye want t' configure a different ay'con, see th' chapter on sidebar configurat'n.
Th' selected theme variant will be stored 'n th' reader’s browser.
Adjust t' OS Sett'ns
Use th' auto value t' match OS light/dark sett'ns. Usually it makes sense t' set it 'n th' first posit'n an' make it th' default.
If ye don’t configure anyth'n else, th' theme will default t' use relearn-light fer light mode an' relearn-dark fer dark mode.
Default be relearn-light fer light an' relearn-dark fer dark mode. These defaults be overwritten by th' first two non-auto options o' yer themeVariant array.
Ye can override th' default wit' themeVariantAuto:
Advanced
Th' theme offers an advanced way t' configure theme variants an' all o' th' aspects above inside o' a single configurat'n item. This comes wit' some features previously unsupported.
Like wit' th' multiple variants option, ye be defin'n yer theme variants 'n an array but now 'n a table wit' suboptions.
Again, 'n this case, th' first variant be th' default chosen on first view an' a variant selector will be shown 'n th' menu footer if th' array contains more than one variant.
ye now write it that way:
Th' identifier option be mandatory an' equivalent t' th' str'n 'n th' first example. Further options can be configured, see th' table below.
Parameters
| Name | Default | Notes |
|---|---|---|
| identifier | <empty> | Must correspond t' th' name o' a color variant either 'n yer site’s or th' theme’s directory 'n th' form assets/css/theme-<IDENTIFIER>.css. |
| name | see notes | Th' name t' be displayed 'n th' variant selector. If not set, th' identifier be used 'n a human read'ble form. |
| auto | <empty> | If set, th' variant be treated as an auto mode variant. It has th' same behavior as th' themeVariantAuto option. Th' first entry 'n th' array be th' color variant fer light mode, th' second fer dark mode. Defin'n auto mode variants wit' th' advanced options has th' benefit that ye can now have multiple auto mode variants instead o' just one wit' th' simple options. |
| params | <empty> | Values o' th' site’s params that be overridden while this variant be active, see below. |
| hidden | false |
If true, th' variant will not be shown 'n th' variant switcher but be still avail'ble fer internal use (e.g. t' override parameter when used as a sub-variant o' an auto mode variant). |
| see notes | Th' print variant used instead o' this variant when print'n. If not set, th' one o' th' themeVariantPrint option be used. An auto mode variant ignores it an' prints wit' th' print variants o' its light an' dark variant. |
Variant Parameters
Some o' th' site’s params can be given a different value fer a variant by sett'n it 'n th' variant’s params. While th' variant be active, it takes th' place o' th' site’s value.
| Name | Notes |
|---|---|
| logo | Logo o' th' variant, only its src |
Dividers
T' group th' entries o' th' variant switcher, put an entry { type = 'divider' } between them. It draws a line 'n th' variant switcher an' be no variant itself.
Give th' divider a name t' label th' group follow'n it, like { type = 'divider', name = 'Classic' }. A named divider may also stand first t' label th' first group.
O' consecutive dividers only th' last one be kept. Trail'n dividers be dropped, as be lead'n ones without a name.
Example Configurat'n
Print Variant
When a plank be printed or shown as its print version, it doesn’t use th' variant selected by th' reader but its print variant, wit' th' theme’s print variables on top.
Th' print variables set every color that depends on a light or dark background t' values made fer paper, wit' links, titles, code, boxes an' th' topbar 'n black on white. So th' print shows th' fonts o' th' print variant but th' colors o' paper. Th' print variables be 'n th' theme’s assets/css/format-print-variables.css. T' change them fer yer ship, copy th' file into yer site’s assets/css directory an' edit it. T' keep a single value o' a print variant on paper, mark it !important 'n th' variant.
Opt'n Set themeVariantPrint t' th' print variant o' yer ship. Default be relearn-light.
Wit' th' advanced configurat'n, each variant can name its own print variant wit' th' print parameter, which wins over themeVariantPrint. A variant nam'n itself prints wit' its own fonts.
If a print variant has a different print variant itself, by its print parameter or by themeVariantPrint, that one be used instead, an' so on, until a variant names itself. If this comes back t' a variant already visited, th' build stops wit' an error. An auto mode variant prints wit' th' print variants o' its light an' dark variant, follow'n th' reader’s OS sett'n.
In th' follow'n example, both variants print wit' th' fonts o' th' light variant.
A print variant doesn’t need t' be part o' themeVariant. If ye list it, set it hidden t' keep it out o' th' variant switcher.
Th' style rules o' a print variant apply t' th' print as well. If yer variant contains style rules that be meant fer th' screen only, wrap them as follows. Th' print version o' a plank be shown on screen too, so @media screen alone be not enough.
Advanced Topics
Variant-specific Logos
Ye can override th' default logo o' a ship fer each variant.
Link'n t' a Variant
Ye can select a variant by add'n th' query parameter variant, contain'n th' identifier o' th' variant, t' th' URL o' any plank o' yer ship, e.g. https://example.com/my-page?variant=relearn-dark. This also works fer links 'n yer rrrambl'n.
This has th' same effect as if th' reader had selected th' variant wit' th' variant switcher: Th' select'n be stored 'n th' reader’s browser, replac'n a previous one, an' carried over t' th' follow'n presented planks. Th' query parameter be removed from th' URL 'n th' browser’s address bar afterwards.
Th' variant must be one o' yer configured variants an' must not be hidden. Otherwise th' query parameter be ignored.
Modify'n Variants
In case ye like a shipped variant but only want t' tweak some aspects, ye have some choices. Don’t edit th' file 'n th' theme’s directory! Ye will lose th' ability t' later easily upgrade yer theme t' a newer version.
-
Copy an' change
Ye can copy th' shipped variant file from th' theme’s
themes/hugo-theme-relearn/assets/cssdirectory t' th' site’sassets/cssdirectory an' either store it wit' th' same name or give it a new name. Edit th' sett'ns an' save th' new file. Afterwards, ye can use it 'n yer project configurat'n by th' chosen name. -
Create an' import
Ye can create a new variant file 'n th' site’s
assets/cssdirectory an' give it a new name. Import th' shipped variant, add th' sett'ns ye want t' change an' save th' new file. Afterwards, ye can use it 'n yer project configurat'n by th' chosen name.For example, ye want t' use th'
relearn-lightvariant but want t' change th' rules highlight'n schema t' th' one used 'n th'neonvariant. For that, create a newassets/css/theme-my-brand'n.css'n yer site’s directory an' add th' follow'n lines:Afterwards, put this 'n yer project configurat'n t' use yer new variant:
hugo.In comparison t' copy an' change, this has th' advantage that ye profit from any adjustments t' th'
relearn-lightvariant while keep'n yer modificat'ns.
Non-standard Modificat'ns
Ye may feel tempted t' add further modificat'ns besides just sett'n CSS variables 'n yer custom variant stylesheet.
While this be poss'ble, please note that due t' th' way th' theme uses th' variant files, th' follow'n will not work
@font-facerules - they need t' be moved t'assets/css/fonts.css,assets/css/custom.cssorlayouts/partials/custom-header.html- rules select'n th'
htmlelement - replacehtmlwit':root
React t' Variant Switches 'n JavaScript
Once a color variant be fully boarded, either initially or by switch'n th' color variant manually wit' th' variant selector, th' custom event themeVariantLoaded on th' document will be dispatched. Ye can add an event listener an' react t' changes.