@fsegurai/codemirror-theme-forest 6.2.2 → 6.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +48 -41
- package/dist/index.cjs +8 -5
- package/dist/index.js +8 -5
- package/package.json +7 -7
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 fsegurai
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img alt="CodeMirror 6 Themes Logo" src="https://raw.githubusercontent.com/fsegurai/codemirror-themes/main/demo/public/codemirror-themes.
|
|
2
|
+
<img alt="CodeMirror 6 Themes Logo" src="https://raw.githubusercontent.com/fsegurai/codemirror-themes/main/demo/public/codemirror-themes.svg">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
@@ -29,10 +29,11 @@
|
|
|
29
29
|
### Table of contents
|
|
30
30
|
|
|
31
31
|
- [Installation](#installation)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
- [@fsegurai/codemirror-theme-forest](#@fsegurai/codemirror-theme-forest)
|
|
33
|
+
- [Using Theme](#using-theme)
|
|
34
|
+
- [More Resources](#more-resources)
|
|
35
|
+
- [Available Themes](#available-themes)
|
|
36
|
+
- [Demo Application](#demo-application)
|
|
36
37
|
- [License](#license)
|
|
37
38
|
|
|
38
39
|
## Installation
|
|
@@ -42,17 +43,17 @@
|
|
|
42
43
|
To add `@fsegurai/codemirror-theme-forest` along with CodeMirror 6 to your `package.json` use the following commands.
|
|
43
44
|
|
|
44
45
|
```bash
|
|
45
|
-
|
|
46
|
+
bun install @fsegurai/codemirror-theme-forest codemirror@^6.0.0 --save
|
|
46
47
|
```
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
## Using Theme
|
|
49
50
|
|
|
50
51
|
Import the respective theme from the package and apply it to your CodeMirror instance as shown below.
|
|
51
52
|
|
|
52
53
|
```javascript
|
|
53
54
|
import { EditorView, basicSetup } from 'codemirror'
|
|
54
55
|
import { markdown } from '@codemirror/lang-markdown'
|
|
55
|
-
import { forest } from '@fsegurai/codemirror-theme-
|
|
56
|
+
import { forest } from '@fsegurai/codemirror-theme-forest'
|
|
56
57
|
|
|
57
58
|
let editor = new EditorView({
|
|
58
59
|
doc: '# Hello World',
|
|
@@ -69,44 +70,50 @@ Read the [CodeMirror documentation](https://codemirror.net/6/examples/styling/)
|
|
|
69
70
|
|
|
70
71
|
### Available Themes
|
|
71
72
|
|
|
72
|
-
| Theme
|
|
73
|
-
|
|
74
|
-
| All - Bundle
|
|
75
|
-
| Abcdef
|
|
76
|
-
| Abyss
|
|
77
|
-
| Android Studio
|
|
78
|
-
| Andromeda
|
|
79
|
-
| Basic
|
|
80
|
-
| Basic
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
| GitHub Dark
|
|
85
|
-
|
|
|
86
|
-
| Gruvbox Dark
|
|
87
|
-
|
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
73
|
+
| Theme | Package | Version |
|
|
74
|
+
|---------------------|--------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
|
|
75
|
+
| All - Bundle | [@fsegurai/codemirror-theme-bundle](https://www.npmjs.com/package/@fsegurai/codemirror-theme-bundle) |  |
|
|
76
|
+
| Abcdef | [@fsegurai/codemirror-theme-abcdef](https://www.npmjs.com/package/@fsegurai/codemirror-theme-abcdef) |  |
|
|
77
|
+
| Abyss | [@fsegurai/codemirror-theme-abyss](https://www.npmjs.com/package/@fsegurai/codemirror-theme-abyss) |  |
|
|
78
|
+
| Android Studio | [@fsegurai/codemirror-theme-android-studio](https://www.npmjs.com/package/@fsegurai/codemirror-theme-android-studio) |  |
|
|
79
|
+
| Andromeda | [@fsegurai/codemirror-theme-andromeda](https://www.npmjs.com/package/@fsegurai/codemirror-theme-andromeda) |  |
|
|
80
|
+
| Basic Dark | [@fsegurai/codemirror-theme-basic-dark](https://www.npmjs.com/package/@fsegurai/codemirror-theme-basic-dark) |  |
|
|
81
|
+
| Basic Light | [@fsegurai/codemirror-theme-basic-light](https://www.npmjs.com/package/@fsegurai/codemirror-theme-basic-light) |  |
|
|
82
|
+
| Catppuccin Mocha | [@fsegurai/codemirror-theme-catppuccin-mocha](https://www.npmjs.com/package/@fsegurai/codemirror-theme-catppuccin-mocha) |  |
|
|
83
|
+
| Cobalt2 | [@fsegurai/codemirror-theme-cobalt](https://www.npmjs.com/package/@fsegurai/codemirror-theme-cobalt2) |  |
|
|
84
|
+
| Forest | [@fsegurai/codemirror-theme-forest](https://www.npmjs.com/package/@fsegurai/codemirror-theme-forest) |  |
|
|
85
|
+
| GitHub Dark | [@fsegurai/codemirror-theme-github-dark](https://www.npmjs.com/package/@fsegurai/codemirror-theme-github-dark) |  |
|
|
86
|
+
| GitHub Light | [@fsegurai/codemirror-theme-github-light](https://www.npmjs.com/package/@fsegurai/codemirror-theme-github-light) |  |
|
|
87
|
+
| Gruvbox Dark | [@fsegurai/codemirror-theme-gruvbox-dark](https://www.npmjs.com/package/@fsegurai/codemirror-theme-gruvbox-dark) |  |
|
|
88
|
+
| Gruvbox Light | [@fsegurai/codemirror-theme-gruvbox-light](https://www.npmjs.com/package/@fsegurai/codemirror-theme-gruvbox-light) |  |
|
|
89
|
+
| High Contrast Dark | [@fsegurai/codemirror-theme-high-contrast-dark](https://www.npmjs.com/package/@fsegurai/codemirror-theme-high-contrast-dark) |  |
|
|
90
|
+
| High Contrast Light | [@fsegurai/codemirror-theme-high-contrast-light](https://www.npmjs.com/package/@fsegurai/codemirror-theme-high-contrast-light) |  |
|
|
91
|
+
| Material Dark | [@fsegurai/codemirror-theme-material-dark](https://www.npmjs.com/package/@fsegurai/codemirror-theme-material-dark) |  |
|
|
92
|
+
| Material Light | [@fsegurai/codemirror-theme-material-light](https://www.npmjs.com/package/@fsegurai/codemirror-theme-material-light) |  |
|
|
93
|
+
| Material Ocean | [@fsegurai/codemirror-theme-material-ocean](https://www.npmjs.com/package/@fsegurai/codemirror-theme-material-ocean) |  |
|
|
94
|
+
| Monokai | [@fsegurai/codemirror-theme-monokai](https://www.npmjs.com/package/@fsegurai/codemirror-theme-monokai) |  |
|
|
95
|
+
| Nord | [@fsegurai/codemirror-theme-nord](https://www.npmjs.com/package/@fsegurai/codemirror-theme-nord) |  |
|
|
96
|
+
| Palenight | [@fsegurai/codemirror-theme-palenight](https://www.npmjs.com/package/@fsegurai/codemirror-theme-palenight) |  |
|
|
97
|
+
| Solarized Dark | [@fsegurai/codemirror-theme-solarized-dark](https://www.npmjs.com/package/@fsegurai/codemirror-theme-solarized-dark) |  |
|
|
98
|
+
| Solarized Light | [@fsegurai/codemirror-theme-solarized-light](https://www.npmjs.com/package/@fsegurai/codemirror-theme-solarized-light) |  |
|
|
99
|
+
| Synthwave 84 | [@fsegurai/codemirror-theme-synthwave-84](https://www.npmjs.com/package/@fsegurai/codemirror-theme-synthwave-84) |  |
|
|
100
|
+
| Tokyo Night Day | [@fsegurai/codemirror-theme-tokyo-night-day](https://www.npmjs.com/package/@fsegurai/codemirror-theme-tokyo-night-day) |  |
|
|
101
|
+
| Tokyo Night Storm | [@fsegurai/codemirror-theme-tokyo-night-storm](https://www.npmjs.com/package/@fsegurai/codemirror-theme-tokyo-night-storm) |  |
|
|
102
|
+
| Volcano | [@fsegurai/codemirror-theme-volcano](https://www.npmjs.com/package/@fsegurai/codemirror-theme-volcano) |  |
|
|
103
|
+
| VS Code Light | [@fsegurai/codemirror-theme-vscode-light](https://www.npmjs.com/package/@fsegurai/codemirror-theme-vscode-light) |  |
|
|
104
|
+
| VS Code Dark | [@fsegurai/codemirror-theme-vscode-dark](https://www.npmjs.com/package/@fsegurai/codemirror-theme-vscode-dark) |  |
|
|
105
|
+
|
|
106
|
+
## Demo Application
|
|
107
|
+
|
|
108
|
+
To see all themes in action, check out the
|
|
109
|
+
demo: [https://fsegurai.github.io/codemirror-themes](https://fsegurai.github.io/codemirror-themes).
|
|
103
110
|
|
|
104
111
|
To set up the demo locally:
|
|
105
112
|
|
|
106
113
|
```bash
|
|
107
114
|
git clone https://github.com/fsegurai/codemirror-themes.git
|
|
108
|
-
|
|
109
|
-
|
|
115
|
+
bun install
|
|
116
|
+
bun start
|
|
110
117
|
```
|
|
111
118
|
|
|
112
119
|
This will serve the application locally at [http://[::1]:8000](http://[::1]:8000).
|
package/dist/index.cjs
CHANGED
|
@@ -17,12 +17,13 @@ const generalDiff = {
|
|
|
17
17
|
insertedTextDecoration: 'none',
|
|
18
18
|
deletedTextDecoration: 'line-through',
|
|
19
19
|
insertedLinePadding: '1px 3px',
|
|
20
|
-
|
|
20
|
+
borderRadius: '3px'};
|
|
21
21
|
const generalGutter = {
|
|
22
22
|
border: 'none',
|
|
23
23
|
paddingRight: '8px',
|
|
24
24
|
fontSize: '0.9em',
|
|
25
25
|
fontWeight: '500',
|
|
26
|
+
lineHeight: '1.78', // Adjusted to compensate for 0.9em fontSize (1.6 / 0.9 ≈ 1.78)
|
|
26
27
|
};
|
|
27
28
|
const generalPanel = {
|
|
28
29
|
border: 'none',
|
|
@@ -243,9 +244,11 @@ const forestTheme = view.EditorView.theme({
|
|
|
243
244
|
},
|
|
244
245
|
'.cm-lineNumbers': {
|
|
245
246
|
fontSize: generalGutter.fontSize,
|
|
247
|
+
lineHeight: generalGutter.lineHeight,
|
|
246
248
|
},
|
|
247
249
|
'.cm-foldGutter': {
|
|
248
250
|
fontSize: generalGutter.fontSize,
|
|
251
|
+
lineHeight: generalGutter.lineHeight,
|
|
249
252
|
},
|
|
250
253
|
'.cm-foldGutter .cm-gutterElement': {
|
|
251
254
|
color: lineNumbers,
|
|
@@ -261,14 +264,14 @@ const forestTheme = view.EditorView.theme({
|
|
|
261
264
|
backgroundColor: addedBackground,
|
|
262
265
|
color: addedText,
|
|
263
266
|
padding: generalDiff.insertedLinePadding,
|
|
264
|
-
borderRadius: generalDiff.
|
|
267
|
+
borderRadius: generalDiff.borderRadius,
|
|
265
268
|
},
|
|
266
269
|
'ins.cm-insertedLine, ins.cm-insertedLine:not(:has(.cm-changedText))': {
|
|
267
270
|
textDecoration: generalDiff.insertedTextDecoration,
|
|
268
271
|
backgroundColor: `${addedBackground} !important`,
|
|
269
272
|
color: addedText,
|
|
270
273
|
padding: generalDiff.insertedLinePadding,
|
|
271
|
-
borderRadius: generalDiff.
|
|
274
|
+
borderRadius: generalDiff.borderRadius,
|
|
272
275
|
border: `1px solid ${addedText}40`,
|
|
273
276
|
},
|
|
274
277
|
'ins.cm-insertedLine .cm-changedText': {
|
|
@@ -280,14 +283,14 @@ const forestTheme = view.EditorView.theme({
|
|
|
280
283
|
backgroundColor: removedBackground,
|
|
281
284
|
color: removedText,
|
|
282
285
|
padding: generalDiff.insertedLinePadding,
|
|
283
|
-
borderRadius: generalDiff.
|
|
286
|
+
borderRadius: generalDiff.borderRadius,
|
|
284
287
|
},
|
|
285
288
|
'del.cm-deletedLine, del, del:not(:has(.cm-deletedText))': {
|
|
286
289
|
textDecoration: generalDiff.deletedTextDecoration,
|
|
287
290
|
backgroundColor: `${removedBackground} !important`,
|
|
288
291
|
color: removedText,
|
|
289
292
|
padding: generalDiff.insertedLinePadding,
|
|
290
|
-
borderRadius: generalDiff.
|
|
293
|
+
borderRadius: generalDiff.borderRadius,
|
|
291
294
|
border: `1px solid ${removedText}40`,
|
|
292
295
|
},
|
|
293
296
|
'del .cm-deletedText, del .cm-changedText': {
|
package/dist/index.js
CHANGED
|
@@ -15,12 +15,13 @@ const generalDiff = {
|
|
|
15
15
|
insertedTextDecoration: 'none',
|
|
16
16
|
deletedTextDecoration: 'line-through',
|
|
17
17
|
insertedLinePadding: '1px 3px',
|
|
18
|
-
|
|
18
|
+
borderRadius: '3px'};
|
|
19
19
|
const generalGutter = {
|
|
20
20
|
border: 'none',
|
|
21
21
|
paddingRight: '8px',
|
|
22
22
|
fontSize: '0.9em',
|
|
23
23
|
fontWeight: '500',
|
|
24
|
+
lineHeight: '1.78', // Adjusted to compensate for 0.9em fontSize (1.6 / 0.9 ≈ 1.78)
|
|
24
25
|
};
|
|
25
26
|
const generalPanel = {
|
|
26
27
|
border: 'none',
|
|
@@ -241,9 +242,11 @@ const forestTheme = /*@__PURE__*/EditorView.theme({
|
|
|
241
242
|
},
|
|
242
243
|
'.cm-lineNumbers': {
|
|
243
244
|
fontSize: generalGutter.fontSize,
|
|
245
|
+
lineHeight: generalGutter.lineHeight,
|
|
244
246
|
},
|
|
245
247
|
'.cm-foldGutter': {
|
|
246
248
|
fontSize: generalGutter.fontSize,
|
|
249
|
+
lineHeight: generalGutter.lineHeight,
|
|
247
250
|
},
|
|
248
251
|
'.cm-foldGutter .cm-gutterElement': {
|
|
249
252
|
color: lineNumbers,
|
|
@@ -259,14 +262,14 @@ const forestTheme = /*@__PURE__*/EditorView.theme({
|
|
|
259
262
|
backgroundColor: addedBackground,
|
|
260
263
|
color: addedText,
|
|
261
264
|
padding: generalDiff.insertedLinePadding,
|
|
262
|
-
borderRadius: generalDiff.
|
|
265
|
+
borderRadius: generalDiff.borderRadius,
|
|
263
266
|
},
|
|
264
267
|
'ins.cm-insertedLine, ins.cm-insertedLine:not(:has(.cm-changedText))': {
|
|
265
268
|
textDecoration: generalDiff.insertedTextDecoration,
|
|
266
269
|
backgroundColor: `${addedBackground} !important`,
|
|
267
270
|
color: addedText,
|
|
268
271
|
padding: generalDiff.insertedLinePadding,
|
|
269
|
-
borderRadius: generalDiff.
|
|
272
|
+
borderRadius: generalDiff.borderRadius,
|
|
270
273
|
border: `1px solid ${addedText}40`,
|
|
271
274
|
},
|
|
272
275
|
'ins.cm-insertedLine .cm-changedText': {
|
|
@@ -278,14 +281,14 @@ const forestTheme = /*@__PURE__*/EditorView.theme({
|
|
|
278
281
|
backgroundColor: removedBackground,
|
|
279
282
|
color: removedText,
|
|
280
283
|
padding: generalDiff.insertedLinePadding,
|
|
281
|
-
borderRadius: generalDiff.
|
|
284
|
+
borderRadius: generalDiff.borderRadius,
|
|
282
285
|
},
|
|
283
286
|
'del.cm-deletedLine, del, del:not(:has(.cm-deletedText))': {
|
|
284
287
|
textDecoration: generalDiff.deletedTextDecoration,
|
|
285
288
|
backgroundColor: `${removedBackground} !important`,
|
|
286
289
|
color: removedText,
|
|
287
290
|
padding: generalDiff.insertedLinePadding,
|
|
288
|
-
borderRadius: generalDiff.
|
|
291
|
+
borderRadius: generalDiff.borderRadius,
|
|
289
292
|
border: `1px solid ${removedText}40`,
|
|
290
293
|
},
|
|
291
294
|
'del .cm-deletedText, del .cm-changedText': {
|
package/package.json
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fsegurai/codemirror-theme-forest",
|
|
3
|
+
"version": "6.2.4",
|
|
3
4
|
"description": "Forest theme for the CodeMirror editor",
|
|
4
|
-
"version": "6.2.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
7
9
|
"exports": {
|
|
8
10
|
"import": "./dist/index.js",
|
|
9
11
|
"require": "./dist/index.cjs"
|
|
10
12
|
},
|
|
11
|
-
"types": "dist/index.d.ts",
|
|
12
|
-
"module": "dist/index.js",
|
|
13
13
|
"sideEffects": false,
|
|
14
|
-
"scripts": {
|
|
15
|
-
"test": "cm-runtests",
|
|
16
|
-
"prepare": "cm-buildhelper src/index.ts"
|
|
17
|
-
},
|
|
18
14
|
"keywords": [
|
|
19
15
|
"editor",
|
|
20
16
|
"diff",
|
|
@@ -32,6 +28,10 @@
|
|
|
32
28
|
"url": "https://www.fsegurai.com/"
|
|
33
29
|
},
|
|
34
30
|
"license": "MIT",
|
|
31
|
+
"scripts": {
|
|
32
|
+
"pkg:build": "cm-buildhelper src/index.ts",
|
|
33
|
+
"pkg:test": "cm-runtests"
|
|
34
|
+
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@lezer/highlight": "^1.0.0",
|
|
37
37
|
"@codemirror/language": "^6.0.0",
|