Getting Started / Theming
Getting Started
Tickets & Conversations
Automation & Workflows
Email & Notifications
Personnalisation visuelle
Les pages Escalated heritent du layout de votre application et peuvent etre personnalisees avec des proprietes CSS personnalisees via le plugin Vue.
Enregistrer le plugin
Passez votre layout authentifie pour que les pages Escalated s'affichent dans le cadre de votre application :
import { EscalatedPlugin } from '@escalated-dev/escalated';
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout.vue';
createApp({ ... })
.use(EscalatedPlugin, {
layout: AuthenticatedLayout,
theme: {
primary: '#3b82f6',
radius: '0.75rem',
}
})
Proprietes CSS personnalisees
--esc-primary-- Couleur d'action principale (par defaut :#4f46e5)--esc-primary-hover-- Variante de survol (assombrie automatiquement si omise)--esc-radius-- Rayon de bordure pour les champs et boutons (par defaut :0.5rem)--esc-radius-lg-- Rayon de bordure pour les cartes et panneaux (mis a l'echelle automatiquement si omis)--esc-font-family-- Police personnalisee (heritee de l'application hote par defaut)
Exigences du layout
Votre layout doit fournir un slot #header et un slot par defaut. Escalated injecte le titre de la page et la navigation dans l'en-tete.
Personnalisation des panneaux
Les panneaux d'administration et d'agent peuvent etre personnalises independamment pour le branding ou la marque blanche. La personnalisation des panneaux se configure via l'option theme.panel et prend en charge deux niveaux : personnalisation rapide et remplacement complet en marque blanche.
Personnalisation rapide
Definissez un mode, une couleur d'accent, un nom d'application et un logo :
createApp({ ... })
.use(EscalatedPlugin, {
layout: AuthenticatedLayout,
theme: {
primary: '#3b82f6',
panel: {
mode: 'dark',
accent: '#e94560',
appName: 'HelpDesk Pro',
logo: '/img/brand-logo.svg',
}
}
})
| Option | Type | Par defaut | Description |
|---|---|---|---|
mode |
'dark' | 'light' |
'dark' |
Schema de couleurs de base pour les panneaux d'administration et d'agent |
accent |
string | '#06b6d4' (dark) / '#3b82f6' (light) |
Couleur d'accent principale pour les boutons et les liens |
appName |
string | 'Escalated' |
Nom de marque affiche dans la barre laterale et la navigation des agents |
logo |
string | Component | null |
URL d'image ou composant Vue pour remplacer le logo par defaut |
Lorsque logo est une chaine, il est rendu sous forme de balise <img>. Lorsqu'il s'agit d'un composant Vue, il est rendu via <component :is>. S'il est omis, le logo Escalated par defaut est utilise.
Marque blanche complete
Remplacez les tokens de design individuels pour un controle total sur l'apparence du panneau :
createApp({ ... })
.use(EscalatedPlugin, {
theme: {
panel: {
mode: 'dark',
appName: 'ClientDesk',
logo: MyLogoComponent,
accent: '#e94560',
accentSecondary: '#ff6b6b',
bg: '#0f0f23',
sidebarBg: '#1a1a2e',
topbarBg: 'rgba(15,15,35,0.8)',
surface: '#16213e',
surfaceAlt: '#0f0f23',
border: 'rgba(255,255,255,0.08)',
borderInput: 'rgba(255,255,255,0.12)',
text: '#ffffff',
textSecondary: '#a0aec0',
textMuted: '#718096',
}
}
})
Chaque token correspond a une propriete CSS personnalisee sur :root. Vous pouvez egalement remplacer ces proprietes directement dans votre propre CSS.
Proprietes CSS des panneaux
Tous les tokens de panneau ont des valeurs par defaut adaptees pour les modes clair et sombre. Lorsque vous definissez mode: 'light', toute la palette par defaut bascule automatiquement.
| Propriete CSS | Cle de config | Par defaut sombre | Par defaut clair | Description |
|---|---|---|---|---|
--esc-panel-bg |
bg |
#000000 |
#f9fafb |
Arriere-plan de la page |
--esc-panel-sidebar-bg |
sidebarBg |
#0a0a0a |
#ffffff |
Arriere-plan de la barre laterale |
--esc-panel-topbar-bg |
topbarBg |
rgba(0,0,0,0.8) |
rgba(255,255,255,0.95) |
Arriere-plan de la barre superieure |
--esc-panel-surface |
surface |
rgba(23,23,23,0.6) |
#ffffff |
Cartes et panneaux |
--esc-panel-surface-alt |
surfaceAlt |
#0a0a0a |
#f9fafb |
Champs de saisie et surfaces imbriquees |
--esc-panel-border |
border |
rgba(255,255,255,0.06) |
#e5e7eb |
Bordures et separateurs |
--esc-panel-border-input |
borderInput |
rgba(255,255,255,0.1) |
#d1d5db |
Bordures des champs de saisie |
--esc-panel-text |
text |
#ffffff |
#111827 |
Texte principal |
--esc-panel-text-secondary |
textSecondary |
#e5e5e5 |
#374151 |
Libelles et corps de texte |
--esc-panel-text-tertiary |
textTertiary |
#a3a3a3 |
#6b7280 |
Libelles secondaires |
--esc-panel-text-muted |
textMuted |
#737373 |
#9ca3af |
Indices et textes de remplacement |
--esc-panel-accent |
accent |
#06b6d4 |
#3b82f6 |
Accent principal |
--esc-panel-accent-secondary |
accentSecondary |
#8b5cf6 |
#6366f1 |
Fin de degrade / accent secondaire |
--esc-panel-accent-hover |
accentHover |
#22d3ee |
#2563eb |
Etat de survol de l'accent |
--esc-panel-accent-secondary-hover |
accentSecondaryHover |
#a78bfa |
#818cf8 |
Survol de l'accent secondaire |
--esc-panel-hover |
hover |
rgba(255,255,255,0.03) |
rgba(0,0,0,0.02) |
Arriere-plan de survol des lignes et elements |
--esc-panel-active |
active |
rgba(255,255,255,0.08) |
#eff6ff |
Arriere-plan de l'element de navigation actif |
Remarque : Les couleurs des indicateurs de statut et de priorite (open, closed, escalated, etc.) ne sont pas affectees par la personnalisation des panneaux. Elles restent fixes pour preserver la signification semantique dans tous les deploiements personnalises.
Remplacements CSS uniquement
Si vous preferez remplacer les styles de panneau sans la configuration JavaScript, definissez les proprietes CSS personnalisees directement :
:root {
--esc-panel-accent: #e94560;
--esc-panel-accent-secondary: #ff6b6b;
--esc-panel-bg: #0f0f23;
--esc-panel-sidebar-bg: #1a1a2e;
}
Cela fonctionne en complement ou a la place de la configuration theme.panel. Les remplacements CSS ont la priorite lorsqu'ils sont appliques apres l'initialisation du plugin.