#8747 (re?)introduced an animation I find unbearably slow. If it was always there I suppose I just got used to it.
How to test the feature manually:
1. Open and close the sidebar on a sufficiently small width.
* fix(themes): replace #load_more loading-state GIF with a CSS spinner
In its `.loading` state, the "Load more" button kept its `.btn` frame and the spinner inside was hard to see or invisible across themes. Replaces the GIF with a base-theme CSS spinner inheriting `currentColor`, drops the button frame, respects `prefers-reduced-motion`, and renders crisply at any DPI. Per-theme `#load_more.loading` overrides in Nord, Flat, Mapco, Ansum and Swage become redundant and are removed; a now-redundant `font-size: 0` rule in `base.css` is also dropped.
* fix(themes): use border-rotation spinner for older-browser compat
Replaces conic-gradient + mask + aspect-ratio (Firefox 83+, Safari 15.4+) with border + rotate, supported in Gecko since Firefox 16 (2012) and Blink/WebKit since 2015. Visual difference: a ring with a rotating gap instead of a tapered arc. currentColor inheritance and prefers-reduced-motion handling are preserved.
* fix(themes): regenerate RTL spinner stylesheet
rtlcss flips border-right-color to border-left-color for RTL; the manual port of the spinner block missed it. Regenerated via npm run rtlcss.
Reworked the spinner with border + rotate instead of conic-gradient + mask + aspect-ratio.
<img width="35" height="36" alt="Screenshot 2026-05-11 at 11 05 43" src="https://github.com/user-attachments/assets/e065efc9-9d6c-4369-8390-f0e89db81952" />
Oldest browser versions still supported: Firefox 16 (2012), SeaMonkey 2.13 (2012), Chrome 43 (2015), Safari 9 (2015), Edge 12 (2015). Below those, `@keyframes` and `animation` would need `-webkit-` fallbacks.
Verified now working in SeaMonkey 2.53.23. Couldn't test feed clicks or page reload there because login itself hits a separate cookie issue.
---------
Co-authored-by: Bjørn A. Andersen <polybjorn@users.noreply.github.com>
Two narrow-viewport rules were duplicated across leaf themes: `.aside { transition: width 200ms linear }` and `.aside.aside_feed { padding: 0 }`. This PR lifts both into the existing `@media (max-width: 840px)` block in `base-theme/frss.css` and removes the duplicates from Alternative-Dark, Flat, Origine, Pafat, and Nord. Swage's redundant `transition` line is also dropped (its other `.aside` properties stay).
Verified visually across Alternative-Dark, Ansum, Flat, Mapco, Nord, Origine, and Pafat at narrow and wide viewports. No regressions. Ansum and Mapco keep their own `.aside { transition: all 0.2s ease-in-out }` via source-order. Themes that previously had no explicit `.aside` rule (Dark, Dark-pink, Origine-compact via inheritance) gain identical computed values to their parent themes.
Also adds top-of-file comments to `base-theme/base.css` and `base-theme/frss.css` clarifying that `base.css` is a scaffold loaded only for the unconfigured base-theme fallback, while `frss.css` is the real shared base loaded by every theme via the `_frss.css` prefix in `metadata.json`. Follow-up to #8743, which initially targeted the wrong file before being corrected.
Lift .aside { transition: width 200ms linear } and
.aside.aside_feed { padding: 0 } from leaf themes into the shared
@media (max-width: 840px) block in base-theme/frss.css. Delete the
duplicates from Alternative-Dark, Flat, Origine, Pafat, and Nord.
Drop the redundant transition line from Swage.
Add top-of-file comments to base-theme/base.css and base-theme/frss.css
clarifying that base.css is a scaffold for the base-theme fallback only,
while frss.css is the real shared base loaded by every theme via the
"_frss.css" prefix in metadata.json. Documents the structure that made
#8743 initially target the wrong file.
Co-authored-by: Bjørn A. Andersen <polybjorn@users.noreply.github.com>
Closes https://github.com/FreshRSS/FreshRSS/issues/6262
Changes proposed in this pull request:
- CSS: the search button was too big/not flexible enough for the height because of the padding
How to test the feature manually:
1. browser configuration: change the default font size from (`16`pt mostly) to `15` or `14`
2. go to subscription management -> `Subscription tools`
3. there should be no scroll bar (because the left hand side navigation is short and the content right hand side is short too)
Side effect: All buttons will be a bit smaller as before (because `px` -> `rem`) It should not be an issue at all
* i18n: Add an RSS feed -> Add a feed
* manage mouse title for category
* no white space between manage icon and favicon and title
* add feed link: use icon instead of plus character
* better CSS class for empty category and its alert text box
* show muted icon and warning icon
* the CSS magic incl. the themes improvements
* fix
* mute icon is more important than warning
* feed mouse hover title
* fix feed navigation sidebar: show error
* fix btn with icon and text
* fix aside feed: muted icon over warning icon
* improved overlay + visible close button
* duplicate of line 2109
* delete #panel .close from frss.css
* set background colors in each theme
* fix Ansum and Mapco theme
* fix Nord theme
* frss.css
* only 1 scroll bar
* fix the closer background in some themes
* fix scrolling
* fix fix
* Use constants for path to TOS
* improve comments
* TOS title moved to template
* TOS available via config menu
* CSS: improve handling of content of TOS/about
* give info about set/unset TOS in system config
* fix target
* i18n FR
* i18n DE
* Frontend changes done
* Load more should work now also without JS
* Update template.rtl.css
* improved the themes' CSS
* Update template.rtl.css
* fix CI
* CSS prop. order fixed
* Rename pagination.phtml to stream-footer.phtml
* use the new template name
* rename key of i18n
* fixed CI, that does not like the white space
* rename pagination variable
* Update indexController.php
* [CI] Run stylelint
Perform some basic CSS sanity checking and style enforcement.
I removed vendor prefixed linear-gradient and transform because those are from the IE9 era. With IE11 as a minimum and soon obsolete requirement it doesn't make much sense anymore.
* Remove as-link override
* Don't require newline after comment
* Also apply those newline rules to SCSS
* refine opening/closing braces, allow for single-line
* Add more glyphs for opensans font
* Update .htaccess to support woff2 file format
* Fixed browser support for new font face
* Fixed Origine theme css and .htaccess
* Deleted unneeded fonts
* Added stylefiles for OpenSans font
* Fixed all themes with new font css
* Avoid additional CSS file
* htaccess cache control public
* Font casing bug
* Remove TTF font
Too big, low need https://caniuse.com/#search=woff
* Changelog 1032
https://github.com/FreshRSS/FreshRSS/pull/1032https://github.com/FreshRSS/FreshRSS/pull/1028