Commit Graph
7 Commits
Author SHA1 Message Date
ancsemi 2e7e93f199 Add birthday to the gradient roles test member defaults 2026-10-15 14:14:50 -04:00
Amnibroandancsemi f0202c4373 Settings: an Accessibility section for text size, spacing, fonts, contrast and motion (#5775)
Zoom moves into a new Accessibility section (the section keeps its
section-zoom id, which layout plugins anchor to) next to:

- Message text size, 80 to 200 %, separate from Zoom: messages, threads,
  forum posts, code blocks and the message boxes.
- Line spacing (normal, relaxed, loose) and letter spacing (normal, wide).
- Font: the theme's, the system's, Atkinson Hyperlegible or OpenDyslexic,
  self-hosted under SIL OFL 1.1 with their licenses in /fonts.
- High contrast: secondary text and borders pulled toward each theme's own
  text color, and a thick focus ring.
- Reduce motion: follow system, on or off. One html.reduce-motion class now
  covers every animation, the theme effects, the shimmering role colors,
  smooth scrolling, and GIFs, animated emoji and profile pictures, which
  wait for hover or tap. The old prefers-reduced-motion rules use it too.
- Underline links, and larger click targets.

Everything is per device and applied by theme-init.js before first paint,
which hands the same read/apply functions to the settings page.

Also: keyboard focus rings, keyboard-reachable settings nav rows,
aria-labels on the icon buttons in the channel header and message box, and
aria-pressed on the picker buttons.

Co-authored-by: ancsemi <ancsemi@gmail.com>
2026-10-13 17:06:23 -04:00
ancsemi 40b5b00dba Emoji in gradient role names follow the Interface Icons setting (#5720)
Colorful Emoji shows them in full color; Monochrome draws them in the
name's gradient like the letters, so people who chose monochrome icons do
not get full-color faces in names. The setting's hints say so.
2026-10-04 11:18:25 -04:00
ancsemi ba50379378 Gradient role names draw emoji in their own colors (#5720)
The gradient is painted through the text with a transparent fill, which
turned emoji into flat gradient silhouettes. Emoji runs in a gradient name
now sit in their own span with a visible fill, including after a nickname
change.
2026-10-03 13:15:18 -04:00
ancsemi 984b6ffceb Split style.css (20,790 lines) into sixteen files by area, a pure move
style.css now only imports the parts in order, after voice.css and
music.css as before, so the cascade is unchanged. Each cut sits between
top-level rules. Checked twice: the parts (minus the one-line header each
got) rebuild the old file byte for byte, and a browser loading the new
style.css ends up with the same 3,526 rules, in the same order, as it parses
from the old one. The largest part is 1,559 lines. Tests that read
style.css now read it with its imports filled in (test/coreCss.js), and the
theme contract test names the part each checked rule lives in.
2026-10-02 11:16:06 -04:00
ancsemi 950c4026db Split app-admin.js (6,859 lines) into ten files by area, a pure move
What stays in app-admin.js is the setup wizard and loading, saving and
cancelling the admin settings (1,452 lines). The rest moved unchanged: server
branding, members, message box autocomplete, status and idle, Discord import,
roles, the Role Assignment center and moderation (audit log, auto-mod, tags)
each have their own file; general file upload, resizable sidebars and the
donors list joined app-ui.js; the connectivity test and invite links window
joined app-admin-controls.js.

The permission list, admin-only permissions and their labels were module-level
constants used by both role files, so they moved verbatim into perm-catalog.js,
which both import. Checked by loading every module before and after: all 1,125
methods have identical source, and every module-level name a method uses still
resolves to the same declaration.
2026-10-02 09:55:38 -04:00
ancsemi 973d18039d Gradient role colors: a role can draw names as a gradient between two colors, optionally with a slow shimmer (off for anyone who has reduced motion on), in the member list, chat, threads, profile cards, mentions, voice and the role editor's live preview; plain roles and the mobile apps see no change 2026-10-02 00:15:24 -04:00