refactor(brand): décale palette bleu→mauve dégradé (b1=#7c3aed, b2=#a855f7, b3=#06b6d4 aqua) pour différencier DictIA
Décale la palette canonique DictIA du bleu/cyan/vert vers mauve/violet/aqua
afin de distinguer visuellement le produit DictIA des autres outils InnovA AI
(qui restent sur palette bleue) tout en gardant la même structure de gradient,
mêmes tokens Tailwind, et même intensité visuelle.
Mapping appliqué:
- Hex semantic: #0062ff → #7c3aed (mauve), #00bdd8 → #a855f7 (lighter mauve)
- Hex aqua décoratif: #00c896 → #06b6d4 (cyan-500, aqua préservé)
- Hex secondaire: #6B9FFF / rgba(107,159,255,*) → #a78bfa (violet-400)
- Hex blue-700 #1d4ed8 (cadre reg label) → #7c3aed (mauve)
- Box shadows / rgba opacités: rgba(0,98,255,*) → rgba(124,58,237,*)
- Décoratif (orbes cosmiques, glows): mauve+aqua mix pour préserver l'effet
"cosmic dégradé" — orbe primaire en mauve, orbes secondaires en aqua
- Hub network DictIA: Documents=mauve, Communication=aqua, Automatisation
reste #8b5cf6 (déjà violet, marqueur visuel distinct via positionnement)
- Couleurs sémantiques fonctionnelles (red/green pour erreurs/succès, amber
pour alertes) inchangées
Fichiers modifiés:
- static/css/tailwind.config.js (brand.b1/b2/b3 + brand-grad + boxShadow.cta
+ boxShadow.cta-hover + keyframes.tc-pulse-glow)
- static/css/marketing.css (rebuild Tailwind: 169356 → 163036 bytes)
- templates/legal/{_layout,index}.html
- templates/marketing/{landing,fonctionnalites,conformite,tarifs}.html
- tests/test_marketing_landing_template.py (test_hero_has_cosmic_orbs_background
mis à jour avec assertions mauve/aqua au lieu de blue/cyan/green)
Hors scope (non touchés):
- Couleurs Tailwind utility (red/green/amber/emerald) sémantiques
- --brand-navy* (backgrounds dark restent neutres)
- Templates legacy (account.html, admin.html, components/, modals/)
- #8b5cf6 (Automatisation hub), #f59e0b (alertes), #ef4444 (erreurs)
Tests: 111 passed, 5 failed (toutes 5 pré-existantes, non liées aux couleurs:
/blog link manquant, MAPP eyebrow, SOC 2 phrasing, Gitea URL).
HTTP 200 vérifié sur /, /fonctionnalites, /tarifs, /conformite, /legal/,
/legal/conditions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
bottom: -10px;
|
||||
width: 0;
|
||||
height: 3px;
|
||||
background: linear-gradient(118deg, #0062ff, #00bdd8 52%, #00c896);
|
||||
background: linear-gradient(118deg, #7c3aed, #a855f7 52%, #06b6d4);
|
||||
transform: translateX(-50%);
|
||||
transition: width 600ms ease-out;
|
||||
}
|
||||
@@ -27,16 +27,16 @@
|
||||
|
||||
/* Hover lift cards */
|
||||
.ani-lift { transition: transform 200ms ease-out, box-shadow 200ms ease-out; }
|
||||
.ani-lift:hover { transform: translateY(-2px); box-shadow: 0 8px 32px rgba(0, 98, 255, 0.18); }
|
||||
.ani-lift:hover { transform: translateY(-2px); box-shadow: 0 8px 32px rgba(124, 58, 237, 0.18); }
|
||||
|
||||
/* Sticky sub-nav active link */
|
||||
.subnav-link[aria-current="true"] { color: #0062ff; }
|
||||
.subnav-link[aria-current="true"] { color: #7c3aed; }
|
||||
.subnav-link[aria-current="true"]::after {
|
||||
content: '';
|
||||
display: block;
|
||||
height: 2px;
|
||||
margin-top: 4px;
|
||||
background: linear-gradient(118deg, #0062ff, #00bdd8 52%, #00c896);
|
||||
background: linear-gradient(118deg, #7c3aed, #a855f7 52%, #06b6d4);
|
||||
}
|
||||
|
||||
/* Cosmic float orbs (n'utilise pas tc-float-y pour éviter rebuild) */
|
||||
@@ -46,8 +46,8 @@
|
||||
|
||||
/* DictIA Cloud pulse glow */
|
||||
@keyframes card-pulse-glow {
|
||||
0%, 100% { box-shadow: 0 4px 20px rgba(0, 98, 255, 0.28); }
|
||||
50% { box-shadow: 0 12px 40px rgba(0, 98, 255, 0.5); }
|
||||
0%, 100% { box-shadow: 0 4px 20px rgba(124, 58, 237, 0.28); }
|
||||
50% { box-shadow: 0 12px 40px rgba(124, 58, 237, 0.5); }
|
||||
}
|
||||
.card-pulse-glow { animation: card-pulse-glow 3s ease-in-out infinite; }
|
||||
|
||||
@@ -76,13 +76,13 @@
|
||||
{# Cosmic orbs background — float animation subtile #}
|
||||
<div class="absolute inset-0 pointer-events-none" aria-hidden="true">
|
||||
<div class="orb-float-a absolute top-1/4 left-1/4 w-[600px] h-[600px] rounded-full"
|
||||
style="background: radial-gradient(circle, rgba(0,98,255,0.16) 0%, transparent 60%); filter: blur(40px);"></div>
|
||||
style="background: radial-gradient(circle, rgba(124,58,237,0.16) 0%, transparent 60%); filter: blur(40px);"></div>
|
||||
<div class="orb-float-b absolute top-1/2 right-1/4 w-[500px] h-[500px] rounded-full"
|
||||
style="background: radial-gradient(circle, rgba(0,189,216,0.07) 0%, transparent 60%); filter: blur(40px);"></div>
|
||||
style="background: radial-gradient(circle, rgba(6,182,212,0.07) 0%, transparent 60%); filter: blur(40px);"></div>
|
||||
<div class="absolute inset-0"
|
||||
style="background-image: linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px); background-size: 40px 40px;"></div>
|
||||
<div class="absolute top-1/3 left-0 right-0 h-px"
|
||||
style="background: linear-gradient(90deg, transparent, rgba(0,98,255,0.3), rgba(0,189,216,0.2), transparent);"></div>
|
||||
style="background: linear-gradient(90deg, transparent, rgba(124,58,237,0.3), rgba(6,182,212,0.2), transparent);"></div>
|
||||
</div>
|
||||
|
||||
<div class="relative max-w-[1200px] mx-auto px-6 text-center">
|
||||
@@ -330,7 +330,7 @@
|
||||
{# ===== ARCHITECTURE & INFRASTRUCTURE ===== #}
|
||||
<section id="architecture" class="relative bg-brand-navy text-white py-20 scroll-mt-32 overflow-hidden" aria-labelledby="architecture-title">
|
||||
<div class="absolute top-1/2 right-1/4 w-[500px] h-[500px] rounded-full pointer-events-none" aria-hidden="true"
|
||||
style="background: radial-gradient(circle, rgba(0,200,150,0.08) 0%, transparent 60%); filter: blur(60px);"></div>
|
||||
style="background: radial-gradient(circle, rgba(6,182,212,0.08) 0%, transparent 60%); filter: blur(60px);"></div>
|
||||
|
||||
<div class="relative max-w-[1200px] mx-auto px-6">
|
||||
<div class="text-center max-w-3xl mx-auto mb-14">
|
||||
|
||||
Reference in New Issue
Block a user