76 lines
2.1 KiB
TypeScript
76 lines
2.1 KiB
TypeScript
// @ts-expect-error vuetify/styles — CSS-импорт без d.ts
|
|
import 'vuetify/styles';
|
|
import { createVuetify } from 'vuetify';
|
|
import type { ThemeDefinition } from 'vuetify';
|
|
|
|
/**
|
|
* Палитра Forest extended (Iteration 1 — Quiet Luxury redesign).
|
|
* Spec: docs/superpowers/specs/2026-05-12-portal-redesign-quiet-luxury-design.md §3
|
|
* CSS-токены: app/resources/css/tokens.css (single source of truth)
|
|
*
|
|
* 14 OKLCH-статусов воронки маппятся на slugs из db/schema.sql:2076 (lead_statuses)
|
|
* через `useStatusPill` composable, НЕ через Vuetify theme.
|
|
*/
|
|
const liderraForest: ThemeDefinition = {
|
|
dark: false,
|
|
colors: {
|
|
background: '#F6F3EC',
|
|
surface: '#FFFFFF',
|
|
primary: '#0F6E56',
|
|
'on-primary': '#FFFFFF',
|
|
secondary: '#012019',
|
|
'on-secondary': '#F6F3EC',
|
|
success: '#2E8B57',
|
|
warning: '#D9A441',
|
|
error: '#B83A3A',
|
|
info: '#3F7C95',
|
|
// Расширения — для data viz и semantic uses
|
|
'liderra-plum': '#7A5BA3',
|
|
'liderra-salmon': '#CC6E50',
|
|
'liderra-teal-deep': '#0A5A47',
|
|
'liderra-muted': '#6B6356',
|
|
},
|
|
};
|
|
|
|
export const vuetify = createVuetify({
|
|
theme: {
|
|
defaultTheme: 'liderraForest',
|
|
themes: { liderraForest },
|
|
},
|
|
defaults: {
|
|
VBtn: {
|
|
variant: 'flat',
|
|
rounded: 'lg',
|
|
},
|
|
VCard: {
|
|
rounded: 'lg',
|
|
variant: 'flat',
|
|
border: true,
|
|
},
|
|
VTextField: {
|
|
variant: 'outlined',
|
|
density: 'comfortable',
|
|
color: 'primary',
|
|
},
|
|
VTextarea: {
|
|
variant: 'outlined',
|
|
density: 'comfortable',
|
|
color: 'primary',
|
|
},
|
|
VSelect: {
|
|
variant: 'outlined',
|
|
density: 'comfortable',
|
|
},
|
|
VChip: {
|
|
rounded: 'pill',
|
|
size: 'small',
|
|
},
|
|
VDataTable: {
|
|
density: 'comfortable',
|
|
},
|
|
VDialog: {
|
|
scrim: 'rgba(1, 32, 25, 0.32)',
|
|
},
|
|
},
|
|
});
|