@cyclone-ui/shiki 0.0.4 → 0.0.5
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/CHANGELOG.md +6 -0
- package/dist/dark/theme.json +6 -6
- package/dist/dark-dimmed/theme.json +6 -6
- package/dist/dark-high-contrast/theme.json +6 -6
- package/dist/light/theme.json +6 -6
- package/dist/light-dimmed/theme.json +6 -6
- package/dist/light-high-contrast/theme.json +6 -6
- package/dist/src/dark/INSTALL.md +45 -0
- package/dist/src/dark/theme.json +125 -0
- package/dist/src/dark-dimmed/INSTALL.md +45 -0
- package/dist/src/dark-dimmed/theme.json +125 -0
- package/dist/src/dark-high-contrast/INSTALL.md +45 -0
- package/dist/src/dark-high-contrast/theme.json +125 -0
- package/dist/src/light/INSTALL.md +45 -0
- package/dist/src/light/theme.json +125 -0
- package/dist/src/light-dimmed/INSTALL.md +45 -0
- package/dist/src/light-dimmed/theme.json +125 -0
- package/dist/src/light-high-contrast/INSTALL.md +45 -0
- package/dist/src/light-high-contrast/theme.json +125 -0
- package/package.json +2 -2
- package/src/dark/theme.json +6 -6
- package/src/dark-dimmed/theme.json +6 -6
- package/src/dark-high-contrast/theme.json +6 -6
- package/src/light/theme.json +6 -6
- package/src/light-dimmed/theme.json +6 -6
- package/src/light-high-contrast/theme.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog for Cyclone UI - Shiki
|
|
4
4
|
|
|
5
|
+
## [0.0.5](https://github.com/storm-software/cyclone-ui/releases/tag/shiki%400.0.5) (10/12/2026)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **tokens:** Updates to background token structure ([913fc3c9](https://github.com/storm-software/cyclone-ui/commit/913fc3c9))
|
|
10
|
+
|
|
5
11
|
## [0.0.4](https://github.com/storm-software/cyclone-ui/releases/tag/shiki%400.0.4) (10/12/2026)
|
|
6
12
|
|
|
7
13
|
### Bug Fixes
|
package/dist/dark/theme.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"punctuation.definition.comment"
|
|
8
8
|
],
|
|
9
9
|
"settings": {
|
|
10
|
-
"foreground": "#
|
|
10
|
+
"foreground": "#959698",
|
|
11
11
|
"fontStyle": "italic"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"meta.brace"
|
|
93
93
|
],
|
|
94
94
|
"settings": {
|
|
95
|
-
"foreground": "#
|
|
95
|
+
"foreground": "#959698"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
{
|
|
@@ -116,10 +116,10 @@
|
|
|
116
116
|
"editor.selectionBackground": "#f1f1f1",
|
|
117
117
|
"editor.selectionForeground": "#151518",
|
|
118
118
|
"editor.inactiveSelectionBackground": "#0c0c0d",
|
|
119
|
-
"editorLineNumber.foreground": "#
|
|
119
|
+
"editorLineNumber.foreground": "#959698",
|
|
120
120
|
"editorLineNumber.activeForeground": "#cacacb",
|
|
121
|
-
"editorIndentGuide.background1": "#
|
|
122
|
-
"editorIndentGuide.activeBackground1": "#
|
|
123
|
-
"editorWhitespace.foreground": "#
|
|
121
|
+
"editorIndentGuide.background1": "#46464a",
|
|
122
|
+
"editorIndentGuide.activeBackground1": "#959698",
|
|
123
|
+
"editorWhitespace.foreground": "#959698"
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"punctuation.definition.comment"
|
|
8
8
|
],
|
|
9
9
|
"settings": {
|
|
10
|
-
"foreground": "#
|
|
10
|
+
"foreground": "#8f8f90",
|
|
11
11
|
"fontStyle": "italic"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"meta.brace"
|
|
93
93
|
],
|
|
94
94
|
"settings": {
|
|
95
|
-
"foreground": "#
|
|
95
|
+
"foreground": "#8f8f90"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
{
|
|
@@ -116,10 +116,10 @@
|
|
|
116
116
|
"editor.selectionBackground": "#cfcfcf",
|
|
117
117
|
"editor.selectionForeground": "#343438",
|
|
118
118
|
"editor.inactiveSelectionBackground": "#2e2e30",
|
|
119
|
-
"editorLineNumber.foreground": "#
|
|
119
|
+
"editorLineNumber.foreground": "#8f8f90",
|
|
120
120
|
"editorLineNumber.activeForeground": "#b4b4b4",
|
|
121
|
-
"editorIndentGuide.background1": "#
|
|
122
|
-
"editorIndentGuide.activeBackground1": "#
|
|
123
|
-
"editorWhitespace.foreground": "#
|
|
121
|
+
"editorIndentGuide.background1": "#57575a",
|
|
122
|
+
"editorIndentGuide.activeBackground1": "#8f8f90",
|
|
123
|
+
"editorWhitespace.foreground": "#8f8f90"
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"punctuation.definition.comment"
|
|
8
8
|
],
|
|
9
9
|
"settings": {
|
|
10
|
-
"foreground": "#
|
|
10
|
+
"foreground": "#9a9fa7",
|
|
11
11
|
"fontStyle": "italic"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"meta.brace"
|
|
93
93
|
],
|
|
94
94
|
"settings": {
|
|
95
|
-
"foreground": "#
|
|
95
|
+
"foreground": "#9a9fa7"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
{
|
|
@@ -116,10 +116,10 @@
|
|
|
116
116
|
"editor.selectionBackground": "#ffffff",
|
|
117
117
|
"editor.selectionForeground": "#000000",
|
|
118
118
|
"editor.inactiveSelectionBackground": "#000000",
|
|
119
|
-
"editorLineNumber.foreground": "#
|
|
119
|
+
"editorLineNumber.foreground": "#9a9fa7",
|
|
120
120
|
"editorLineNumber.activeForeground": "#ebebed",
|
|
121
|
-
"editorIndentGuide.background1": "#
|
|
122
|
-
"editorIndentGuide.activeBackground1": "#
|
|
123
|
-
"editorWhitespace.foreground": "#
|
|
121
|
+
"editorIndentGuide.background1": "#2b2b33",
|
|
122
|
+
"editorIndentGuide.activeBackground1": "#9a9fa7",
|
|
123
|
+
"editorWhitespace.foreground": "#9a9fa7"
|
|
124
124
|
}
|
|
125
125
|
}
|
package/dist/light/theme.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"punctuation.definition.comment"
|
|
8
8
|
],
|
|
9
9
|
"settings": {
|
|
10
|
-
"foreground": "#
|
|
10
|
+
"foreground": "#959698",
|
|
11
11
|
"fontStyle": "italic"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"meta.brace"
|
|
93
93
|
],
|
|
94
94
|
"settings": {
|
|
95
|
-
"foreground": "#
|
|
95
|
+
"foreground": "#959698"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
{
|
|
@@ -116,10 +116,10 @@
|
|
|
116
116
|
"editor.selectionBackground": "#1f1f21",
|
|
117
117
|
"editor.selectionForeground": "#eaeaea",
|
|
118
118
|
"editor.inactiveSelectionBackground": "#e1e1e1",
|
|
119
|
-
"editorLineNumber.foreground": "#
|
|
119
|
+
"editorLineNumber.foreground": "#959698",
|
|
120
120
|
"editorLineNumber.activeForeground": "#555659",
|
|
121
|
-
"editorIndentGuide.background1": "#
|
|
122
|
-
"editorIndentGuide.activeBackground1": "#
|
|
123
|
-
"editorWhitespace.foreground": "#
|
|
121
|
+
"editorIndentGuide.background1": "#e1e1e1",
|
|
122
|
+
"editorIndentGuide.activeBackground1": "#959698",
|
|
123
|
+
"editorWhitespace.foreground": "#959698"
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"punctuation.definition.comment"
|
|
8
8
|
],
|
|
9
9
|
"settings": {
|
|
10
|
-
"foreground": "#
|
|
10
|
+
"foreground": "#8f8f90",
|
|
11
11
|
"fontStyle": "italic"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"meta.brace"
|
|
93
93
|
],
|
|
94
94
|
"settings": {
|
|
95
|
-
"foreground": "#
|
|
95
|
+
"foreground": "#8f8f90"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
{
|
|
@@ -116,10 +116,10 @@
|
|
|
116
116
|
"editor.selectionBackground": "#3c3c3e",
|
|
117
117
|
"editor.selectionForeground": "#cacaca",
|
|
118
118
|
"editor.inactiveSelectionBackground": "#c4c4c4",
|
|
119
|
-
"editorLineNumber.foreground": "#
|
|
119
|
+
"editorLineNumber.foreground": "#8f8f90",
|
|
120
120
|
"editorLineNumber.activeForeground": "#626364",
|
|
121
|
-
"editorIndentGuide.background1": "#
|
|
122
|
-
"editorIndentGuide.activeBackground1": "#
|
|
123
|
-
"editorWhitespace.foreground": "#
|
|
121
|
+
"editorIndentGuide.background1": "#c4c4c4",
|
|
122
|
+
"editorIndentGuide.activeBackground1": "#8f8f90",
|
|
123
|
+
"editorWhitespace.foreground": "#8f8f90"
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"punctuation.definition.comment"
|
|
8
8
|
],
|
|
9
9
|
"settings": {
|
|
10
|
-
"foreground": "#
|
|
10
|
+
"foreground": "#9a9fa7",
|
|
11
11
|
"fontStyle": "italic"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"meta.brace"
|
|
93
93
|
],
|
|
94
94
|
"settings": {
|
|
95
|
-
"foreground": "#
|
|
95
|
+
"foreground": "#9a9fa7"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
{
|
|
@@ -116,10 +116,10 @@
|
|
|
116
116
|
"editor.selectionBackground": "#000000",
|
|
117
117
|
"editor.selectionForeground": "#ffffff",
|
|
118
118
|
"editor.inactiveSelectionBackground": "#ffffff",
|
|
119
|
-
"editorLineNumber.foreground": "#
|
|
119
|
+
"editorLineNumber.foreground": "#9a9fa7",
|
|
120
120
|
"editorLineNumber.activeForeground": "#3f424a",
|
|
121
|
-
"editorIndentGuide.background1": "#
|
|
122
|
-
"editorIndentGuide.activeBackground1": "#
|
|
123
|
-
"editorWhitespace.foreground": "#
|
|
121
|
+
"editorIndentGuide.background1": "#ffffff",
|
|
122
|
+
"editorIndentGuide.activeBackground1": "#9a9fa7",
|
|
123
|
+
"editorWhitespace.foreground": "#9a9fa7"
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Installing Cyclone UI (Dark)
|
|
2
|
+
|
|
3
|
+
Generated by `@razorwind/shiki`.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
- `theme.json` — Cyclone Dark (theme id: `cyclone-dark`)
|
|
8
|
+
|
|
9
|
+
## Setup
|
|
10
|
+
|
|
11
|
+
1. Copy or import the generated JSON into your app (paths depend on your bundler).
|
|
12
|
+
|
|
13
|
+
2. Register themes when creating a Shiki highlighter:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { createHighlighter } from "shiki";
|
|
17
|
+
import theme from "./theme.json";
|
|
18
|
+
|
|
19
|
+
const highlighter = await createHighlighter({
|
|
20
|
+
themes: [theme],
|
|
21
|
+
langs: ["javascript"]
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const html = highlighter.codeToHtml("const x = 1", {
|
|
25
|
+
lang: "javascript",
|
|
26
|
+
theme: "cyclone-dark"
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Or load at runtime:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { readFile } from "node:fs/promises";
|
|
34
|
+
|
|
35
|
+
const theme = JSON.parse(
|
|
36
|
+
await readFile("./theme.json", "utf8")
|
|
37
|
+
);
|
|
38
|
+
await highlighter.loadTheme(theme);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Select / load theme
|
|
42
|
+
|
|
43
|
+
Pass the theme id to `codeToHtml`, `codeToTokens`, or `getTokenStyle`:
|
|
44
|
+
|
|
45
|
+
- `cyclone-dark` — Cyclone Dark
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cyclone-dark",
|
|
3
|
+
"settings": [
|
|
4
|
+
{
|
|
5
|
+
"scope": [
|
|
6
|
+
"comment",
|
|
7
|
+
"punctuation.definition.comment"
|
|
8
|
+
],
|
|
9
|
+
"settings": {
|
|
10
|
+
"foreground": "#959698",
|
|
11
|
+
"fontStyle": "italic"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"scope": [
|
|
16
|
+
"string",
|
|
17
|
+
"constant.other.symbol"
|
|
18
|
+
],
|
|
19
|
+
"settings": {
|
|
20
|
+
"foreground": "#45c791"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"scope": [
|
|
25
|
+
"constant",
|
|
26
|
+
"constant.numeric",
|
|
27
|
+
"constant.language"
|
|
28
|
+
],
|
|
29
|
+
"settings": {
|
|
30
|
+
"foreground": "#f7ac23"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"scope": [
|
|
35
|
+
"keyword",
|
|
36
|
+
"storage",
|
|
37
|
+
"storage.type"
|
|
38
|
+
],
|
|
39
|
+
"settings": {
|
|
40
|
+
"foreground": "#4d8eff"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"scope": [
|
|
45
|
+
"entity.name.function",
|
|
46
|
+
"support.function"
|
|
47
|
+
],
|
|
48
|
+
"settings": {
|
|
49
|
+
"foreground": "#4d8eff"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"scope": [
|
|
54
|
+
"entity.name.type",
|
|
55
|
+
"entity.other.inherited-class",
|
|
56
|
+
"support.type"
|
|
57
|
+
],
|
|
58
|
+
"settings": {
|
|
59
|
+
"foreground": "#9277da"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"scope": [
|
|
64
|
+
"entity.name.tag",
|
|
65
|
+
"meta.tag"
|
|
66
|
+
],
|
|
67
|
+
"settings": {
|
|
68
|
+
"foreground": "#4d8eff"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"scope": [
|
|
73
|
+
"entity.other.attribute-name",
|
|
74
|
+
"support.constant"
|
|
75
|
+
],
|
|
76
|
+
"settings": {
|
|
77
|
+
"foreground": "#4d8eff"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"scope": [
|
|
82
|
+
"variable",
|
|
83
|
+
"identifier"
|
|
84
|
+
],
|
|
85
|
+
"settings": {
|
|
86
|
+
"foreground": "#cacacb"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"scope": [
|
|
91
|
+
"punctuation",
|
|
92
|
+
"meta.brace"
|
|
93
|
+
],
|
|
94
|
+
"settings": {
|
|
95
|
+
"foreground": "#959698"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"scope": [
|
|
100
|
+
"invalid",
|
|
101
|
+
"invalid.illegal"
|
|
102
|
+
],
|
|
103
|
+
"settings": {
|
|
104
|
+
"foreground": "#cf2d56"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"displayName": "Cyclone Dark",
|
|
109
|
+
"type": "dark",
|
|
110
|
+
"fg": "#f1f1f1",
|
|
111
|
+
"bg": "#151518",
|
|
112
|
+
"colors": {
|
|
113
|
+
"editor.background": "#151518",
|
|
114
|
+
"editor.foreground": "#f1f1f1",
|
|
115
|
+
"editorCursor.foreground": "#4d8eff",
|
|
116
|
+
"editor.selectionBackground": "#f1f1f1",
|
|
117
|
+
"editor.selectionForeground": "#151518",
|
|
118
|
+
"editor.inactiveSelectionBackground": "#0c0c0d",
|
|
119
|
+
"editorLineNumber.foreground": "#959698",
|
|
120
|
+
"editorLineNumber.activeForeground": "#cacacb",
|
|
121
|
+
"editorIndentGuide.background1": "#46464a",
|
|
122
|
+
"editorIndentGuide.activeBackground1": "#959698",
|
|
123
|
+
"editorWhitespace.foreground": "#959698"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Installing Cyclone UI (Dark Dimmed)
|
|
2
|
+
|
|
3
|
+
Generated by `@razorwind/shiki`.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
- `theme.json` — Cyclone Light (theme id: `cyclone-dark-dimmed`)
|
|
8
|
+
|
|
9
|
+
## Setup
|
|
10
|
+
|
|
11
|
+
1. Copy or import the generated JSON into your app (paths depend on your bundler).
|
|
12
|
+
|
|
13
|
+
2. Register themes when creating a Shiki highlighter:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { createHighlighter } from "shiki";
|
|
17
|
+
import theme from "./theme.json";
|
|
18
|
+
|
|
19
|
+
const highlighter = await createHighlighter({
|
|
20
|
+
themes: [theme],
|
|
21
|
+
langs: ["javascript"]
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const html = highlighter.codeToHtml("const x = 1", {
|
|
25
|
+
lang: "javascript",
|
|
26
|
+
theme: "cyclone-dark-dimmed"
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Or load at runtime:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { readFile } from "node:fs/promises";
|
|
34
|
+
|
|
35
|
+
const theme = JSON.parse(
|
|
36
|
+
await readFile("./theme.json", "utf8")
|
|
37
|
+
);
|
|
38
|
+
await highlighter.loadTheme(theme);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Select / load theme
|
|
42
|
+
|
|
43
|
+
Pass the theme id to `codeToHtml`, `codeToTokens`, or `getTokenStyle`:
|
|
44
|
+
|
|
45
|
+
- `cyclone-dark-dimmed` — Cyclone Light
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cyclone-dark-dimmed",
|
|
3
|
+
"settings": [
|
|
4
|
+
{
|
|
5
|
+
"scope": [
|
|
6
|
+
"comment",
|
|
7
|
+
"punctuation.definition.comment"
|
|
8
|
+
],
|
|
9
|
+
"settings": {
|
|
10
|
+
"foreground": "#8f8f90",
|
|
11
|
+
"fontStyle": "italic"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"scope": [
|
|
16
|
+
"string",
|
|
17
|
+
"constant.other.symbol"
|
|
18
|
+
],
|
|
19
|
+
"settings": {
|
|
20
|
+
"foreground": "#60a88a"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"scope": [
|
|
25
|
+
"constant",
|
|
26
|
+
"constant.numeric",
|
|
27
|
+
"constant.language"
|
|
28
|
+
],
|
|
29
|
+
"settings": {
|
|
30
|
+
"foreground": "#c59b4d"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"scope": [
|
|
35
|
+
"keyword",
|
|
36
|
+
"storage",
|
|
37
|
+
"storage.type"
|
|
38
|
+
],
|
|
39
|
+
"settings": {
|
|
40
|
+
"foreground": "#638cd2"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"scope": [
|
|
45
|
+
"entity.name.function",
|
|
46
|
+
"support.function"
|
|
47
|
+
],
|
|
48
|
+
"settings": {
|
|
49
|
+
"foreground": "#638cd2"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"scope": [
|
|
54
|
+
"entity.name.type",
|
|
55
|
+
"entity.other.inherited-class",
|
|
56
|
+
"support.type"
|
|
57
|
+
],
|
|
58
|
+
"settings": {
|
|
59
|
+
"foreground": "#8e7dbb"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"scope": [
|
|
64
|
+
"entity.name.tag",
|
|
65
|
+
"meta.tag"
|
|
66
|
+
],
|
|
67
|
+
"settings": {
|
|
68
|
+
"foreground": "#638cd2"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"scope": [
|
|
73
|
+
"entity.other.attribute-name",
|
|
74
|
+
"support.constant"
|
|
75
|
+
],
|
|
76
|
+
"settings": {
|
|
77
|
+
"foreground": "#638cd2"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"scope": [
|
|
82
|
+
"variable",
|
|
83
|
+
"identifier"
|
|
84
|
+
],
|
|
85
|
+
"settings": {
|
|
86
|
+
"foreground": "#b4b4b4"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"scope": [
|
|
91
|
+
"punctuation",
|
|
92
|
+
"meta.brace"
|
|
93
|
+
],
|
|
94
|
+
"settings": {
|
|
95
|
+
"foreground": "#8f8f90"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"scope": [
|
|
100
|
+
"invalid",
|
|
101
|
+
"invalid.illegal"
|
|
102
|
+
],
|
|
103
|
+
"settings": {
|
|
104
|
+
"foreground": "#ab5268"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"displayName": "Cyclone Light",
|
|
109
|
+
"type": "darkDimmed",
|
|
110
|
+
"fg": "#cfcfcf",
|
|
111
|
+
"bg": "#343438",
|
|
112
|
+
"colors": {
|
|
113
|
+
"editor.background": "#343438",
|
|
114
|
+
"editor.foreground": "#cfcfcf",
|
|
115
|
+
"editorCursor.foreground": "#638cd2",
|
|
116
|
+
"editor.selectionBackground": "#cfcfcf",
|
|
117
|
+
"editor.selectionForeground": "#343438",
|
|
118
|
+
"editor.inactiveSelectionBackground": "#2e2e30",
|
|
119
|
+
"editorLineNumber.foreground": "#8f8f90",
|
|
120
|
+
"editorLineNumber.activeForeground": "#b4b4b4",
|
|
121
|
+
"editorIndentGuide.background1": "#57575a",
|
|
122
|
+
"editorIndentGuide.activeBackground1": "#8f8f90",
|
|
123
|
+
"editorWhitespace.foreground": "#8f8f90"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Installing Cyclone UI (Dark High Contrast)
|
|
2
|
+
|
|
3
|
+
Generated by `@razorwind/shiki`.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
- `theme.json` — Cyclone Light (theme id: `cyclone-dark-high-contrast`)
|
|
8
|
+
|
|
9
|
+
## Setup
|
|
10
|
+
|
|
11
|
+
1. Copy or import the generated JSON into your app (paths depend on your bundler).
|
|
12
|
+
|
|
13
|
+
2. Register themes when creating a Shiki highlighter:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { createHighlighter } from "shiki";
|
|
17
|
+
import theme from "./theme.json";
|
|
18
|
+
|
|
19
|
+
const highlighter = await createHighlighter({
|
|
20
|
+
themes: [theme],
|
|
21
|
+
langs: ["javascript"]
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const html = highlighter.codeToHtml("const x = 1", {
|
|
25
|
+
lang: "javascript",
|
|
26
|
+
theme: "cyclone-dark-high-contrast"
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Or load at runtime:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { readFile } from "node:fs/promises";
|
|
34
|
+
|
|
35
|
+
const theme = JSON.parse(
|
|
36
|
+
await readFile("./theme.json", "utf8")
|
|
37
|
+
);
|
|
38
|
+
await highlighter.loadTheme(theme);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Select / load theme
|
|
42
|
+
|
|
43
|
+
Pass the theme id to `codeToHtml`, `codeToTokens`, or `getTokenStyle`:
|
|
44
|
+
|
|
45
|
+
- `cyclone-dark-high-contrast` — Cyclone Light
|