Neues client/src/lib/theme.ts verwaltet die Wahl (system/light/dark) in localStorage. Umschalter-Button im Header (zyklisch: System -> Hell -> Dunkel), Icon zeigt den aktuellen Modus. CSS-Variablen (--bg/--card/--text/--muted/ --bor/--cyan) bekommen einen Hell-Override über [data-theme="light"] bzw. @media(prefers-color-scheme:light) ohne explizites [data-theme="dark"] - so gewinnt eine manuelle Wahl in beide Richtungen gegen die Systemeinstellung. Header/Tabs/Login bleiben bewusst immer dunkel-navy (Markenidentität), nur der Content-Bereich wechselt. Inline-Script in index.html verhindert ein kurzes Aufblitzen des falschen Farbschemas vor dem ersten Paint. Temporärer test-build-only.yml Workflow zur Verifikation ohne Registry-Push. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
20 lines
513 B
TypeScript
20 lines
513 B
TypeScript
import React from 'react';
|
|
import ReactDOM from 'react-dom/client';
|
|
import { MsalProvider } from '@azure/msal-react';
|
|
import { msalInstance } from './lib/authConfig';
|
|
import { initTheme } from './lib/theme';
|
|
import App from './App';
|
|
import './styles.css';
|
|
|
|
initTheme();
|
|
|
|
msalInstance.initialize().then(() => {
|
|
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
<React.StrictMode>
|
|
<MsalProvider instance={msalInstance}>
|
|
<App />
|
|
</MsalProvider>
|
|
</React.StrictMode>
|
|
);
|
|
});
|