Themes ====== HTML chrome (sidebar, search, prev/next on book chapters) is fixed in the generator. A *theme* is a CSS skin plus shared JavaScript. Built-in themes --------------- - **basic** — light sidebar (default) - **classic** — serif / warm-gray documentation look - **dark** — dark background All three are installed into ``out/_static/`` as ``theme-NAME.css``. Readers pick a theme from the **Theme** dropdown in the sidebar; the choice is stored in the browser (``localStorage`` key ``uscribe-theme``). Build-time default ------------------ .. code-block:: sh uscribe ... --theme=classic ``theme`` and ``themePath`` may also be set in ``book.conf`` (see :doc:`config`). Or with the sample Makefiles: .. code-block:: sh make # THEME=basic make classic make dark ``--theme`` only sets the *initial* stylesheet until the reader selects another in the UI. Theme layout on disk -------------------- .. code-block:: text themes/ basic/static/book.css classic/static/book.css dark/static/book.css _shared/search.js _shared/highlight.css _shared/highlight-unicon.js _shared/theme-switcher.js To add a custom theme, create ``themes/mytheme/static/book.css`` and pass ``--theme=mytheme``. Keep the same HTML class names (``.sidebar``, ``.main``, ``.tok-keyword``, …) so shared scripts keep working. See ``themes/README.md`` in the source tree for layout details.