設定画面 (#34) #397

マージ済み
みてるぞ が 31 個のコミットを feature/034 から main へマージ 2026-07-07 00:48:41 +09:00
コミット 59a87c0e11 の変更だけを表示してゐます - すべてのコミットを表示
+76 -3
ファイルの表示
@@ -905,7 +905,7 @@ const normaliseThemeTokenValue = (
typeof value === 'string' && value !== '' ? value : fallback typeof value === 'string' && value !== '' ? value : fallback
const normaliseTopNavColourValue = ( const cssColourFromThemeToken = (
value: unknown, value: unknown,
fallback: string, fallback: string,
): string => { ): string => {
@@ -1068,6 +1068,10 @@ export const buildThemeTokens = (
?? legacyTopNavTokens.topNavLink, ?? legacyTopNavTokens.topNavLink,
fallback.topNavBrandLink, fallback.topNavBrandLink,
) )
const topNavMenuLink = cssColourFromThemeToken (
link,
fallback.topNavMenuLink,
)
const resolvedTopNav = deriveTopNavTokens ( const resolvedTopNav = deriveTopNavTokens (
baseTheme, baseTheme,
{ {
@@ -1076,7 +1080,7 @@ export const buildThemeTokens = (
activeBackground: topNavActiveBackground, activeBackground: topNavActiveBackground,
brandLink: topNavBrandLink, brandLink: topNavBrandLink,
}, },
link, topNavMenuLink,
) )
return { return {
@@ -1116,11 +1120,80 @@ export const buildThemeTokens = (
} }
const normaliseTopNavColourValue = (
value: unknown,
fallback: string,
): string => {
return cssColourFromThemeToken (value, fallback)
}
const normaliseThemeTokens = ( const normaliseThemeTokens = (
rawTokens: unknown, rawTokens: unknown,
baseTheme: BuiltinThemeId, baseTheme: BuiltinThemeId,
): ThemeTokens => { ): ThemeTokens => {
return buildThemeTokens (baseTheme, rawTokens) const fallback = baseTheme === 'dark' ? DARK_THEME_TOKENS : LIGHT_THEME_TOKENS
const tokens =
rawTokens && typeof rawTokens === 'object'
? rawTokens as Partial<ThemeTokens>
: { }
const legacyTopNavTokens =
rawTokens && typeof rawTokens === 'object'
? rawTokens as Record<string, unknown>
: { }
const background =
normaliseThemeTokenValue (tokens.background, fallback.background)
const foreground =
normaliseThemeTokenValue (tokens.foreground, fallback.foreground)
const card =
normaliseThemeTokenValue (tokens.card, fallback.card)
const muted =
normaliseThemeTokenValue (tokens.muted, fallback.muted)
const primary =
normaliseThemeTokenValue (tokens.primary, fallback.primary)
const accent =
normaliseThemeTokenValue (tokens.accent, fallback.accent)
const border =
normaliseThemeTokenValue (tokens.border, fallback.border)
const link =
normaliseThemeTokenValue (tokens.link, fallback.link)
return buildThemeTokens (
baseTheme,
{
...tokens,
background,
foreground,
card,
muted,
primary,
accent,
border,
link,
topNavRootBackgroundMobile:
tokens.topNavRootBackgroundMobile
?? legacyTopNavTokens.topNavRootBackgroundMobile
?? legacyTopNavTokens.topNavBackground,
topNavRootBackgroundDesktop:
tokens.topNavRootBackgroundDesktop
?? legacyTopNavTokens.topNavRootBackgroundDesktop
?? legacyTopNavTokens.topNavBackground,
topNavActiveBackground:
tokens.topNavActiveBackground
?? legacyTopNavTokens.topNavActiveBackground
?? legacyTopNavTokens.topNavHighlightBackground,
topNavBrandLink:
tokens.topNavBrandLink
?? legacyTopNavTokens.topNavBrandLink
?? legacyTopNavTokens.topNavLink,
topNavMenuLink:
tokens.topNavMenuLink
?? legacyTopNavTokens.topNavMenuLink
?? link,
tagColours: normaliseThemeTagColours (tokens.tagColours, fallback.tagColours),
},
)
} }