A powerful, modern web-based code editor built with pure HTML, CSS, and JavaScript — no frameworks, no dependencies.
- Syntax Highlighting — Real-time tokenization for JavaScript, TypeScript, HTML, CSS, Python, PHP, JSON, and Markdown
- Autocomplete — Context-aware suggestions based on language keywords and document symbols
- Emmet Expansion — Tab-triggered Emmet abbreviations for HTML & CSS
- Bracket Matching — Visual highlight for matching
(),[],{} - Smart Indent — Auto-indent on Enter, block indent/outdent support
- Line Operations — Duplicate, delete, move lines up/down
- Comment Toggle — Language-aware single-line comment toggling
- Multi-file Tabs — Open, switch, pin, rename, drag-reorder, and close files
- Command Palette — Quick access to all commands via
Ctrl+P
- Drag & Drop — Drop files directly into the editor
- Encoding Support — UTF-8, UTF-8 BOM, UTF-16 LE/BE BOM, ANSI detection and export
- Line Endings — LF (Unix), CRLF (Windows), CR (Classic Mac) — auto-detect and convert
- Auto-save — Changes persist in
localStorageacross sessions - Download — Export files with correct encoding and line endings
- Dark Theme — Premium Catppuccin-inspired dark theme
- Maple Mono NF — Bundled WOFF2 font with 8 weight variants + italic
- Animated Welcome — Gradient logo, staggered fade-up animations
- Custom Scrollbars — Themed scrollbars across all browsers
- Responsive Footer — Live cursor position, file stats, encoding, EOL, and language info
- Installable — Install as a standalone desktop app from the browser
- Offline Ready — Service Worker caches assets for offline use
- Full Shortcuts — Standalone mode enables all keyboard shortcuts (Ctrl+N, Ctrl+S, etc.)
- Multi-language UI — Switch between Bahasa Indonesia and English
- Auto-detect — Matches browser language on first visit
- Easy to extend — Add new languages by creating a JSON file
czeditor/
├── index.html # Main HTML with data-i18n attributes
├── style.css # Full design system & animations
├── engine.js # Syntax engine: tokenizer, language configs
├── editor-ui.js # UI module: tabs, dialogs, footer, scroll sync
├── editor-features.js # Features: autocomplete, emmet, shortcuts
├── script.js # App initializer & event bindings
├── i18n.js # Internationalization module
├── manifest.json # PWA manifest (app metadata & version)
├── sw.js # Service Worker for offline caching
├── icon-192.png # App icon (192×192)
├── icon-512.png # App icon (512×512)
├── font/ # Maple Mono NF WOFF2 fonts
│ ├── MapleMono-Regular.ttf.woff2
│ ├── MapleMono-Bold.ttf.woff2
│ ├── MapleMono-Italic.ttf.woff2
│ └── ... (16 variants)
├── lang/ # Syntax highlighting configs
│ ├── javascript.json
│ ├── html.json
│ └── ...
└── i18n/ # UI translation files
├── id.json # Bahasa Indonesia
└── en.json # English
| Shortcut | Action |
|---|---|
Ctrl + N |
New File |
Ctrl + S |
Save / Download |
Ctrl + / |
Toggle Comment |
Ctrl + D |
Duplicate Line |
Ctrl + Shift + K |
Delete Line |
Alt + ↑/↓ |
Move Line Up/Down |
Ctrl + ] |
Indent |
Ctrl + [ |
Outdent |
Ctrl + L |
Select Line |
Ctrl + P |
Command Palette |
Tab |
Emmet Expand / Indent |
Escape |
Close Popup |
Simply serve the project folder with any static HTTP server:
# Using Python
python -m http.server 8000
# Using Node.js
npx serve .
# Using PHP
php -S localhost:8000
# Using Laragon, XAMPP, etc.
# Place in the web root directory- Open the editor in Chrome or Edge
- Click the "📥 Install as Application" button on the welcome screen
- The editor runs as a standalone desktop app with full shortcut support
- Copy
i18n/en.jsontoi18n/{code}.json - Translate all string values
- Update
getAvailableLanguages()ini18n.js:
function getAvailableLanguages() {
return [
{ code: 'id', name: 'Bahasa Indonesia' },
{ code: 'en', name: 'English' },
{ code: 'ja', name: '日本語' } // ← add new entry
];
}- Reload — the new language appears in ⚙️ Settings → 🌐 Language
┌──────────────────────────────────────────────────┐
│ index.html │
│ (Structure & data-i18n) │
└──────────────┬───────────────────────────────────┘
│
┌──────────┼──────────┬──────────┬──────────┐
▼ ▼ ▼ ▼ ▼
engine.js i18n.js editor-ui.js editor- script.js
(Tokenizer) (i18n) (UI/Tabs/ features (Init &
│ Dialogs) (Keys/AC/ Events)
│ │ Emmet) │
▼ ▼ │ ▼
i18n/*.json style.css └──────► manifest.json
(Design) sw.js
- engine.js — Zero-dependency syntax tokenizer with lazy-loaded language configs
- editor-ui.js — Tab management, file operations, scroll sync, status bar
- editor-features.js — Keyboard shortcuts, autocomplete, Emmet, auto-close brackets
- i18n.js — Translation loader with DOM binding and localStorage persistence
- script.js — Application entry point, event wiring, PWA registration
- Complete rewrite with modular architecture
- WOFF2 font optimization (96% smaller than TTF)
- Multi-encoding & line ending support
- PWA with offline caching and standalone mode
- Internationalization system (id, en)
- Animated welcome screen with manifest-driven metadata
- Custom scrollbar theming for all browsers
- Command palette with translated commands
MIT License — See font/LICENSE.txt for Maple Mono NF font license.