48 lines
1.0 KiB
TypeScript
48 lines
1.0 KiB
TypeScript
/**
|
|
* plugins/vuetify.ts
|
|
*
|
|
* Framework documentation: https://vuetifyjs.com`
|
|
*/
|
|
|
|
// Composables
|
|
import { createVuetify, type ThemeDefinition } from "vuetify";
|
|
import { zhHant } from "vuetify/locale";
|
|
// Styles
|
|
import "@mdi/font/css/materialdesignicons.css";
|
|
import "vuetify/styles";
|
|
|
|
const HPTheme: ThemeDefinition = {
|
|
dark: false,
|
|
colors: {
|
|
background: "#F0F9F6", // 頁面背景
|
|
surface: "#FFFFFF", // 卡片與白底區塊
|
|
primary: "#1D7063", // 主要品牌色
|
|
"primary-darken-1": "#145248",
|
|
secondary: "#dc5349", // CTA 按鈕
|
|
"secondary-darken-1": "#ab4c3d",
|
|
accent: "#47C2A6", // 標籤與強調
|
|
error: "#B00020",
|
|
info: "#2196F3",
|
|
success: "#4CAF50",
|
|
warning: "#FB8C00",
|
|
},
|
|
};
|
|
|
|
// https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides
|
|
export default createVuetify({
|
|
locale: {
|
|
locale: "zhHant",
|
|
fallback: "zhHant",
|
|
messages: { zhHant },
|
|
},
|
|
date: {
|
|
locale: {
|
|
zhHant: "zh-TW",
|
|
},
|
|
},
|
|
theme: {
|
|
defaultTheme: "HPTheme",
|
|
themes: { HPTheme },
|
|
},
|
|
});
|