monaco-themes
v0.4.8
Published
Themes for monaco editor in web browser
Readme
monaco-themes
See extended demo at https://editor.bitwiser.in
A list of theme definitions to be used with monaco-editor in browser. See minimal demo
Installation
npm install monaco-themes
# or
pnpm add monaco-themes
# or
yarn add monaco-themesUsage
API
Using ESM (Recommended)
import { parseTmTheme } from 'monaco-themes';
const tmThemeString = /* read using FileReader */
const themeData = parseTmTheme(tmThemeString);
monaco.editor.defineTheme('mytheme', themeData);
monaco.editor.setTheme('mytheme');Using CommonJS
const { parseTmTheme } = require('monaco-themes');
const tmThemeString = /* read using FileReader */
const themeData = parseTmTheme(tmThemeString);
monaco.editor.defineTheme('mytheme', themeData);
monaco.editor.setTheme('mytheme');Using <script> tag (IIFE/UMD)
<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>Directly using themes
With modern bundlers (Vite, Webpack, etc.)
const monaco =
/* import monaco */
import('monaco-themes/themes/Monokai.json').then((data) => {
monaco.editor.defineTheme('monokai', data.default || data);
monaco.editor.setTheme('monokai');
});Using fetch
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');
});Development
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
Setup
pnpm installAvailable Scripts
# 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 generateBuilding
The 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.
License
MIT
