Ctrl K
ComunidadGuías…

web/src/plugins/vuetify.js

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { createVuetify } from 'vuetify'
import '@mdi/font/css/materialdesignicons.css'
import 'vuetify/styles'
import { aliases, mdi } from 'vuetify/iconsets/mdi'

// ActaLog custom theme based on design requirements
const actalogTheme = {
  dark: false,
  colors: {
    primary: '#2c3657',      // Dark blue for headers
    secondary: '#597a6a',    // Secondary color
    accent: '#5a4e68',       // Accent color
    teal: '#00bcd4',         // Teal for buttons (logo color)
    error: '#DF3F40',        // Error/Alert color
    warning: '#FFA726',
    info: '#29B6F6',
    success: '#66BB6A',
    background: '#f4f6f9',   // off-white ground so white surfaces read as cards (redesign-plus)
    surface: '#FFFFFF',
    'on-primary': '#FFFFFF',
    'on-secondary': '#FFFFFF',
    'on-accent': '#FFFFFF',
    'on-teal': '#FFFFFF',
    'on-background': '#1A1A1A',
    'on-surface': '#1A1A1A',
    // Additional colors
    gold: '#FFD700',         // For action button (+ button)
    border: '#E3E6EA',       // Border color from requirements
  }
}

const actalogDarkTheme = {
  dark: true,
  colors: {
    primary: '#2c3657',      // Dark blue for headers
    secondary: '#597a6a',
    accent: '#5a4e68',
    teal: '#00bcd4',         // Teal for buttons (logo color)
    error: '#DF3F40',
    warning: '#FFA726',
    info: '#29B6F6',
    success: '#66BB6A',
    background: '#1A1A1A',
    surface: '#2A2A2A',
    'on-primary': '#FFFFFF',
    'on-secondary': '#FFFFFF',
    'on-accent': '#FFFFFF',
    'on-teal': '#FFFFFF',
    'on-background': '#FFFFFF',
    'on-surface': '#FFFFFF',
    gold: '#FFD700',
    border: '#3A3A3A',
  }
}

// Athletic Brutalist Theme - Bold, high-contrast performance theme
const brutalistTheme = {
  dark: true,
  colors: {
    primary: '#00bcd4',      // Cyan - matches marketing site
    secondary: '#ffc107',    // Gold accent
    accent: '#ff6b35',       // Orange accent for intensity
    teal: '#00bcd4',
    error: '#ff1744',
    warning: '#ffc107',
    info: '#00bcd4',
    success: '#00e676',
    background: '#0a1628',   // Dark navy from marketing site
    surface: '#0f1d2e',
    'on-primary': '#0a1628',
    'on-secondary': '#0a1628',
    'on-accent': '#FFFFFF',
    'on-teal': '#0a1628',
    'on-background': '#FFFFFF',
    'on-surface': '#e0e0e0',
    gold: '#ffc107',
    border: 'rgba(0, 188, 212, 0.2)',
  }
}

// Ocean Theme - Calming blue tones
const oceanTheme = {
  dark: false,
  colors: {
    primary: '#006d77',      // Deep ocean teal
    secondary: '#83c5be',    // Light aqua
    accent: '#edf6f9',       // Foam white
    teal: '#00bcd4',
    error: '#e63946',
    warning: '#f4a261',
    info: '#2a9d8f',
    success: '#06d6a0',
    background: '#fdfcfa',
    surface: '#FFFFFF',
    'on-primary': '#FFFFFF',
    'on-secondary': '#1a1a1a',
    'on-accent': '#1a1a1a',
    'on-teal': '#FFFFFF',
    'on-background': '#1a1a1a',
    'on-surface': '#1a1a1a',
    gold: '#f4a261',
    border: '#e0e0e0',
  }
}

