76 lines
2.4 KiB
JavaScript
76 lines
2.4 KiB
JavaScript
const { RGB_Linear_Shade, RGB_Alpha_Shade } = require('./colorUtils')
|
|
|
|
exports.createThemeColors = (rgbaColor, fontRgbaColor, isDark) => {
|
|
const colors = {
|
|
'--color-primary': rgbaColor,
|
|
}
|
|
|
|
let preColor = rgbaColor
|
|
for (let i = 1; i < 11; i += 1) {
|
|
preColor = RGB_Linear_Shade(isDark ? 0.2 : -0.1, preColor)
|
|
colors[`--color-primary-dark-${i * 100}`] = preColor
|
|
for (let j = 1; j < 10; j += 1) {
|
|
colors[`--color-primary-dark-${i * 100}-alpha-${j * 100}`] = RGB_Alpha_Shade(0.1 * j, preColor)
|
|
colors[`--color-primary-alpha-${j * 100}`] = RGB_Alpha_Shade(0.1 * j, rgbaColor)
|
|
}
|
|
}
|
|
preColor = rgbaColor
|
|
for (let i = 1; i < 10; i += 1) {
|
|
preColor = RGB_Linear_Shade(isDark ? -0.1 : 0.2, preColor)
|
|
colors[`--color-primary-light-${i * 100}`] = preColor
|
|
for (let j = 1; j < 10; j += 1) {
|
|
colors[`--color-primary-light-${i * 100}-alpha-${j * 100}`] = RGB_Alpha_Shade(0.1 * j, preColor)
|
|
}
|
|
}
|
|
preColor = RGB_Linear_Shade(isDark ? -0.35 : 1, preColor)
|
|
colors[`--color-primary-light-${1000}`] = preColor
|
|
for (let j = 1; j < 10; j += 1) {
|
|
colors[`--color-primary-light-${1000}-alpha-${j * 100}`] = RGB_Alpha_Shade(0.1 * j, preColor)
|
|
}
|
|
|
|
colors['--color-theme'] = isDark ? colors['--color-primary-light-900'] : rgbaColor
|
|
|
|
return { ...colors, ...createFontColors(fontRgbaColor, isDark) }
|
|
}
|
|
|
|
const createFontColors = (rgbaColor, isDark) => {
|
|
// rgb(238, 238, 238)
|
|
// let prec = 'rgb(255, 255, 255)'
|
|
rgbaColor ??= isDark ? 'rgb(229, 229, 229)' : 'rgb(33, 33, 33)'
|
|
if (isDark) return createFontDarkColors(rgbaColor)
|
|
|
|
let colors = {
|
|
'--color-1000': rgbaColor,
|
|
}
|
|
let step = isDark ? -0.05 : 0.05
|
|
for (let i = 1; i < 21; i += 1) {
|
|
colors[`--color-${String(1000 - 50 * i).padStart(3, '0')}`] = RGB_Linear_Shade(step * i, rgbaColor)
|
|
}
|
|
// console.log(colors)
|
|
return colors
|
|
}
|
|
|
|
const createFontDarkColors = (rgbaColor) => {
|
|
// rgb(238, 238, 238)
|
|
// let prec = 'rgb(255, 255, 255)'
|
|
|
|
let colors = {
|
|
'--color-1000': rgbaColor,
|
|
}
|
|
const step = -0.05
|
|
let preColor = rgbaColor
|
|
for (let i = 1; i < 21; i += 1) {
|
|
preColor = RGB_Linear_Shade(step, preColor)
|
|
colors[`--color-${String(1000 - 50 * i).padStart(3, '0')}`] = preColor
|
|
}
|
|
|
|
// console.log(colors)
|
|
return colors
|
|
}
|
|
|
|
// console.log(createFontColors('rgb(33, 33, 33)', false))
|
|
// console.log(createFontColors('rgb(255, 255, 255)', true))
|
|
|
|
// console.log(createFontDarkColors('rgb(255, 255, 255)'))
|
|
|