forked from cybrespace/pinafore
docs: add guide to theming (#46)
This commit is contained in:
parent
b34e8e5163
commit
35eac4a314
|
@ -0,0 +1,58 @@
|
|||
## Theming
|
||||
|
||||
Create a file `scss/themes/foobar.scss`, write some SCSS inside and add the following at the bottom of `scss/themes/foobar.scss`.
|
||||
```scss
|
||||
@import "_base.scss";
|
||||
|
||||
body.theme-foobar {
|
||||
@include baseTheme();
|
||||
}
|
||||
```
|
||||
|
||||
> Note: You can find all the SCSS variables available in `scss/themes/_default.scss` while the all CSS Custom Properties available are listed in `scss/themes/_base.scss`.
|
||||
|
||||
Add the CSS class you just define to `scss/themes/_offlines`.
|
||||
```scss
|
||||
...
|
||||
body.offline,
|
||||
body.theme-foobar.offline, // <-
|
||||
body.theme-hotpants.offline,
|
||||
body.theme-majesty.offline,
|
||||
body.theme-oaken.offline,
|
||||
body.theme-scarlet.offline,
|
||||
body.theme-seafoam.offline,
|
||||
body.theme-gecko.offline {
|
||||
@include baseTheme();
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Add your theme to `routes/_static/themes.js`
|
||||
```js
|
||||
const themes = [
|
||||
...
|
||||
{
|
||||
name: 'foobar',
|
||||
label: 'Foobar'
|
||||
}
|
||||
]
|
||||
|
||||
export { themes }
|
||||
```
|
||||
|
||||
Add your theme in `templates/2xx.html`.
|
||||
```js
|
||||
window.__themeColors = {
|
||||
'default': "royalblue",
|
||||
scarlet: "#e04e41",
|
||||
seafoam: "#177380",
|
||||
hotpants: "hotpink",
|
||||
oaken: "saddlebrown",
|
||||
majesty: "blueviolet",
|
||||
gecko: "#4ab92f",
|
||||
foobar: "#BADA55", // <-
|
||||
offline: "#999999"
|
||||
}
|
||||
```
|
||||
|
||||
Start the development server (`npm run dev`), go to `http://localhost:4002/settings/instances/your-instance-name` and select your newly created theme. Once you've done that, you can updated your theme, and refresh the page to see the change (you don't have to restart the server).
|
Loading…
Reference in New Issue