@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.
- package/.claude/skills/colamd-themes-preview.skill.md +333 -0
- package/.claude/skills/colamd-themes.skill.md +155 -0
- package/.hermes/skills/tools/colamd-themes/SKILL.md +159 -0
- package/.openclaw/skills/colamd-themes/SKILL.md +166 -0
- package/.opencode/skills/colamd-themes/SKILL.md +162 -0
- package/.trae/rules/colamd-themes.md +150 -0
- package/CHANGELOG.md +102 -0
- package/README.md +373 -0
- package/README_CN.md +373 -0
- package/RELEASENOTE.md +177 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +208 -0
- package/dist/cli.js.map +1 -0
- package/dist/color-systems.d.ts +17 -0
- package/dist/color-systems.js +251 -0
- package/dist/color-systems.js.map +1 -0
- package/dist/color-utils.d.ts +9 -0
- package/dist/color-utils.js +112 -0
- package/dist/color-utils.js.map +1 -0
- package/dist/contrast.d.ts +15 -0
- package/dist/contrast.js +63 -0
- package/dist/contrast.js.map +1 -0
- package/dist/docx-style-paradigm.d.ts +153 -0
- package/dist/docx-style-paradigm.js +640 -0
- package/dist/docx-style-paradigm.js.map +1 -0
- package/dist/export-cli.d.ts +10 -0
- package/dist/export-cli.js +266 -0
- package/dist/export-cli.js.map +1 -0
- package/dist/extractors/base.d.ts +6 -0
- package/dist/extractors/base.js +3 -0
- package/dist/extractors/base.js.map +1 -0
- package/dist/extractors/docx-extractor.d.ts +52 -0
- package/dist/extractors/docx-extractor.js +370 -0
- package/dist/extractors/docx-extractor.js.map +1 -0
- package/dist/extractors/pdf-extractor.d.ts +66 -0
- package/dist/extractors/pdf-extractor.js +430 -0
- package/dist/extractors/pdf-extractor.js.map +1 -0
- package/dist/extractors/url-extractor.d.ts +104 -0
- package/dist/extractors/url-extractor.js +761 -0
- package/dist/extractors/url-extractor.js.map +1 -0
- package/dist/generator.d.ts +4 -0
- package/dist/generator.js +71 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/mermaid-presets.d.ts +14 -0
- package/dist/mermaid-presets.js +122 -0
- package/dist/mermaid-presets.js.map +1 -0
- package/dist/models.d.ts +106 -0
- package/dist/models.js +92 -0
- package/dist/models.js.map +1 -0
- package/dist/renderer.d.ts +70 -0
- package/dist/renderer.js +204 -0
- package/dist/renderer.js.map +1 -0
- package/dist/templates/template.css +498 -0
- package/dist/templates/theme-paradigm.md +658 -0
- package/dist/templates/theme-template.hbs +370 -0
- package/dist/theme-store.d.ts +37 -0
- package/dist/theme-store.js +90 -0
- package/dist/theme-store.js.map +1 -0
- package/dist/validators.d.ts +26 -0
- package/dist/validators.js +144 -0
- package/dist/validators.js.map +1 -0
- package/package.json +36 -0
- package/skills/build-skills.sh +166 -0
- package/skills/colamd-themes/SKILL.md +148 -0
- package/src/cli.ts +200 -0
- package/src/color-systems.ts +289 -0
- package/src/color-utils.ts +120 -0
- package/src/contrast.ts +66 -0
- package/src/docx-style-paradigm.ts +811 -0
- package/src/export-cli.ts +301 -0
- package/src/extractors/base.ts +8 -0
- package/src/extractors/docx-extractor.ts +417 -0
- package/src/extractors/pdf-extractor.ts +527 -0
- package/src/extractors/url-extractor.ts +927 -0
- package/src/generator.ts +88 -0
- package/src/index.ts +29 -0
- package/src/mermaid-presets.ts +142 -0
- package/src/models.ts +212 -0
- package/src/renderer.ts +277 -0
- package/src/templates/template.css +498 -0
- package/src/templates/theme-paradigm.md +658 -0
- package/src/templates/theme-template.hbs +370 -0
- package/src/theme-store.ts +112 -0
- package/src/types/pdf-parse.d.ts +12 -0
- package/src/validators.ts +176 -0
- package/themes/.gitkeep +0 -0
- package/themes/academic-paper-pt.css +1805 -0
- package/themes/academic-paper.css +1099 -0
- package/themes/academic-style.css +2430 -0
- package/themes/colly.css +370 -0
- package/themes/elegant.css +671 -0
- package/themes/forest-ink.css +664 -0
- package/themes/guizang.css +732 -0
- package/themes/meeting-minutes.css +370 -0
- package/themes/pixso-design.css +1261 -0
- package/themes/salvator-blog.css +370 -0
- package/themes/swiss-design copy.css +746 -0
- package/themes/swiss-design.css +746 -0
- package/themes/template.css +498 -0
- package/themes/trae-blue.css +737 -0
- package/themes-preview/colly-preview.html +623 -0
- package/themes-preview/demo-content.md +187 -0
- package/themes-preview/meeting-minutes-preview.html +625 -0
- package/themes-preview/salvator-blog-preview.html +623 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** WCAG 2.1 relative luminance and contrast ratio calculations. */
|
|
2
|
+
/** WCAG 2.1 relative luminance of a hex color. */
|
|
3
|
+
export declare function relativeLuminance(hex: string): number;
|
|
4
|
+
/** WCAG 2.1 contrast ratio between two hex colors. Range: 1-21. */
|
|
5
|
+
export declare function contrastRatio(hex1: string, hex2: string): number;
|
|
6
|
+
/** Get HSL lightness (0-1) from a hex color. */
|
|
7
|
+
export declare function hslLightness(hex: string): number;
|
|
8
|
+
/** Get HSL saturation (0-1) from a hex color. */
|
|
9
|
+
export declare function hslSaturation(hex: string): number;
|
|
10
|
+
/** Get HSL hue (0-360) from a hex color. */
|
|
11
|
+
export declare function hslHue(hex: string): number;
|
|
12
|
+
/** Check if two colors are on the same hue axis (within tolerance degrees). */
|
|
13
|
+
export declare function sameHueAxis(h1: string, h2: string, tolerance?: number): boolean;
|
|
14
|
+
/** Determine if a palette is light mode (bg luminance > 0.5). */
|
|
15
|
+
export declare function isLightMode(bgHex: string): boolean;
|
package/dist/contrast.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** WCAG 2.1 relative luminance and contrast ratio calculations. */
|
|
2
|
+
import { hexToRgb } from "./color-utils.js";
|
|
3
|
+
/** Linearize an sRGB channel value (0-255) → (0-1). */
|
|
4
|
+
function linearize(channel) {
|
|
5
|
+
const c = channel / 255;
|
|
6
|
+
return c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
|
|
7
|
+
}
|
|
8
|
+
/** WCAG 2.1 relative luminance of a hex color. */
|
|
9
|
+
export function relativeLuminance(hex) {
|
|
10
|
+
const [r, g, b] = hexToRgb(hex);
|
|
11
|
+
return 0.2126 * linearize(r) + 0.7152 * linearize(g) + 0.0722 * linearize(b);
|
|
12
|
+
}
|
|
13
|
+
/** WCAG 2.1 contrast ratio between two hex colors. Range: 1-21. */
|
|
14
|
+
export function contrastRatio(hex1, hex2) {
|
|
15
|
+
const L1 = relativeLuminance(hex1);
|
|
16
|
+
const L2 = relativeLuminance(hex2);
|
|
17
|
+
const lighter = Math.max(L1, L2);
|
|
18
|
+
const darker = Math.min(L1, L2);
|
|
19
|
+
return (lighter + 0.05) / (darker + 0.05);
|
|
20
|
+
}
|
|
21
|
+
/** Get HSL lightness (0-1) from a hex color. */
|
|
22
|
+
export function hslLightness(hex) {
|
|
23
|
+
const [r, g, b] = hexToRgb(hex);
|
|
24
|
+
const max = Math.max(r, g, b) / 255;
|
|
25
|
+
const min = Math.min(r, g, b) / 255;
|
|
26
|
+
return (max + min) / 2;
|
|
27
|
+
}
|
|
28
|
+
/** Get HSL saturation (0-1) from a hex color. */
|
|
29
|
+
export function hslSaturation(hex) {
|
|
30
|
+
const [r, g, b] = hexToRgb(hex);
|
|
31
|
+
const max = Math.max(r, g, b) / 255;
|
|
32
|
+
const min = Math.min(r, g, b) / 255;
|
|
33
|
+
const l = (max + min) / 2;
|
|
34
|
+
if (max === min)
|
|
35
|
+
return 0;
|
|
36
|
+
return l > 0.5 ? (max - min) / (2 - max - min) : (max - min) / (max + min);
|
|
37
|
+
}
|
|
38
|
+
/** Get HSL hue (0-360) from a hex color. */
|
|
39
|
+
export function hslHue(hex) {
|
|
40
|
+
const [r, g, b] = hexToRgb(hex);
|
|
41
|
+
const max = Math.max(r, g, b);
|
|
42
|
+
const min = Math.min(r, g, b);
|
|
43
|
+
if (max === min)
|
|
44
|
+
return 0;
|
|
45
|
+
const d = max - min;
|
|
46
|
+
let h = 0;
|
|
47
|
+
if (max === r)
|
|
48
|
+
h = ((g - b) / d) % 6;
|
|
49
|
+
else if (max === g)
|
|
50
|
+
h = (b - r) / d + 2;
|
|
51
|
+
else
|
|
52
|
+
h = (r - g) / d + 4;
|
|
53
|
+
return Math.round(h * 60);
|
|
54
|
+
}
|
|
55
|
+
/** Check if two colors are on the same hue axis (within tolerance degrees). */
|
|
56
|
+
export function sameHueAxis(h1, h2, tolerance = 5) {
|
|
57
|
+
return Math.abs(hslHue(h1) - hslHue(h2)) <= tolerance;
|
|
58
|
+
}
|
|
59
|
+
/** Determine if a palette is light mode (bg luminance > 0.5). */
|
|
60
|
+
export function isLightMode(bgHex) {
|
|
61
|
+
return hslLightness(bgHex) > 0.5;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=contrast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contrast.js","sourceRoot":"","sources":["../src/contrast.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX 文档样式规范体系 — v1.0
|
|
3
|
+
*
|
|
4
|
+
* 核心功能:
|
|
5
|
+
* 1. 定义完整的文档元素样式层级(标题 H1-H6、正文、表格等)
|
|
6
|
+
* 2. 提供 WCAG 2.1 AAA 级对比度合规的标准参考值
|
|
7
|
+
* 3. 实现打印友好型灰度/低饱和度配色方案
|
|
8
|
+
* 4. 提供样式提取 fallback 与规范化工具
|
|
9
|
+
*
|
|
10
|
+
* 设计原则:
|
|
11
|
+
* - 文字色使用灰度轴(HSL S ≤ 0.05)或极低饱和度(S ≤ 0.15)
|
|
12
|
+
* - 背景色保持近白/近黑中性,饱和度 ≤ 0.03
|
|
13
|
+
* - 所有前景/背景对比度满足 WCAG AA (4.5:1) 或 AAA (7:1)
|
|
14
|
+
* - 行间距遵循中文排版规范(正文 1.5-1.9,标题 1.25-1.4)
|
|
15
|
+
*/
|
|
16
|
+
/** 单个字体样式的完整定义 */
|
|
17
|
+
export interface FontStyleDefinition {
|
|
18
|
+
/** 字体家族(CSS font-family 值) */
|
|
19
|
+
fontFamily: string;
|
|
20
|
+
/** 字号(px) */
|
|
21
|
+
fontSize: number;
|
|
22
|
+
/** 字重(100-900) */
|
|
23
|
+
fontWeight: number;
|
|
24
|
+
/** 文字颜色(hex) */
|
|
25
|
+
color: string;
|
|
26
|
+
/** 行高倍率 */
|
|
27
|
+
lineHeight: number;
|
|
28
|
+
/** 字间距(em,可选) */
|
|
29
|
+
letterSpacing?: number;
|
|
30
|
+
/** 段后间距(em,可选) */
|
|
31
|
+
marginBottom?: number;
|
|
32
|
+
}
|
|
33
|
+
/** 表格单元格样式定义 */
|
|
34
|
+
export interface TableCellStyle {
|
|
35
|
+
/** 表头字体家族 */
|
|
36
|
+
headerFontFamily: string;
|
|
37
|
+
/** 表头字号(px) */
|
|
38
|
+
headerFontSize: number;
|
|
39
|
+
/** 表头字重 */
|
|
40
|
+
headerFontWeight: number;
|
|
41
|
+
/** 表头文字颜色 */
|
|
42
|
+
headerColor: string;
|
|
43
|
+
/** 表头背景颜色 */
|
|
44
|
+
headerBgColor: string;
|
|
45
|
+
/** 表头行高 */
|
|
46
|
+
headerLineHeight: number;
|
|
47
|
+
/** 单元格字体家族 */
|
|
48
|
+
cellFontFamily: string;
|
|
49
|
+
/** 单元格字号(px) */
|
|
50
|
+
cellFontSize: number;
|
|
51
|
+
/** 单元格文字颜色 */
|
|
52
|
+
cellColor: string;
|
|
53
|
+
/** 单元格背景颜色 */
|
|
54
|
+
cellBgColor: string;
|
|
55
|
+
/** 单元格行高 */
|
|
56
|
+
cellLineHeight: number;
|
|
57
|
+
/** 单元格内边距 */
|
|
58
|
+
cellPadding: string;
|
|
59
|
+
/** 边框颜色 */
|
|
60
|
+
borderColor: string;
|
|
61
|
+
/** 边框宽度 */
|
|
62
|
+
borderWidth: string;
|
|
63
|
+
}
|
|
64
|
+
/** 完整的文档样式规范 */
|
|
65
|
+
export interface DocumentStyleParadigm {
|
|
66
|
+
/** 文档背景颜色 */
|
|
67
|
+
pageBackground: string;
|
|
68
|
+
/** 各级标题样式映射 */
|
|
69
|
+
headings: Record<"h1" | "h2" | "h3" | "h4" | "h5" | "h6", FontStyleDefinition>;
|
|
70
|
+
/** 正文样式 */
|
|
71
|
+
body: FontStyleDefinition;
|
|
72
|
+
/** 引用块样式 */
|
|
73
|
+
blockquote: FontStyleDefinition & {
|
|
74
|
+
borderLeftColor: string;
|
|
75
|
+
bgColor: string;
|
|
76
|
+
};
|
|
77
|
+
/** 代码块样式 */
|
|
78
|
+
codeBlock: FontStyleDefinition & {
|
|
79
|
+
bgColor: string;
|
|
80
|
+
};
|
|
81
|
+
/** 内联代码样式 */
|
|
82
|
+
inlineCode: {
|
|
83
|
+
fontSize: number;
|
|
84
|
+
color: string;
|
|
85
|
+
bgColor: string;
|
|
86
|
+
};
|
|
87
|
+
/** 表格样式 */
|
|
88
|
+
table: TableCellStyle;
|
|
89
|
+
/** 链接/强调色 */
|
|
90
|
+
accentColor: string;
|
|
91
|
+
/** 弱化文字颜色(脚注、辅助信息) */
|
|
92
|
+
mutedTextColor: string;
|
|
93
|
+
/** 选区高亮色 */
|
|
94
|
+
selectionBg: string;
|
|
95
|
+
}
|
|
96
|
+
/** 打印优化配置 */
|
|
97
|
+
export interface PrintOptimization {
|
|
98
|
+
/** 是否启用纯灰度模式(强制所有彩色转灰度) */
|
|
99
|
+
forceGrayscale: boolean;
|
|
100
|
+
/** 最大文字饱和度阈值(0-1) */
|
|
101
|
+
maxTextSaturation: number;
|
|
102
|
+
/** 最小对比度要求(WCAG 级别) */
|
|
103
|
+
minContrastRatio: "AA" | "AAA";
|
|
104
|
+
/** 背景色亮度调整(-1 到 1,负值变亮) */
|
|
105
|
+
bgBrightnessOffset: number;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 学术论文标准参考值
|
|
109
|
+
* 基于 GB/T 7713-1987 中文学术论文编排规则 + WCAG AAA
|
|
110
|
+
*/
|
|
111
|
+
export declare const ACADEMIC_PAPER_DEFAULTS: DocumentStyleParadigm;
|
|
112
|
+
/**
|
|
113
|
+
* 商务报告标准参考值
|
|
114
|
+
* 现代、简洁、打印友好
|
|
115
|
+
*/
|
|
116
|
+
export declare const BUSINESS_REPORT_DEFAULTS: DocumentStyleParadigm;
|
|
117
|
+
/**
|
|
118
|
+
* 技术文档标准参考值
|
|
119
|
+
* 适合 API 文档、技术手册
|
|
120
|
+
*/
|
|
121
|
+
export declare const TECHNICAL_DOC_DEFAULTS: DocumentStyleParadigm;
|
|
122
|
+
/**
|
|
123
|
+
* 生成打印优化的灰度色板
|
|
124
|
+
* @param baseBrightness 页面基础亮度(0=纯黑,1=纯白)
|
|
125
|
+
* @param options 打印优化配置
|
|
126
|
+
*/
|
|
127
|
+
export declare function generatePrintFriendlyGrayscale(baseBrightness?: number, options?: Partial<PrintOptimization>): DocumentStyleParadigm;
|
|
128
|
+
/**
|
|
129
|
+
* 生成低饱和度莫兰迪风格色板(适合打印)
|
|
130
|
+
* 保持微弱色相但大幅降低饱和度
|
|
131
|
+
*/
|
|
132
|
+
export declare function generateMorandiPrintPalette(hueDeg?: number, saturation?: number): DocumentStyleParadigm;
|
|
133
|
+
export interface StyleValidationIssue {
|
|
134
|
+
level: "error" | "warning" | "info";
|
|
135
|
+
element: string;
|
|
136
|
+
message: string;
|
|
137
|
+
actualValue?: string;
|
|
138
|
+
expectedRange?: string;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* 验证文档样式是否满足 WCAG 对比度要求和打印友好性
|
|
142
|
+
*/
|
|
143
|
+
export declare function validateDocumentStyle(style: DocumentStyleParadigm): StyleValidationIssue[];
|
|
144
|
+
/**
|
|
145
|
+
* 强制将样式规范化为打印友好格式
|
|
146
|
+
* 降低饱和度、确保对比度达标
|
|
147
|
+
*/
|
|
148
|
+
export declare function normalizeForPrinting(style: DocumentStyleParadigm, forceGrayscale?: boolean): DocumentStyleParadigm;
|
|
149
|
+
export declare const DOCUMENT_STYLE_PRESETS: Record<string, DocumentStyleParadigm>;
|
|
150
|
+
/**
|
|
151
|
+
* 根据文档类型获取推荐预设
|
|
152
|
+
*/
|
|
153
|
+
export declare function getRecommendedPreset(docType?: string): DocumentStyleParadigm;
|