Skip to content

Rewrite Nginx Proxy Manager theme for the current UI - #734

Merged
GilbN merged 3 commits into
developfrom
fix/npm-ui-707
Sep 14, 2026
Merged

GilbN merged 3 commits into
developfrom
fix/npm-ui-707

Conversation

@GilbN

@GilbN GilbN commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Rebuild the Nginx Proxy Manager theme for its React/Tabler UI. Fix table and dialog contrast, controls, notifications, editor text, and link hover/focus. Older UI versions are no longer supported.

Validated on NPM 2.15.1 through the documented Docker startup script: Chromium and Firefox, light/dark modes, desktop/mobile, four theme options, and 124 variable-consumer checks. Includes a reusable local setup and updates contributor instructions to require PR screenshots for visual changes. Safari and 2FA flows were not tested.

Companion documentation and updated gallery: themepark-dev/tp-docs#67.

Fixes #707.

Before and after, NPM 2.15.1 with Aquamarine in native light mode at 1440x1000.

Before After
Before the rewrite After the rewrite

@GilbN
GilbN merged commit ff68b5e into develop Sep 14, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved moderate CSS findings and a seed user-creation issue remain.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Rebuilds the Nginx Proxy Manager theme for the current React/Tabler UI and adds local validation tooling.

Changes:

  • Updates theme styling for controls, dialogs, tables, editors, links, and notifications.
  • Adds Compose, seed, browser verification, and variable-audit tooling.
  • Documents setup, credentials, and validation workflows.
File summaries
File Summary Review notes
dev/README.md Shared development guidance No final findings.
dev/nginx-proxy-manager/verify.py Cross-browser UI verification No final findings.
dev/nginx-proxy-manager/verify_variables.py Theme variable consumer audit No final findings.
dev/nginx-proxy-manager/seed.py Disposable test data seeding Moderate finding (1 vote): include a password in the user-creation payload.
dev/nginx-proxy-manager/README.md Setup and validation documentation No final findings.
dev/nginx-proxy-manager/compose.yaml Local NPM and CSS services No final findings.
css/base/nginx-proxy-manager/nginx-proxy-manager-base.css React/Tabler theme styling Four moderate findings (1–2 votes): dropdown links, React Select options, modal close icons, and button border colors need theme-specific overrides.
AGENTS.md Development login guidance No final findings.
Review details

Suppressed comments (2)

css/base/nginx-proxy-manager/nginx-proxy-manager-base.css:133

  • This only sets the dropdown container's foreground and hover variables. Tabler gives .dropdown-item an explicit --tblr-dropdown-link-color (and active-state colors), so the container color does not cascade to menu links; those actions can retain NPM's native palette. Set the base/active dropdown-link variables here or add explicit .dropdown-item rules.
    --tblr-dropdown-link-hover-bg: var(--transparency-dark-15);
    --tblr-dropdown-link-hover-color: var(--text-hover);
    --tblr-dropdown-header-color: var(--text-muted);
    background: var(--drop-down-menu-bg);
    color: var(--text);

dev/nginx-proxy-manager/seed.py:37

  • The user-creation payload omits a password. NPM's user API requires credentials for a newly created login, so this request will be rejected and the documented reviewer@example.test fixture will never be created. Include a disposable password, using the same NPM_DEV_PASSWORD fallback as the admin login.
    request("/users", {
        "name": "Theme Reviewer", "nickname": "Reviewer",
        "email": "reviewer@example.test", "roles": [], "is_disabled": False,
    }, token)
  • Files reviewed: 10/12 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

}
.text-default {
color: var(--text) !important;
filter: none;
Comment on lines +182 to +185
--tblr-btn-bg: var(--button-color);
--tblr-btn-color: var(--button-text);
--tblr-btn-hover-bg: var(--button-color-hover);
--tblr-btn-hover-color: var(--button-text-hover);
Comment on lines +274 to 278
.react-select-container .react-select__menu {
background: var(--drop-down-menu-bg);
color: var(--text);
border: 1px solid var(--tblr-border-color);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants