# Customization
## Theme Styles
To customize a *docsify-themeable* [theme](themes):
1. Add a `
```
If you prefer, you can use a `` to an external stylesheet:
```html
```
1. Set any of the [theme properties](#theme) found below:
```css
:root {
--base-font-size: 14px;
--theme-color : purple;
}
```
?> It's easy to to mix styles from different themes! Just [view the source of other themes](https://github.com/jhildenbiddle/docsify-themeable/tree/master/src/scss/themes), find the theme properties you like, and copy them to your custom stylesheet.
### App
Theme properties for application styles.
[_app.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_app.css ':include')
### Base
Theme properties for base styles.
[_base.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_base.css ':include')
### Content
Theme properties for markdown content.
[_content.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_content.css ':include')
### Cover
Theme properties for docsify's [`coverpage`](https://docsify.js.org/#/cover).
[_cover.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_cover.css ':include')
### Navbar
Theme properties for docsify's custom [`navbar`](https://docsify.js.org/#/custom-navbar).
[_navbar.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_navbar.css ':include')
### Sidebar
Theme properties for docsify's custom [`sidebar`](https://docsify.js.org/#/more-pages).
[_sidebar.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_sidebar.css ':include')
## Plugin Styles
All [docsify plugins](https://docsify.js.org/#/plugins) will work with *docsify-themeable*, however there are two potential issues to be aware of:
- **Not all plugins support multiple themes**
Plugins often inject CSS to style plugin-related elements. Ideally, a plugin's CSS would inherit visual styles from the current theme. This isn't always practical, so some plugins will apply visual styles intended to match a specific theme (typically the default `vue.css` theme). The result is color, typography, and layout styles that do not match your site theme.
- **Not all plugins support theme customization**
Many [docsify plugins](https://docsify.js.org/#/plugins) were developed prior to the release of *docsify-themeable* and therefore do not offer theme customization. To address this issue, *docsify-themeable* provides customizable theme properties for many popular docsify plugins (below). If you would like to see theme properties added to a plugin, create a [Github issue](https://github.com/jhildenbiddle/docsify-themeable/issues) with the plugin name and a link to the source code.
### Copy Code
Theme properties for [docsify-copy-code](https://github.com/jperasmus/docsify-copy-code) plugin.
[_plugin-copycode.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_plugin-copy-code.css ':include')
### Pagination
Theme properties for [docsify-pagination](https://github.com/imyelo/docsify-pagination) plugin.
[_plugin-pagination.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_plugin-pagination.css ':include')
### Search
Theme properties for docsify's [search](https://docsify.js.org/#/plugins?id=full-text-search) plugin.
[_plugin-search.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_plugin-search.css ':include')
### Tabs
See the [docsify-tabs site](https://jhildenbiddle.github.io/docsify-tabs/) for a complete list of theme properties.
The following theme properties overrides are included with docsify-themeable:
[_plugin-docsify-tabs.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_plugin-docsify-tabs.css ':include')
### Zoom Image
Theme properties for docsify's [zoom image](https://docsify.js.org/#/plugins?id=zoom-image) plugin.
[_plugin-zoom.css](https://cdn.jsdelivr.net/npm/docsify-themeable@0/src/scss/themes/defaults/_plugin-zoom-image.css ':include')
## PrismJS
[PrismJS](http://prismjs.com/) is the syntax highlighter used by [docsify](https://docsify.js.org/) for styling code blocks. Styles can be customized by setting [`--code`](#-code) theme properties or by using one of the many [PrismJS themes](https://cdn.jsdelivr.net/npm/prismjs/themes/) available.
To use a PrismJS theme, add a `` to your `index.html` after your site theme:
```html
```
Note that only PrismJS theme colors will be applied. Layout and typography styles such as `font-family`, `border-radius`, `margin` and `padding` will continue to be applied by the site theme to maintain visual consistency.
The [theme properties](#theme) that override PrismJS theme values are:
- `--code-font-family`
- `--code-font-size`
- `--code-font-weight`
- `--code-block-border-radius`
- `--code-block-line-height`
- `--code-block-margin`
- `--code-block-padding`