Description
The Monaco editor in ProblemWorkspace.tsx defaults to the built-in vs-dark theme, which uses a #1e1e1e background. This clashes with AlgoForge's #141414 deep dark background and #a088ff / #63e3ff purple/cyan accent palette, creating a visually inconsistent coding environment.
Monaco supports fully custom themes via monaco.editor.defineTheme, which can be registered through the beforeMount prop of @monaco-editor/react.
Requirements
- Define a custom
algoforge-dark theme matching the app's color palette.
- Register the theme using
beforeMount on the <Editor> component.
- Set
algoforge-dark as the default theme.
- Keep the light theme toggle functional (switch to
vs-light).
Expected Behavior
Default State (Dark Mode) — Editor background matches #141414. Keywords and operators use #a088ff (purple accent). Strings use #63e3ff (cyan accent). Comments are muted (#4a4a6a or similar).
Light Toggle — Editor switches to Monaco's built-in vs-light theme.
Tasks
Acceptance Criteria
Description
The Monaco editor in
ProblemWorkspace.tsxdefaults to the built-invs-darktheme, which uses a#1e1e1ebackground. This clashes with AlgoForge's#141414deep dark background and#a088ff/#63e3ffpurple/cyan accent palette, creating a visually inconsistent coding environment.Monaco supports fully custom themes via
monaco.editor.defineTheme, which can be registered through thebeforeMountprop of@monaco-editor/react.Requirements
algoforge-darktheme matching the app's color palette.beforeMounton the<Editor>component.algoforge-darkas the default theme.vs-light).Expected Behavior
Default State (Dark Mode) — Editor background matches
#141414. Keywords and operators use#a088ff(purple accent). Strings use#63e3ff(cyan accent). Comments are muted (#4a4a6aor similar).Light Toggle — Editor switches to Monaco's built-in
vs-lighttheme.Tasks
algoforge-darktheme object following Monaco'sIStandaloneThemeDataschema.#a088ff, strings →#63e3ff, comments → muted gray, editor background →#141414.beforeMountprop on the<Editor>component to callmonaco.editor.defineTheme(...).themestate to'algoforge-dark'.vs-lightcorrectly.Acceptance Criteria
algoforge-darktheme is applied by default.#141414.