See extended demo at https://editor.bitwiser.in
A list of theme definitions to be used with monaco-editor in browser. See minimal demo
npm install monaco-themes
# or
pnpm add monaco-themes
# or
yarn add monaco-themesimport { parseTmTheme } from 'monaco-themes';
const tmThemeString = /* read using FileReader */
const themeData = parseTmTheme(tmThemeString);
monaco.editor.defineTheme('mytheme', themeData);
monaco.editor.setTheme('mytheme');const { parseTmTheme } = require('monaco-themes');
const tmThemeString = /* read using FileReader */
const themeData = parseTmTheme(tmThemeString);
monaco.editor.defineTheme('mytheme', themeData);
monaco.editor.setTheme('mytheme');<script
type="text/javascript"
src="https://unpkg.com/monaco-themes/dist/monaco-themes.js"
></script>
<script type="text/javascript">
var tmThemeString = /* read using FileReader */
var themeData = MonacoThemes.parseTmTheme(tmThemeString);
monaco.editor.defineTheme('mytheme', themeData);
monaco.editor.setTheme('mytheme');
</script>const monaco =
/* import monaco */
import('monaco-themes/themes/Monokai.json').then((data) => {
monaco.editor.defineTheme('monokai', data.default || data);
monaco.editor.setTheme('monokai');
});Download this repository and extract and save the themes directory in your project.
/* load monaco */
fetch('/themes/Monokai.json')
.then((data) => data.json())
.then((data) => {
monaco.editor.defineTheme('monokai', data);
monaco.editor.setTheme('monokai');
});This project uses modern tooling:
- pnpm for package management
- Vite for local development server
- tsdown for building the library
- TypeScript for type safety
- Node.js v22+ with native TypeScript support
pnpm install# Start development server with Vite
pnpm dev
# Build the library (ESM, CJS, and IIFE formats)
pnpm build
# Download theme files from source repositories
pnpm download
# Generate Monaco-compatible theme JSON files
pnpm generateThe library is built with tsdown and outputs:
- ESM (
dist/index.js) - ES Module format - CJS (
dist/index.cjs) - CommonJS format - IIFE (
dist/monaco-themes.js) - Browser-ready UMD-like format
All builds include TypeScript declarations and source maps.
MIT