From 71e3162832a720519f639addd25c1d9f61213806 Mon Sep 17 00:00:00 2001 From: Wulian <1055917385@qq.com> Date: Sat, 21 Dec 2024 07:23:20 +0800 Subject: [PATCH 01/11] Improve sidebar responsiveness and resizability --- python_docs_theme/layout.html | 1 + python_docs_theme/static/pydoctheme.css | 5 ++++- python_docs_theme/static/sidebar-resizer.js | 23 +++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 python_docs_theme/static/sidebar-resizer.js diff --git a/python_docs_theme/layout.html b/python_docs_theme/layout.html index 9762b06..9d92c19 100644 --- a/python_docs_theme/layout.html +++ b/python_docs_theme/layout.html @@ -78,6 +78,7 @@

{{ _('Navigation') }}

+ {%- endif -%} {%- endif -%} {{ super() }} diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 0f6f8d3..c8911df 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -149,6 +149,9 @@ div.sphinxsidebar { border-radius: 5px; line-height: 130%; font-size: smaller; + width: 300px; + resize: horizontal; + overflow: auto; } div.sphinxsidebar h3, @@ -157,7 +160,7 @@ div.sphinxsidebar h4 { } div.sphinxsidebarwrapper { - width: 217px; + width: 100%; box-sizing: border-box; height: 100%; overflow-x: hidden; diff --git a/python_docs_theme/static/sidebar-resizer.js b/python_docs_theme/static/sidebar-resizer.js new file mode 100644 index 0000000..aef6772 --- /dev/null +++ b/python_docs_theme/static/sidebar-resizer.js @@ -0,0 +1,23 @@ +document.addEventListener('DOMContentLoaded', function() { + const sidebar = document.querySelector('.sphinxsidebar'); + const resizer = document.createElement('div'); + resizer.className = 'sidebar-resizer'; + sidebar.appendChild(resizer); + + resizer.addEventListener('mousedown', function(e) { + document.addEventListener('mousemove', resizeSidebar); + document.addEventListener('mouseup', stopResize); + }); + + function resizeSidebar(e) { + const newWidth = e.clientX - sidebar.getBoundingClientRect().left; + if (newWidth > 150 && newWidth < window.innerWidth - 100) { + sidebar.style.width = newWidth + 'px'; + } + } + + function stopResize() { + document.removeEventListener('mousemove', resizeSidebar); + document.removeEventListener('mouseup', stopResize); + } +}); From 0a2c552c0d950442230db5ce640a4ee5c4d363dc Mon Sep 17 00:00:00 2001 From: Wulian233 <1055917385@qq.com> Date: Sat, 21 Dec 2024 09:07:26 +0800 Subject: [PATCH 02/11] css --- python_docs_theme/layout.html | 1 - python_docs_theme/static/pydoctheme.css | 4 +++- python_docs_theme/static/sidebar-resizer.js | 23 --------------------- 3 files changed, 3 insertions(+), 25 deletions(-) delete mode 100644 python_docs_theme/static/sidebar-resizer.js diff --git a/python_docs_theme/layout.html b/python_docs_theme/layout.html index 9d92c19..9762b06 100644 --- a/python_docs_theme/layout.html +++ b/python_docs_theme/layout.html @@ -78,7 +78,6 @@

{{ _('Navigation') }}

- {%- endif -%} {%- endif -%} {{ super() }} diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index c8911df..1cd6601 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -150,6 +150,8 @@ div.sphinxsidebar { line-height: 130%; font-size: smaller; width: 300px; + min-width: 200px; + max-width: 500px; resize: horizontal; overflow: auto; } @@ -160,7 +162,7 @@ div.sphinxsidebar h4 { } div.sphinxsidebarwrapper { - width: 100%; + width: 300px; box-sizing: border-box; height: 100%; overflow-x: hidden; diff --git a/python_docs_theme/static/sidebar-resizer.js b/python_docs_theme/static/sidebar-resizer.js deleted file mode 100644 index aef6772..0000000 --- a/python_docs_theme/static/sidebar-resizer.js +++ /dev/null @@ -1,23 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - const sidebar = document.querySelector('.sphinxsidebar'); - const resizer = document.createElement('div'); - resizer.className = 'sidebar-resizer'; - sidebar.appendChild(resizer); - - resizer.addEventListener('mousedown', function(e) { - document.addEventListener('mousemove', resizeSidebar); - document.addEventListener('mouseup', stopResize); - }); - - function resizeSidebar(e) { - const newWidth = e.clientX - sidebar.getBoundingClientRect().left; - if (newWidth > 150 && newWidth < window.innerWidth - 100) { - sidebar.style.width = newWidth + 'px'; - } - } - - function stopResize() { - document.removeEventListener('mousemove', resizeSidebar); - document.removeEventListener('mouseup', stopResize); - } -}); From b670b72ce7709d616381794d344c747667c3e080 Mon Sep 17 00:00:00 2001 From: Wulian233 <1055917385@qq.com> Date: Wed, 22 Jan 2025 09:51:48 +0800 Subject: [PATCH 03/11] improve --- python_docs_theme/layout.html | 1 + python_docs_theme/static/pydoctheme.css | 27 ++++++++++++++++----- python_docs_theme/static/sidebar-resizer.js | 23 ++++++++++++++++++ 3 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 python_docs_theme/static/sidebar-resizer.js diff --git a/python_docs_theme/layout.html b/python_docs_theme/layout.html index 9762b06..9d92c19 100644 --- a/python_docs_theme/layout.html +++ b/python_docs_theme/layout.html @@ -78,6 +78,7 @@

