From 7c25f6b7a5af6eae0285444cef3319ea441b081e Mon Sep 17 00:00:00 2001 From: Tim Monko Date: Tue, 19 May 2026 17:19:34 -0500 Subject: [PATCH 1/6] WIP shared logic --- docs/_static/custom.css | 131 +++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 69 deletions(-) diff --git a/docs/_static/custom.css b/docs/_static/custom.css index e5c50e450..66daa6850 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -1,47 +1,74 @@ -/* -Sphinx-Gallery has compatible CSS to fix default sphinx themes -Tested for Sphinx 1.3.1 for all themes: default, alabaster, sphinxdoc, -scrolls, agogo, traditional, nature, haiku, pyramid -Tested for Read the Docs theme 0.1.7 */ - -html[data-theme="light"] div.sphx-glr-download a { - background-color: rgb(255, 255, 255) !important; - background-image: linear-gradient(to bottom, rgb(255, 255, 255), #ffffff) !important; +/* ── Homepage accent cards ─────────────────────────────────────────── + Install, Download cards with theme-aware napari blue. + sphinx-design marks every property !important, so we must too. */ + +.homepage-button { + display: block; +} + +/* Reuse the homepage CTA skin for gallery download buttons. */ + +.homepage-button, +.napari-gallery-downloads .sphx-glr-download a { + background-image: none !important; border-radius: 4px; - border: 1px solid #ffffff !important; - color: #000; - display: inline-block; font-weight: bold; - padding: 1ex; text-align: center; -} - -html[data-theme="light"] div.sphx-glr-download a:hover { - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), - 0 1px 5px rgba(0, 0, 0, 0.25); text-decoration: none; - background-image: none; - background-color: #ffffff !important; } -html[data-theme="dark"] div.sphx-glr-download a { - background-color: #222832 !important; - background-image: linear-gradient(to bottom, #222832, #222832) !important; - border-radius: 4px; - border: 1px solid #222832 !important; - color: #000; +.napari-gallery-downloads .sphx-glr-download a { + border: 1px solid transparent; display: inline-block; - font-weight: bold; - padding: 1ex; - text-align: center; + padding: 0.45rem 0.8rem; } -html[data-theme="dark"] div.sphx-glr-download a:hover { - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), - 0 1px 5px rgba(0, 0, 0, 0.25); - text-decoration: none; - background-image: none; - background-color: #222832 !important; +html[data-theme="light"] .homepage-button, +html[data-theme="light"] .napari-gallery-downloads .sphx-glr-download a { + background-color: var(--napari-primary-blue) !important; + border-color: var(--napari-primary-blue) !important; + color: var(--napari-color-text-base) !important; +} + +html[data-theme="dark"] .homepage-button, +html[data-theme="dark"] .napari-gallery-downloads .sphx-glr-download a { + background-color: var(--napari-purple) !important; + border-color: var(--napari-purple) !important; + color: var(--napari-color-text-base) !important; +} + +html[data-theme="light"] .homepage-button:hover, +html[data-theme="light"] .napari-gallery-downloads .sphx-glr-download a:hover { + background-color: color-mix(in srgb, var(--napari-primary-blue), transparent 25%) !important; + text-decoration: underline; +} + +html[data-theme="dark"] .homepage-button:hover, +html[data-theme="dark"] .napari-gallery-downloads .sphx-glr-download a:hover { + background-color: color-mix(in srgb, var(--napari-purple), transparent 25%) !important; + text-decoration: underline; +} + +.napari-gallery-downloads .sphx-glr-download a:hover { + box-shadow: none; +} + +.napari-gallery-downloads { + display: flex; + flex-wrap: wrap; + gap: 0.375rem; + margin: 0 0 0.5rem; +} + +.napari-gallery-downloads .sphx-glr-download { + margin: 0; +} + +.sphx-glr-download-link-note, +.sphx-glr-download-jupyter, +.sphx-glr-download-python, +.sphx-glr-download-zip { + display: none; } /* Version warning banner color */ @@ -63,35 +90,6 @@ html[data-theme="dark"] div.sphx-glr-download a:hover { font-weight: 700; } -/* ── Homepage accent cards ─────────────────────────────────────────── - Install, Download cards with theme-aware napari blue. - sphinx-design marks every property !important, so we must too. */ - -.homepage-button { - display: block; -} - -html[data-theme="light"] .homepage-button { - background-color: var(--napari-primary-blue) !important; - border-color: var(--napari-primary-blue) !important; - color: var(--napari-color-text-base) !important; -} - -html[data-theme="dark"] .homepage-button { - background-color: var(--napari-purple) !important; - border-color: var(--napari-purple) !important; - color: var(--napari-color-text-base) !important; -} - -html[data-theme="light"] .homepage-button:hover { - text-decoration: underline; - background-color: color-mix(in srgb, var(--napari-primary-blue), transparent 25%) !important; -} - -html[data-theme="dark"] .homepage-button:hover { - text-decoration: underline; - background-color: color-mix(in srgb, var(--napari-purple), transparent 25%) !important; -} /* ── Homepage quicklinks (icon columns) ──────────────────────────────── */ @@ -222,9 +220,4 @@ html[data-theme="dark"] .homepage-quicklinks a { html[data-theme="dark"] img#homepage-featured-example-image { background-color: var(--pst-color-background) !important; -} - -.homepage-example-button:hover { - background-color: var(--pst-color-background) !important; - color: var(--napari-color-text-base) !important; } \ No newline at end of file From 15cabba52a1b7056cca63b7219ec97736412fa9e Mon Sep 17 00:00:00 2001 From: Tim Monko Date: Tue, 19 May 2026 19:14:03 -0500 Subject: [PATCH 2/6] clean up and comment --- docs/_static/custom.css | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/_static/custom.css b/docs/_static/custom.css index 66daa6850..5e895a598 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -1,28 +1,13 @@ -/* ── Homepage accent cards ─────────────────────────────────────────── - Install, Download cards with theme-aware napari blue. - sphinx-design marks every property !important, so we must too. */ - -.homepage-button { - display: block; -} - -/* Reuse the homepage CTA skin for gallery download buttons. */ +/* ── Buttons for homepage and gallery ───────────────────────────────────── */ .homepage-button, .napari-gallery-downloads .sphx-glr-download a { background-image: none !important; border-radius: 4px; - font-weight: bold; text-align: center; text-decoration: none; } -.napari-gallery-downloads .sphx-glr-download a { - border: 1px solid transparent; - display: inline-block; - padding: 0.45rem 0.8rem; -} - html[data-theme="light"] .homepage-button, html[data-theme="light"] .napari-gallery-downloads .sphx-glr-download a { background-color: var(--napari-primary-blue) !important; @@ -49,21 +34,37 @@ html[data-theme="dark"] .napari-gallery-downloads .sphx-glr-download a:hover { text-decoration: underline; } -.napari-gallery-downloads .sphx-glr-download a:hover { - box-shadow: none; +/* makes homepage button take up width of column */ +.homepage-button { + display: block; } +/* Allow border override to show through on example buttons */ +.napari-gallery-downloads .sphx-glr-download a { + border: 1px solid transparent; + display: inline-block; + padding: 0.45rem 0.8rem; +} + +/* force sphinx-gallery download code to inherit text color */ +.napari-gallery-downloads .sphx-glr-download a code.download { + color: inherit !important; +} + +/* horizontally align and reduce lower margin of container */ .napari-gallery-downloads { display: flex; flex-wrap: wrap; gap: 0.375rem; - margin: 0 0 0.5rem; + margin: 0 0 0.35rem; } +/* remove spacing around download buttons */ .napari-gallery-downloads .sphx-glr-download { margin: 0; } +/* Remove the sphinx-gallery downloads note and buttons */ .sphx-glr-download-link-note, .sphx-glr-download-jupyter, .sphx-glr-download-python, @@ -90,7 +91,6 @@ html[data-theme="dark"] .napari-gallery-downloads .sphx-glr-download a:hover { font-weight: 700; } - /* ── Homepage quicklinks (icon columns) ──────────────────────────────── */ .homepage-quicklinks { From 1f9eebe9d9649635d4f7b4b855f9232e9fbe6dd2 Mon Sep 17 00:00:00 2001 From: Tim Monko Date: Tue, 19 May 2026 19:14:46 -0500 Subject: [PATCH 3/6] remove gallery download removals --- docs/_static/custom.css | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/_static/custom.css b/docs/_static/custom.css index 5e895a598..3d44fdf74 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -64,14 +64,6 @@ html[data-theme="dark"] .napari-gallery-downloads .sphx-glr-download a:hover { margin: 0; } -/* Remove the sphinx-gallery downloads note and buttons */ -.sphx-glr-download-link-note, -.sphx-glr-download-jupyter, -.sphx-glr-download-python, -.sphx-glr-download-zip { - display: none; -} - /* Version warning banner color */ #bd-header-version-warning { background-color: color-mix(in srgb, var(--pst-color-secondary-bg), transparent 30%); From 7c8fa515a7b1b1e16ce1634024deee8fa9341182 Mon Sep 17 00:00:00 2001 From: Tim Monko Date: Tue, 19 May 2026 19:33:45 -0500 Subject: [PATCH 4/6] clean up for old implementation and add alt styling for homepage --- docs/_static/custom.css | 55 +++++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/docs/_static/custom.css b/docs/_static/custom.css index 3d44fdf74..9913bd405 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -1,7 +1,7 @@ /* ── Buttons for homepage and gallery ───────────────────────────────────── */ .homepage-button, -.napari-gallery-downloads .sphx-glr-download a { +div.sphx-glr-download a { background-image: none !important; border-radius: 4px; text-align: center; @@ -9,45 +9,78 @@ } html[data-theme="light"] .homepage-button, -html[data-theme="light"] .napari-gallery-downloads .sphx-glr-download a { +html[data-theme="light"] div.sphx-glr-download a { background-color: var(--napari-primary-blue) !important; border-color: var(--napari-primary-blue) !important; color: var(--napari-color-text-base) !important; } html[data-theme="dark"] .homepage-button, -html[data-theme="dark"] .napari-gallery-downloads .sphx-glr-download a { +html[data-theme="dark"] div.sphx-glr-download a { background-color: var(--napari-purple) !important; border-color: var(--napari-purple) !important; color: var(--napari-color-text-base) !important; } html[data-theme="light"] .homepage-button:hover, -html[data-theme="light"] .napari-gallery-downloads .sphx-glr-download a:hover { +html[data-theme="light"] div.sphx-glr-download a:hover { background-color: color-mix(in srgb, var(--napari-primary-blue), transparent 25%) !important; text-decoration: underline; } html[data-theme="dark"] .homepage-button:hover, -html[data-theme="dark"] .napari-gallery-downloads .sphx-glr-download a:hover { +html[data-theme="dark"] div.sphx-glr-download a:hover { background-color: color-mix(in srgb, var(--napari-purple), transparent 25%) !important; text-decoration: underline; } + +.homepage-example-button { + border-radius: 4px; + text-align: center; + text-decoration: none; +} + +html[data-theme="light"] .homepage-example-button { + background-color: var(--pst-color-background) !important; + border-color: var(--napari-primary-blue) !important; + color: var(--napari-color-text-base) !important; +} + +html[data-theme="dark"] .homepage-example-button { + background-color: var(--pst-color-background) !important; + border-color: var(--napari-purple) !important; + color: var(--napari-color-text-base) !important; +} + +html[data-theme="light"] .homepage-example-button:hover { + background-color: var(--pst-color-background) !important; + border-color: var(--napari-primary-blue) !important; + color: var(--napari-color-text-base) !important; + text-decoration: underline; +} + +html[data-theme="dark"] .homepage-example-button:hover { + background-color: var(--pst-color-background) !important; + border-color: var(--napari-purple) !important; + color: var(--napari-color-text-base) !important; + text-decoration: underline; +} + /* makes homepage button take up width of column */ .homepage-button { display: block; } /* Allow border override to show through on example buttons */ -.napari-gallery-downloads .sphx-glr-download a { +div.sphx-glr-download a { border: 1px solid transparent; display: inline-block; padding: 0.45rem 0.8rem; } /* force sphinx-gallery download code to inherit text color */ -.napari-gallery-downloads .sphx-glr-download a code.download { +div.sphx-glr-download a code.download { color: inherit !important; } @@ -64,6 +97,14 @@ html[data-theme="dark"] .napari-gallery-downloads .sphx-glr-download a:hover { margin: 0; } +/* Remove the sphinx-gallery downloads note and footer buttons. */ +/* .sphx-glr-download-link-note, +.sphx-glr-download-jupyter, +.sphx-glr-download-python, +.sphx-glr-download-zip { + display: none; +} */ + /* Version warning banner color */ #bd-header-version-warning { background-color: color-mix(in srgb, var(--pst-color-secondary-bg), transparent 30%); From 9b17021f483666656c5a9c636d2f563a88c9c706 Mon Sep 17 00:00:00 2001 From: Tim Monko Date: Wed, 20 May 2026 14:16:37 -0500 Subject: [PATCH 5/6] reorg css --- docs/_static/custom.css | 76 +++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 45 deletions(-) diff --git a/docs/_static/custom.css b/docs/_static/custom.css index 9913bd405..908f8fd1f 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -1,6 +1,7 @@ /* ── Buttons for homepage and gallery ───────────────────────────────────── */ .homepage-button, +.homepage-example-button, div.sphx-glr-download a { background-image: none !important; border-radius: 4px; @@ -8,6 +9,36 @@ div.sphx-glr-download a { text-decoration: none; } +/* makes homepage button take up width of column */ +.homepage-button { + display: block; +} + +/* Allow border override to show through on example buttons */ +div.sphx-glr-download a { + border: 1px solid transparent; + display: inline-block; + padding: 0.45rem 0.8rem; +} + +/* force sphinx-gallery download code to inherit text color */ +div.sphx-glr-download a code.download { + color: inherit !important; +} + +/* horizontally align and reduce lower margin of container */ +.napari-gallery-downloads { + display: flex; + flex-wrap: wrap; + gap: 0.375rem; + margin: 0 0 0.35rem; +} + +/* remove spacing around download buttons */ +.napari-gallery-downloads .sphx-glr-download { + margin: 0; +} + html[data-theme="light"] .homepage-button, html[data-theme="light"] div.sphx-glr-download a { background-color: var(--napari-primary-blue) !important; @@ -34,13 +65,6 @@ html[data-theme="dark"] div.sphx-glr-download a:hover { text-decoration: underline; } - -.homepage-example-button { - border-radius: 4px; - text-align: center; - text-decoration: none; -} - html[data-theme="light"] .homepage-example-button { background-color: var(--pst-color-background) !important; border-color: var(--napari-primary-blue) !important; @@ -67,44 +91,6 @@ html[data-theme="dark"] .homepage-example-button:hover { text-decoration: underline; } -/* makes homepage button take up width of column */ -.homepage-button { - display: block; -} - -/* Allow border override to show through on example buttons */ -div.sphx-glr-download a { - border: 1px solid transparent; - display: inline-block; - padding: 0.45rem 0.8rem; -} - -/* force sphinx-gallery download code to inherit text color */ -div.sphx-glr-download a code.download { - color: inherit !important; -} - -/* horizontally align and reduce lower margin of container */ -.napari-gallery-downloads { - display: flex; - flex-wrap: wrap; - gap: 0.375rem; - margin: 0 0 0.35rem; -} - -/* remove spacing around download buttons */ -.napari-gallery-downloads .sphx-glr-download { - margin: 0; -} - -/* Remove the sphinx-gallery downloads note and footer buttons. */ -/* .sphx-glr-download-link-note, -.sphx-glr-download-jupyter, -.sphx-glr-download-python, -.sphx-glr-download-zip { - display: none; -} */ - /* Version warning banner color */ #bd-header-version-warning { background-color: color-mix(in srgb, var(--pst-color-secondary-bg), transparent 30%); From a36aabe9b9e9d34b8b588c2b8b5a6119f42bf568 Mon Sep 17 00:00:00 2001 From: Tim Monko Date: Wed, 20 May 2026 14:37:20 -0500 Subject: [PATCH 6/6] rename button classes --- docs/_static/custom.css | 22 +++++++++++----------- docs/index.md | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/_static/custom.css b/docs/_static/custom.css index 908f8fd1f..800cecda4 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -1,7 +1,7 @@ /* ── Buttons for homepage and gallery ───────────────────────────────────── */ -.homepage-button, -.homepage-example-button, +.button-primary, +.button-alt, div.sphx-glr-download a { background-image: none !important; border-radius: 4px; @@ -10,7 +10,7 @@ div.sphx-glr-download a { } /* makes homepage button take up width of column */ -.homepage-button { +.button-primary { display: block; } @@ -39,52 +39,52 @@ div.sphx-glr-download a code.download { margin: 0; } -html[data-theme="light"] .homepage-button, +html[data-theme="light"] .button-primary, html[data-theme="light"] div.sphx-glr-download a { background-color: var(--napari-primary-blue) !important; border-color: var(--napari-primary-blue) !important; color: var(--napari-color-text-base) !important; } -html[data-theme="dark"] .homepage-button, +html[data-theme="dark"] .button-primary, html[data-theme="dark"] div.sphx-glr-download a { background-color: var(--napari-purple) !important; border-color: var(--napari-purple) !important; color: var(--napari-color-text-base) !important; } -html[data-theme="light"] .homepage-button:hover, +html[data-theme="light"] .button-primary:hover, html[data-theme="light"] div.sphx-glr-download a:hover { background-color: color-mix(in srgb, var(--napari-primary-blue), transparent 25%) !important; text-decoration: underline; } -html[data-theme="dark"] .homepage-button:hover, +html[data-theme="dark"] .button-primary:hover, html[data-theme="dark"] div.sphx-glr-download a:hover { background-color: color-mix(in srgb, var(--napari-purple), transparent 25%) !important; text-decoration: underline; } -html[data-theme="light"] .homepage-example-button { +html[data-theme="light"] .button-alt { background-color: var(--pst-color-background) !important; border-color: var(--napari-primary-blue) !important; color: var(--napari-color-text-base) !important; } -html[data-theme="dark"] .homepage-example-button { +html[data-theme="dark"] .button-alt { background-color: var(--pst-color-background) !important; border-color: var(--napari-purple) !important; color: var(--napari-color-text-base) !important; } -html[data-theme="light"] .homepage-example-button:hover { +html[data-theme="light"] .button-alt:hover { background-color: var(--pst-color-background) !important; border-color: var(--napari-primary-blue) !important; color: var(--napari-color-text-base) !important; text-decoration: underline; } -html[data-theme="dark"] .homepage-example-button:hover { +html[data-theme="dark"] .button-alt:hover { background-color: var(--pst-color-background) !important; border-color: var(--napari-purple) !important; color: var(--napari-color-text-base) !important; diff --git a/docs/index.md b/docs/index.md index b775ffabb..aa3935234 100644 --- a/docs/index.md +++ b/docs/index.md @@ -64,7 +64,7 @@ theme: :color: primary :ref-type: myst :shadow: -:class: homepage-button +:class: button-primary {material-regular}`arrow_forward;1.2em` **Get started** ``` @@ -133,8 +133,8 @@ A standalone installer for when you want napari without setting up Python first. Display an image in napari and explore the viewer with a minimal example.