@bg-dev/nuxt-naiveui
Version:
Unofficial Naive UI module for Nuxt
117 lines (116 loc) • 3.67 kB
JavaScript
import { generate } from "@ant-design/colors";
function generatePalette(mode, colors) {
const theme = mode === "light" ? "default" : "dark";
return {
primary: generate(colors.primary, { theme }),
success: generate(colors.success, { theme }),
warning: generate(colors.warning, { theme }),
error: generate(colors.error, { theme }),
info: generate(colors.info, { theme }),
neutral: generate(colors.neutral, { theme })
};
}
export function generateAntdColorThemes(inputColors) {
const colors = {
primary: "#2080F0FF",
success: "#18A058FF",
warning: "#F0A020FF",
error: "#D03050FF",
info: "#2080F0FF",
neutral: "#4b5563",
...inputColors
};
return {
light: generateColorThemeLight(colors),
dark: generateColorThemeDark(colors)
};
}
function generateColorThemeLight(colors) {
const palette = generatePalette("light", {
primary: colors.primary,
success: colors.success,
warning: colors.warning,
error: colors.error,
info: colors.info,
neutral: colors.neutral
});
return {
defaults: true,
common: {
primaryColor: palette.primary[5],
primaryColorHover: palette.primary[4],
primaryColorPressed: palette.primary[6],
primaryColorSuppl: palette.primary[7],
infoColor: palette.info[5],
infoColorHover: palette.info[4],
infoColorPressed: palette.info[6],
infoColorSuppl: palette.info[7],
successColor: palette.success[5],
successColorHover: palette.success[4],
successColorPressed: palette.success[6],
successColorSuppl: palette.success[7],
warningColor: palette.warning[5],
warningColorHover: palette.warning[4],
warningColorPressed: palette.warning[6],
warningColorSuppl: palette.warning[7],
errorColor: palette.error[5],
errorColorHover: palette.error[4],
errorColorPressed: palette.error[6],
errorColorSuppl: palette.error[7]
}
};
}
function generateColorThemeDark(colors) {
const palette = generatePalette("dark", {
primary: colors.primary,
success: colors.success,
warning: colors.warning,
error: colors.error,
info: colors.info,
neutral: colors.neutral
});
return {
defaults: true,
common: {
primaryColor: palette.primary[5],
primaryColorHover: palette.primary[4],
primaryColorPressed: palette.primary[6],
primaryColorSuppl: palette.primary[7],
infoColor: palette.info[5],
infoColorHover: palette.info[4],
infoColorPressed: palette.info[6],
infoColorSuppl: palette.info[7],
successColor: palette.success[5],
successColorHover: palette.success[4],
successColorPressed: palette.success[6],
successColorSuppl: palette.success[7],
warningColor: palette.warning[5],
warningColorHover: palette.warning[4],
warningColorPressed: palette.warning[6],
warningColorSuppl: palette.warning[7],
errorColor: palette.error[5],
errorColorHover: palette.error[4],
errorColorPressed: palette.error[6],
errorColorSuppl: palette.error[7],
bodyColor: palette.neutral[0],
baseColor: palette.neutral[1],
invertedColor: palette.neutral[1],
tableColor: palette.neutral[1],
cardColor: palette.neutral[1],
tagColor: palette.neutral[2],
modalColor: palette.neutral[2],
popoverColor: palette.neutral[3]
},
Layout: {
siderColor: palette.neutral[0],
headerColor: palette.neutral[0],
footerColor: palette.neutral[0]
},
Tooltip: {
color: palette.neutral[3]
},
Slider: {
indicatorColor: palette.neutral[3]
}
};
}