{{ _('Navigation') }}

+ {%- endif -%} {%- endif -%} {{ super() }} diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 1cd6601..619980d 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -1,5 +1,10 @@ @import url('classic.css'); +/* Smooth scroll */ +html { + scroll-behavior: smooth; +} + /* Common colours */ :root { --good-color: rgb(41 100 51); @@ -129,6 +134,7 @@ form.inline-search input[type='submit'] { } div.document { + animation: fadeIn 0.6s ease-in-out; display: flex; /* Don't let long code literals extend beyond the right side of the screen */ overflow-wrap: break-word; @@ -149,11 +155,7 @@ div.sphinxsidebar { border-radius: 5px; line-height: 130%; font-size: smaller; - width: 300px; - min-width: 200px; - max-width: 500px; - resize: horizontal; - overflow: auto; + transition: width 0.3s ease; } div.sphinxsidebar h3, @@ -162,7 +164,7 @@ div.sphinxsidebar h4 { } div.sphinxsidebarwrapper { - width: 300px; + width: 217px; box-sizing: border-box; height: 100%; overflow-x: hidden; @@ -210,6 +212,9 @@ div.sphinxsidebar input[type='text'] { width: 12px; border-radius: 0 5px 5px 0; border-left: none; + position: absolute; + right: 0; + transition: background-color 0.3s ease, color 0.3s ease; } #sidebarbutton span { @@ -766,3 +771,13 @@ div.versionremoved .versionmodified { display: none; } } + +/* Animation */ +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} diff --git a/python_docs_theme/static/sidebar-resizer.js b/python_docs_theme/static/sidebar-resizer.js new file mode 100644 index 0000000..aef6772 --- /dev/null +++ b/python_docs_theme/static/sidebar-resizer.js @@ -0,0 +1,23 @@ +document.addEventListener('DOMContentLoaded', function() { + const sidebar = document.querySelector('.sphinxsidebar'); + const resizer = document.createElement('div'); + resizer.className = 'sidebar-resizer'; + sidebar.appendChild(resizer); + + resizer.addEventListener('mousedown', function(e) { + document.addEventListener('mousemove', resizeSidebar); + document.addEventListener('mouseup', stopResize); + }); + + function resizeSidebar(e) { + const newWidth = e.clientX - sidebar.getBoundingClientRect().left; + if (newWidth > 150 && newWidth < window.innerWidth - 100) { + sidebar.style.width = newWidth + 'px'; + } + } + + function stopResize() { + document.removeEventListener('mousemove', resizeSidebar); + document.removeEventListener('mouseup', stopResize); + } +}); From 6eaf14c4abfb6b954917d9496800b46b7e4554b4 Mon Sep 17 00:00:00 2001 From: Wulian233 <1055917385@qq.com> Date: Wed, 22 Jan 2025 09:55:37 +0800 Subject: [PATCH 04/11] css --- python_docs_theme/layout.html | 1 - python_docs_theme/static/pydoctheme.css | 6 +++++- python_docs_theme/static/sidebar-resizer.js | 23 --------------------- 3 files changed, 5 insertions(+), 25 deletions(-) delete mode 100644 python_docs_theme/static/sidebar-resizer.js diff --git a/python_docs_theme/layout.html b/python_docs_theme/layout.html index 9d92c19..9762b06 100644 --- a/python_docs_theme/layout.html +++ b/python_docs_theme/layout.html @@ -78,7 +78,6 @@

{{ _('Navigation') }}

- {%- endif -%} {%- endif -%} {{ super() }} diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 619980d..94be9e7 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -2,7 +2,11 @@ /* Smooth scroll */ html { - scroll-behavior: smooth; + scroll-behavior: auto; +} + +:target { + scroll-behavior: auto; } /* Common colours */ diff --git a/python_docs_theme/static/sidebar-resizer.js b/python_docs_theme/static/sidebar-resizer.js deleted file mode 100644 index aef6772..0000000 --- a/python_docs_theme/static/sidebar-resizer.js +++ /dev/null @@ -1,23 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - const sidebar = document.querySelector('.sphinxsidebar'); - const resizer = document.createElement('div'); - resizer.className = 'sidebar-resizer'; - sidebar.appendChild(resizer); - - resizer.addEventListener('mousedown', function(e) { - document.addEventListener('mousemove', resizeSidebar); - document.addEventListener('mouseup', stopResize); - }); - - function resizeSidebar(e) { - const newWidth = e.clientX - sidebar.getBoundingClientRect().left; - if (newWidth > 150 && newWidth < window.innerWidth - 100) { - sidebar.style.width = newWidth + 'px'; - } - } - - function stopResize() { - document.removeEventListener('mousemove', resizeSidebar); - document.removeEventListener('mouseup', stopResize); - } -}); From 37a655bfebf18264e359104ab2ad136e5f0b7b8e Mon Sep 17 00:00:00 2001 From: Wulian <1055917385@qq.com> Date: Wed, 22 Jan 2025 10:04:01 +0800 Subject: [PATCH 05/11] Update pydoctheme.css --- python_docs_theme/static/pydoctheme.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 94be9e7..91389ed 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -6,7 +6,7 @@ html { } :target { - scroll-behavior: auto; + scroll-behavior: smooth; } /* Common colours */ From 926bd9df208aee924b44f6b1be175f27ce56660d Mon Sep 17 00:00:00 2001 From: Wulian <1055917385@qq.com> Date: Wed, 22 Jan 2025 10:11:40 +0800 Subject: [PATCH 06/11] Update pydoctheme.css --- python_docs_theme/static/pydoctheme.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 91389ed..1922cb3 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -5,7 +5,7 @@ html { scroll-behavior: auto; } -:target { +html:has(:target) { scroll-behavior: smooth; } From 438dccc1d87a076ca001c6c1980db6327c53e250 Mon Sep 17 00:00:00 2001 From: Wulian233 <1055917385@qq.com> Date: Wed, 22 Jan 2025 10:21:19 +0800 Subject: [PATCH 07/11] trying... --- python_docs_theme/layout.html | 1 + python_docs_theme/static/pydoctheme.css | 9 --------- python_docs_theme/static/smooth.js | 15 +++++++++++++++ 3 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 python_docs_theme/static/smooth.js diff --git a/python_docs_theme/layout.html b/python_docs_theme/layout.html index 9762b06..c06ffd9 100644 --- a/python_docs_theme/layout.html +++ b/python_docs_theme/layout.html @@ -77,6 +77,7 @@

{{ _('Navigation') }}

+ {%- endif -%} {%- endif -%} diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 1922cb3..4ef3319 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -1,14 +1,5 @@ @import url('classic.css'); -/* Smooth scroll */ -html { - scroll-behavior: auto; -} - -html:has(:target) { - scroll-behavior: smooth; -} - /* Common colours */ :root { --good-color: rgb(41 100 51); diff --git a/python_docs_theme/static/smooth.js b/python_docs_theme/static/smooth.js new file mode 100644 index 0000000..a897ab2 --- /dev/null +++ b/python_docs_theme/static/smooth.js @@ -0,0 +1,15 @@ +window.addEventListener('load', function() { + document.documentElement.style.scrollBehavior = 'auto'; + + const target = window.location.hash; + if (target) { + window.scrollTo(0, 0); + document.querySelector(target)?.scrollIntoView(); + } + + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function(e) { + document.documentElement.style.scrollBehavior = 'smooth'; + }); + }); +}); From 131c81c313ac681db680610143ba56056627badf Mon Sep 17 00:00:00 2001 From: Wulian <1055917385@qq.com> Date: Wed, 22 Jan 2025 16:53:07 +0800 Subject: [PATCH 08/11] accessibility --- python_docs_theme/static/pydoctheme.css | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 4ef3319..8afe70f 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -776,3 +776,18 @@ div.versionremoved .versionmodified { opacity: 1; } } + +@media (prefers-reduced-motion) { + div.document { + animation: none; + transition: none; + } + + #sidebarbutton { + transition: none; + } + + html { + scroll-behavior: auto; + } +} \ No newline at end of file From 978ff2bcfdd66971d4a49729d22f222454a76c98 Mon Sep 17 00:00:00 2001 From: Wulian233 <1055917385@qq.com> Date: Fri, 24 Jan 2025 12:17:50 +0800 Subject: [PATCH 09/11] remove smooth scroll --- python_docs_theme/layout.html | 1 - python_docs_theme/static/pydoctheme.css | 6 +----- python_docs_theme/static/smooth.js | 15 --------------- 3 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 python_docs_theme/static/smooth.js diff --git a/python_docs_theme/layout.html b/python_docs_theme/layout.html index c06ffd9..9762b06 100644 --- a/python_docs_theme/layout.html +++ b/python_docs_theme/layout.html @@ -77,7 +77,6 @@

{{ _('Navigation') }}

- {%- endif -%} {%- endif -%} diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 8afe70f..83515f3 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -777,7 +777,7 @@ div.versionremoved .versionmodified { } } -@media (prefers-reduced-motion) { +@media (prefers-reduced-motion: reduce) { div.document { animation: none; transition: none; @@ -786,8 +786,4 @@ div.versionremoved .versionmodified { #sidebarbutton { transition: none; } - - html { - scroll-behavior: auto; - } } \ No newline at end of file diff --git a/python_docs_theme/static/smooth.js b/python_docs_theme/static/smooth.js deleted file mode 100644 index a897ab2..0000000 --- a/python_docs_theme/static/smooth.js +++ /dev/null @@ -1,15 +0,0 @@ -window.addEventListener('load', function() { - document.documentElement.style.scrollBehavior = 'auto'; - - const target = window.location.hash; - if (target) { - window.scrollTo(0, 0); - document.querySelector(target)?.scrollIntoView(); - } - - document.querySelectorAll('a[href^="#"]').forEach(anchor => { - anchor.addEventListener('click', function(e) { - document.documentElement.style.scrollBehavior = 'smooth'; - }); - }); -}); From c3b891434c143a2528f9b3e58bf42c9d242dbeea Mon Sep 17 00:00:00 2001 From: Wulian <1055917385@qq.com> Date: Sat, 25 Jan 2025 10:59:22 +0800 Subject: [PATCH 10/11] remove fadein --- python_docs_theme/static/pydoctheme.css | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 83515f3..6cedf01 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -129,7 +129,6 @@ form.inline-search input[type='submit'] { } div.document { - animation: fadeIn 0.6s ease-in-out; display: flex; /* Don't let long code literals extend beyond the right side of the screen */ overflow-wrap: break-word; @@ -768,18 +767,8 @@ div.versionremoved .versionmodified { } /* Animation */ -@keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - @media (prefers-reduced-motion: reduce) { div.document { - animation: none; transition: none; } From b064bafbb1546c2f01e79fd5fc124284899834e1 Mon Sep 17 00:00:00 2001 From: Wulian <1055917385@qq.com> Date: Mon, 27 Jan 2025 06:36:27 +0800 Subject: [PATCH 11/11] fix lint action --- python_docs_theme/static/pydoctheme.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python_docs_theme/static/pydoctheme.css b/python_docs_theme/static/pydoctheme.css index 6cedf01..80f4082 100644 --- a/python_docs_theme/static/pydoctheme.css +++ b/python_docs_theme/static/pydoctheme.css @@ -775,4 +775,4 @@ div.versionremoved .versionmodified { #sidebarbutton { transition: none; } -} \ No newline at end of file +}