You've already forked gitea-banana-theme
初始化提交
This commit is contained in:
2
src/functions/index.ts
Normal file
2
src/functions/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export { scaleColorLight } from "./scss";
|
||||
export { fallbackVar } from "./var";
|
||||
27
src/functions/scss.ts
Normal file
27
src/functions/scss.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { hsl, parseToHsl } from "polished";
|
||||
|
||||
/**
|
||||
* 改变颜色的亮度, 等同于 sass 中的 `color.scale` 函数
|
||||
* @param color 颜色值
|
||||
* @param lightnessScale 亮度变化比例,负数表示变暗,正数表示变亮
|
||||
* @returns 新的颜色值
|
||||
* @example
|
||||
* const newColor = scaleColorLight("#ff0000", 20); // 变亮
|
||||
* const newColor = scaleColorLight("#ff0000", -20); // 变暗
|
||||
* 等同于 sass `@use "sass:color"`;
|
||||
* color: color.scale(#ff0000, $lightness: 20%)
|
||||
* color: color.scale(#ff0000, $lightness: -20%)
|
||||
*/
|
||||
export function scaleColorLight(color: string, lightness: number) {
|
||||
const hslColor = parseToHsl(color);
|
||||
let newLightness;
|
||||
|
||||
if (lightness < 0) {
|
||||
newLightness = hslColor.lightness * (1 + lightness / 100); // 变暗
|
||||
} else {
|
||||
newLightness = hslColor.lightness + (1 - hslColor.lightness) * (lightness / 100); // 变亮
|
||||
}
|
||||
|
||||
newLightness = Math.min(1, Math.max(0, newLightness)); // 确保亮度值在 0 到 1 之间
|
||||
return hsl(hslColor.hue, hslColor.saturation, newLightness);
|
||||
}
|
||||
13
src/functions/var.ts
Normal file
13
src/functions/var.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import type { CSSVarFunction } from "src/core/types";
|
||||
|
||||
type CSSFallbackVar = `var(--${string}, ${string})`;
|
||||
/**
|
||||
* 设置 CSS 变量的回退值
|
||||
* @param cssvar `var(--${string})`
|
||||
* @param fallback
|
||||
* @returns `var(--${string}, fallback)`
|
||||
*/
|
||||
export function fallbackVar(cssvar: CSSVarFunction, fallback: string): CSSFallbackVar {
|
||||
const var_name = cssvar.replace("var(--", "").replace(")", "");
|
||||
return `var(--${var_name}, ${fallback})`;
|
||||
}
|
||||
Reference in New Issue
Block a user