For an example see Wikiwand gear (cog) menu in the top-right corner.
It is a recurring request to allow users (logged-in and anonymous) to customize their viewing experience with the following options:
- theme -- light / dark theme / color inversion (theme implementation is not a concern of this task)
- custom theme chooser submenu
- content width -- ex. 960px - 1160px - 100%-margin
- font-size -- ex. 12px - 14px (Vector) - 16px (Minerva) - 18px - XXL (custom for a11y)
- serif / sans-serif font (inherently subjective choice)
- font chooser submenu for sans, serif, article, wikieditor (monospace), code blocks, diff viewer:
- a modern webfont with wide language support (Noto) / WikimediaUI Base's system font stack (used by Minerva) / browser font setting / user selected (web)font
The common solution is to provide a pop-up menu, similar to echo's pop-up, its icon also placed next to the user menu, see Wikiwand for an example.
These settings can be stored in LocalSettings for anon users, server-side for registered users and loaded before the first paint (the javascript is loaded synchronously or included in the html; the logged-in settings are included in the html).
This task is universal to all skins, but might be implemented as part of the Desktop Improvements project.