@bytechain.cn/colamd-themes 0.3.0

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.
Files changed (108) hide show
  1. package/.claude/skills/colamd-themes-preview.skill.md +333 -0
  2. package/.claude/skills/colamd-themes.skill.md +155 -0
  3. package/.hermes/skills/tools/colamd-themes/SKILL.md +159 -0
  4. package/.openclaw/skills/colamd-themes/SKILL.md +166 -0
  5. package/.opencode/skills/colamd-themes/SKILL.md +162 -0
  6. package/.trae/rules/colamd-themes.md +150 -0
  7. package/CHANGELOG.md +102 -0
  8. package/README.md +373 -0
  9. package/README_CN.md +373 -0
  10. package/RELEASENOTE.md +177 -0
  11. package/dist/cli.d.ts +2 -0
  12. package/dist/cli.js +208 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/color-systems.d.ts +17 -0
  15. package/dist/color-systems.js +251 -0
  16. package/dist/color-systems.js.map +1 -0
  17. package/dist/color-utils.d.ts +9 -0
  18. package/dist/color-utils.js +112 -0
  19. package/dist/color-utils.js.map +1 -0
  20. package/dist/contrast.d.ts +15 -0
  21. package/dist/contrast.js +63 -0
  22. package/dist/contrast.js.map +1 -0
  23. package/dist/docx-style-paradigm.d.ts +153 -0
  24. package/dist/docx-style-paradigm.js +640 -0
  25. package/dist/docx-style-paradigm.js.map +1 -0
  26. package/dist/export-cli.d.ts +10 -0
  27. package/dist/export-cli.js +266 -0
  28. package/dist/export-cli.js.map +1 -0
  29. package/dist/extractors/base.d.ts +6 -0
  30. package/dist/extractors/base.js +3 -0
  31. package/dist/extractors/base.js.map +1 -0
  32. package/dist/extractors/docx-extractor.d.ts +52 -0
  33. package/dist/extractors/docx-extractor.js +370 -0
  34. package/dist/extractors/docx-extractor.js.map +1 -0
  35. package/dist/extractors/pdf-extractor.d.ts +66 -0
  36. package/dist/extractors/pdf-extractor.js +430 -0
  37. package/dist/extractors/pdf-extractor.js.map +1 -0
  38. package/dist/extractors/url-extractor.d.ts +104 -0
  39. package/dist/extractors/url-extractor.js +761 -0
  40. package/dist/extractors/url-extractor.js.map +1 -0
  41. package/dist/generator.d.ts +4 -0
  42. package/dist/generator.js +71 -0
  43. package/dist/generator.js.map +1 -0
  44. package/dist/index.d.ts +10 -0
  45. package/dist/index.js +9 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/mermaid-presets.d.ts +14 -0
  48. package/dist/mermaid-presets.js +122 -0
  49. package/dist/mermaid-presets.js.map +1 -0
  50. package/dist/models.d.ts +106 -0
  51. package/dist/models.js +92 -0
  52. package/dist/models.js.map +1 -0
  53. package/dist/renderer.d.ts +70 -0
  54. package/dist/renderer.js +204 -0
  55. package/dist/renderer.js.map +1 -0
  56. package/dist/templates/template.css +498 -0
  57. package/dist/templates/theme-paradigm.md +658 -0
  58. package/dist/templates/theme-template.hbs +370 -0
  59. package/dist/theme-store.d.ts +37 -0
  60. package/dist/theme-store.js +90 -0
  61. package/dist/theme-store.js.map +1 -0
  62. package/dist/validators.d.ts +26 -0
  63. package/dist/validators.js +144 -0
  64. package/dist/validators.js.map +1 -0
  65. package/package.json +36 -0
  66. package/skills/build-skills.sh +166 -0
  67. package/skills/colamd-themes/SKILL.md +148 -0
  68. package/src/cli.ts +200 -0
  69. package/src/color-systems.ts +289 -0
  70. package/src/color-utils.ts +120 -0
  71. package/src/contrast.ts +66 -0
  72. package/src/docx-style-paradigm.ts +811 -0
  73. package/src/export-cli.ts +301 -0
  74. package/src/extractors/base.ts +8 -0
  75. package/src/extractors/docx-extractor.ts +417 -0
  76. package/src/extractors/pdf-extractor.ts +527 -0
  77. package/src/extractors/url-extractor.ts +927 -0
  78. package/src/generator.ts +88 -0
  79. package/src/index.ts +29 -0
  80. package/src/mermaid-presets.ts +142 -0
  81. package/src/models.ts +212 -0
  82. package/src/renderer.ts +277 -0
  83. package/src/templates/template.css +498 -0
  84. package/src/templates/theme-paradigm.md +658 -0
  85. package/src/templates/theme-template.hbs +370 -0
  86. package/src/theme-store.ts +112 -0
  87. package/src/types/pdf-parse.d.ts +12 -0
  88. package/src/validators.ts +176 -0
  89. package/themes/.gitkeep +0 -0
  90. package/themes/academic-paper-pt.css +1805 -0
  91. package/themes/academic-paper.css +1099 -0
  92. package/themes/academic-style.css +2430 -0
  93. package/themes/colly.css +370 -0
  94. package/themes/elegant.css +671 -0
  95. package/themes/forest-ink.css +664 -0
  96. package/themes/guizang.css +732 -0
  97. package/themes/meeting-minutes.css +370 -0
  98. package/themes/pixso-design.css +1261 -0
  99. package/themes/salvator-blog.css +370 -0
  100. package/themes/swiss-design copy.css +746 -0
  101. package/themes/swiss-design.css +746 -0
  102. package/themes/template.css +498 -0
  103. package/themes/trae-blue.css +737 -0
  104. package/themes-preview/colly-preview.html +623 -0
  105. package/themes-preview/demo-content.md +187 -0
  106. package/themes-preview/meeting-minutes-preview.html +625 -0
  107. package/themes-preview/salvator-blog-preview.html +623 -0
  108. package/tsconfig.json +18 -0
