New Version!
A lot of new features, a loto f new bugs corrected, a new, hopefully more functioning mobile theme and a total behind the scene code reworking!
Thanks for all your suggestions @babo, @taufik123 and @dareo (as well as all others that have contributed in the thread!)
I was ready for version 4.0.0, but some last second adjustment pushed me for 4.0.2
# Changelog
## 4.0.2 - 2026-08-08
This is the cumulative changelog from v3.3.7 through v4.0.2. Intermediate
development and patch versions are intentionally omitted.
### Added
#### Top 10 most relevant additions
* Added a floating settings panel that remains accessible while scrolling.
* Added Auto, Full, Balanced and Lite mobile-performance profiles.
* Added a Balanced engine that progressively preserves mobile topic icons, status colours, BBCode controls, smileys and post actions.
* Added real-time custom Main colour previews.
* Added real-time custom Accent colour previews.
* Added theme-aware locked-topic highlighting derived from the active Main palette.
* Added distinct sticky-topic highlighting derived from the active Main palette.
* Added viewport-aware enhancement processing for elements approaching the visible area.
* Added persistent read-post ranges for each visited topic.
* Added deterministic browser coverage for the complete settings and mobile experience.
#### Other additions
* Added developer credit to the settings panel.
* Added a link to the official Bitcointalk discussion thread.
* Added installed-version information and a visible local-build badge.
* Added explicit dialog accessibility state through `aria-expanded` and `aria-hidden`.
* Added a bounded mutation queue with idle scheduling.
* Added automatic mobile-mode re-evaluation after viewport and orientation changes.
* Added legacy inline-typography cleanup for upgrades without a full navigation.
### Changed
#### Top 10 most relevant changes
* Changed Auto to select Balanced on compact touch devices and Full elsewhere.
* Changed Balanced to retain all visible modernisations while spreading work across multiple idle cycles.
* Changed settings interactions to resolve on pointer release after checking for scroll or drag movement.
* Changed custom-colour confirmation to keep the active native input connected instead of rebuilding its row.
* Changed locked and sticky topic tints to follow Classic, yellow, pink, custom and dark palettes.
* Changed Merit, breadcrumb, header, news and compose typography to static scoped CSS.
* Changed theme application to update only attributes and CSS variables whose values actually changed.
* Changed storage-event handling so read-state updates no longer reapply the full theme.
* Changed optional font loading to a deferred, non-render-blocking process.
* Changed mobile visual optimisation from a universal animation rule to targeted component rules.
#### Other changes
* Changed the mobile control to cycle through Full, Balanced, Lite and Auto.
* Changed colour-swatch rendering to preserve unchanged input elements.
* Changed read-post shading to cover the complete post surface.
* Changed topic status restoration to preserve original inline backgrounds and priorities.
* Changed Mobile Balanced and Lite to use system fonts and reduced visual effects.
* Changed generated build metadata to use `package.json` as the single version source.
* Changed the settings panel to restore focus to its toggle when closed with Escape.
### Performance
#### Top 10 most relevant performance improvements
* Replaced mutation-triggered whole-document scans with processing limited to newly added DOM subtrees.
* Added deduplication of nested mutation roots before modernisation begins.
* Added bounded debounce and browser-idle scheduling for dynamic DOM work.
* Limited Balanced enhancement processing to a 7 ms budget per cycle.
* Deferred offscreen Balanced enhancements until they approach the viewport.
* Disconnected the main observer and cancelled queued work in Lite and OFF modes.
* Removed the permanent Merit-page observer.
* Removed recurring mass inline typography writes.
* Reduced initial theme application from multiple complete passes to one.
* Deferred Google Fonts and skipped their request entirely in OFF, Balanced and Lite.
#### Other performance improvements
* Ignored settings UI mutations and script-generated replacement nodes.
* Increased mutation coalescing in Balanced mode.
* Made replacement visibility updates idempotent.
* Made root theme attributes and CSS-variable writes idempotent.
* Cached unchanged colour-swatch markup.
* Cached the visible read-post signature to avoid repeated processing.
* Avoided storage writes when the read range has not changed.
* Removed the duplicate Merit runtime stylesheet.
* Replaced repeated sizing fallbacks with static CSS.
* Cancelled pending font work when switching to a performance mode.
* Rechecked the active mode before applying a completed font request.
### Fixed
#### Top 10 most relevant fixes
* Fixed settings controls requiring multiple clicks or taps before responding.
* Fixed controls activating accidentally when a touch gesture becomes panel scrolling.
* Fixed the settings toggle moving away while the page is scrolled.
* Fixed Safari iOS colour selection freezing after the first chosen colour.
* Fixed compose smileys appearing as encoding garbage instead of native emoji.
* Fixed custom-colour inputs being detached during native picker interaction.
* Fixed cancelled colour previews persisting or leaving temporary colours active.
* Fixed locked topics retaining an incoherent classic light-blue background in other palettes.
* Fixed compound locked and sticky SMF icons not marking the corresponding topic row.
* Fixed original controls and topic backgrounds not being restored correctly in OFF mode.
#### Other fixes
* Fixed compatible click events firing after a pointer drag.
* Fixed settings SVG elements intercepting pointer input.
* Fixed repeated native colour `change` events being unable to continue on the same input.
* Fixed custom live previews being committed before confirmation.
* Fixed locked and sticky hover states using unrelated colours.
* Fixed original inline background priority being lost during OFF restoration.
* Fixed unchanged preference events rebuilding colour inputs.
* Fixed optional fonts loading while the theme starts in OFF or a mobile performance mode.
* Fixed observer work continuing after the effective mode changes to Lite.
* Fixed duplicate typography styles and legacy sizing markers on Merit pages.
* Fixed read-post shading affecting only selected cells instead of the complete post.
* Fixed the external-link marker displaying as encoding garbage on legacy-encoded pages.
* Fixed the installed-version label by replacing its remaining encoding-sensitive separator.
### Tests
#### Top 10 most relevant test improvements
* Added deterministic first-click and first-tap settings tests.
* Added pointer-drag tests that prove controls do not activate while scrolling.
* Added native colour-input identity tests across repeated changes.
* Added live-preview, confirmation and cancellation tests for custom colours.
* Added locked and sticky topic detection and palette-tint tests.
* Added complete OFF-mode restoration tests.
* Added Balanced offscreen-deferral and viewport-activation tests.
* Added Balanced feature-retention and explicit Lite-path tests.
* Added byte-for-byte build/source parity and version-banner tests.
* Added static typography and live-page font validation.
#### Other test improvements
* Added fixed-position verification while the page scrolls.
* Added settings dialog ARIA-state and Escape-focus tests.
* Added mutation tests proving unrelated existing DOM is not rescanned.
* Added mobile mutation stress with batches of unrelated nodes.
* Added tests confirming optional fonts are absent in OFF and mobile performance modes.
* Added read-post tracking assertions for dynamically inserted content.
* Added verification that standard and local builds share an identical userscript body.
* Added generated-file audits for personal names and local machine paths.
Here the new settings panel!

Beautiful, isn't it?
Just let me know if you find something, or if you want a new feature!
If you have already installed the theme, update it.
You can install the script from here:
bitcointalk modern themeYou can find the code here