mirror of
https://github.com/Shik3i/KoalaSync.git
synced 2026-09-04 15:05:20 +00:00
Fix Getting Started light theme
This commit is contained in:
@@ -9,6 +9,7 @@ const template = fs.readFileSync(path.join(repoRoot, 'website', 'template.html')
|
|||||||
const app = fs.readFileSync(path.join(repoRoot, 'website', 'app.js'), 'utf8');
|
const app = fs.readFileSync(path.join(repoRoot, 'website', 'app.js'), 'utf8');
|
||||||
const langInit = fs.readFileSync(path.join(repoRoot, 'website', 'lang-init.js'), 'utf8');
|
const langInit = fs.readFileSync(path.join(repoRoot, 'website', 'lang-init.js'), 'utf8');
|
||||||
const demoCss = fs.readFileSync(path.join(repoRoot, 'website', 'styles', 'demo.css'), 'utf8');
|
const demoCss = fs.readFileSync(path.join(repoRoot, 'website', 'styles', 'demo.css'), 'utf8');
|
||||||
|
const landingPrimaryCss = fs.readFileSync(path.join(repoRoot, 'website', 'styles', 'landing-primary.css'), 'utf8');
|
||||||
const mockupStart = template.indexOf('<div class="extension-mockup">');
|
const mockupStart = template.indexOf('<div class="extension-mockup">');
|
||||||
const mockupEnd = template.indexOf('<div class="demo-invite-fly"', mockupStart);
|
const mockupEnd = template.indexOf('<div class="demo-invite-fly"', mockupStart);
|
||||||
|
|
||||||
@@ -65,6 +66,22 @@ if (!/\.film-hero-bird-drift\s*\{[^}]*animation:\s*filmBirdGlide/s.test(demoCss)
|
|||||||
throw new Error('Foreground film birds must glide and flap without waiting for video playback');
|
throw new Error('Foreground film birds must glide and flap without waiting for video playback');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const gettingStartedLightSurfaces = [
|
||||||
|
'step-illustration-1',
|
||||||
|
'step-illustration-2',
|
||||||
|
'step-illustration-3',
|
||||||
|
'illus-popup-card',
|
||||||
|
'illus-player-card',
|
||||||
|
'popup-select-mock'
|
||||||
|
];
|
||||||
|
for (const className of gettingStartedLightSurfaces) {
|
||||||
|
const pattern = new RegExp(`html\\.theme-light[^{]*\\.${className}[^}]*\\{`);
|
||||||
|
if (!pattern.test(landingPrimaryCss)) {
|
||||||
|
throw new Error(`Getting Started .${className} must define an explicit light-theme surface`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
console.log('Extension mockup theme-sensitive text uses theme-aware colors');
|
console.log('Extension mockup theme-sensitive text uses theme-aware colors');
|
||||||
console.log('Landing CSS is render-blocking, single-request, and cascade-stable');
|
console.log('Landing CSS is render-blocking, single-request, and cascade-stable');
|
||||||
console.log('Foreground film birds use complete, always-on wing and glide animations');
|
console.log('Foreground film birds use complete, always-on wing and glide animations');
|
||||||
|
console.log('All Getting Started mockups define explicit light-theme surfaces');
|
||||||
|
|||||||
@@ -1001,6 +1001,128 @@
|
|||||||
100% { box-shadow: 0 0 8px oklch(0.68 0.13 150 / 0.4); }
|
100% { box-shadow: 0 0 8px oklch(0.68 0.13 150 / 0.4); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Getting Started uses real theme surfaces. Only the video canvases remain
|
||||||
|
dark in light mode, because they represent video content rather than UI. */
|
||||||
|
html.theme-light .step-illustration-1,
|
||||||
|
html.theme-light .step-illustration-2,
|
||||||
|
html.theme-light .step-illustration-3 {
|
||||||
|
color: var(--text);
|
||||||
|
background:
|
||||||
|
radial-gradient(circle at 15% 10%, oklch(0.995 0.006 100), transparent 52%),
|
||||||
|
linear-gradient(145deg, oklch(0.965 0.014 105), oklch(0.925 0.025 115));
|
||||||
|
border-color: oklch(0.28 0.035 140 / 0.13);
|
||||||
|
box-shadow:
|
||||||
|
0 18px 38px oklch(0.20 0.025 140 / 0.12),
|
||||||
|
inset 0 1px 0 rgba(255, 255, 255, 0.9);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .step-illustration-1:hover,
|
||||||
|
html.theme-light .step-illustration-2:hover,
|
||||||
|
html.theme-light .step-illustration-3:hover {
|
||||||
|
border-color: oklch(0.56 0.13 150 / 0.28);
|
||||||
|
box-shadow:
|
||||||
|
0 22px 44px oklch(0.20 0.025 140 / 0.15),
|
||||||
|
0 0 22px oklch(0.56 0.13 150 / 0.10),
|
||||||
|
inset 0 1px 0 #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .step-illustration-1 .illus-popup-card,
|
||||||
|
html.theme-light .step-illustration-2 .illus-popup-card,
|
||||||
|
html.theme-light .step-illustration-3 .illus-player-card {
|
||||||
|
--bg: oklch(0.965 0.014 105) !important;
|
||||||
|
--card: #ffffff !important;
|
||||||
|
--accent: oklch(0.56 0.13 150) !important;
|
||||||
|
--accent-glow: oklch(0.56 0.13 150 / 0.20) !important;
|
||||||
|
--text: oklch(0.20 0.025 140) !important;
|
||||||
|
--text-muted: oklch(0.43 0.03 135) !important;
|
||||||
|
--success: oklch(0.56 0.13 150) !important;
|
||||||
|
--glass-border: oklch(0.28 0.035 140 / 0.10) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .illus-popup-card,
|
||||||
|
html.theme-light .illus-player-card {
|
||||||
|
background: rgba(255, 255, 255, 0.91);
|
||||||
|
border-color: oklch(0.28 0.035 140 / 0.14);
|
||||||
|
box-shadow:
|
||||||
|
0 14px 30px oklch(0.20 0.025 140 / 0.16),
|
||||||
|
inset 0 1px 0 #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .illus-popup-header {
|
||||||
|
border-bottom-color: oklch(0.28 0.035 140 / 0.10);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .illus-popup-brand,
|
||||||
|
html.theme-light .player-user {
|
||||||
|
color: var(--text);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .illus-popup-tabs,
|
||||||
|
html.theme-light .illus-collapsed-details {
|
||||||
|
background: oklch(0.92 0.02 112 / 0.72);
|
||||||
|
border-color: oklch(0.28 0.035 140 / 0.10);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .illus-popup-tab.active {
|
||||||
|
color: oklch(0.36 0.105 150);
|
||||||
|
background: #ffffff;
|
||||||
|
border: 1px solid oklch(0.56 0.13 150 / 0.18);
|
||||||
|
box-shadow: 0 2px 7px oklch(0.20 0.025 140 / 0.10);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .popup-form-label,
|
||||||
|
html.theme-light .illus-popup-version,
|
||||||
|
html.theme-light .illus-popup-tab,
|
||||||
|
html.theme-light .illus-collapsed-details,
|
||||||
|
html.theme-light .details-arrow,
|
||||||
|
html.theme-light .control-time {
|
||||||
|
color: var(--text-muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .popup-select-mock {
|
||||||
|
color: var(--text);
|
||||||
|
background: #ffffff;
|
||||||
|
border-color: oklch(0.28 0.035 140 / 0.16);
|
||||||
|
box-shadow: inset 0 1px 2px oklch(0.20 0.025 140 / 0.06);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .illus-floating-success {
|
||||||
|
color: var(--text);
|
||||||
|
background: rgba(255, 255, 255, 0.96);
|
||||||
|
border-color: oklch(0.56 0.13 150 / 0.30);
|
||||||
|
box-shadow:
|
||||||
|
0 7px 16px oklch(0.20 0.025 140 / 0.14),
|
||||||
|
0 0 12px oklch(0.56 0.13 150 / 0.10);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .player-header,
|
||||||
|
html.theme-light .player-controls {
|
||||||
|
color: var(--text);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .player-video-canvas {
|
||||||
|
border-color: oklch(0.28 0.035 140 / 0.18);
|
||||||
|
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .player-timeline,
|
||||||
|
html.theme-light .illus-sync-bridge .sync-line {
|
||||||
|
background: oklch(0.28 0.035 140 / 0.14);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .timeline-knob {
|
||||||
|
background: #ffffff;
|
||||||
|
border: 1px solid oklch(0.56 0.13 150 / 0.45);
|
||||||
|
box-shadow: 0 1px 4px oklch(0.20 0.025 140 / 0.22);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.theme-light .sync-status-badge,
|
||||||
|
html.theme-light .player-badge.active {
|
||||||
|
color: oklch(0.36 0.105 150);
|
||||||
|
background: oklch(0.60 0.12 150 / 0.12);
|
||||||
|
border-color: oklch(0.56 0.13 150 / 0.26);
|
||||||
|
}
|
||||||
|
|
||||||
/* --- Self Hosters Terminal --- */
|
/* --- Self Hosters Terminal --- */
|
||||||
.terminal-container {
|
.terminal-container {
|
||||||
max-width: 850px;
|
max-width: 850px;
|
||||||
@@ -1211,5 +1333,3 @@ section:target[data-reveal] {
|
|||||||
opacity: 1;
|
opacity: 1;
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user