@@ -0,0 +1,370 @@
1
+ /*
2
+ * ColaMD Theme: meeting-minutes
3
+ * Theme extracted from docx
4
+ * Generated by colamd-themes (docx: /Volumes/DATA/data/会议纪要.docx)
5
+ *
6
+ * ═══════════════════════════════════════════════════════════
7
+ * SECTION 1 — Design Tokens
8
+ * Modify the 5 seed colors + 3 font stacks to change the theme
9
+ * ═══════════════════════════════════════════════════════════ */
10
+
11
+ body.theme-custom {
12
+
13
+ /* ── 1.1 Seed Palette ── */
14
+ --seed-accent: #000000;
15
+ --seed-accent-light: rgba(0, 0, 0, 0.12);
16
+ --seed-accent-dark: #000000;
17
+ --seed-surface: #ffffff;
18
+ --seed-panel: #f5f5f5;
19
+ --seed-panel-alt: #f8f8f8;
20
+ --seed-ink: #000000;
21
+ --seed-ink-muted: #666666;
22
+ --seed-ink-dim: #666666;
23
+ --seed-border: #cccccc;
24
+ --seed-border-strong: #cccccc;
25
+
26
+ /* ── 1.2 Typography ── */
27
+ --font-body: "Fangsong", "FangSong", "Inter", "SF Pro Text", -apple-system, "Noto Serif SC", "Source Han Serif SC", Georgia, serif;
28
+ --font-heading: "Heiti TC", "Heiti", -apple-system, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
29
+ --font-code: "JetBrains Mono", "SF Mono", "Fira Code", Menlo, Consolas, monospace;
30
+ --font-mermaid: var(--font-heading);
31
+
32
+ /* ── 1.3 Font Sizing ── */
33
+ --font-size-root: 16px;
34
+ --font-scale-h1: 2;
35
+ --font-scale-h2: 1.5;
36
+ --font-scale-h3: 1.25;
37
+ --font-scale-h4: 1.1;
38
+ --font-scale-h5: 1;
39
+ --font-scale-h6: 0.95;
40
+ --font-size-mermaid: 13px;
41
+ --line-height-body: 1.75;
42
+ --line-height-heading: 1.35;
43
+ --line-height-code: 1.6;
44
+
45
+ /* ── 1.4 Radii & Spacing ── */
46
+ --radius-sm: 3px;
47
+ --radius-md: 6px;
48
+ --radius-lg: 10px;
49
+ --content-width: 820px;
50
+
51
+ /* ═══════════════════════════════════════════════════════════
52
+ SECTION 2 — Semantic Mapping
53
+ Auto-maps seed tokens → ColaMD built-in variables
54
+ ═══════════════════════════════════════════════════════════ */
55
+
56
+ /* ── 2.1 Surface ── */
57
+ --bg-color: var(--seed-surface);
58
+ --surface-color: var(--seed-panel);
59
+ --surface-alt: var(--seed-panel-alt);
60
+
61
+ /* ── 2.2 Text ── */
62
+ --text-color: var(--seed-ink);
63
+ --heading-color: var(--seed-ink);
64
+ --text-muted: var(--seed-ink-muted);
65
+ --text-dim: var(--seed-ink-dim);
66
+
67
+ /* ── 2.3 Links & Accent ── */
68
+ --link-color: var(--seed-accent);
69
+ --accent-color: var(--seed-accent);
70
+ --accent-dark: var(--seed-accent-dark);
71
+ --accent-light: var(--seed-accent-light);
72
+ --selection-bg: rgba(0, 0, 255, 0.15);
73
+
74
+ /* ── 2.4 Borders ── */
75
+ --border-color: var(--seed-border);
76
+ --blockquote-border: var(--seed-accent);
77
+ --hr-color: var(--seed-border);
78
+
79
+ /* ── 2.5 Inline Code ── */
80
+ --code-bg: var(--seed-panel);
81
+ --code-color: var(--seed-accent-dark);
82
+
83
+ /* ── 2.6 Code Blocks ── */
84
+ --code-block-bg: var(--seed-panel-alt);
85
+ --code-block-text: var(--seed-ink);
86
+ --code-block-color: var(--seed-ink);
87
+
88
+ /* ── 2.7 Blockquote ── */
89
+ --blockquote-bg: var(--seed-panel);
90
+
91
+ /* ── 2.8 Tables ── */
92
+ --table-header-bg: var(--seed-panel);
93
+ --table-border: var(--seed-border);
94
+
95
+ /* ── 2.9 Scrollbar ── */
96
+ --scrollbar-thumb: var(--seed-border-strong);
97
+ --scrollbar-thumb-hover: var(--seed-ink-muted);
98
+
99
+ /* ═══════════════════════════════════════════════════════════
100
+ SECTION 3 — Mermaid 20 Core Variables
101
+ Auto-consumed by built-in variables.css for 22 diagram types
102
+ ═══════════════════════════════════════════════════════════ */
103
+
104
+ /* ── 3.1 Container ── */
105
+ --mermaid-background: var(--seed-panel);
106
+ --mermaid-border-color: var(--seed-border);
107
+ --mermaid-border-radius: var(--radius-md);
108
+ --mermaid-padding: 20px;
109
+
110
+ /* ── 3.2 Font ── */
111
+ --mermaid-font-family: var(--font-mermaid);
112
+ --mermaid-font-size: var(--font-size-mermaid);
113
+
114
+ /* ── 3.3 Nodes ── */
115
+ --mermaid-node-fill: var(--seed-panel);
116
+ --mermaid-node-stroke: var(--seed-accent);
117
+ --mermaid-node-stroke-width: 1.5px;
118
+ --mermaid-node-text: var(--seed-ink);
119
+
120
+ /* ── 3.4 Edges ── */
121
+ --mermaid-edge-stroke: var(--seed-ink-muted);
122
+ --mermaid-edge-stroke-width: 1.5px;
123
+
124
+ /* ── 3.5 Clusters ── */
125
+ --mermaid-cluster-fill: rgba(0, 0, 255, 0.06);
126
+ --mermaid-cluster-stroke: var(--seed-accent);
127
+
128
+ /* ── 3.6 Labels ── */
129
+ --mermaid-label-text: var(--seed-ink);
130
+ --mermaid-edge-label-text: var(--seed-ink-muted);
131
+ --mermaid-edge-label-bg: var(--seed-surface);
132
+
133
+ /* ── 3.7 Titles & Axes ── */
134
+ --mermaid-title-text: var(--seed-ink);
135
+ --mermaid-axis-text: var(--seed-ink-muted);
136
+ --mermaid-highlight: var(--seed-accent);
137
+
138
+ /* ── 3.8 Person Nodes ── */
139
+ --mermaid-person-stroke: var(--seed-ink);
140
+ --mermaid-person-fill: var(--seed-panel);
141
+
142
+ /* ── 3.9 Label Offset ── */
143
+ --mermaid-label-offset-y: 0px;
144
+
145
+ /* ── 4. Fine Tuning ── */
146
+ --line-height-base: var(--line-height-body);
147
+ }
148
+
149
+ /* ═══════════════════════════════════════════════════════════
150
+ SECTION 5 — Selector-Level Micro Adjustments
151
+ Only where base.css doesn't cover. All values via var(--*).
152
+ ═══════════════════════════════════════════════════════════ */
153
+
154
+ html { font-size: var(--font-size-root); }
155
+ body.theme-custom, html, body {
156
+ background-color: var(--bg-color);
157
+ color: var(--text-color);
158
+ font-family: var(--font-body);
159
+ line-height: var(--line-height-body);
160
+ }
161
+
162
+ #write {
163
+ max-width: var(--content-width);
164
+ margin: 0 auto;
165
+ padding: 30px 60px 100px;
166
+ }
167
+
168
+ body.theme-custom h1, body.theme-custom h2, body.theme-custom h3,
169
+ body.theme-custom h4, body.theme-custom h5, body.theme-custom h6 {
170
+ font-family: var(--font-heading);
171
+ color: var(--heading-color);
172
+ font-weight: 700;
173
+ line-height: var(--line-height-heading);
174
+ }
175
+
176
+ body.theme-custom h1 { font-size: calc(var(--font-size-root) * var(--font-scale-h1)); }
177
+ body.theme-custom h2 { font-size: calc(var(--font-size-root) * var(--font-scale-h2)); }
178
+ body.theme-custom h3 { font-size: calc(var(--font-size-root) * var(--font-scale-h3)); }
179
+ body.theme-custom h4 { font-size: calc(var(--font-size-root) * var(--font-scale-h4)); }
180
+ body.theme-custom h5 { font-size: calc(var(--font-size-root) * var(--font-scale-h5)); }
181
+ body.theme-custom h6 { font-size: calc(var(--font-size-root) * var(--font-scale-h6)); }
182
+
183
+ body.theme-custom strong { color: var(--accent-color); }
184
+ body.theme-custom code {
185
+ font-family: var(--font-code);
186
+ background: var(--code-bg);
187
+ color: var(--code-color);
188
+ }
189
+
190
+ body.theme-custom pre {
191
+ background: var(--code-block-bg);
192
+ font-family: var(--font-code);
193
+ line-height: var(--line-height-code);
194
+ }
195
+ body.theme-custom pre code { color: var(--code-block-text); background: transparent; }
196
+
197
+ body.theme-custom blockquote {
198
+ background: var(--blockquote-bg);
199
+ border-left: 4px solid var(--blockquote-border);
200
+ }
201
+
202
+ body.theme-custom table th {
203
+ background: var(--table-header-bg);
204
+ font-weight: 700;
205
+ border-bottom: 2px solid var(--accent-color);
206
+ }
207
+
208
+ body.theme-custom hr {
209
+ border: none;
210
+ border-top: 1px solid var(--hr-color);
211
+ }
212
+
213
+ body.theme-custom img { max-width: 100%; }
214
+
215
+ /* ── 5.11 Mermaid caption ── */
216
+ body.theme-custom .mermaid-block + p {
217
+ text-align: center;
218
+ font-family: var(--font-heading);
219
+ font-size: calc(var(--font-size-mermaid) + 2px);
220
+ color: var(--text-muted);
221
+ }
222
+
223
+ /* ── 5.12 Responsive ── */
224
+ @media only screen and (max-width: 768px) {
225
+ #write { padding: 20px; }
226
+ body.theme-custom .mermaid-block { padding: 12px; }
227
+ }
228
+
229
+ /* ═══════════════════════════════════════════════════════════
230
+ SECTION 6 — Print / Export
231
+ Screen mirror: every screen property restated with !important.
232
+ ═══════════════════════════════════════════════════════════ */
233
+ @media print {
234
+ @page { margin: 20mm; }
235
+
236
+ /* ── 6.0 Variable re-declaration (Chromium strips CSS variables in print) ── */
237
+ body.theme-custom {
238
+ --seed-accent: #000000;
239
+ --seed-accent-dark: #000000;
240
+ --seed-surface: #ffffff;
241
+ --seed-ink: #000000;
242
+ --seed-ink-muted: #666666;
243
+ --seed-panel: #f5f5f5;
244
+ --seed-panel-alt: #f8f8f8;
245
+ --seed-border: #cccccc;
246
+ --font-size-root: 16px;
247
+ --line-height-body: 1.75;
248
+ --line-height-heading: 1.35;
249
+ --line-height-code: 1.6;
250
+ --font-scale-h1: 2;
251
+ --font-scale-h2: 1.5;
252
+ --font-scale-h3: 1.25;
253
+ --font-scale-h4: 1.1;
254
+ --font-scale-h5: 1;
255
+ --font-scale-h6: 0.95;
256
+ --content-width: 820px;
257
+ --font-size-mermaid: 13px;
258
+ --accent-color: var(--seed-accent);
259
+ --accent-dark: var(--seed-accent-dark);
260
+ --code-bg: var(--seed-panel);
261
+ --code-color: var(--seed-accent-dark);
262
+ --code-block-bg: var(--seed-panel-alt);
263
+ --code-block-text: var(--seed-ink);
264
+ --blockquote-bg: var(--seed-panel);
265
+ --table-header-bg: var(--seed-panel);
266
+ --border-color: var(--seed-border);
267
+ --hr-color: var(--seed-border);
268
+ }
269
+
270
+ html, body, body.theme-custom {
271
+ background: var(--seed-surface) !important;
272
+ color: var(--seed-ink) !important;
273
+ font-family: var(--font-body) !important;
274
+ line-height: var(--line-height-body) !important;
275
+ -webkit-print-color-adjust: exact !important;
276
+ print-color-adjust: exact !important;
277
+ }
278
+
279
+ #write {
280
+ max-width: var(--content-width) !important;
281
+ margin: 0 auto !important;
282
+ padding: 30px 60px 100px !important;
283
+ }
284
+
285
+ body.theme-custom h1, body.theme-custom h2, body.theme-custom h3,
286
+ body.theme-custom h4, body.theme-custom h5, body.theme-custom h6 {
287
+ font-family: var(--font-heading) !important;
288
+ color: var(--seed-ink) !important;
289
+ font-weight: 700 !important;
290
+ line-height: var(--line-height-heading) !important;
291
+ -webkit-print-color-adjust: exact !important;
292
+ print-color-adjust: exact !important;
293
+ }
294
+ body.theme-custom h1 { font-size: calc(var(--font-size-root) * var(--font-scale-h1)) !important; }
295
+ body.theme-custom h2 { font-size: calc(var(--font-size-root) * var(--font-scale-h2)) !important; }
296
+ body.theme-custom h3 { font-size: calc(var(--font-size-root) * var(--font-scale-h3)) !important; }
297
+ body.theme-custom h4 { font-size: calc(var(--font-size-root) * var(--font-scale-h4)) !important; }
298
+ body.theme-custom h5 { font-size: calc(var(--font-size-root) * var(--font-scale-h5)) !important; }
299
+ body.theme-custom h6 { font-size: calc(var(--font-size-root) * var(--font-scale-h6)) !important; }
300
+
301
+ body.theme-custom strong {
302
+ color: var(--accent-color) !important;
303
+ -webkit-print-color-adjust: exact !important;
304
+ print-color-adjust: exact !important;
305
+ }
306
+
307
+ body.theme-custom code {
308
+ font-family: var(--font-code) !important;
309
+ background: var(--code-bg) !important;
310
+ color: var(--code-color) !important;
311
+ -webkit-print-color-adjust: exact !important;
312
+ print-color-adjust: exact !important;
313
+ }
314
+
315
+ body.theme-custom pre {
316
+ background: var(--code-block-bg) !important;
317
+ font-family: var(--font-code) !important;
318
+ line-height: var(--line-height-code) !important;
319
+ -webkit-print-color-adjust: exact !important;
320
+ print-color-adjust: exact !important;
321
+ }
322
+ body.theme-custom pre code { color: var(--code-block-text) !important; background: transparent !important; }
323
+
324
+ body.theme-custom blockquote {
325
+ background: var(--blockquote-bg) !important;
326
+ border-left: 4px solid var(--seed-accent) !important;
327
+ -webkit-print-color-adjust: exact !important;
328
+ print-color-adjust: exact !important;
329
+ }
330
+
331
+ body.theme-custom table th {
332
+ background: var(--table-header-bg) !important;
333
+ color: var(--seed-ink) !important;
334
+ font-weight: 700 !important;
335
+ border-bottom: 2px solid var(--accent-color) !important;
336
+ -webkit-print-color-adjust: exact !important;
337
+ print-color-adjust: exact !important;
338
+ }
339
+
340
+ body.theme-custom a {
341
+ color: var(--seed-accent) !important;
342
+ -webkit-print-color-adjust: exact !important;
343
+ print-color-adjust: exact !important;
344
+ }
345
+
346
+ body.theme-custom hr {
347
+ border: none !important;
348
+ border-top: 1px solid var(--hr-color) !important;
349
+ }
350
+
351
+ body.theme-custom img { max-width: 100% !important; }
352
+
353
+ body.theme-custom .mermaid-block {
354
+ background: var(--seed-surface) !important;
355
+ border-color: var(--seed-border) !important;
356
+ -webkit-print-color-adjust: exact !important;
357
+ print-color-adjust: exact !important;
358
+ }
359
+ body.theme-custom .mermaid-preview svg * {
360
+ -webkit-print-color-adjust: exact !important;
361
+ print-color-adjust: exact !important;
362
+ }
363
+
364
+ body.theme-custom .mermaid-block + p {
365
+ color: var(--seed-ink-muted) !important;
366
+ text-align: center !important;
367
+ font-family: var(--font-heading) !important;
368
+ font-size: calc(var(--font-size-mermaid) + 2px) !important;
369
+ }
370
+ }