aboutsummaryrefslogtreecommitdiff
path: root/p
diff options
context:
space:
mode:
authorGravatar Inverle <inverle@proton.me> 2025-11-06 20:45:44 +0100
committerGravatar GitHub <noreply@github.com> 2025-11-06 20:45:44 +0100
commit8cb2158a390088738eaa27ed3b01d784c35d9f9d (patch)
treecdd075ee67aeb4dc830ba28c00db02a33f0ecc72 /p
parent63fe7438784cd56b9291d2a0dee3f872a53c7ae0 (diff)
Replace arrow navigation in theme switcher with `<select>` (#8190)
Follow-up (or replacement) of https://github.com/FreshRSS/FreshRSS/pull/8167 ![gif](https://github.com/user-attachments/assets/96cdeaff-36bc-4d0b-9b75-97bd7ff78ba1)
Diffstat (limited to 'p')
-rw-r--r--p/scripts/extra.js14
-rw-r--r--p/themes/base-theme/frss.css40
-rw-r--r--p/themes/base-theme/frss.rtl.css40
3 files changed, 18 insertions, 76 deletions
diff --git a/p/scripts/extra.js b/p/scripts/extra.js
index 96874a65d..dfeff9293 100644
--- a/p/scripts/extra.js
+++ b/p/scripts/extra.js
@@ -100,6 +100,19 @@ function init_crypto_forms() {
// </crypto form (Web login)>
// <show password>
+
+function init_display(parent) {
+ const theme = parent.querySelector('select#theme');
+ if (!theme) {
+ return;
+ }
+ theme.addEventListener('change', (e) => {
+ const picked = parent.querySelector('.preview-container.picked');
+ picked.classList.remove('picked');
+ parent.querySelector(`[data-theme-preview="${e.target.value}"]`).classList.add('picked');
+ });
+}
+
function togglePW(btn) {
if (btn.classList.contains('active')) {
hidePW(btn);
@@ -543,6 +556,7 @@ function init_extra_afterDOM() {
init_archiving(slider);
init_url_observers(slider);
} else {
+ init_display(document.body);
init_archiving(document.body);
init_url_observers(document.body);
}
diff --git a/p/themes/base-theme/frss.css b/p/themes/base-theme/frss.css
index 958d2ba1d..9bdea1fea 100644
--- a/p/themes/base-theme/frss.css
+++ b/p/themes/base-theme/frss.css
@@ -2114,10 +2114,6 @@ html.slider-active {
min-width: 260px;
}
-.theme-preview-list input {
- display: none;
-}
-
.theme-preview-list .preview-container {
display: block;
}
@@ -2136,19 +2132,6 @@ html.slider-active {
height: 100%;
}
-.theme-preview-list .nav label {
- padding: 0;
- display: none;
- min-width: 50px;
- min-height: 5rem;
- position: absolute;
- top: 34%;
- z-index: 9;
- text-align: center;
- line-height: 5;
-}
-
-
.theme-preview-list .properties {
padding: 5px;
background-color: var(--frss-background-color-transparent);
@@ -2161,32 +2144,13 @@ html.slider-active {
backdrop-filter: blur(3px);
}
-.theme-preview-list .page-number {
- bottom: -1.5rem;
- position: absolute;
- display: none;
- left: 0;
- right: 0;
- text-align: center;
-}
-
-.theme-preview-list .nav label.prev {
- left: -1rem;
-}
-
-.theme-preview-list .nav label.next {
- right: -1rem;
-}
-
-.theme-preview-list input:checked + .preview-container .preview {
+.preview-container.picked .preview {
opacity: 1;
transform: scale(1);
transition: opacity .5s ease-in-out;
}
-.theme-preview-list input:checked + .preview-container .nav label,
-.theme-preview-list input:checked + .preview-container .properties,
-.theme-preview-list input:checked + .preview-container .page-number {
+.preview-container.picked .properties {
display: block;
}
diff --git a/p/themes/base-theme/frss.rtl.css b/p/themes/base-theme/frss.rtl.css
index 5e0324153..b3464e6cc 100644
--- a/p/themes/base-theme/frss.rtl.css
+++ b/p/themes/base-theme/frss.rtl.css
@@ -2114,10 +2114,6 @@ html.slider-active {
min-width: 260px;
}
-.theme-preview-list input {
- display: none;
-}
-
.theme-preview-list .preview-container {
display: block;
}
@@ -2136,19 +2132,6 @@ html.slider-active {
height: 100%;
}
-.theme-preview-list .nav label {
- padding: 0;
- display: none;
- min-width: 50px;
- min-height: 5rem;
- position: absolute;
- top: 34%;
- z-index: 9;
- text-align: center;
- line-height: 5;
-}
-
-
.theme-preview-list .properties {
padding: 5px;
background-color: var(--frss-background-color-transparent);
@@ -2161,32 +2144,13 @@ html.slider-active {
backdrop-filter: blur(3px);
}
-.theme-preview-list .page-number {
- bottom: -1.5rem;
- position: absolute;
- display: none;
- right: 0;
- left: 0;
- text-align: center;
-}
-
-.theme-preview-list .nav label.prev {
- right: -1rem;
-}
-
-.theme-preview-list .nav label.next {
- left: -1rem;
-}
-
-.theme-preview-list input:checked + .preview-container .preview {
+.preview-container.picked .preview {
opacity: 1;
transform: scale(1);
transition: opacity .5s ease-in-out;
}
-.theme-preview-list input:checked + .preview-container .nav label,
-.theme-preview-list input:checked + .preview-container .properties,
-.theme-preview-list input:checked + .preview-container .page-number {
+.preview-container.picked .properties {
display: block;
}