From 8307c5b9a35a70d85c58a805dce5e0b476ee529b Mon Sep 17 00:00:00 2001 From: Thomas Vincent Date: Sun, 25 Oct 2026 20:54:26 -0700 Subject: [PATCH] fix(theme): improve Dark red status marker contrast Signed-off-by: Thomas Vincent --- CHANGELOG.md | 1 + README.md | 5 ++++ css/dark.css | 5 ++++ docs/dark-theme.md | 44 ++++++++++++++++++++++++++++++++ images/dark-theme-dashboard.png | Bin 0 -> 53545 bytes images/dark-theme-status.png | Bin 0 -> 54177 bytes tests/e2e/cacti-theme.spec.cjs | 23 ++++++++++++----- 7 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 docs/dark-theme.md create mode 100644 images/dark-theme-dashboard.png create mode 100644 images/dark-theme-status.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ff0201..95426e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ --- develop --- +* issue#444: Brighten Dark theme red row markers while preserving panel header colors * issue#442: Keep Carrot theme status indicators legible on coral details titlebars and light table rows * issue#440: Give Cacti theme severity indicators contrasting colors for dark details titlebars and light table rows * issue: Fix the dashboard page not scrolling with the mouse wheel over chart panels: charts were sized from the whole card (header included) and overflowed the card body, turning it into a nested scroller that captured the wheel; charts now keep their server-sized height (which also stops pie/treemap charts growing on every window resize) and card bodies no longer scroll vertically diff --git a/README.md b/README.md index 6e94e33..9e37ef2 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,11 @@ The Carrot fixture checks status markers on light rows and a contrasting details badge that works with existing coral titlebars. See [Carrot theme validation](docs/carrot-theme.md) for screenshots and tests. +![Dark theme dashboard with seeded measurements and alerts](images/dark-theme-dashboard.png) + +The Dark fixture includes a visible red row marker for the failed device. +See [Dark theme validation](docs/dark-theme.md) for screenshots and tests. + ## Requirements - Cacti 1.2.17 or later (the `compat` value in the `INFO` file). The plugin is diff --git a/css/dark.css b/css/dark.css index 3dc8482..bfc723d 100644 --- a/css/dark.css +++ b/css/dark.css @@ -80,3 +80,8 @@ .color_grey, .color_grey i { color: black !important; } + +/* Row alerts need a brighter red than the header's white-text surface. */ +.inpa_sq.color_red { + background: #ff6b6b !important; +} diff --git a/docs/dark-theme.md b/docs/dark-theme.md new file mode 100644 index 0000000..03a6a4c --- /dev/null +++ b/docs/dark-theme.md @@ -0,0 +1,44 @@ +# Dark theme validation + +Dark's red row marker uses a brighter red against dark table rows. The panel +header retains its darker red background and white text. Existing details +status dots remain unchanged. + +## Seeded browser E2E fixture + +The screenshots render the actual plugin and core Dark stylesheets with +synthetic devices, ping times, poller totals, and warning/error messages. +They do not show a live Cacti installation or production monitoring data. + +![Dark dashboard with populated response times and alert panels](../images/dark-theme-dashboard.png) + +The E2E test opens and closes the real jQuery UI details dialog and checks +that its alert data is visible. + +![Dark details dialog with synthetic warning and error messages](../images/dark-theme-status.png) + +## Reproduce + +Use the setup in [Cacti theme validation](cacti-theme.md). With `CACTI_ROOT` +pointing to the adjacent core checkout, run from the plugin root: + +```sh +NODE_PATH="$CACTI_ROOT/tests/e2e/node_modules" mise exec node@22 -- node \ + "$CACTI_ROOT/tests/e2e/node_modules/@playwright/test/cli.js" test \ + --config tests/e2e/playwright.config.cjs +``` + +Set `UPDATE_THEME_SCREENSHOTS=1` to regenerate the screenshots. The suite +checks all four status colors on odd, even, and page surfaces and includes +linear-gradient endpoints in its contrast calculation. + +After committing, measure the changed CSS lines: + +```sh +mise exec python@3.12 -- python "$CACTI_ROOT/tests/tools/report_changed_coverage.py" \ + --base fix/carrot-theme-status-contrast --language css --minimum 100 \ + --browser-root tests/e2e/test-results +``` + +Use `origin/develop` after the parent branch merges. This measures changed CSS +coverage, not whole-plugin coverage or testing against a live installation. diff --git a/images/dark-theme-dashboard.png b/images/dark-theme-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..e493b007b13172b31d715964dc4b462652bf3038 GIT binary patch literal 53545 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 literal 0 HcmV?d00001 diff --git a/images/dark-theme-status.png b/images/dark-theme-status.png new file mode 100644 index 0000000000000000000000000000000000000000..3a2c995776c48c96cc204ca6567b7e6ad4f17b19 GIT binary patch literal 54177 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
  • 6~Zp%r-V+f?WZ-v__C?1 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/cacti-theme.spec.cjs b/tests/e2e/cacti-theme.spec.cjs index b8aeb34..85a5ea0 100644 --- a/tests/e2e/cacti-theme.spec.cjs +++ b/tests/e2e/cacti-theme.spec.cjs @@ -11,10 +11,10 @@ async function installCss(page, file) { await page.addStyleTag({ url: 'http://cacti-theme.test/' + path }); } -for (const theme of ['cacti', 'carrot']) { +for (const theme of ['cacti', 'carrot', 'dark']) { test(`${theme} seeded dashboard displays measurements and opens alert details`, async ({ page }, info) => { await page.setViewportSize({ width: 1140, height: 520 }); - await page.setContent(readFileSync(resolve(root, 'tests/fixtures/Ui/cacti-theme.html'), 'utf8').replaceAll('Cacti theme', `${theme === 'carrot' ? 'Carrot' : 'Cacti'} theme`)); + await page.setContent(readFileSync(resolve(root, 'tests/fixtures/Ui/cacti-theme.html'), 'utf8').replaceAll('Cacti theme', `${theme[0].toUpperCase() + theme.slice(1)} theme`)); for (const file of [resolve(core, `include/themes/${theme}/jquery-ui.css`), resolve(core, `include/themes/${theme}/main.css`), resolve(core, 'include/fa/css/all.css'), resolve(root, 'includes/cards/cards.css'), resolve(root, 'css/common.css'), resolve(root, `css/${theme}.css`)]) { await installCss(page, file); } @@ -65,7 +65,7 @@ test.afterEach(async ({ page }, info) => { writeFileSync(info.outputPath('changed-coverage.json'), JSON.stringify(coverage)); }); -for (const theme of ['cacti', 'carrot']) { +for (const theme of ['cacti', 'carrot', 'dark']) { for (const row of ['odd', 'even', '']) { test(`${theme} severity indicators contrast with titlebars and ${row || 'white'} rows`, async ({ page }) => { await page.setContent('
    ' + ['green', 'red', 'yellow', 'grey'].map(color => @@ -85,17 +85,26 @@ for (const theme of ['cacti', 'carrot']) { v /= 255; return v <= .04045 ? v / 12.92 : ((v + .055) / 1.055) ** 2.4; }).reduce((sum, v, i) => sum + v * [.2126, .7152, .0722][i], 0); + const over = (fg, bg) => bg.map((v, i) => fg[i] * fg[3] + v * (1 - fg[3])); return elements.map(element => { const square = element.id.startsWith('square-'); - let bg = [255, 255, 255]; + let surfaces = [[255, 255, 255]]; const ancestors = []; for (let e = square ? element.parentElement : element; e; e = e.parentElement) ancestors.unshift(e); for (const e of ancestors) { const c = rgba(getComputedStyle(e).backgroundColor); - bg = bg.map((v, i) => c[i] * c[3] + v * (1 - c[3])); + surfaces = surfaces.map(bg => over(c, bg)); + const image = getComputedStyle(e).backgroundImage; + if (image.startsWith('linear-gradient(')) { + const stops = (image.match(/rgba?\([^)]+\)/g) || []).map(rgba); + surfaces = surfaces.flatMap(bg => stops.map(stop => over(stop, bg))); + } } - const style = getComputedStyle(element), foreground = lum(rgba(square ? style.backgroundColor : style.color)), surface = lum(bg); - return { id: element.id, ratio: (Math.max(foreground, surface) + .05) / (Math.min(foreground, surface) + .05) }; + const style = getComputedStyle(element), color = rgba(square ? style.backgroundColor : style.color); + return { id: element.id, ratio: Math.min(...surfaces.map(bg => { + const foreground = lum(over(color, bg)), surface = lum(bg); + return (Math.max(foreground, surface) + .05) / (Math.min(foreground, surface) + .05); + })) }; }); }); expect(indicators).toHaveLength(8);