Skip to content

RES-Slim v0.3.6 — Settings console UX transformation

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 11 Apr 10:25

Settings console UX rework. No functional module changes in this release — only the settings page itself.

What changed

Sidebar

  • Categories no longer accordion-collapse. Every category stays expanded by default so the full 45-module list is always scannable. Click a category header (chevron flips) to collapse just that one — siblings never collapse under the user. This was the single biggest friction point: selecting a module in one category used to close every other category, forcing users to re-find their place every time they wanted to jump between groups.
  • Inline toggle switch on every module row. No more navigate-then-toggle two-click dance. Flip modules on/off directly in the sidebar without loading their options workspace. alwaysEnabled modules (Menu, Version, etc.) show a lock dot instead of a toggle.
  • Filter chip row (All / On / Off / Modified) above the module list with live counts. Lets you see just the modules you've touched before saving, or just the disabled ones, without scrolling.

Header

  • Global Save + Discard + stage-status bar in the top header, replacing the per-module workspace Save button. Unsaved changes are visible and actionable from any module you're viewing.
    • Dirty state renders warning-colored with a live count: "3 changes staged across 2 modules"
    • Saved state renders success-colored with a pulse animation on commit
    • Discard button appears alongside when the stage is dirty and hard-resets via Options.stage.reset()
  • Dropped the /r/Enhancement sidebar link (wrong for a private fork that explicitly stripped upstream RES), the "Settings" eyebrow, and the marketing subtitle. Header is now a single clean title row.

Internals

  • New shared toggleModuleEnabled(id) function is the single entry point for enable/disable. Both the sidebar inline toggle and the workspace toggle call it. Global save/discard also call it when re-syncing the sidebar after a commit.
  • New syncSidebarModuleState(moduleID, enabled) keeps the sidebar toggle visually in sync with stage + commit operations without a full re-render.
  • Removed dead selectors from options.scss: #moduleOptionsSave, .workspaceStageStatus, .moduleActionRow, .moduleWorkspaceEyebrow, #RESConsoleSubredditLink, .consoleEyebrow, .consoleSubtitle.
  • Added: .globalStageBar, .globalSaveButton, .globalDiscardButton, .filterChips, .filterChip, .filterChipCount, .moduleRow, .moduleRowToggle, .moduleRowLock, .categoryButtonChevron, .sidebarFooter.

Install

CRX (signed, auto-updates from prior RES-Slim CRX installs — same extension ID)

  1. Download res-slim-chrome-v0.3.6.crx.
  2. Drag and drop into chrome://extensions with Developer mode enabled.

Zip (unpacked)

  1. Download RES-Slim-v0.3.6-chrome.zip and extract.
  2. Load unpacked from chrome://extensions.

Verification

  • yarn once clean
  • yarn eslint lib/options/ clean
  • yarn stylelint clean
  • npx flow check: 1 pre-existing error only (scrollIntoView({ block: 'nearest' }) — flow-bin 0.84 dom.js.flow out of date, the value is spec-valid)
  • Preview rendered in playwright at 1200×1500 to validate layout, spacing, filter chip counts, dirty-state colors, category expand state, inline toggles, lock dot on alwaysEnabled modules