Customization

Alabaster’s behavior & style can be customized in multiple ways:

  • Various template-level or nontrivial-style settings can be configured via your conf.py in html_theme_options; see Theme options.

  • As of Alabaster 0.7.8, you can provide your own CSS stylesheet overrides via a custom stylesheet. This is suitable for changes that only need minor CSS modifications.

    Note

    Some theme options implemented prior to 0.7.8 would have been more suitable as local custom stylesheet overrides. Therefore:

    • We no longer accept feature requests which are more appropriately solved by using this functionality instead.

    • In future backwards-incompatible versions we may deprecate some of those options; as such we highly recommend leveraging the custom stylesheet whenever possible, even if an option is present below.

Custom stylesheet

If you need to modify Alabaster’s default CSS styles in a way not covered by the theme options from the next section, you may provide a custom CSS stylesheet as follows:

  • Create a file named custom.css anywhere you prefer (typically _static/, but this is solely convention) containing your desired overrides to the CSS found in Alabaster’s static/alabaster_css_t.
  • Set the core Sphinx option html_static_path to either that file’s path, or the directory it lives within.

Theme options

Alabaster’s primary configuration route is the html_theme_options variable, set in conf.py alongside the rest, e.g.:

html_theme_options = {
    'logo': 'logo.png',
    'github_user': 'bitprophet',
    'github_repo': 'alabaster',
}

The following subsections detail available such options, including notes about behavior. Default values can be found by viewing theme.conf directly.

Basics

Settings related to text display, logo, etc.

  • body_text_align: Which CSS text-align value to use for body text (if there is any.)

  • canonical_url: If set, is used as the base URL (set before the relative path/pagename) for a <link rel="canonical"> canonical URL header tag.

    Note

    This value must end with a trailing slash.

  • description: Text blurb about your project, to appear under the logo.

  • description_font_style: Which CSS font-style to use for description text.

  • fixed_sidebar: Makes the sidebar ‘fixed’ or pinned in place, so that the main body of the page scrolls but the sidebar remains visible. (Applies only to desktop window sizes; the mobile view is unaffected.)

  • logo: Relative path (from $PROJECT/_static/) to a logo image, which will appear in the upper left corner above the name of the project.

    • If logo is not set, your project name setting (from the top level Sphinx config) will be used in a text header instead. This preserves a link back to your homepage from inner doc pages.
  • logo_name: Set to true to insert your site’s project name under the logo image as text. Useful if your logo doesn’t include the project name itself.

  • logo_text_align: Which CSS text-align value to use for logo text (if there is any.)

  • page_width: CSS width specifier controlling default content/page width.

  • sidebar_width: CSS width specifier controlling default sidebar width.

  • touch_icon: Path to an image (as with logo, relative to $PROJECT/_static/) to be used for an iOS application icon, for when pages are saved to an iOS device’s home screen via Safari.

Non-service sidebar control

Sidebar-related options that aren’t directly related to service links.

  • extra_nav_links: Dictionary mapping link names to link targets; these will be added in a UL below the main sidebar navigation (provided you’ve enabled navigation.html via the html_sidebars option; see Installation.) Useful for static links outside your Sphinx doctree.

  • show_related: Boolean controlling whether the sidebar ‘next/previous/related’ secondary navigation elements are hidden or displayed. Defaults to false since on many sites these elements are superfluous.

    Note

    This is distinct from the show_relbars setting found in the header/footer options; the two visual components are orthogonal and may be enabled/disabled independently of one another.

  • sidebar_collapse: Boolean determining whether all TOC entries that

    are not ancestors of the current page are collapsed. You can read more about this in the Sphinx toctree docs.

  • sidebar_includehidden: Boolean determining whether the TOC sidebar should include hidden Sphinx toctree elements. Defaults to true so you can use :hidden: in your index page’s root toctree & avoid having 2x copies of your navigation on your landing page.

Style colors

These should be fully qualified CSS color specifiers such as #004B6B or #444. The first few items in the list are “global” colors used as defaults for many of the others; update these to make sweeping changes to the colorscheme. The more granular settings can be used to override as needed.

  • anchor: Foreground color of section anchor links (the ‘paragraph’ symbol that shows up when you mouseover page section headers.)
  • anchor_hover_bg: Background color of anchor text.
  • anchor_hover_fg: Foreground color of section anchor links (as above) when moused over.
  • body_text: Main content text.
  • code_highlight: Color of highlight when using :emphasize-lines: in a code block.
  • footer_text: Footer text (includes links.)
  • footnote_bg: Background of footnote blocks.
  • footnote_border: Border of same.
  • gray_1: Dark gray.
  • gray_2: Light gray.
  • gray_3: Medium gray.
  • link_hover: Body links, hovered.
  • link: Non-hovered body links.
  • narrow_sidebar_bg: Background of ‘sidebar’ when narrow window forces it to the bottom of the page.
  • narrow_sidebar_fg: Text color of same.
  • narrow_sidebar_link: Link color of same.
  • note_bg: Background of .. note:: blocks.
  • note_border: Border of same.
  • pink_1: Light pink.
  • pink_2: Medium pink.
  • pre_bg: Background of preformatted text blocks (including code snippets.)
  • relbar_border: Color of border between bar holding next and previous links, and the rest of the page content.
  • seealso_bg: Background of .. seealso:: blocks.
  • seealso_border: Border of same.
  • sidebar_header: Sidebar headers.
  • sidebar_hr: Color of sidebar horizontal rule dividers.
  • sidebar_link: Sidebar links (there is no hover variant.) Applies to both header & text links.
  • sidebar_list: Foreground color of sidebar list bullets & unlinked text.
  • sidebar_link_underscore: Sidebar links’ underline (technically a bottom-border).
  • sidebar_search_button: Background color of the search field’s ‘Go’ button.
  • sidebar_text: Sidebar paragraph text.
  • warn_bg: Background of .. warn:: blocks.
  • warn_border: Border of same.

Fonts

  • caption_font_size: Font size of caption block text.
  • caption_font_family: Font family of caption block text.
  • code_font_size: Font size of code block text.
  • code_font_family: Font family of code block text. Defaults to 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace.
  • font_family: Font family of body text.
  • font_size: Font size of body text.
  • head_font_family: Font family of headings. Defaults to 'Garamond', 'Georgia', serif.