Files
skt-vuetify-templates/src/styles/themes.ts
T
skytek_xinliang 507afcc99c feat: project init
2026-03-26 10:08:35 +08:00

196 lines
5.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// src/plugins/themes.ts
import type { ThemeDefinition } from 'vuetify'
/**
* 命名原則:
* - themeBlueSky:清爽藍(行政系統預設安全牌)
* - themeGrayGraphite:中性灰(內容導向、低干擾)
* - themeGreenForest:森林綠(學務/健康/環保)
* - themeNavyAcademic:學院海軍藍(正式、權威)
* - themeGoldCampus:校園金黃(歡迎頁、活動專題)
* - themeMaroonClassic:學院酒紅(傳統院系常見)
*
* 注意:
* - 加入 on-* 前景色,確保文字/icon 對比。
* - surface / background 偏淡,降低視覺疲勞。
*/
export const themeRoseBlossom: ThemeDefinition = {
dark: false,
colors: {
// ---- 基底 ----
background: '#FFF8FA', // 溫柔乾淨的粉白
surface: '#FFFFFF',
// ---- 主色系(粉紅)----
primary: '#E66A8B', // Rose Pink 500:柔和不刺眼
'primary-variant': '#C75173', // Rose Pink 600:確保按鈕/標題可讀
accent: '#F5A6C5', // pink accent,用於小型點綴
// ---- 輔助色(相近色弱化衝突)----
secondary: '#C084FC', // Lavender 300:粉色最佳同類搭配
'secondary-variant': '#D8B4FE',
// ---- 功能性色彩 ----
success: '#16A34A', // 綠色固定,用於系統成功語意
warning: '#F59E0B',
error: '#BE123C', // 深莓紅:粉色主題的最佳 error 反差
info: '#0EA5E9',
// ---- 前景色(無障礙)----
'on-primary': '#FFFFFF',
'on-secondary': '#1D0F2D',
'on-surface': '#1F2937',
'on-background': '#1F2937',
},
}
// 清爽藍(Light
export const themeBlueSky: ThemeDefinition = {
dark: false,
colors: {
background: '#F7F9FC',
surface: '#FFFFFF',
primary: '#2563EB', // Blue 600
'primary-variant': '#1D4ED8', // Blue 700
secondary: '#60A5FA', // Blue 400
'secondary-variant': '#93C5FD', // Blue 300
accent: '#3B82F6', // Blue 500
success: '#16A34A', // Green 600
warning: '#F59E0B', // Amber 500
error: '#DC2626', // Red 600
info: '#0EA5E9', // Sky 500
// 前景色(文字/icon
'on-primary': '#FFFFFF',
'on-secondary': '#0B1220',
'on-surface': '#0F172A', // Slate 900
'on-background': '#0F172A',
},
}
// 中性灰(Light
export const themeGrayGraphite: ThemeDefinition = {
dark: false,
colors: {
background: '#F8FAFC', // Slate 50
surface: '#FFFFFF',
primary: '#4B5563', // Slate 500
'primary-variant': '#6B7280', // Slate 600
secondary: '#9CA3AF', // Slate 400
'secondary-variant': '#D1D5DB', // Slate 300
accent: '#A3A3A3',
success: '#16A34A',
warning: '#F59E0B',
error: '#DC2626',
info: '#0284C7', // Sky 600
'on-primary': '#FFFFFF',
'on-secondary': '#111827',
'on-surface': '#111827',
'on-background': '#111827',
},
}
// 森林綠(Light
export const themeGreenForest: ThemeDefinition = {
dark: false,
colors: {
background: '#F6FBF8',
surface: '#FFFFFF',
primary: '#2F855A', // Forest-ish
'primary-variant': '#276749',
secondary: '#81C784', // Green 300~400
'secondary-variant': '#A5D6A7',
accent: '#34D399', // Emerald 400
success: '#16A34A',
warning: '#CA8A04', // Amber 600(提高文本對比)
error: '#DC2626',
info: '#0EA5E9',
'on-primary': '#FFFFFF',
'on-secondary': '#0F1A14',
'on-surface': '#0F172A',
'on-background': '#0F172A',
},
}
// 學院海軍藍(Light
export const themeNavyAcademic: ThemeDefinition = {
dark: false,
colors: {
background: '#F7F9FC',
surface: '#FFFFFF',
primary: '#1E3A8A', // Indigo/Navy 800
'primary-variant': '#1E40AF', // Blue 800
secondary: '#F59E0B', // 校園常見的金色作為點綴
'secondary-variant': '#FCD34D',
accent: '#334155', // Slate 700(配合嚴肅氛圍)
success: '#16A34A',
warning: '#D97706',
error: '#DC2626',
info: '#2563EB',
'on-primary': '#FFFFFF',
'on-secondary': '#301C02',
'on-surface': '#0B1220',
'on-background': '#0B1220',
},
}
// 校園金黃(Light
export const themeGoldCampus: ThemeDefinition = {
dark: false,
colors: {
background: '#FFFBF3', // 溫暖底色避免刺眼
surface: '#FFFFFF',
primary: '#B45309', // Amber 700(讓白字更可讀)
'primary-variant': '#92400E',
secondary: '#F59E0B', // Amber 500
'secondary-variant': '#FCD34D', // Amber 300
accent: '#FBBF24', // Amber 400
success: '#15803D', // Green 700
warning: '#D97706',
error: '#B91C1C',
info: '#0EA5E9',
'on-primary': '#FFFFFF',
'on-secondary': '#2E1600',
'on-surface': '#1F2937',
'on-background': '#1F2937',
},
}
// 學院酒紅(Light
export const themeMaroonClassic: ThemeDefinition = {
dark: false,
colors: {
background: '#FCF7F8',
surface: '#FFFFFF',
primary: '#7B2C2C', // Maroon
'primary-variant': '#5B1F1F',
secondary: '#E0B34C', // 與酒紅常見的金色搭配
'secondary-variant': '#F6D28B',
accent: '#9F3A3A',
success: '#166534', // Green 800
warning: '#CA8A04',
error: '#B91C1C',
info: '#0EA5E9',
'on-primary': '#FFFFFF',
'on-secondary': '#3A2800',
'on-surface': '#111827',
'on-background': '#111827',
},
}
export default {
themeBlueSky,
themeGrayGraphite,
themeGreenForest,
themeNavyAcademic,
themeGoldCampus,
themeMaroonClassic,
themeRoseBlossom,
}