remove polished

This commit is contained in:
lutinglt committed 2026-06-06 22:42:49 +08:00
1 parent 148ca6c33a
commit daedc3f5aa
18 files changed
+928 -930

No files matched your search

+2 -2
View File
@@ -312,7 +312,7 @@ theme-github-auto.css:
### Color Scale Calculation ### Color Scale Calculation
`scaleColorLight()` in [src/functions/scss.ts](src/functions/scss.ts) implements the Sass `color.scale()` algorithm: `scaleColorLight()` in [src/functions/color.ts](src/functions/color.ts) implements the Sass `color.scale()` algorithm:
``` ```
darken: newL = currentL × (1 + scale/100) [scale < 0] darken: newL = currentL × (1 + scale/100) [scale < 0]
@@ -416,7 +416,7 @@ outputs static CSS strings.
│ │ ├── display.ts # Display color scale → GitHubColor overrides │ │ ├── display.ts # Display color scale → GitHubColor overrides
│ │ └── catppuccinSyntax.ts # Catppuccin syntax highlighting │ │ └── catppuccinSyntax.ts # Catppuccin syntax highlighting
│ ├── functions/ # Utility functions │ ├── functions/ # Utility functions
│ │ ├── scss.ts # scaleColorLight (Sass color.scale port) │ │ ├── color.ts # scaleColorLight (Sass color.scale) + rgba wrapper
│ │ └── var.ts # extractVarName (CSS variable name extraction) │ │ └── var.ts # extractVarName (CSS variable name extraction)
│ ├── types/ # Type definitions and CSS variable contracts │ ├── types/ # Type definitions and CSS variable contracts
│ │ ├── color/ # Color structure definitions (primary, secondary, named, etc.) │ │ ├── color/ # Color structure definitions (primary, secondary, named, etc.)
+2 -2
View File
@@ -302,7 +302,7 @@ theme-github-auto.css:
### 颜色缩放计算 ### 颜色缩放计算
[src/functions/scss.ts](src/functions/scss.ts) 中的 `scaleColorLight()` 实现了 Sass `color.scale()` 算法: [src/functions/color.ts](src/functions/color.ts) 中的 `scaleColorLight()` 实现了 Sass `color.scale()` 算法:
``` ```
变暗: newL = currentL × (1 + scale/100) [scale < 0] 变暗: newL = currentL × (1 + scale/100) [scale < 0]
@@ -401,7 +401,7 @@ const baseButton = css`
│ │ ├── display.ts # Display color scale → GitHubColor 覆写 │ │ ├── display.ts # Display color scale → GitHubColor 覆写
│ │ └── catppuccinSyntax.ts # Catppuccin 语法高亮 │ │ └── catppuccinSyntax.ts # Catppuccin 语法高亮
│ ├── functions/ # 工具函数 │ ├── functions/ # 工具函数
│ │ ├── scss.ts # scaleColorLight(Sass color.scale 移植) │ │ ├── color.ts # scaleColorLight(Sass color.scale)+ rgba 转换
│ │ └── var.ts # extractVarName(CSS 变量名提取) │ │ └── var.ts # extractVarName(CSS 变量名提取)
│ ├── types/ # 类型定义与 CSS 变量契约 │ ├── types/ # 类型定义与 CSS 变量契约
│ │ ├── color/ # 颜色结构定义(primary, secondary, named, 等) │ │ ├── color/ # 颜色结构定义(primary, secondary, named, 等)
+3 -3
View File
@@ -115,8 +115,8 @@ Please add your author info at the top of the color theme file so Issue reporter
It is recommended to use `defineTheme` with the `ThemeColor` type to define theme colors. The framework will It is recommended to use `defineTheme` with the `ThemeColor` type to define theme colors. The framework will
automatically compute and generate all Gitea CSS variables. automatically compute and generate all Gitea CSS variables.
Color calculation functions can be imported from `@lutinglt/gitea-github-theme/core` (`scaleColorLight`), or use the Color calculation functions can be imported from `@lutinglt/gitea-github-theme/core` (`scaleColorLight`, `rgba`),
`polished` library. or use the `color2k` library for additional color manipulation.
Example: `themes/my-theme.ts` Example: `themes/my-theme.ts`
@@ -182,7 +182,7 @@ For color reuse patterns, see the colorblind theme implementation in `themes/git
Theme styles use the `css()` template string for development. Strings are processed by LightningCSS and support CSS Theme styles use the `css()` template string for development. Strings are processed by LightningCSS and support CSS
nesting syntax. Do not use SCSS functions; for complex processing, use TypeScript libraries such as the bundled nesting syntax. Do not use SCSS functions; for complex processing, use TypeScript libraries such as the bundled
`polished` library. `color2k` library.
For complex logic, it is recommended to extract it into functions under the `src/functions` directory. For complex logic, it is recommended to extract it into functions under the `src/functions` directory.
+2 -2
View File
@@ -106,7 +106,7 @@ bun commit
推荐使用 `defineTheme` 配合 `ThemeColor` 类型来定义主题颜色, 框架会自动计算生成所有 Gitea CSS 变量. 推荐使用 `defineTheme` 配合 `ThemeColor` 类型来定义主题颜色, 框架会自动计算生成所有 Gitea CSS 变量.
颜色计算函数可从 `@lutinglt/gitea-github-theme/core` 导入 `scaleColorLight`, 或使用 `polished` 库. 颜色计算函数可从 `@lutinglt/gitea-github-theme/core` 导入 `scaleColorLight` 和 `rgba`, 或使用 `color2k` 库进行额外颜色操作.
例: `themes/主题名称.ts` 例: `themes/主题名称.ts`
@@ -171,7 +171,7 @@ export default defineTheme({ colorType: "gitea", themeColor: giteaColor, syntaxC
主题样式使用 `css()` 主题样式使用 `css()`
模板字符串开发,字符串经过 LightningCSS 处理, 支持 CSS 嵌套语法。请勿使用 SCSS 函数,如需复杂处理请使用 TypeScript 相关库,比如项目自带的 模板字符串开发,字符串经过 LightningCSS 处理, 支持 CSS 嵌套语法。请勿使用 SCSS 函数,如需复杂处理请使用 TypeScript 相关库,比如项目自带的
`polished` 库。 `color2k` 库。
推荐需要复杂处理时,提取逻辑到 `src/functions` 目录下的函数中。 推荐需要复杂处理时,提取逻辑到 `src/functions` 目录下的函数中。
+3 -1
View File
@@ -47,7 +47,6 @@
"globals": "^17.6.0", "globals": "^17.6.0",
"jiti": "^2.6.1", "jiti": "^2.6.1",
"lightningcss": "^1.32.0", "lightningcss": "^1.32.0",
"polished": "^4.3.1",
"prettier": "3.8.1", "prettier": "3.8.1",
"prettier-plugin-organize-imports": "^4.3.0", "prettier-plugin-organize-imports": "^4.3.0",
"style-dictionary": "^5.4.1", "style-dictionary": "^5.4.1",
@@ -85,5 +84,8 @@
} }
} }
] ]
},
"dependencies": {
"culori": "^4.0.2"
} }
} }
@@ -18,54 +18,48 @@
*/ */
import { describe, expect, it } from "vitest"; import { describe, expect, it } from "vitest";
import { scaleColorLight } from "./scss"; import { scaleColorLight } from "./color";
describe("scaleColorLight", () => { describe("scaleColorLight", () => {
describe("变暗 (负值)", () => { describe("变暗 (负值)", () => {
it("中等颜色变暗 20%", () => { it("中等颜色变暗 20%", () => {
const result = scaleColorLight("#808080", -20); const result = scaleColorLight("#808080", -20);
expect(result).toBeTruthy(); expect(result).toBeTruthy();
// 亮度应该明显低于原始 50% expect(result).not.toBe("hsla(0, 0%, 50%, 1)");
expect(result).not.toBe("#808080");
}); });
it("纯红色变暗 50%", () => { it("纯红色变暗 50%", () => {
// 红色 #ff0000 在 HSL 中亮度约 50%
const result = scaleColorLight("#ff0000", -50); const result = scaleColorLight("#ff0000", -50);
// 变暗后应该接近深红色
expect(result).toBeTruthy(); expect(result).toBeTruthy();
expect(result).not.toBe("#ff0000"); expect(result).not.toBe("hsla(0, 100%, 50%, 1)");
}); });
it("纯白色变暗 100% 应变为黑色", () => { it("纯白色变暗 100% 应变为黑色", () => {
// 白色亮度=1,变暗 100% → newLightness = 1 * (1 + (-100/100)) = 0 // 白色亮度=1,变暗 100% → newLightness = 1 * (1 + (-100/100)) = 0
// polished.hsl 返回短格式 hex,如 #000
const result = scaleColorLight("#ffffff", -100); const result = scaleColorLight("#ffffff", -100);
expect(result).toMatch(/^#0{3,6}$/); // #000 或 #000000 expect(result).toBe("hsla(0, 0%, 0%, 1)");
}); });
it("纯白色变暗 50% 应变为灰色", () => { it("纯白色变暗 50% 应变为灰色", () => {
// 白色亮度=1,变暗 50% → newLightness = 1 * (1 + (-50/100)) = 0.5 // 白色亮度=1,变暗 50% → newLightness = 1 * (1 + (-50/100)) = 0.5
expect(scaleColorLight("#ffffff", -50)).toBe("#808080"); expect(scaleColorLight("#ffffff", -50)).toBe("hsla(0, 0%, 50%, 1)");
}); });
it("纯黑色变暗 50% 仍为黑色 (边界值)", () => { it("纯黑色变暗 50% 仍为黑色 (边界值)", () => {
// 黑色亮度=0,变暗 50% → newLightness = 0 * (1 + (-50/100)) = 0 // 黑色亮度=0,变暗 50% → newLightness = 0 * (1 + (-50/100)) = 0
const result = scaleColorLight("#000000", -50); const result = scaleColorLight("#000000", -50);
expect(result).toMatch(/^#0{3,6}$/); // #000 或 #000000 expect(result).toBe("hsla(0, 0%, 0%, 1)");
}); });
it("变暗 0% 颜色不变 (语义等价)", () => { it("变暗 0% 颜色不变 (语义等价)", () => {
// polished.hsl 可能返回短格式 hex: #4488cc ↔ #48c
const result = scaleColorLight("#4488cc", -0); const result = scaleColorLight("#4488cc", -0);
expect(["#48c", "#4488cc"]).toContain(result); expect(result).toMatch(/^hsla\(/);
}); });
it("极小幅变暗应接近原色", () => { it("小幅变暗应接近原色", () => {
const result = scaleColorLight("#ff0000", -1); const result = scaleColorLight("#ff0000", -5);
// 亮度应轻微下降,但仍在红色范围
expect(result).toBeTruthy(); expect(result).toBeTruthy();
expect(result).not.toBe("#ff0000"); expect(result).not.toBe("hsla(0, 100%, 50%, 1)");
}); });
}); });
@@ -73,37 +67,35 @@ describe("scaleColorLight", () => {
it("中等颜色变亮 20%", () => { it("中等颜色变亮 20%", () => {
const result = scaleColorLight("#808080", 20); const result = scaleColorLight("#808080", 20);
expect(result).toBeTruthy(); expect(result).toBeTruthy();
expect(result).not.toBe("#808080"); expect(result).not.toBe("hsla(0, 0%, 50%, 1)");
}); });
it("纯红色变亮 50%", () => { it("纯红色变亮 50%", () => {
const result = scaleColorLight("#ff0000", 50); const result = scaleColorLight("#ff0000", 50);
// 变亮后应该接近浅红色
expect(result).toBeTruthy(); expect(result).toBeTruthy();
expect(result).not.toBe("#ff0000"); expect(result).not.toBe("hsla(0, 100%, 50%, 1)");
}); });
it("纯黑色变亮 100% 应变为白色", () => { it("纯黑色变亮 100% 应变为白色", () => {
// 黑色亮度=0,变亮 100% → newLightness = 0 + (1-0) * (100/100) = 1 // 黑色亮度=0,变亮 100% → newLightness = 0 + (1-0) * (100/100) = 1
const result = scaleColorLight("#000000", 100); const result = scaleColorLight("#000000", 100);
expect(result).toMatch(/^#f{3,6}$/); // #fff 或 #ffffff expect(result).toBe("hsla(0, 0%, 100%, 1)");
}); });
it("纯黑色变亮 50% 应变为灰色", () => { it("纯黑色变亮 50% 应变为灰色", () => {
// 黑色亮度=0,变亮 50% → newLightness = 0 + (1-0) * 0.5 = 0.5 // 黑色亮度=0,变亮 50% → newLightness = 0 + (1-0) * 0.5 = 0.5
expect(scaleColorLight("#000000", 50)).toBe("#808080"); expect(scaleColorLight("#000000", 50)).toBe("hsla(0, 0%, 50%, 1)");
}); });
it("纯白色变亮 50% 仍为白色 (边界值)", () => { it("纯白色变亮 50% 仍为白色 (边界值)", () => {
// 白色亮度=1,变亮 50% → newLightness = 1 + (1-1) * 0.5 = 1 // 白色亮度=1,变亮 50% → newLightness = 1 + (1-1) * 0.5 = 1
const result = scaleColorLight("#ffffff", 50); const result = scaleColorLight("#ffffff", 50);
expect(result).toMatch(/^#f{3,6}$/); // #fff 或 #ffffff expect(result).toBe("hsla(0, 0%, 100%, 1)");
}); });
it("变亮 0% 颜色不变 (语义等价)", () => { it("变亮 0% 颜色不变 (语义等价)", () => {
// polished.hsl 可能返回短格式 hex: #336699 ↔ #369
const result = scaleColorLight("#336699", 0); const result = scaleColorLight("#336699", 0);
expect(["#369", "#336699"]).toContain(result); expect(result).toMatch(/^hsla\(/);
}); });
}); });
@@ -111,7 +103,7 @@ describe("scaleColorLight", () => {
it("支持 3 位 hex 颜色", () => { it("支持 3 位 hex 颜色", () => {
const result = scaleColorLight("#f00", -50); const result = scaleColorLight("#f00", -50);
expect(result).toBeTruthy(); expect(result).toBeTruthy();
expect(result).not.toBe("#f00"); expect(result).not.toBe("hsla(0, 100%, 50%, 1)");
}); });
it("支持 6 位 hex 颜色", () => { it("支持 6 位 hex 颜色", () => {
@@ -120,7 +112,7 @@ describe("scaleColorLight", () => {
}); });
it("支持 8 位 hex 颜色 (含 alpha)", () => { it("支持 8 位 hex 颜色 (含 alpha)", () => {
// polished 的 parseToHsl 会忽略 alpha // parseToHsla 的 alpha 通道不影响亮度计算
const result = scaleColorLight("#ff8800cc", -20); const result = scaleColorLight("#ff8800cc", -20);
expect(result).toBeTruthy(); expect(result).toBeTruthy();
}); });
@@ -129,24 +121,22 @@ describe("scaleColorLight", () => {
describe("极端缩放值", () => { describe("极端缩放值", () => {
it("超过 100% 的变亮会被 clamp 到白色", () => { it("超过 100% 的变亮会被 clamp 到白色", () => {
const result = scaleColorLight("#808080", 200); const result = scaleColorLight("#808080", 200);
// 调整后亮度可能超过 1,被 clamp 到 1 = 白色 expect(result).toBe("hsla(0, 0%, 100%, 1)");
expect(result).toMatch(/^#f{3,6}$/); // #fff 或 #ffffff
}); });
it("超过 100% 的变暗会被 clamp 到黑色", () => { it("超过 100% 的变暗会被 clamp 到黑色", () => {
const result = scaleColorLight("#808080", -200); const result = scaleColorLight("#808080", -200);
// 调整后亮度可能低于 0,被 clamp 到 0 = 黑色 expect(result).toBe("hsla(0, 0%, 0%, 1)");
expect(result).toMatch(/^#0{3,6}$/); // #000 或 #000000
}); });
it("变亮 150% 应到白色", () => { it("变亮 150% 应到白色", () => {
const result = scaleColorLight("#ffffff", 150); const result = scaleColorLight("#ffffff", 150);
expect(result).toMatch(/^#f{3,6}$/); // #fff 或 #ffffff expect(result).toBe("hsla(0, 0%, 100%, 1)");
}); });
it("变暗 150% 应到黑色", () => { it("变暗 150% 应到黑色", () => {
const result = scaleColorLight("#000000", -150); const result = scaleColorLight("#000000", -150);
expect(result).toMatch(/^#0{3,6}$/); // #000 或 #000000 expect(result).toBe("hsla(0, 0%, 0%, 1)");
}); });
}); });
@@ -154,26 +144,26 @@ describe("scaleColorLight", () => {
it("GitHub 蓝色强调色变暗 12% (暗色主题 primary dark)", () => { it("GitHub 蓝色强调色变暗 12% (暗色主题 primary dark)", () => {
const result = scaleColorLight("#4493f8", -12); const result = scaleColorLight("#4493f8", -12);
expect(result).toBeTruthy(); expect(result).toBeTruthy();
expect(result).not.toBe("#4493f8"); expect(result).not.toBe("hsla(214, 93%, 62%, 1)");
}); });
it("GitHub 蓝色强调色变亮 12% (亮色主题 primary light)", () => { it("GitHub 蓝色强调色变亮 12% (亮色主题 primary light)", () => {
const result = scaleColorLight("#0969da", 12); const result = scaleColorLight("#0969da", 12);
expect(result).toBeTruthy(); expect(result).toBeTruthy();
expect(result).not.toBe("#0969da"); expect(result).not.toBe("hsla(212, 92%, 45%, 1)");
}); });
it("边框色变暗 6% (secondary dark 1)", () => { it("边框色变暗 6% (secondary dark 1)", () => {
const result = scaleColorLight("#d0d7de", -6); const result = scaleColorLight("#d0d7de", -6);
expect(result).toBeTruthy(); expect(result).toBeTruthy();
expect(result).not.toBe("#d0d7de"); expect(result).not.toBe("hsla(210, 18%, 85%, 1)");
}); });
it("相同的绝对缩放值在暗/亮色上的方向效果不同", () => { it("相同的绝对缩放值在暗/亮色上的方向效果不同", () => {
// 验证 scaleColorLight 不会改变色相 (hue) // 验证 scaleColorLight 不会改变色相 (hue)
const original = "#4493f8"; const original = "hsla(214, 93%, 62%, 1)";
const darkened = scaleColorLight(original, -30); const darkened = scaleColorLight("#4493f8", -30);
const lightened = scaleColorLight(original, 30); const lightened = scaleColorLight("#4493f8", 30);
// 两者都不等于原色 // 两者都不等于原色
expect(darkened).not.toBe(original); expect(darkened).not.toBe(original);
expect(lightened).not.toBe(original); expect(lightened).not.toBe(original);
@@ -17,7 +17,13 @@
* limitations under the License. * limitations under the License.
*/ */
import { hsl, parseToHsl } from "polished"; import { rgba as c2kRgba, hsla, parseToHsla, parseToRgba } from "color2k";
/** 解析颜色后设置指定透明度,返回 rgba 字符串 */
export function rgba(color: string, alpha: number): string {
const [r, g, b] = parseToRgba(color);
return c2kRgba(r, g, b, alpha);
}
/** /**
* 改变颜色的亮度, 等同于 sass 中的 `color.scale` 函数 * 改变颜色的亮度, 等同于 sass 中的 `color.scale` 函数
@@ -32,15 +38,15 @@ import { hsl, parseToHsl } from "polished";
* color: color.scale(#ff0000, $lightness: -20%) * color: color.scale(#ff0000, $lightness: -20%)
*/ */
export function scaleColorLight(color: string, lightness: number) { export function scaleColorLight(color: string, lightness: number) {
const hslColor = parseToHsl(color); const [h, s, l] = parseToHsla(color);
let newLightness; let newLightness;
if (lightness < 0) { if (lightness < 0) {
newLightness = hslColor.lightness * (1 + lightness / 100); // 变暗 newLightness = l * (1 + lightness / 100); // 变暗
} else { } else {
newLightness = hslColor.lightness + (1 - hslColor.lightness) * (lightness / 100); // 变亮 newLightness = l + (1 - l) * (lightness / 100); // 变亮
} }
newLightness = Math.min(1, Math.max(0, newLightness)); // 确保亮度值在 0 到 1 之间 newLightness = Math.min(1, Math.max(0, newLightness)); // 确保亮度值在 0 到 1 之间
return hsl(hslColor.hue, hslColor.saturation, newLightness); return hsla(h, s, newLightness, 1);
} }
+1 -1
View File
@@ -17,5 +17,5 @@
* limitations under the License. * limitations under the License.
*/ */
export { scaleColorLight } from "./scss"; export { rgba, scaleColorLight } from "./color";
export { extractVarName } from "./var"; export { extractVarName } from "./var";
File diff suppressed because it is too large. Load diff
+14 -14
View File
@@ -306,9 +306,9 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 1`] = `
}, },
"primary": { "primary": {
"bgColor": { "bgColor": {
"active": "#da61a2", "active": "hsla(328, 62%, 62%, 1)",
"disabled": "#105823", "disabled": "#105823",
"hover": "#d65299", "hover": "hsla(328, 62%, 58%, 1)",
"rest": "#d34591", "rest": "#d34591",
}, },
"borderColor": { "borderColor": {
@@ -330,7 +330,7 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 1`] = `
}, },
}, },
"star": { "star": {
"iconColor": "#ec6daf", "iconColor": "hsla(329, 77%, 68%, 1)",
}, },
}, },
"buttonCounter": { "buttonCounter": {
@@ -1792,7 +1792,7 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 1`] = `
}, },
"underlineNav": { "underlineNav": {
"borderColor": { "borderColor": {
"active": "#f56bb3", "active": "hsla(329, 87%, 69%, 1)",
"hover": "#3d444db3", "hover": "#3d444db3",
}, },
"iconColor": { "iconColor": {
@@ -2108,9 +2108,9 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 2`] = `
}, },
"primary": { "primary": {
"bgColor": { "bgColor": {
"active": "#b92878", "active": "hsla(327, 65%, 44%, 1)",
"disabled": "#95d8a6", "disabled": "#95d8a6",
"hover": "#c42a7e", "hover": "hsla(327, 65%, 47%, 1)",
"rest": "#ce2c85", "rest": "#ce2c85",
}, },
"borderColor": { "borderColor": {
@@ -2132,7 +2132,7 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 2`] = `
}, },
}, },
"star": { "star": {
"iconColor": "#b82379", "iconColor": "hsla(326, 68%, 43%, 1)",
}, },
}, },
"buttonCounter": { "buttonCounter": {
@@ -3594,7 +3594,7 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 2`] = `
}, },
"underlineNav": { "underlineNav": {
"borderColor": { "borderColor": {
"active": "#c7197c", "active": "hsla(326, 78%, 44%, 1)",
"hover": "#d1d9e0b3", "hover": "#d1d9e0b3",
}, },
"iconColor": { "iconColor": {
@@ -3640,7 +3640,7 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 3`] = `
}, },
"bgColor": { "bgColor": {
"accent": { "accent": {
"emphasis": "#c64c8d", "emphasis": "hsla(328, 52%, 54%, 1)",
"muted": "#451c35", "muted": "#451c35",
}, },
"attention": { "attention": {
@@ -3910,10 +3910,10 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 3`] = `
}, },
"primary": { "primary": {
"bgColor": { "bgColor": {
"active": "#cd609a", "active": "hsla(328, 52%, 59%, 1)",
"disabled": "#105823", "disabled": "#105823",
"hover": "#ca5794", "hover": "hsla(328, 52%, 57%, 1)",
"rest": "#c64c8d", "rest": "hsla(328, 52%, 54%, 1)",
}, },
"borderColor": { "borderColor": {
"active": "#cdd9e526", "active": "#cdd9e526",
@@ -3934,7 +3934,7 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 3`] = `
}, },
}, },
"star": { "star": {
"iconColor": "#e475af", "iconColor": "hsla(329, 67%, 68%, 1)",
}, },
}, },
"buttonCounter": { "buttonCounter": {
@@ -5396,7 +5396,7 @@ exports[`display2GitHubColor > cover 后 contribution 颜色被改写 3`] = `
}, },
"underlineNav": { "underlineNav": {
"borderColor": { "borderColor": {
"active": "#eb63a9", "active": "hsla(329, 77%, 66%, 1)",
"hover": "#3d444db3", "hover": "#3d444db3",
}, },
"iconColor": { "iconColor": {
+4 -4
View File
@@ -510,7 +510,7 @@ exports[`gitea2ThemeVars > dark 输出含 color 和 github 顶层键 1`] = `
}, },
"danger": { "danger": {
"bgColor": { "bgColor": {
"active": "rgba(219,40,40,0.4)", "active": "rgba(219, 40, 40, 0.402)",
"hover": "#db28281a", "hover": "#db28281a",
}, },
"fgColor": { "fgColor": {
@@ -566,7 +566,7 @@ exports[`gitea2ThemeVars > dark 输出含 color 和 github 顶层键 1`] = `
"button": { "button": {
"primary": { "primary": {
"fgColor": { "fgColor": {
"accent": "#498fd5", "accent": "hsla(210, 63%, 56%, 1)",
}, },
}, },
}, },
@@ -1105,7 +1105,7 @@ exports[`gitea2ThemeVars > dark 输出含 color 和 github 顶层键 2`] = `
}, },
"danger": { "danger": {
"bgColor": { "bgColor": {
"active": "rgba(219,40,40,0.4)", "active": "rgba(219, 40, 40, 0.402)",
"hover": "#db28281a", "hover": "#db28281a",
}, },
"fgColor": { "fgColor": {
@@ -1161,7 +1161,7 @@ exports[`gitea2ThemeVars > dark 输出含 color 和 github 顶层键 2`] = `
"button": { "button": {
"primary": { "primary": {
"fgColor": { "fgColor": {
"accent": "#2c76bf", "accent": "hsla(210, 63%, 46%, 1)",
}, },
}, },
}, },
+194 -194
View File
@@ -27,18 +27,18 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
}, },
"black": { "black": {
"dark": { "dark": {
"num1": "#010408", "num1": "hsla(218, 80%, 2%, 1)",
"num2": "#010307", "num2": "hsla(218, 80%, 2%, 1)",
}, },
"light": "#08224c", "light": "hsla(218, 80%, 17%, 1)",
"self": "#010409", "self": "#010409",
}, },
"blue": { "blue": {
"dark": { "dark": {
"num1": "#2c8eff", "num1": "hsla(212, 100%, 59%, 1)",
"num2": "#0b7dff", "num2": "hsla(212, 100%, 52%, 1)",
}, },
"light": "#68aeff", "light": "hsla(212, 100%, 70%, 1)",
"self": "#4da0ff", "self": "#4da0ff",
}, },
"body": "#0d1117", "body": "#0d1117",
@@ -51,10 +51,10 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
}, },
"brown": { "brown": {
"dark": { "dark": {
"num1": "#ac8d5a", "num1": "hsla(37, 33%, 51%, 1)",
"num2": "#9b7d4e", "num2": "hsla(37, 33%, 46%, 1)",
}, },
"light": "#c1a983", "light": "hsla(37, 33%, 64%, 1)",
"self": "#b69a6d", "self": "#b69a6d",
}, },
"button": "#212830", "button": "#212830",
@@ -119,7 +119,7 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
"error": { "error": {
"bg": { "bg": {
"active": "#da3633", "active": "#da3633",
"hover": "rgba(218,54,51,0.775)", "hover": "rgba(216, 52, 50, 0.775)",
"self": "#f851491a", "self": "#f851491a",
}, },
"border": "#f8514966", "border": "#f8514966",
@@ -130,21 +130,21 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
"gold": "#ba9b12", "gold": "#ba9b12",
"green": { "green": {
"badge": { "badge": {
"bg": "rgba(63,185,80,0.1)", "bg": "rgba(63, 185, 80, 0.1)",
"hover": { "hover": {
"bg": "rgba(63,185,80,0.3)", "bg": "rgba(63, 185, 80, 0.3)",
}, },
"self": "#3fb950", "self": "#3fb950",
}, },
"dark": { "dark": {
"num1": "#39a648", "num1": "hsla(128, 49%, 44%, 1)",
"num2": "#329440", "num2": "hsla(128, 49%, 39%, 1)",
}, },
"light": "#59c668", "light": "hsla(128, 49%, 56%, 1)",
"self": "#3fb950", "self": "#3fb950",
}, },
"grey": { "grey": {
"light": "#a2a7af", "light": "hsla(214, 8%, 66%, 1)",
"self": "#9198a1", "self": "#9198a1",
}, },
"highlight": { "highlight": {
@@ -192,69 +192,69 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
}, },
"olive": { "olive": {
"dark": { "dark": {
"num1": "#929522", "num1": "hsla(62, 63%, 36%, 1)",
"num2": "#82851e", "num2": "hsla(62, 63%, 32%, 1)",
}, },
"light": "#c6cb2f", "light": "hsla(62, 63%, 49%, 1)",
"self": "#a2a626", "self": "#a2a626",
}, },
"orange": { "orange": {
"badge": { "badge": {
"bg": "rgba(219,109,40,0.1)", "bg": "rgba(219, 109, 40, 0.1)",
"hover": { "hover": {
"bg": "rgba(219,109,40,0.3)", "bg": "rgba(219, 109, 40, 0.3)",
}, },
"self": "#db6d28", "self": "#db6d28",
}, },
"dark": { "dark": {
"num1": "#c86221", "num1": "hsla(23, 71%, 46%, 1)",
"num2": "#b1571e", "num2": "hsla(23, 71%, 41%, 1)",
}, },
"light": "#e08348", "light": "hsla(23, 71%, 58%, 1)",
"self": "#db6d28", "self": "#db6d28",
}, },
"overlayBackdrop": "#21283066", "overlayBackdrop": "#21283066",
"pink": { "pink": {
"dark": { "dark": {
"num1": "#d54793", "num1": "hsla(328, 63%, 56%, 1)",
"num2": "#ce2f84", "num2": "hsla(328, 63%, 50%, 1)",
}, },
"light": "#e079b0", "light": "hsla(328, 63%, 68%, 1)",
"self": "#db61a2", "self": "#db61a2",
}, },
"placeholderText": "var(--color-text-light-3)", "placeholderText": "var(--color-text-light-3)",
"primary": { "primary": {
"active": "var(--color-primary-light-2)", "active": "var(--color-primary-light-2)",
"alpha": { "alpha": {
"num10": "rgba(68,147,248,0.1)", "num10": "rgba(68, 147, 248, 0.1)",
"num20": "rgba(68,147,248,0.2)", "num20": "rgba(68, 147, 248, 0.2)",
"num30": "rgba(68,147,248,0.3)", "num30": "rgba(68, 147, 248, 0.3)",
"num40": "rgba(68,147,248,0.4)", "num40": "rgba(68, 147, 248, 0.4)",
"num50": "rgba(68,147,248,0.5)", "num50": "rgba(68, 147, 248, 0.5)",
"num60": "rgba(68,147,248,0.6)", "num60": "rgba(68, 147, 248, 0.6)",
"num70": "rgba(68,147,248,0.7)", "num70": "rgba(68, 147, 248, 0.7)",
"num80": "rgba(68,147,248,0.8)", "num80": "rgba(68, 147, 248, 0.8)",
"num90": "rgba(68,147,248,0.9)", "num90": "rgba(68, 147, 248, 0.9)",
}, },
"contrast": "#f0f6fc", "contrast": "#f0f6fc",
"dark": { "dark": {
"num1": "#5aa0f9", "num1": "hsla(214, 93%, 67%, 1)",
"num2": "#71adfa", "num2": "hsla(214, 93%, 71%, 1)",
"num3": "#87bafb", "num3": "hsla(214, 93%, 76%, 1)",
"num4": "#9ec7fb", "num4": "hsla(214, 93%, 80%, 1)",
"num5": "#b4d4fc", "num5": "hsla(214, 93%, 85%, 1)",
"num6": "#cbe1fd", "num6": "hsla(214, 93%, 89%, 1)",
"num7": "#e1eefe", "num7": "hsla(214, 93%, 94%, 1)",
}, },
"hover": "var(--color-primary-light-1)", "hover": "var(--color-primary-light-1)",
"light": { "light": {
"num1": "#1f7ef7", "num1": "hsla(214, 93%, 55%, 1)",
"num2": "#096ae7", "num2": "hsla(214, 93%, 47%, 1)",
"num3": "#075ac3", "num3": "hsla(214, 93%, 40%, 1)",
"num4": "#06499e", "num4": "hsla(214, 93%, 32%, 1)",
"num5": "#05387a", "num5": "hsla(214, 93%, 25%, 1)",
"num6": "#032755", "num6": "hsla(214, 93%, 17%, 1)",
"num7": "#021631", "num7": "hsla(214, 93%, 10%, 1)",
}, },
"self": "#4493f8", "self": "#4493f8",
}, },
@@ -266,10 +266,10 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
"projectColumnBg": "#010409", "projectColumnBg": "#010409",
"purple": { "purple": {
"dark": { "dark": {
"num1": "#945af6", "num1": "hsla(262, 90%, 66%, 1)",
"num2": "#7d36f4", "num2": "hsla(262, 90%, 59%, 1)",
}, },
"light": "#b890f9", "light": "hsla(262, 90%, 77%, 1)",
"self": "#ab7df8", "self": "#ab7df8",
}, },
"reaction": { "reaction": {
@@ -279,54 +279,54 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
}, },
"red": { "red": {
"badge": { "badge": {
"bg": "rgba(248,81,73,0.1)", "bg": "rgba(248, 81, 73, 0.1)",
"hover": { "hover": {
"bg": "rgba(248,81,73,0.3)", "bg": "rgba(248, 81, 73, 0.3)",
}, },
"self": "#f85149", "self": "#f85149",
}, },
"dark": { "dark": {
"num1": "#f7332a", "num1": "hsla(3, 93%, 57%, 1)",
"num2": "#f6160b", "num2": "hsla(3, 93%, 50%, 1)",
}, },
"light": "#f96b64", "light": "hsla(3, 93%, 69%, 1)",
"self": "#f85149", "self": "#f85149",
}, },
"secondary": { "secondary": {
"active": "var(--color-secondary-dark-2)", "active": "var(--color-secondary-dark-2)",
"alpha": { "alpha": {
"num10": "rgba(61,68,77,0.1)", "num10": "rgba(61, 68, 77, 0.1)",
"num20": "rgba(61,68,77,0.2)", "num20": "rgba(61, 68, 77, 0.2)",
"num30": "rgba(61,68,77,0.3)", "num30": "rgba(61, 68, 77, 0.3)",
"num40": "rgba(61,68,77,0.4)", "num40": "rgba(61, 68, 77, 0.4)",
"num50": "rgba(61,68,77,0.5)", "num50": "rgba(61, 68, 77, 0.5)",
"num60": "rgba(61,68,77,0.6)", "num60": "rgba(61, 68, 77, 0.6)",
"num70": "rgba(61,68,77,0.7)", "num70": "rgba(61, 68, 77, 0.7)",
"num80": "rgba(61,68,77,0.8)", "num80": "rgba(61, 68, 77, 0.8)",
"num90": "rgba(61,68,77,0.9)", "num90": "rgba(61, 68, 77, 0.9)",
}, },
"button": "var(--color-secondary-dark-4)", "button": "var(--color-secondary-dark-4)",
"dark": { "dark": {
"num1": "#474f59", "num1": "hsla(214, 12%, 31%, 1)",
"num10": "#acb4bd", "num10": "hsla(214, 12%, 71%, 1)",
"num11": "#b8bfc7", "num11": "hsla(214, 12%, 75%, 1)",
"num12": "#c5cad1", "num12": "hsla(214, 12%, 80%, 1)",
"num13": "#d5d9de", "num13": "hsla(214, 12%, 85%, 1)",
"num2": "#515a66", "num2": "hsla(214, 12%, 36%, 1)",
"num3": "#5b6572", "num3": "hsla(214, 12%, 40%, 1)",
"num4": "#64707f", "num4": "hsla(214, 12%, 45%, 1)",
"num5": "#6e7b8b", "num5": "hsla(214, 12%, 49%, 1)",
"num6": "#7a8696", "num6": "hsla(214, 12%, 53%, 1)",
"num7": "#8792a0", "num7": "hsla(214, 12%, 58%, 1)",
"num8": "#939da9", "num8": "hsla(214, 12%, 62%, 1)",
"num9": "#a0a8b3", "num9": "hsla(214, 12%, 66%, 1)",
}, },
"hover": "var(--color-secondary-dark-3)", "hover": "var(--color-secondary-dark-3)",
"light": { "light": {
"num1": "#32383f", "num1": "hsla(214, 12%, 22%, 1)",
"num2": "#272c31", "num2": "hsla(214, 12%, 17%, 1)",
"num3": "#1c1f23", "num3": "hsla(214, 12%, 12%, 1)",
"num4": "#111316", "num4": "hsla(214, 12%, 8%, 1)",
}, },
"self": "#3d444d", "self": "#3d444d",
}, },
@@ -344,10 +344,10 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
}, },
"teal": { "teal": {
"dark": { "dark": {
"num1": "#199e9a", "num1": "hsla(178, 73%, 36%, 1)",
"num2": "#168d89", "num2": "hsla(178, 73%, 32%, 1)",
}, },
"light": "#22d8d1", "light": "hsla(178, 73%, 49%, 1)",
"self": "#1cb0ab", "self": "#1cb0ab",
}, },
"text": { "text": {
@@ -373,10 +373,10 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
}, },
"violet": { "violet": {
"dark": { "dark": {
"num1": "#7779e6", "num1": "hsla(239, 69%, 68%, 1)",
"num2": "#5658e0", "num2": "hsla(239, 69%, 61%, 1)",
}, },
"light": "#a7a8ef", "light": "hsla(239, 69%, 80%, 1)",
"self": "#9899ec", "self": "#9899ec",
}, },
"warning": { "warning": {
@@ -388,17 +388,17 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
"workflowEdgeHover": "#1f6feb", "workflowEdgeHover": "#1f6feb",
"yellow": { "yellow": {
"badge": { "badge": {
"bg": "rgba(210,153,34,0.1)", "bg": "rgba(210, 153, 34, 0.1)",
"hover": { "hover": {
"bg": "rgba(210,153,34,0.3)", "bg": "rgba(210, 153, 34, 0.3)",
}, },
"self": "#d29922", "self": "#d29922",
}, },
"dark": { "dark": {
"num1": "#bd8a1f", "num1": "hsla(41, 72%, 43%, 1)",
"num2": "#a87a1b", "num2": "hsla(41, 72%, 38%, 1)",
}, },
"light": "#dfab3c", "light": "hsla(41, 72%, 56%, 1)",
"self": "#d29922", "self": "#d29922",
}, },
}, },
@@ -566,14 +566,14 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 1`] = `
"button": { "button": {
"primary": { "primary": {
"fgColor": { "fgColor": {
"accent": "#43cf56", "accent": "hsla(128, 59%, 54%, 1)",
}, },
}, },
}, },
"contribution": { "contribution": {
"default": { "default": {
"bgColor": { "bgColor": {
"num5": "#aff6b7", "num5": "hsla(127, 79%, 82%, 1)",
}, },
"borderColor": { "borderColor": {
"num5": "#0104090d", "num5": "#0104090d",
@@ -622,18 +622,18 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
}, },
"black": { "black": {
"dark": { "dark": {
"num1": "#1c2024", "num1": "hsla(213, 13%, 13%, 1)",
"num2": "#191c20", "num2": "hsla(213, 13%, 11%, 1)",
}, },
"light": "#4f5966", "light": "hsla(213, 13%, 35%, 1)",
"self": "#1f2328", "self": "#1f2328",
}, },
"blue": { "blue": {
"dark": { "dark": {
"num1": "#0056b8", "num1": "hsla(212, 100%, 36%, 1)",
"num2": "#004ca3", "num2": "hsla(212, 100%, 32%, 1)",
}, },
"light": "#1a84ff", "light": "hsla(212, 100%, 55%, 1)",
"self": "#005fcc", "self": "#005fcc",
}, },
"body": "#ffffff", "body": "#ffffff",
@@ -646,10 +646,10 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
}, },
"brown": { "brown": {
"dark": { "dark": {
"num1": "#69563c", "num1": "hsla(34, 27%, 32%, 1)",
"num2": "#5e4c36", "num2": "hsla(34, 27%, 29%, 1)",
}, },
"light": "#a68964", "light": "hsla(34, 27%, 52%, 1)",
"self": "#755f43", "self": "#755f43",
}, },
"button": "#f6f8fa", "button": "#f6f8fa",
@@ -714,7 +714,7 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
"error": { "error": {
"bg": { "bg": {
"active": "#cf222e", "active": "#cf222e",
"hover": "#db545c", "hover": "rgba(219, 84, 93, 1)",
"self": "#ffebe9", "self": "#ffebe9",
}, },
"border": "#ff818266", "border": "#ff818266",
@@ -725,21 +725,21 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
"gold": "#786002", "gold": "#786002",
"green": { "green": {
"badge": { "badge": {
"bg": "rgba(26,127,55,0.1)", "bg": "rgba(26, 127, 55, 0.1)",
"hover": { "hover": {
"bg": "rgba(26,127,55,0.3)", "bg": "rgba(26, 127, 55, 0.3)",
}, },
"self": "#1a7f37", "self": "#1a7f37",
}, },
"dark": { "dark": {
"num1": "#177231", "num1": "hsla(137, 66%, 27%, 1)",
"num2": "#15662c", "num2": "hsla(137, 66%, 24%, 1)",
}, },
"light": "#29c957", "light": "hsla(137, 66%, 48%, 1)",
"self": "#1a7f37", "self": "#1a7f37",
}, },
"grey": { "grey": {
"light": "#7e8a97", "light": "hsla(211, 11%, 54%, 1)",
"self": "#59636e", "self": "#59636e",
}, },
"highlight": { "highlight": {
@@ -787,69 +787,69 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
}, },
"olive": { "olive": {
"dark": { "dark": {
"num1": "#4d5e28", "num1": "hsla(78, 41%, 26%, 1)",
"num2": "#455323", "num2": "hsla(78, 41%, 23%, 1)",
}, },
"light": "#8ba847", "light": "hsla(78, 41%, 47%, 1)",
"self": "#56682c", "self": "#56682c",
}, },
"orange": { "orange": {
"badge": { "badge": {
"bg": "rgba(188,76,0,0.1)", "bg": "rgba(188, 76, 0, 0.1)",
"hover": { "hover": {
"bg": "rgba(188,76,0,0.3)", "bg": "rgba(188, 76, 0, 0.3)",
}, },
"self": "#bc4c00", "self": "#bc4c00",
}, },
"dark": { "dark": {
"num1": "#a94400", "num1": "hsla(24, 100%, 33%, 1)",
"num2": "#963d00", "num2": "hsla(24, 100%, 29%, 1)",
}, },
"light": "#ff6f0e", "light": "hsla(24, 100%, 53%, 1)",
"self": "#bc4c00", "self": "#bc4c00",
}, },
"overlayBackdrop": "#c8d1da66", "overlayBackdrop": "#c8d1da66",
"pink": { "pink": {
"dark": { "dark": {
"num1": "#ac337b", "num1": "hsla(324, 54%, 44%, 1)",
"num2": "#992e6e", "num2": "hsla(324, 54%, 39%, 1)",
}, },
"light": "#d268a7", "light": "hsla(324, 54%, 61%, 1)",
"self": "#bf3989", "self": "#bf3989",
}, },
"placeholderText": "var(--color-text-light-3)", "placeholderText": "var(--color-text-light-3)",
"primary": { "primary": {
"active": "var(--color-primary-dark-2)", "active": "var(--color-primary-dark-2)",
"alpha": { "alpha": {
"num10": "rgba(9,105,218,0.1)", "num10": "rgba(9, 105, 218, 0.1)",
"num20": "rgba(9,105,218,0.2)", "num20": "rgba(9, 105, 218, 0.2)",
"num30": "rgba(9,105,218,0.3)", "num30": "rgba(9, 105, 218, 0.3)",
"num40": "rgba(9,105,218,0.4)", "num40": "rgba(9, 105, 218, 0.4)",
"num50": "rgba(9,105,218,0.5)", "num50": "rgba(9, 105, 218, 0.5)",
"num60": "rgba(9,105,218,0.6)", "num60": "rgba(9, 105, 218, 0.6)",
"num70": "rgba(9,105,218,0.7)", "num70": "rgba(9, 105, 218, 0.7)",
"num80": "rgba(9,105,218,0.8)", "num80": "rgba(9, 105, 218, 0.8)",
"num90": "rgba(9,105,218,0.9)", "num90": "rgba(9, 105, 218, 0.9)",
}, },
"contrast": "#1f2328", "contrast": "#1f2328",
"dark": { "dark": {
"num1": "#085cc0", "num1": "hsla(212, 92%, 39%, 1)",
"num2": "#0750a6", "num2": "hsla(212, 92%, 34%, 1)",
"num3": "#06438c", "num3": "hsla(212, 92%, 28%, 1)",
"num4": "#053771", "num4": "hsla(212, 92%, 23%, 1)",
"num5": "#042a57", "num5": "hsla(212, 92%, 18%, 1)",
"num6": "#031d3d", "num6": "hsla(212, 92%, 12%, 1)",
"num7": "#011123", "num7": "hsla(212, 92%, 7%, 1)",
}, },
"hover": "var(--color-primary-dark-1)", "hover": "var(--color-primary-dark-1)",
"light": { "light": {
"num1": "#1079f5", "num1": "hsla(212, 92%, 51%, 1)",
"num2": "#308bf6", "num2": "hsla(212, 92%, 58%, 1)",
"num3": "#519ef8", "num3": "hsla(212, 92%, 64%, 1)",
"num4": "#72b0f9", "num4": "hsla(212, 92%, 71%, 1)",
"num5": "#92c2fb", "num5": "hsla(212, 92%, 78%, 1)",
"num6": "#b3d4fc", "num6": "hsla(212, 92%, 84%, 1)",
"num7": "#d4e7fd", "num7": "hsla(212, 92%, 91%, 1)",
}, },
"self": "#0969da", "self": "#0969da",
}, },
@@ -861,10 +861,10 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
"projectColumnBg": "#f6f8fa", "projectColumnBg": "#f6f8fa",
"purple": { "purple": {
"dark": { "dark": {
"num1": "#7036da", "num1": "hsla(261, 69%, 53%, 1)",
"num2": "#6025cd", "num2": "hsla(261, 69%, 48%, 1)",
}, },
"light": "#a17ce7", "light": "hsla(261, 69%, 70%, 1)",
"self": "#8250df", "self": "#8250df",
}, },
"reaction": { "reaction": {
@@ -874,54 +874,54 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
}, },
"red": { "red": {
"badge": { "badge": {
"bg": "rgba(209,36,47,0.1)", "bg": "rgba(209, 36, 47, 0.1)",
"hover": { "hover": {
"bg": "rgba(209,36,47,0.3)", "bg": "rgba(209, 36, 47, 0.3)",
}, },
"self": "#d1242f", "self": "#d1242f",
}, },
"dark": { "dark": {
"num1": "#bc202a", "num1": "hsla(356, 71%, 43%, 1)",
"num2": "#a71d26", "num2": "hsla(356, 71%, 38%, 1)",
}, },
"light": "#e2555e", "light": "hsla(356, 71%, 61%, 1)",
"self": "#d1242f", "self": "#d1242f",
}, },
"secondary": { "secondary": {
"active": "var(--color-secondary-dark-6)", "active": "var(--color-secondary-dark-6)",
"alpha": { "alpha": {
"num10": "rgba(209,217,224,0.1)", "num10": "rgba(209, 217, 224, 0.1)",
"num20": "rgba(209,217,224,0.2)", "num20": "rgba(209, 217, 224, 0.2)",
"num30": "rgba(209,217,224,0.3)", "num30": "rgba(209, 217, 224, 0.3)",
"num40": "rgba(209,217,224,0.4)", "num40": "rgba(209, 217, 224, 0.4)",
"num50": "rgba(209,217,224,0.5)", "num50": "rgba(209, 217, 224, 0.5)",
"num60": "rgba(209,217,224,0.6)", "num60": "rgba(209, 217, 224, 0.6)",
"num70": "rgba(209,217,224,0.7)", "num70": "rgba(209, 217, 224, 0.7)",
"num80": "rgba(209,217,224,0.8)", "num80": "rgba(209, 217, 224, 0.8)",
"num90": "rgba(209,217,224,0.9)", "num90": "rgba(209, 217, 224, 0.9)",
}, },
"button": "var(--color-secondary-dark-4)", "button": "var(--color-secondary-dark-4)",
"dark": { "dark": {
"num1": "#c1ccd6", "num1": "hsla(208, 19%, 80%, 1)",
"num10": "#465867", "num10": "hsla(208, 19%, 34%, 1)",
"num11": "#3b4b58", "num11": "hsla(208, 19%, 29%, 1)",
"num12": "#313d48", "num12": "hsla(208, 19%, 24%, 1)",
"num13": "#232c34", "num13": "hsla(208, 19%, 17%, 1)",
"num2": "#b2bfcb", "num2": "hsla(208, 19%, 75%, 1)",
"num3": "#a2b3c1", "num3": "hsla(208, 19%, 70%, 1)",
"num4": "#93a6b6", "num4": "hsla(208, 19%, 65%, 1)",
"num5": "#8399ac", "num5": "hsla(208, 19%, 59%, 1)",
"num6": "#748ca1", "num6": "hsla(208, 19%, 54%, 1)",
"num7": "#657f96", "num7": "hsla(208, 19%, 49%, 1)",
"num8": "#5b7287", "num8": "hsla(208, 19%, 44%, 1)",
"num9": "#506577", "num9": "hsla(208, 19%, 39%, 1)",
}, },
"hover": "var(--color-secondary-dark-5)", "hover": "var(--color-secondary-dark-5)",
"light": { "light": {
"num1": "#d9e0e6", "num1": "hsla(208, 19%, 88%, 1)",
"num2": "#e2e7eb", "num2": "hsla(208, 19%, 90%, 1)",
"num3": "#eaeef1", "num3": "hsla(208, 19%, 93%, 1)",
"num4": "#f2f4f6", "num4": "hsla(208, 19%, 96%, 1)",
}, },
"self": "#d1d9e0", "self": "#d1d9e0",
}, },
@@ -939,10 +939,10 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
}, },
"teal": { "teal": {
"dark": { "dark": {
"num1": "#0e6369", "num1": "hsla(184, 76%, 23%, 1)",
"num2": "#0d585e", "num2": "hsla(184, 76%, 21%, 1)",
}, },
"light": "#1bbcc8", "light": "hsla(184, 76%, 45%, 1)",
"self": "#106e75", "self": "#106e75",
}, },
"text": { "text": {
@@ -968,10 +968,10 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
}, },
"violet": { "violet": {
"dark": { "dark": {
"num1": "#3036db", "num1": "hsla(238, 70%, 52%, 1)",
"num2": "#2329c9", "num2": "hsla(238, 70%, 46%, 1)",
}, },
"light": "#777ae7", "light": "hsla(238, 70%, 69%, 1)",
"self": "#494edf", "self": "#494edf",
}, },
"warning": { "warning": {
@@ -983,17 +983,17 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
"workflowEdgeHover": "#0969da", "workflowEdgeHover": "#0969da",
"yellow": { "yellow": {
"badge": { "badge": {
"bg": "rgba(154,103,0,0.1)", "bg": "rgba(154, 103, 0, 0.1)",
"hover": { "hover": {
"bg": "rgba(154,103,0,0.3)", "bg": "rgba(154, 103, 0, 0.3)",
}, },
"self": "#9a6700", "self": "#9a6700",
}, },
"dark": { "dark": {
"num1": "#8b5d00", "num1": "hsla(40, 100%, 27%, 1)",
"num2": "#7b5200", "num2": "hsla(40, 100%, 24%, 1)",
}, },
"light": "#f3a300", "light": "hsla(40, 100%, 48%, 1)",
"self": "#9a6700", "self": "#9a6700",
}, },
}, },
@@ -1161,14 +1161,14 @@ exports[`github2ThemeColor > dark isDarkTheme 为 true 2`] = `
"button": { "button": {
"primary": { "primary": {
"fgColor": { "fgColor": {
"accent": "#10792e", "accent": "hsla(137, 76%, 27%, 1)",
}, },
}, },
}, },
"contribution": { "contribution": {
"default": { "default": {
"bgColor": { "bgColor": {
"num5": "#022f0f", "num5": "hsla(138, 93%, 10%, 1)",
}, },
"borderColor": { "borderColor": {
"num5": "#1f23280d", "num5": "#1f23280d",
+8 -8
View File
@@ -18,8 +18,8 @@
*/ */
import type { CatppuccinFlavor } from "@catppuccin/palette"; import type { CatppuccinFlavor } from "@catppuccin/palette";
import { darken, lighten, mix, rgba, saturate } from "polished"; import { darken, lighten, mix, saturate } from "color2k";
import { scaleColorLight } from "../functions"; import { rgba, scaleColorLight } from "../functions";
import type { Ansi, Console, Diff, GitHub, Other } from "../types"; import type { Ansi, Console, Diff, GitHub, Other } from "../types";
import { themeVars } from "../types"; import { themeVars } from "../types";
import type { ThemeColor } from "./theme"; import type { ThemeColor } from "./theme";
@@ -30,7 +30,7 @@ import type { ThemeColor } from "./theme";
export function catppuccin2ThemeColor(flavor: CatppuccinFlavor): ThemeColor { export function catppuccin2ThemeColor(flavor: CatppuccinFlavor): ThemeColor {
const accentColor = flavor.colors.mauve.hex; const accentColor = flavor.colors.mauve.hex;
// 颜色偏向 base, 避免 latte 下与背景色相同 // 颜色偏向 base, 避免 latte 下与背景色相同
const buttonColor = mix(0.6, flavor.colors.base.hex, flavor.colors.surface0.hex); const buttonColor = mix(flavor.colors.base.hex, flavor.colors.surface0.hex, 0.4);
const ansi: Ansi = { const ansi: Ansi = {
black: flavor.ansiColors.black.normal.hex, black: flavor.ansiColors.black.normal.hex,
@@ -89,7 +89,7 @@ export function catppuccin2ThemeColor(flavor: CatppuccinFlavor): ThemeColor {
logo: themeVars.color.primary.self, logo: themeVars.color.primary.self,
body: flavor.colors.base.hex, body: flavor.colors.base.hex,
box: { box: {
header: mix(0.65, flavor.colors.base.hex, flavor.colors.surface0.hex), header: mix(flavor.colors.base.hex, flavor.colors.surface0.hex, 0.35),
body: { self: themeVars.color.body, highlight: rgba(accentColor, 0.2) }, body: { self: themeVars.color.body, highlight: rgba(accentColor, 0.2) },
}, },
text: { text: {
@@ -188,8 +188,8 @@ export function catppuccin2ThemeColor(flavor: CatppuccinFlavor): ThemeColor {
fgColor: { rest: flavor.colors.base.hex }, fgColor: { rest: flavor.colors.base.hex },
bgColor: { bgColor: {
rest: flavor.colors.green.hex, rest: flavor.colors.green.hex,
hover: lighten(0.05, flavor.colors.green.hex), hover: lighten(flavor.colors.green.hex, 0.05),
active: saturate(0.05, flavor.colors.green.hex), active: saturate(flavor.colors.green.hex, 0.05),
}, },
borderColor: { rest: flavor.colors.green.hex, hover: flavor.colors.green.hex }, borderColor: { rest: flavor.colors.green.hex, hover: flavor.colors.green.hex },
}, },
@@ -198,7 +198,7 @@ export function catppuccin2ThemeColor(flavor: CatppuccinFlavor): ThemeColor {
bgColor: { bgColor: {
rest: buttonColor, rest: buttonColor,
hover: flavor.colors.red.hex, hover: flavor.colors.red.hex,
active: darken(0.05, flavor.colors.red.hex), active: darken(flavor.colors.red.hex, 0.05),
}, },
borderColor: { hover: flavor.colors.red.hex }, borderColor: { hover: flavor.colors.red.hex },
}, },
@@ -262,7 +262,7 @@ export function catppuccin2ThemeColor(flavor: CatppuccinFlavor): ThemeColor {
button: { primary: { fgColor: { accent: flavor.colors.green.hex } } }, button: { primary: { fgColor: { accent: flavor.colors.green.hex } } },
contribution: { contribution: {
default: { default: {
bgColor: { num5: saturate(0.1, scaleColorLight(accentColor, flavor.dark ? 25 : -25)) }, bgColor: { num5: saturate(scaleColorLight(accentColor, flavor.dark ? 25 : -25), 0.1) },
borderColor: { num5: themeVars.github.contribution.default.borderColor.num0 }, borderColor: { num5: themeVars.github.contribution.default.borderColor.num0 },
}, },
}, },
+1 -1
View File
@@ -18,7 +18,7 @@
*/ */
import type { CatppuccinFlavor } from "@catppuccin/palette"; import type { CatppuccinFlavor } from "@catppuccin/palette";
import { rgba } from "polished"; import { rgba } from "../functions";
import type { Syntax } from "../types"; import type { Syntax } from "../types";
/** /**
+7 -7
View File
@@ -18,7 +18,7 @@
*/ */
import type { Primer } from "@lutinglt/gitea-github-theme/primer"; import type { Primer } from "@lutinglt/gitea-github-theme/primer";
import { saturate } from "polished"; import { saturate } from "color2k";
import { scaleColorLight } from "../functions"; import { scaleColorLight } from "../functions";
import { deepOverride } from "../utils"; import { deepOverride } from "../utils";
import type { GitHubColor } from "./github"; import type { GitHubColor } from "./github";
@@ -35,7 +35,7 @@ export function display2GitHubColor(
fgColor: { accent: soft ? displayColor[7] : displayColor[6] }, fgColor: { accent: soft ? displayColor[7] : displayColor[6] },
bgColor: { bgColor: {
accent: { accent: {
emphasis: soft ? saturate(-0.1, scaleColorLight(displayColor[5], -2)) : displayColor[5], emphasis: soft ? saturate(scaleColorLight(displayColor[5], -2), -0.1) : displayColor[5],
muted: soft ? displayColor[1] : displayColor[0], muted: soft ? displayColor[1] : displayColor[0],
}, },
}, },
@@ -46,26 +46,26 @@ export function display2GitHubColor(
rest: baseGitHubColor.button.primary.fgColor.rest, rest: baseGitHubColor.button.primary.fgColor.rest,
}, },
bgColor: { bgColor: {
rest: soft ? saturate(-0.1, scaleColorLight(displayColor[5], -2)) : displayColor[5], rest: soft ? saturate(scaleColorLight(displayColor[5], -2), -0.1) : displayColor[5],
hover: soft hover: soft
? saturate(-0.1, scaleColorLight(displayColor[5], 4)) ? saturate(scaleColorLight(displayColor[5], 4), -0.1)
: baseGitHubColor.isDarkTheme : baseGitHubColor.isDarkTheme
? scaleColorLight(displayColor[5], 7) ? scaleColorLight(displayColor[5], 7)
: scaleColorLight(displayColor[5], -5), : scaleColorLight(displayColor[5], -5),
active: soft active: soft
? saturate(-0.1, scaleColorLight(displayColor[5], 9)) ? saturate(scaleColorLight(displayColor[5], 9), -0.1)
: baseGitHubColor.isDarkTheme : baseGitHubColor.isDarkTheme
? scaleColorLight(displayColor[5], 15) ? scaleColorLight(displayColor[5], 15)
: scaleColorLight(displayColor[5], -10), : scaleColorLight(displayColor[5], -10),
}, },
}, },
star: { star: {
iconColor: soft ? scaleColorLight(displayColor[6], -2) : saturate(0.1, scaleColorLight(displayColor[6], -2)), iconColor: soft ? scaleColorLight(displayColor[6], -2) : saturate(scaleColorLight(displayColor[6], -2), 0.1),
}, },
}, },
underlineNav: { underlineNav: {
borderColor: { borderColor: {
active: soft ? scaleColorLight(saturate(0.1, displayColor[6]), -5) : saturate(0.2, displayColor[6]), active: soft ? scaleColorLight(saturate(displayColor[6], 0.1), -5) : saturate(displayColor[6], 0.2),
}, },
}, },
contribution: { contribution: {
+3 -3
View File
@@ -17,7 +17,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { opacify, saturate } from "polished"; import { opacify, saturate } from "color2k";
import type { ThemeVars } from "../core"; import type { ThemeVars } from "../core";
import { scaleColorLight } from "../functions"; import { scaleColorLight } from "../functions";
import type { Ansi, Console, Diff, GitHub, Message, Named, Other, Primary, Secondary } from "../types"; import type { Ansi, Console, Diff, GitHub, Message, Named, Other, Primary, Secondary } from "../types";
@@ -107,7 +107,7 @@ export function gitea2ThemeVars(giteaColor: GiteaColor): ThemeVars {
fgColor: { hover: giteaColor.named.red.light }, fgColor: { hover: giteaColor.named.red.light },
bgColor: { bgColor: {
hover: giteaColor.named.red.badge.bg, hover: giteaColor.named.red.badge.bg,
active: opacify(0.3, giteaColor.named.red.badge.bg), active: opacify(giteaColor.named.red.badge.bg, 0.3),
}, },
}, },
}, },
@@ -152,7 +152,7 @@ export function gitea2ThemeVars(giteaColor: GiteaColor): ThemeVars {
button: { button: {
primary: { primary: {
fgColor: { fgColor: {
accent: saturate(0.1, scaleColorLight(giteaColor.primary.self, giteaColor.isDarkTheme ? 10 : -10)), accent: saturate(scaleColorLight(giteaColor.primary.self, giteaColor.isDarkTheme ? 10 : -10), 0.1),
}, },
}, },
}, },
+6 -6
View File
@@ -18,7 +18,7 @@
*/ */
import type { Primer } from "@lutinglt/gitea-github-theme/primer"; import type { Primer } from "@lutinglt/gitea-github-theme/primer";
import { mix, saturate } from "polished"; import { mix, saturate } from "color2k";
import { scaleColorLight } from "../functions"; import { scaleColorLight } from "../functions";
import type { Ansi, Console, Diff, GitHub, Message, Other } from "../types"; import type { Ansi, Console, Diff, GitHub, Message, Other } from "../types";
import { themeVars } from "../types"; import { themeVars } from "../types";
@@ -55,7 +55,7 @@ export function github2ThemeColor(githubColor: GitHubColor): ThemeColor {
bg: { bg: {
self: githubColor.bgColor.danger.muted, self: githubColor.bgColor.danger.muted,
active: githubColor.bgColor.danger.emphasis, active: githubColor.bgColor.danger.emphasis,
hover: mix(0.25, githubColor.bgColor.danger.muted, githubColor.bgColor.danger.emphasis), hover: mix(githubColor.bgColor.danger.muted, githubColor.bgColor.danger.emphasis, 0.75),
}, },
border: githubColor.borderColor.danger.muted, border: githubColor.borderColor.danger.muted,
text: githubColor.fgColor.danger, // Gitea 用处更多, 不与 GitHub 保持一致 text: githubColor.fgColor.danger, // Gitea 用处更多, 不与 GitHub 保持一致
@@ -291,8 +291,8 @@ export function github2ThemeColor(githubColor: GitHubColor): ThemeColor {
primary: { primary: {
fgColor: { fgColor: {
accent: saturate( accent: saturate(
0.1, scaleColorLight(githubColor.themeExtra.button.primary.fgColor.accent, githubColor.isDarkTheme ? 10 : -10),
scaleColorLight(githubColor.themeExtra.button.primary.fgColor.accent, githubColor.isDarkTheme ? 10 : -10) 0.1
), ),
}, },
}, },
@@ -301,8 +301,8 @@ export function github2ThemeColor(githubColor: GitHubColor): ThemeColor {
default: { default: {
bgColor: { bgColor: {
num5: saturate( num5: saturate(
0.2, scaleColorLight(githubColor.contribution.default.bgColor[4], githubColor.isDarkTheme ? 58 : -58),
scaleColorLight(githubColor.contribution.default.bgColor[4], githubColor.isDarkTheme ? 58 : -58) 0.2
), ),
}, },
borderColor: { num5: githubColor.contribution.default.borderColor[4] }, borderColor: { num5: githubColor.contribution.default.borderColor[4] },
+7 -7
View File
@@ -17,9 +17,9 @@
* limitations under the License. * limitations under the License.
*/ */
import { rgba, saturate } from "polished"; import { saturate } from "color2k";
import type { ThemeVars } from "../core"; import type { ThemeVars } from "../core";
import { scaleColorLight } from "../functions"; import { rgba, scaleColorLight } from "../functions";
import type { Ansi, Console, Diff, GitHub, Message, Named, Other, Primary, Secondary } from "../types"; import type { Ansi, Console, Diff, GitHub, Message, Named, Other, Primary, Secondary } from "../types";
import { themeVars } from "../types"; import { themeVars } from "../types";
@@ -328,27 +328,27 @@ export function theme2ThemeVars(themeColor: ThemeColor): ThemeVars {
hover: rgba(themeColor.base.red, 0.3), hover: rgba(themeColor.base.red, 0.3),
}, },
border: rgba(themeColor.base.red, 0.4), border: rgba(themeColor.base.red, 0.4),
text: saturate(0.2, themeColor.base.red), // 饱和度提高 text: saturate(themeColor.base.red, 0.2), // 饱和度提高
}, },
success: { success: {
bg: rgba(themeColor.base.green, 0.1), bg: rgba(themeColor.base.green, 0.1),
border: rgba(themeColor.base.green, 0.4), border: rgba(themeColor.base.green, 0.4),
text: saturate(0.2, themeColor.base.green), text: saturate(themeColor.base.green, 0.2),
}, },
warning: { warning: {
bg: rgba(themeColor.base.yellow, 0.1), bg: rgba(themeColor.base.yellow, 0.1),
border: rgba(themeColor.base.yellow, 0.4), border: rgba(themeColor.base.yellow, 0.4),
text: saturate(0.2, themeColor.base.yellow), text: saturate(themeColor.base.yellow, 0.2),
}, },
info: { info: {
bg: rgba(themeColor.base.blue, 0.1), bg: rgba(themeColor.base.blue, 0.1),
border: rgba(themeColor.base.blue, 0.4), border: rgba(themeColor.base.blue, 0.4),
text: saturate(0.2, themeColor.base.blue), text: saturate(themeColor.base.blue, 0.2),
}, },
priority: { priority: {
bg: rgba(themeColor.base.purple, 0.1), bg: rgba(themeColor.base.purple, 0.1),
border: rgba(themeColor.base.purple, 0.4), border: rgba(themeColor.base.purple, 0.4),
text: saturate(0.2, themeColor.base.purple), text: saturate(themeColor.base.purple, 0.2),
}, },
}; };