From 3e54dd8e38233cd074de3bcea76a4e7854fe1962 Mon Sep 17 00:00:00 2001 From: miteruzo Date: Sat, 11 Jul 2026 04:42:03 +0900 Subject: [PATCH 1/3] #405 --- frontend/src/index.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/src/index.css b/frontend/src/index.css index 3423883..032eb85 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -239,6 +239,11 @@ body background: var(--top-nav-submenu-bg); } +.top-nav-mobile-menu .top-nav-submenu +{ + background: var(--top-nav-mobile-active-bg); +} + .top-nav-mobile-menu { background: var(--top-nav-mobile-menu-bg); -- 2.34.1 From 4e103ca1d937558cd65d687777778c8a7de5872a Mon Sep 17 00:00:00 2001 From: miteruzo Date: Sat, 11 Jul 2026 04:53:36 +0900 Subject: [PATCH 2/3] #405 --- frontend/src/index.test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 frontend/src/index.test.ts diff --git a/frontend/src/index.test.ts b/frontend/src/index.test.ts new file mode 100644 index 0000000..b9d5f30 --- /dev/null +++ b/frontend/src/index.test.ts @@ -0,0 +1,19 @@ +import { readFileSync } from 'node:fs' +import { resolve } from 'node:path' + +import { describe, expect, it } from 'vitest' + + +const indexCss = readFileSync ( + resolve (process.cwd (), 'src/index.css'), + 'utf8') +const compactIndexCss = indexCss.replace (/\s+/g, ' ') +const mobileSubmenuRule = '.top-nav-mobile-menu .top-nav-submenu {' + + ' background: var(--top-nav-mobile-active-bg); }' + + +describe ('TopNav mobile submenu colours', () => { + it ('uses the mobile active background for an expanded submenu', () => { + expect (compactIndexCss).toContain (mobileSubmenuRule) + }) +}) -- 2.34.1 From 874fdf9aad9f0d24cf5636c1128f8dec9acbb9ab Mon Sep 17 00:00:00 2001 From: miteruzo Date: Sat, 11 Jul 2026 04:59:56 +0900 Subject: [PATCH 3/3] #405 --- frontend/src/index.test.ts | 7 +++++-- frontend/src/lib/settings.test.ts | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/frontend/src/index.test.ts b/frontend/src/index.test.ts index b9d5f30..9167579 100644 --- a/frontend/src/index.test.ts +++ b/frontend/src/index.test.ts @@ -8,12 +8,15 @@ const indexCss = readFileSync ( resolve (process.cwd (), 'src/index.css'), 'utf8') const compactIndexCss = indexCss.replace (/\s+/g, ' ') +const mobileActiveRule = '.top-nav-mobile-active {' + + ' background: var(--top-nav-mobile-active-bg); }' const mobileSubmenuRule = '.top-nav-mobile-menu .top-nav-submenu {' + ' background: var(--top-nav-mobile-active-bg); }' -describe ('TopNav mobile submenu colours', () => { - it ('uses the mobile active background for an expanded submenu', () => { +describe ('TopNav mobile menu colours', () => { + it ('uses one background variable for active rows and expanded submenus', () => { + expect (compactIndexCss).toContain (mobileActiveRule) expect (compactIndexCss).toContain (mobileSubmenuRule) }) }) diff --git a/frontend/src/lib/settings.test.ts b/frontend/src/lib/settings.test.ts index 9ec1d66..b7edf49 100644 --- a/frontend/src/lib/settings.test.ts +++ b/frontend/src/lib/settings.test.ts @@ -89,8 +89,12 @@ describe ('settings', () => { }) it ('derives TopNav colours without mixing mobile active backgrounds', () => { - expect (buildThemeTokens ('light', { }).topNavMobileActiveBackground).toBe ( + const tokens = buildThemeTokens ('light', { }) + + expect (tokens.topNavMobileActiveBackground).toBe ( LIGHT_THEME_TOKENS.topNavRootBackgroundDesktop) + expect (tokens.topNavMobileActiveBackground).not.toBe ( + tokens.topNavRootBackgroundMobile) expect (buildThemeTokens ('dark', { }).topNavMobileActiveBackground).toBe ( DARK_THEME_TOKENS.topNavActiveBackground) }) -- 2.34.1