+ aria-haspopup="true" aria-controls="version-langlist">
{% if language is not none %} {{ language }} {% else %} en {% endif %}
-
Languages
-
+
Loading...
@@ -37,9 +33,9 @@
Note
- You are not using the most up to date version of the documentation.
- is the newest version.
+ You are not using the most up to date version of the documentation.
+ is the newest version.
-
+
\ No newline at end of file
diff --git a/build_files/theme/css/theme_overrides.css b/build_files/theme/css/theme_overrides.css
index 563732e01..f2952bdd9 100644
--- a/build_files/theme/css/theme_overrides.css
+++ b/build_files/theme/css/theme_overrides.css
@@ -6,108 +6,180 @@
* https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_css_file
*/
-h5 {
- margin-bottom: 5px
+body {
+ --sidebar-caption-font-size: var(--font-size--normal);
+ --toc-title-font-size: var(--font-size--normal);
+ --toc-font-size: var(--sidebar-item-font-size);
+ --admonition-font-size: var(--font-size--normal);
+ --admonition-title-font-size: var(--font-size--normal);
}
-/* Sidebar menu links. */
-.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a:hover {
- background: #c0c0c0
+h1,
+h2,
+h3 {
+ margin-top: 1.75rem;
+ margin-bottom: 1rem;
}
-.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a:hover {
- background: #b5b5b5
+h1 {
+ font-size: 2em;
}
-.wy-menu-vertical li.toctree-l4 {
- font-size: 1em
+h2 {
+ font-size: 1.5em;
}
-.wy-menu-vertical li.current a {
- border: 0
+h3 {
+ font-size: 1.25em;
}
-.wy-side-nav-search>a:hover {
- background: none;
- opacity: 0.9
+h4,
+h5,
+h6,
+.rubric {
+ margin-top: 1.25rem;
+ margin-bottom: 0.75rem;
+ font-size: 1.125em;
}
-.wy-side-nav-search>a.icon::before {
- content: none
+/* Reduce the margins on top/bottom of horizontal lines. */
+hr.docutils {
+ margin: 1rem 0;
}
-.wy-menu-vertical p.caption {
- color: #e6e6e6;
+
+/* Slightly decrease text to make the text fit on one line */
+.sidebar-brand-text {
+ font-size: 1.4rem;
}
-/* Ensure background of input fields is light color even when a local theme wants it to be dark. */
-input[type="text"],
-input[type="search"],
-input[type="password"],
-input[type="email"],
-input[type="url"],
-input[type="date"],
-input[type="month"],
-input[type="week"],
-input[type="time"],
-input[type="datetime"],
-input[type="datetime-local"],
-input[type="number"],
-input[type="tel"],
-input[type="color"] {
- background-color: #FCFCFC;
+.toctree-checkbox~label .icon svg {
+ transition: transform 0.25s ease-out;
}
-/* Boxed paragraphs. */
-.rst-content .refbox .admonition-title {
- background-color: #bbb
+/* Add more visual weight to definition terms */
+dl dt {
+ font-weight: bold !important
}
-.rst-content .refbox {
- background-color: #e3e3e3
+/* Fixes to field list, see #104636 */
+dl.field-list {
+ display: grid;
+ grid-template-columns: auto minmax(80%, 95%);
+
+ p {
+ margin-bottom: 0;
+ }
}
-.rst-content .seealso .admonition-title {
- background-color: #7a87e6
+/* TABLE & FIGURE */
+
+/* Cell's vertical align. */
+/* use "valign" class for middle align */
+table.docutils:not(.valign) td {
+ vertical-align: baseline;
}
-.rst-content .seealso {
- background-color: #e7ebfa
+/* Decrease whitespace above figure and add it below */
+figure {
+ padding-bottom: 0.5rem;
}
-.rst-content .important .admonition-title {
- background-color: #ddca3b
+figcaption {
+ margin-bottom: 0.5rem !important;
+
+ p {
+ margin-top: 0;
+ }
}
-.rst-content .important {
- background-color: #f6f3a5
+/* End TABLE & FIGURE. */
+
+/* Force admonition to span the full width if close to a figure */
+.admonition {
+ clear: both;
}
-/* refbox =, seealso ( > ), note ( i ), tip i , hint (+), warn / ! \ */
-.refbox .admonition-title::before {
- content: "\f00b"
+/* Use secondary font color for caption text */
+figcaption,
+caption {
+ color: var(--color-foreground-secondary);
+ font-size: var(--font-size--small)
}
-.seealso .admonition-title::before {
- content: "\f138"
+/* A bit hacky, revert the themes styling of kbd */
+kbd:not(.compound) {
+ all: revert;
}
-.note .admonition-title::before {
- content: "\f05a"
+/* Only style parent kbd elements instead of the individual children */
+:not(dl.option-list)> :not(kbd):not(kbd)>kbd,
+.menuselection {
+ background-color: var(--color-background-secondary);
+ border: 1px solid var(--color-foreground-border);
+ border-radius: .2rem;
+ box-shadow: 0 .0625rem 0 rgba(0, 0, 0, .2), inset 0 0 0 .125rem var(--color-background-secondary);
+ color: var(--color-foreground-primary);
+ display: inline-block;
+ margin: 0;
+ padding: 0 .2rem;
}
-.tip .admonition-title::before {
- content: "\f129";
- width: 0.75em;
- text-align: center
+.caption .menuselection {
+ background-color: transparent;
+ border: none;
}
-.hint .admonition-title::before {
- content: "\f055"
+a {
+ text-decoration: none;
}
-.warning .admonition-title::before {
- content: "\f071"
+/* Quotes for Fig. "link". */
+a[href^="#fig-"]::before {
+ content: "\201c";
+}
+
+a[href^="#fig-"]::after {
+ content: "\201d";
+}
+
+/* Mark external links. */
+a.external {
+ filter: brightness(150%);
+}
+
+/* List blender.org as internal. */
+.external[href^="https://www.blender.org"],
+.external[href^="https://docs.blender.org"],
+.external[href^="https://projects.blender.org"],
+.external[href^="https://builder.blender.org"],
+.external[href^="https://code.blender.org"],
+.external[href^="https://translate.blender.org"],
+.external[href^="https://fund.blender.org"],
+.external[href^="blender_manual_html.zip"],
+.external[href^="blender_manual_epub.zip"],
+.external[href^="https://archive.blender.org"] {
+ filter: revert;
+}
+
+/* ".. container::" lead, block text float around image. */
+.lead {
+ clear: both;
+ width: 100%;
+}
+
+/* Start reference admonition. */
+.admonition.refbox {
+ border-color: rgb(50, 50, 50);
+}
+
+.admonition.refbox>.admonition-title {
+ background-color: rgba(50, 50, 50, 0.2);
+ border-color: rgb(50, 50, 50);
+}
+
+.admonition.refbox>.admonition-title::before {
+ background-color: var(--color-content-foreground);
}
/* 'refbox' field. */
@@ -120,215 +192,7 @@ input[type="color"] {
font-weight: normal
}
-/* Ugly 'red' literals. */
-.rst-content tt.literal,
-.rst-content tt.literal,
-.rst-content code.literal {
- color: #404040;
- border-radius: .4em;
-}
-
-/* Literal blocks that use too much padding, make them look like regular literals. */
-.rst-content pre.literal-block {
- font-size: 75%;
- margin: 0;
- padding: 2px 4px;
- color: #404040;
- background: #ffffff;
- white-space: normal;
- display: inline;
- border-radius: .4em;
-}
-
-/* Fix definisions with different ids. */
-.rst-content dl.simple {
- margin-bottom: 0px;
-}
-
-/* Fix nested block spacing. */
-.rst-content .document dl dt,
-.rst-content dd dl,
-.rst-content dl.field-list dd>p {
- margin: 0;
-}
-
-/* Dont indent field lists */
-.rst-content dl.field-list dt {
- padding-left: 0 !important;
-}
-
-/* Fix padding for normal definitions nested in field lists */
-.rst-content dl.field-list dd>dl.simple {
- padding-top: 12px;
-}
-
-/* Without this, paragraphs in bullet points within definition lists have too much vertical padding. */
-.rst-content li>p {
- margin-bottom: 0px !important;
-}
-
-/* TABLE & FIGURE */
-
-/* captions text style */
-.rst-content .figure .caption,
-.rst-content figure figcaption>p,
-.rst-content table.docutils caption,
-.rst-content table.field-list caption {
- font: italic 90%/18px Lato, proxima-nova, 'Helvetica Neue', Arial, sans-serif;
- color: #808080;
-}
-
-/* Captions top padding. */
-.rst-content .figure .caption,
-.rst-content figure figcaption {
- margin-top: 4px;
-}
-
-.rst-content table.docutils caption {
- padding: 0.5em;
-}
-
-/* Text word wrap. */
-.wy-table-responsive table td,
-.wy-table-responsive table th {
- white-space: normal;
-}
-
-/* Cell's vertical align. */
-/* use "valign" class for middle align. */
-.rst-content table.docutils:not(.valign) td {
- vertical-align: baseline;
-}
-
-/* Field list align. */
-.rst-content table.field-list td {
- padding-top: 8px;
-}
-
-/* Table header cells border color. */
-.rst-content table.docutils th {
- border-color: #e1e4e5;
-}
-
-/* Figure in table margin. */
-.rst-content td div.figure,
-.rst-content td figure {
- margin-top: 4px;
- margin-bottom: 0;
-}
-
-/* Figure legend. */
-.legend {
- font-size: 90%;
- color: #484848;
- margin-top: -20px;
-}
-
-.rst-content dl .legend {
- margin-top: -10px;
-}
-
-@media screen and (max-width: 768px) {
-
- .wy-table-responsive table:not(.footnote) {
- min-width: 520px;
- }
-
- .rst-content table.docutils caption {
- text-align: left;
- }
-
- img {
- width: auto;
- }
-
-}
-
-/* End TABLE & FIGURE. */
-
-/* Video center. */
-iframe {
- display: block;
- margin: 0 auto 24px auto;
- border: 0;
- max-width: 100%;
-}
-
-/* Copyright font scale down. */
-footer p {
- font-size: smaller
-}
-
-.footer-contribute {
- display: block;
- font-size: smaller;
- margin-top: -12px
-}
-
-.footer-contribute li {
- display: inline;
- list-style-type: none;
- padding-right: 20px;
-}
-
-/* Quotes for Fig. "link". */
-a[href^="#fig-"]::before {
- content: "\201c";
-}
-
-a[href^="#fig-"]::after {
- content: "\201d";
-}
-
-/* Intermediate headline. */
-.rubric {
- font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif
-}
-
-/* ".. container::" lead, block text float around image. */
-.lead {
- clear: both;
- width: 100%;
-}
-
-/* Mark external links. */
-a.external {
- color: #656AE0;
-}
-
-/* List blender.org as internal. */
-.external[href^="https://www.blender.org"],
-.external[href^="https://docs.blender.org"],
-.external[href^="https://wiki.blender.org"] {
- color: #2980B9;
-}
-
-/* Draws a box around menuselection role. */
-.menuselection {
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif;
- font-size: 90%;
- font-weight: normal;
- background-color: rgba(255, 255, 255, 0.65);
- border: solid #E1E4E5 1px;
- padding: 2px 5px;
- border-radius: .4em;
-}
-
-@media screen and (max-width: 420px) {
- .menuselection {
- white-space: normal
- }
-}
-
-.caption .menuselection {
- background-color: transparent;
- border: none;
-}
-
-/* Remove indent on line break. */
-.rst-content .line-block {
- margin-left: 0px
-}
+/* End reference admonition. */
/* Applied on main index:sections. */
@@ -339,7 +203,7 @@ a.external {
/* Start section cards. */
.toc-cards {
display: grid;
- grid-template-columns: repeat(auto-fit, minmax(225px, 1fr));
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
grid-gap: 20px;
list-style-type: none;
margin-bottom: 24px;
@@ -379,20 +243,19 @@ a.external {
}
.card dl dt {
- padding: 18px 15px 0px !important
+ padding: 0px 15px 0px !important
}
.card dl dd {
padding: 0px 15px 5px 15px;
font-style: normal;
margin: 0px;
- color: #808080;
+ color: var(--color-foreground-secondary);
font-size: 90%;
}
.card {
- box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 4px 0px,
- rgba(211, 216, 223, 0.33) 0px 15px 20px -1px;
+ box-shadow: 0 .2rem .5rem rgba(0, 0, 0, .05), 0 0 .0625rem rgba(0, 0, 0, .1);
}
#getting-started .card {
@@ -402,107 +265,52 @@ a.external {
/* End section cards. */
/* Start custom toctree. */
-.toctree-wrapper .toctree-l1>a {
- margin-bottom: 0.15em
-}
-
/* Indent all lines following the first. */
.toctree-wrapper * a {
display: block;
- width: 90%;
- text-indent: -1em;
- margin-left: 1em;
- /*invert indent*/
padding-top: 0.25em;
- line-height: 1.25em;
+}
+
+.toctree-wrapper ul {
+ list-style: none;
+ padding-left: 0;
}
/* Underline provided by nested ul (not li). */
.toctree-wrapper * ul {
+ margin-bottom: 1rem !important;
+ border-top: solid var(--color-background-border) 1px;
padding-left: 2em;
- border-top: solid #ececec 1px;
-}
-
-.toctree-wrapper>ul {
- margin-left: 1em
-}
-
-.rst-content .toctree-wrapper ul li ul {
- margin-bottom: 0.75em;
- padding-top: 0.5em;
-}
-
-.rst-content .toctree-wrapper ul li a:hover {
- color: #25afef
-}
-
-.rst-content .toctree-wrapper ul li a:visited:hover {
- color: #C961DA
-}
-
-.toctree-wrapper .toctree-l1>a {
- font-size: 104%
-}
-
-.toctree-wrapper .toctree-l2>a {
- font-size: 102%
-}
-
-.toctree-wrapper .toctree-l3>a {
- font-size: 100%
-}
-
-.toctree-wrapper .toctree-l1>ul {
- border-color: #bfbfbf
-}
-
-.toctree-wrapper .toctree-l2>ul {
- border-color: #e1e0e0
-}
-
-.toctree-wrapper .toctree-l3>ul {
- border-color: #ececec
-}
-
-/* Remove list styling, css rule hierarchy. */
-.rst-content .toctree-wrapper ul li,
-.rst-content .toctree-wrapper ul li li,
-.rst-content .toctree-wrapper ul li li li {
- list-style-type: none;
- margin-left: 0px;
}
/* End custom toctree. */
-/* Start genindex consistency. */
-.genindextable * strong {
- font-weight: normal
+/* Start footer contribute link */
+.footer-contribute {
+ display: block;
+ font-size: var(--font-size--small);
}
-.genindex-jumpbox {
- margin-bottom: 1.245em
+.bottom-of-page {
+ padding-bottom: 0;
}
-.indextable {
- margin-bottom: 1.245em
+.footer-contribute ul {
+ margin: 0;
+ padding: 0;
+ padding-bottom: 1rem
}
-/* End genindex consistency. */
-
-/* Correctly display keyboard shortcuts inside definition lists (theme.css explicitly excludes this case for some reason) */
-dt>kbd {
- font-weight: normal;
- font-size: 80%;
- background-color: #fff;
- border: 1px solid #a6a6a6;
- border-radius: 4px;
- box-shadow: 0 2px grey;
- padding: 2.4px 6px;
- margin: auto 0;
+.footer-contribute li {
+ display: inline;
+ list-style-type: none;
+ padding-right: 1.5rem;
}
-/* Fixes to field list, see #104636 */
+@media print {
+ .footer-contribute {
+ display: none;
+ }
+}
-.field-list {
- grid-template-columns: fit-content(24px) auto !important;
-}
\ No newline at end of file
+/* End footer contribute link */
\ No newline at end of file
diff --git a/build_files/theme/css/version_switch.css b/build_files/theme/css/version_switch.css
index 28a73440c..e17d715c4 100644
--- a/build_files/theme/css/version_switch.css
+++ b/build_files/theme/css/version_switch.css
@@ -1,49 +1,35 @@
-/* Override RTD theme */
-.rst-versions {
- border-top: 0px;
- overflow: visible;
-}
-
-.version-btn.vdeact {
- cursor: default;
- color: dimgray;
-}
-
-.version-btn.vdeact::after {
- content: "";
-}
-
#versionwrap {
+ margin: 0;
display: flex;
padding-top: 2px;
- font-size: 90%;
+ padding-left: 0;
+ font-size: var(--sidebar-item-font-size);
justify-content: center;
flex-wrap: wrap;
}
+#versionwrap>ul {
+ list-style: none;
+}
+
+#versionwrap>li {
+ display: flex;
+ width: 50%;
+}
+
.version-btn {
display: inline-block;
- background-color: #272525;
- width: 140px;
+ background-color: var(--color-sidebar-background);
+ width: 100%;
text-align: center;
padding: 3px 10px;
margin: 0px 5px 4px;
vertical-align: middle;
- color: #27AE60;
- border: solid 1px #444444;
+ color: var(--color-link);
+ border: solid 1px var(--color-sidebar-background-border);
border-radius: 3px;
cursor: pointer;
z-index: 400;
- transition: border-color 0.4s;
-}
-
-.version-btn::after {
- content: "\f0d8";
- display: inline;
- font: normal normal normal 16px/1 FontAwesome;
- color: #8d8c8c;
- vertical-align: top;
- padding-left: 0.5em;
}
.version-btn-open::after {
@@ -57,7 +43,7 @@
.version-btn-open {
color: gray;
- border: solid 1px gray;
+ border: solid 1px var(--color-sidebar-background-border);
}
.version-btn.wait {
@@ -73,32 +59,34 @@
display: none;
position: absolute;
bottom: 28px;
- width: 140px;
+ width: 50%;
margin: 0 5px;
padding-bottom: 4px;
- background-color: #0003;
border-radius: 3px;
box-shadow: 0 0 6px #000C;
z-index: 999;
max-height: calc(100vh - 30px);
+ overflow-x: clip;
overflow-y: auto;
cursor: default;
}
.version-title {
padding: 5px;
- color: black;
+ color: var(--color-content-foreground);
text-align: center;
font-size: 102%;
- background-color: #27ae60;
- border-bottom: solid 1.5px #444;
+ font-weight: 700;
+ background-color: var(--color-brand-primary);
+ border-bottom: solid 1.5px var(--color-sidebar-background-border);
}
.version-list {
+ padding-left: 0;
+ margin-top: 0;
margin-bottom: 4px;
text-align: center;
- background-color: #000C;
- border: solid 1px gray;
+ border: solid 1px var(--color-sidebar-background-border);
border-radius: 0px 0px 3px 3px;
}
@@ -112,39 +100,21 @@
width: 100%;
margin: 0;
padding: 4px 0px;
- color: #404040;
+ color: var(--color-sidebar-link-text);
}
.version-list li {
- background-color: #ede9e9;
- color: #404040;
+ background-color: var(--color-sidebar-background);
+ color: var(--color-sidebar-link-text);
padding: 1px;
}
.version-list li:hover,
.version-list li a:focus {
- background-color: #b9cfda;
+ background-color: var(--color-background-hover);
}
-.version-list li.selected,
-.version-list li.selected:hover {
- background-color: #8d8c8c;
-}
-
-.version-list li.selected span {
- cursor: default;
- outline-color: red;
-}
-
-.version-arrow {
- position: absolute;
- width: 8px;
- height: 8px;
- left: 50%;
- bottom: 4px;
- margin-left: -4px;
- transform: rotate(225deg);
- background: #ede9e9;
- border: 1px solid gray;
- border-width: 1px 0 0 1px;
-}
+.version-list li.selected {
+ background: var(--color-sidebar-item-background--current);
+ font-weight: 700;
+}
\ No newline at end of file
diff --git a/manual/conf.py b/manual/conf.py
index 8a98da452..4c6671712 100644
--- a/manual/conf.py
+++ b/manual/conf.py
@@ -54,7 +54,6 @@ extensions = [
'sphinx.ext.intersphinx',
'sphinx.ext.mathjax',
'sphinx.ext.todo',
- 'sphinxcontrib.jquery',
]
# Is there a better way to check for PDF building?
@@ -95,9 +94,6 @@ numfig = False
# if set to 0, figures, tables and code-blocks are continuously numbered starting at 1.
numfig_secnum_depth = 0
-# The style name to use for Pygments highlighting of source code.
-pygments_style = 'default'
-
# -- Options for Internationalization ----------------------------------------
@@ -118,11 +114,11 @@ gettext_allow_fuzzy_translations = False
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
-html_theme = "default"
+html_theme = "basic"
try:
- import sphinx_rtd_theme
- html_theme = "sphinx_rtd_theme"
- del sphinx_rtd_theme
+ import furo
+ html_theme = "furo"
+ del furo
except ModuleNotFoundError:
pass
@@ -135,21 +131,30 @@ html_theme_options = {}
# the configuration directory.
html_theme_path = []
-if html_theme == "sphinx_rtd_theme":
+if html_theme == "furo":
html_theme_options = {
- "analytics_id": "UA-1418081-1",
- # included in the title
- "display_version": False,
- "collapse_navigation": True,
- "navigation_depth": -1,
+ "source_edit_link": "https://projects.blender.org/blender/blender-manual/_edit/main/manual/{filename}",
+ "light_css_variables": {
+ "color-brand-primary": "#265787",
+ "color-brand-content": "#265787",
+ },
}
- extensions.append('sphinx_rtd_theme')
+ html_sidebars = {
+ "**": [
+ "sidebar/brand.html",
+ "sidebar/search.html",
+ "sidebar/scroll-start.html",
+ "sidebar/navigation.html",
+ "sidebar/scroll-end.html",
+ "sidebar/variant-selector.html",
+ ]
+ }
# The "title" for HTML documentation generated with Sphinx's own templates.
# This is appended to the tag of individual pages, and
# used in the navigation bar as the "topmost" element.
-html_title = "Blender Manual"
+html_title = 'Blender %s Manual' % blender_version
# The base URL which points to the root of the HTML documentation.
# It is used to indicate the location of document using
@@ -168,7 +173,7 @@ html_logo = "../build_files/theme/blender-logo.svg"
# the docs, or URL that points an image file for the favicon.
html_favicon = "../build_files/theme/favicon.ico"
-if html_theme == "sphinx_rtd_theme":
+if html_theme == "furo":
html_css_files = ["css/theme_overrides.css",
"css/version_switch.css"]
html_js_files = ["js/version_switch.js"]
diff --git a/requirements.txt b/requirements.txt
index 645e5e388..23355a47d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -13,7 +13,7 @@ sphinx-intl==2.1.0
# Only needed to match the theme used for the official documentation.
# Without this theme, the default theme will be used.
-sphinx_rtd_theme==2.0.0
+furo==2024.1.29
# Only for convenience, allows live updating while editing RST files.
# Access by running: