mirror of
https://github.com/sky-systems/sky_phone.git
synced 2026-09-04 17:23:25 +00:00
FIX - keep fixed app canvases theme-safe
Override status-bar foregrounds for apps with intentionally fixed light or dark canvases so indicators stay readable in either system mode. Increase LocalPages light-theme accent contrast after the full app audit.
This commit is contained in:
@@ -287,6 +287,24 @@ const notifications = useNotificationsStore()
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const isAppRoute = computed(() => route.name === 'app')
|
||||
const activeAppId = computed(() =>
|
||||
typeof route.params.appId === 'string' ? route.params.appId : '',
|
||||
)
|
||||
const WHITE_STATUS_BAR_APP_IDS = new Set([
|
||||
'calculator',
|
||||
'camera',
|
||||
'darkchat',
|
||||
'fliptok',
|
||||
'neon-drop',
|
||||
'sky-flappy',
|
||||
'snake',
|
||||
'tower-stack',
|
||||
])
|
||||
const DARK_STATUS_BAR_APP_IDS = new Set([
|
||||
'memory',
|
||||
'minesweeper',
|
||||
'number-merge',
|
||||
])
|
||||
const isDevelopmentRoute = computed(
|
||||
() => isDevelopment && route.name === 'development-sky-ui',
|
||||
)
|
||||
@@ -1445,6 +1463,10 @@ onBeforeUnmount(() => {
|
||||
'phone-app--darkchat': route.params.appId === 'darkchat',
|
||||
'phone-app--light': !phone.isDarkMode,
|
||||
'phone-app--messages': route.params.appId === 'messages',
|
||||
'phone-app--status-light':
|
||||
WHITE_STATUS_BAR_APP_IDS.has(activeAppId),
|
||||
'phone-app--status-dark':
|
||||
DARK_STATUS_BAR_APP_IDS.has(activeAppId),
|
||||
[`phone-app--${phone.preferences.settings.graphicsMode}`]: true,
|
||||
'phone-app--unlocking': isUnlocking,
|
||||
}"
|
||||
|
||||
@@ -4918,6 +4918,14 @@ button {
|
||||
.phone-screen--app .phone-app--light .phone-status-bar {
|
||||
color: #000;
|
||||
}
|
||||
.phone-screen--app .phone-app--status-light .phone-status-bar {
|
||||
color: #fff;
|
||||
text-shadow: 0 1px 3px #0009;
|
||||
}
|
||||
.phone-screen--app .phone-app--status-dark .phone-status-bar {
|
||||
color: #111;
|
||||
text-shadow: 0 1px 3px #fff8;
|
||||
}
|
||||
* {
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
@@ -36,6 +36,17 @@ describe('phone status bar theme contract', () => {
|
||||
)
|
||||
})
|
||||
|
||||
it('keeps status indicators legible on apps with fixed canvases', () => {
|
||||
expect(appSource).toContain("'phone-app--status-light'")
|
||||
expect(appSource).toContain("'phone-app--status-dark'")
|
||||
expect(styles).toMatch(
|
||||
/\.phone-screen--app \.phone-app--status-light \.phone-status-bar\s*\{[^}]*color:\s*#fff;/s,
|
||||
)
|
||||
expect(styles).toMatch(
|
||||
/\.phone-screen--app \.phone-app--status-dark \.phone-status-bar\s*\{[^}]*color:\s*#111;/s,
|
||||
)
|
||||
})
|
||||
|
||||
it('keeps every status indicator bound to the inherited foreground', () => {
|
||||
expect(indicatorsSource).toMatch(/<Plane[\s\S]*?fill="currentColor"/)
|
||||
expect(indicatorsSource).toMatch(
|
||||
|
||||
@@ -1489,6 +1489,7 @@ onMounted(async () => {
|
||||
font-family: Inter, system-ui, sans-serif;
|
||||
}
|
||||
.pages--light {
|
||||
--yellow: #8a6500;
|
||||
--panel: #f0f0eb;
|
||||
--muted: #737a7d;
|
||||
background: #fbfbf6;
|
||||
|
||||
Reference in New Issue
Block a user