// Sunset Theme - Warm amber and orange hues
const sunsetTheme = {
  dark: false,
  colors: {
    primary: '#d62828',      // Deep red
    secondary: '#f77f00',    // Orange
    accent: '#fcbf49',       // Golden yellow
    teal: '#00bcd4',
    error: '#d62828',
    warning: '#fcbf49',
    info: '#457b9d',
    success: '#06d6a0',
    background: '#fffcf2',   // Warm cream
    surface: '#FFFFFF',
    'on-primary': '#FFFFFF',
    'on-secondary': '#1a1a1a',
    'on-accent': '#1a1a1a',
    'on-teal': '#FFFFFF',
    'on-background': '#1a1a1a',
    'on-surface': '#1a1a1a',
    gold: '#fcbf49',
    border: '#e0e0e0',
  }
}

// Sunrise Theme - Inspired by beach sunrise with purple clouds, golden horizon, coral sky
const sunriseTheme = {
  dark: false,
  colors: {
    primary: '#7B5D7F',      // Muted purple from sky/clouds
    secondary: '#E8842A',    // Golden orange from horizon
    accent: '#D4637A',       // Coral pink from clouds
    teal: '#00bcd4',
    error: '#D4637A',
    warning: '#F5A623',      // Amber gold
    info: '#3D4F6F',         // Deep blue-purple from ocean
    success: '#66BB6A',
    background: '#FFF8F5',   // Warm cream with pink tint
    surface: '#FFFFFF',
    'on-primary': '#FFFFFF',
    'on-secondary': '#FFFFFF',
    'on-accent': '#FFFFFF',
    'on-teal': '#FFFFFF',
    'on-background': '#3D4F6F',
    'on-surface': '#3D4F6F',
    gold: '#F5A623',
    border: '#E8D4CF',       // Warm pink-tinged border
  }
}

// Myst Theme - Elegant grayscale with dark text on light backgrounds
const mystTheme = {
  dark: false,
  colors: {
    primary: '#2d2d2d',      // Near-black for buttons (inverted)
    secondary: '#505050',    // Dark gray
    accent: '#3a3a3a',       // Charcoal accent
    teal: '#4a4a4a',         // Gray replacement for teal
    error: '#1a1a1a',        // Black for errors
    warning: '#666666',      // Medium gray for warnings
    info: '#555555',         // Dark gray for info
    success: '#3d3d3d',      // Dark gray for success
    background: '#f5f5f5',   // Light gray background
    surface: '#ffffff',      // White surface
    'on-primary': '#ffffff', // White text on dark buttons
    'on-secondary': '#ffffff',
    'on-accent': '#ffffff',
    'on-teal': '#ffffff',
    'on-background': '#1a1a1a', // Near-black text
    'on-surface': '#1a1a1a',
    gold: '#888888',         // Medium gray for gold replacement
    border: '#d0d0d0',       // Light gray border
  }
}

export default createVuetify({
  icons: {
    defaultSet: 'mdi',
    aliases,
    sets: {
      mdi,
    },
  },
  theme: {
    defaultTheme: 'light',
    themes: {
      light: actalogTheme,
      dark: actalogDarkTheme,
      brutalist: brutalistTheme,
      ocean: oceanTheme,
      sunset: sunsetTheme,
      sunrise: sunriseTheme,
      myst: mystTheme,
    },
    variations: {
      colors: ['primary', 'secondary', 'accent'],
      lighten: 2,
      darken: 2,
    },
  },
  defaults: {
    VCard: {
      elevation: 1,
      rounded: 'sm',
      variant: 'elevated',
    },
    VBtn: {
      color: 'primary',
      elevation: 0,
      rounded: 'sm',
      style: 'text-transform: none;',
    },
    VTextField: {
      variant: 'solo',
      density: 'comfortable',
      rounded: 'sm',
    },
    VSelect: {
      variant: 'solo',
      density: 'comfortable',
      rounded: 'sm',
    },
    VTextarea: {
      variant: 'solo',
      density: 'comfortable',
      rounded: 'sm',
    },
    VAutocomplete: {
      variant: 'solo',
      density: 'comfortable',
      rounded: 'sm',
    },
    VCombobox: {
      variant: 'solo',
      density: 'comfortable',
      rounded: 'sm',
    },
  },
  display: {
    mobileBreakpoint: 'sm',
    thresholds: {
      xs: 0,
      sm: 600,
      md: 960,
      lg: 1280,
      xl: 1920,
    },
  },
})