diff --git a/static/css/marketing.css b/static/css/marketing.css index eda24ce..3128dc9 100644 --- a/static/css/marketing.css +++ b/static/css/marketing.css @@ -1703,31 +1703,31 @@ } } .border-brand-b1 { - border-color: #0062ff; + border-color: #7c3aed; } .border-brand-b1\/15 { - border-color: color-mix(in oklab, #0062ff 15%, transparent); + border-color: color-mix(in oklab, #7c3aed 15%, transparent); } .border-brand-b1\/20 { - border-color: color-mix(in oklab, #0062ff 20%, transparent); + border-color: color-mix(in oklab, #7c3aed 20%, transparent); } .border-brand-b1\/25 { - border-color: color-mix(in oklab, #0062ff 25%, transparent); + border-color: color-mix(in oklab, #7c3aed 25%, transparent); } .border-brand-b1\/30 { - border-color: color-mix(in oklab, #0062ff 30%, transparent); + border-color: color-mix(in oklab, #7c3aed 30%, transparent); } .border-brand-b1\/35 { - border-color: color-mix(in oklab, #0062ff 35%, transparent); + border-color: color-mix(in oklab, #7c3aed 35%, transparent); } .border-brand-b2\/40 { - border-color: color-mix(in oklab, #00bdd8 40%, transparent); + border-color: color-mix(in oklab, #a855f7 40%, transparent); } .border-brand-b3\/15 { - border-color: color-mix(in oklab, #00c896 15%, transparent); + border-color: color-mix(in oklab, #06b6d4 15%, transparent); } .border-brand-b3\/60 { - border-color: color-mix(in oklab, #00c896 60%, transparent); + border-color: color-mix(in oklab, #06b6d4 60%, transparent); } .border-brand-border { border-color: #e6ebf2; @@ -2030,28 +2030,28 @@ background-color: var(--color-blue-600); } .bg-brand-b1 { - background-color: #0062ff; + background-color: #7c3aed; } .bg-brand-b1\/5 { - background-color: color-mix(in oklab, #0062ff 5%, transparent); + background-color: color-mix(in oklab, #7c3aed 5%, transparent); } .bg-brand-b1\/10 { - background-color: color-mix(in oklab, #0062ff 10%, transparent); + background-color: color-mix(in oklab, #7c3aed 10%, transparent); } .bg-brand-b1\/15 { - background-color: color-mix(in oklab, #0062ff 15%, transparent); + background-color: color-mix(in oklab, #7c3aed 15%, transparent); } .bg-brand-b1\/\[0\.06\] { - background-color: color-mix(in oklab, #0062ff 6%, transparent); + background-color: color-mix(in oklab, #7c3aed 6%, transparent); } .bg-brand-b3 { - background-color: #00c896; + background-color: #06b6d4; } .bg-brand-b3\/10 { - background-color: color-mix(in oklab, #00c896 10%, transparent); + background-color: color-mix(in oklab, #06b6d4 10%, transparent); } .bg-brand-b3\/60 { - background-color: color-mix(in oklab, #00c896 60%, transparent); + background-color: color-mix(in oklab, #06b6d4 60%, transparent); } .bg-brand-bg { background-color: #f7f9fc; @@ -2370,15 +2370,15 @@ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .from-brand-b1\/15 { - --tw-gradient-from: color-mix(in oklab, #0062ff 15%, transparent); + --tw-gradient-from: color-mix(in oklab, #7c3aed 15%, transparent); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .from-brand-b1\/\[0\.06\] { - --tw-gradient-from: color-mix(in oklab, #0062ff 6%, transparent); + --tw-gradient-from: color-mix(in oklab, #7c3aed 6%, transparent); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .from-brand-b3 { - --tw-gradient-from: #00c896; + --tw-gradient-from: #06b6d4; --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .from-orange-500 { @@ -2421,15 +2421,15 @@ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .to-brand-b1 { - --tw-gradient-to: #0062ff; + --tw-gradient-to: #7c3aed; --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .to-brand-b3\/10 { - --tw-gradient-to: color-mix(in oklab, #00c896 10%, transparent); + --tw-gradient-to: color-mix(in oklab, #06b6d4 10%, transparent); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .to-brand-b3\/\[0\.04\] { - --tw-gradient-to: color-mix(in oklab, #00c896 4%, transparent); + --tw-gradient-to: color-mix(in oklab, #06b6d4 4%, transparent); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .to-purple-500 { @@ -2979,9 +2979,6 @@ color: color-mix(in oklab, var(--color-amber-900) 90%, transparent); } } - .text-blue-300 { - color: var(--color-blue-300); - } .text-blue-400 { color: var(--color-blue-400); } @@ -3001,31 +2998,31 @@ color: var(--color-blue-900); } .text-brand-b1 { - color: #0062ff; + color: #7c3aed; } .text-brand-b1\/45 { - color: color-mix(in oklab, #0062ff 45%, transparent); + color: color-mix(in oklab, #7c3aed 45%, transparent); } .text-brand-b1\/55 { - color: color-mix(in oklab, #0062ff 55%, transparent); + color: color-mix(in oklab, #7c3aed 55%, transparent); } .text-brand-b1\/60 { - color: color-mix(in oklab, #0062ff 60%, transparent); + color: color-mix(in oklab, #7c3aed 60%, transparent); } .text-brand-b1\/65 { - color: color-mix(in oklab, #0062ff 65%, transparent); + color: color-mix(in oklab, #7c3aed 65%, transparent); } .text-brand-b1\/70 { - color: color-mix(in oklab, #0062ff 70%, transparent); + color: color-mix(in oklab, #7c3aed 70%, transparent); } .text-brand-b1\/80 { - color: color-mix(in oklab, #0062ff 80%, transparent); + color: color-mix(in oklab, #7c3aed 80%, transparent); } .text-brand-b2 { - color: #00bdd8; + color: #a855f7; } .text-brand-b3 { - color: #00c896; + color: #06b6d4; } .text-brand-navy { color: #060d1a; @@ -3198,6 +3195,9 @@ .text-teal-600 { color: var(--color-teal-600); } + .text-violet-300 { + color: var(--color-violet-300); + } .text-violet-600 { color: var(--color-violet-600); } @@ -3324,7 +3324,7 @@ } } .accent-brand-b1 { - accent-color: #0062ff; + accent-color: #7c3aed; } .opacity-0 { opacity: 0%; @@ -3378,8 +3378,8 @@ --tw-shadow: 0 0 6px var(--tw-shadow-color, rgba(239,68,68,0.6)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } - .shadow-\[0_0_28px_rgba\(0\,98\,255\,0\.35\)\] { - --tw-shadow: 0 0 28px var(--tw-shadow-color, rgba(0,98,255,0.35)); + .shadow-\[0_0_28px_rgba\(124\,58\,237\,0\.35\)\] { + --tw-shadow: 0 0 28px var(--tw-shadow-color, rgba(124,58,237,0.35)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } .shadow-\[0_8px_30px_-6px_rgba\(239\,68\,68\,0\.55\)\] { @@ -3387,7 +3387,7 @@ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } .shadow-cta { - --tw-shadow: 0 4px 20px var(--tw-shadow-color, rgba(0, 98, 255, 0.28)); + --tw-shadow: 0 4px 20px var(--tw-shadow-color, rgba(124, 58, 237, 0.28)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } .shadow-lg { @@ -3579,7 +3579,7 @@ .group-hover\:text-brand-b1 { &:is(:where(.group):hover *) { @media (hover: hover) { - color: #0062ff; + color: #7c3aed; } } } @@ -3789,14 +3789,14 @@ .hover\:border-brand-b1 { &:hover { @media (hover: hover) { - border-color: #0062ff; + border-color: #7c3aed; } } } .hover\:border-brand-b1\/30 { &:hover { @media (hover: hover) { - border-color: color-mix(in oklab, #0062ff 30%, transparent); + border-color: color-mix(in oklab, #7c3aed 30%, transparent); } } } @@ -4150,7 +4150,7 @@ .hover\:from-brand-b1 { &:hover { @media (hover: hover) { - --tw-gradient-from: #0062ff; + --tw-gradient-from: #7c3aed; --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } } @@ -4190,7 +4190,7 @@ .hover\:to-brand-b3 { &:hover { @media (hover: hover) { - --tw-gradient-to: #00c896; + --tw-gradient-to: #06b6d4; --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } } @@ -4306,7 +4306,7 @@ .hover\:text-brand-b1 { &:hover { @media (hover: hover) { - color: #0062ff; + color: #7c3aed; } } } @@ -4426,7 +4426,7 @@ .hover\:shadow-cta { &:hover { @media (hover: hover) { - --tw-shadow: 0 4px 20px var(--tw-shadow-color, rgba(0, 98, 255, 0.28)); + --tw-shadow: 0 4px 20px var(--tw-shadow-color, rgba(124, 58, 237, 0.28)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } } @@ -4434,7 +4434,7 @@ .hover\:shadow-cta-hover { &:hover { @media (hover: hover) { - --tw-shadow: 0 8px 32px var(--tw-shadow-color, rgba(0, 98, 255, 0.42)); + --tw-shadow: 0 8px 32px var(--tw-shadow-color, rgba(124, 58, 237, 0.42)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } } @@ -4613,7 +4613,7 @@ } .focus-visible\:outline-brand-b1 { &:focus-visible { - outline-color: #0062ff; + outline-color: #7c3aed; } } .focus-visible\:outline-red-700 { @@ -5890,13 +5890,13 @@ } @layer utilities { .grad-text { - background-image: linear-gradient(118deg, #0062ff, #00bdd8 52%, #00c896); + background-image: linear-gradient(118deg, #7c3aed, #a855f7 52%, #06b6d4); -webkit-background-clip: text; background-clip: text; color: transparent; } .grad-bg { - background-image: linear-gradient(118deg, #0062ff, #00bdd8 52%, #00c896); + background-image: linear-gradient(118deg, #7c3aed, #a855f7 52%, #06b6d4); color: var(--color-white); } .eyebrow { diff --git a/static/css/tailwind.config.js b/static/css/tailwind.config.js index b75a09d..39cf8f9 100644 --- a/static/css/tailwind.config.js +++ b/static/css/tailwind.config.js @@ -6,9 +6,9 @@ module.exports = { extend: { colors: { brand: { - b1: '#0062ff', - b2: '#00bdd8', - b3: '#00c896', + b1: '#7c3aed', + b2: '#a855f7', + b3: '#06b6d4', navy: '#060d1a', navy2: '#0b1525', navy3: '#0f1e35', @@ -21,11 +21,11 @@ module.exports = { mono: ['JetBrains Mono Variable', 'JetBrains Mono', 'monospace'], }, backgroundImage: { - 'brand-grad': 'linear-gradient(118deg, #0062ff, #00bdd8 52%, #00c896)', + 'brand-grad': 'linear-gradient(118deg, #7c3aed, #a855f7 52%, #06b6d4)', }, boxShadow: { - 'cta': '0 4px 20px rgba(0, 98, 255, 0.28)', - 'cta-hover': '0 8px 32px rgba(0, 98, 255, 0.42)', + 'cta': '0 4px 20px rgba(124, 58, 237, 0.28)', + 'cta-hover': '0 8px 32px rgba(124, 58, 237, 0.42)', }, borderRadius: { DEFAULT: '0.75rem', @@ -44,8 +44,8 @@ module.exports = { '50%': { transform: 'translateY(-8px)' }, }, 'tc-pulse-glow': { - '0%, 100%': { boxShadow: '0 4px 20px rgba(0, 98, 255, 0.28)' }, - '50%': { boxShadow: '0 8px 32px rgba(0, 98, 255, 0.42)' }, + '0%, 100%': { boxShadow: '0 4px 20px rgba(124, 58, 237, 0.28)' }, + '50%': { boxShadow: '0 8px 32px rgba(124, 58, 237, 0.42)' }, }, 'plus-breathe': { '0%, 100%': { transform: 'scale(1)' }, diff --git a/templates/legal/_layout.html b/templates/legal/_layout.html index 15cf9f1..b4b360f 100644 --- a/templates/legal/_layout.html +++ b/templates/legal/_layout.html @@ -27,7 +27,7 @@ height: 4px; margin-top: 0.5rem; border-radius: 4px; - background: linear-gradient(118deg, #0062ff, #00bdd8 52%, #00c896); + background: linear-gradient(118deg, #7c3aed, #a855f7 52%, #06b6d4); } .legal-content h3 { font-size: 1.25rem; /* 20px */ @@ -60,16 +60,16 @@ .legal-content ol { list-style-type: decimal; list-style-position: outside; } .legal-content li { margin-bottom: 0.35rem; } .legal-content a { - background: linear-gradient(118deg, #0062ff, #00bdd8 52%, #00c896); + background: linear-gradient(118deg, #7c3aed, #a855f7 52%, #06b6d4); -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 600; text-decoration: underline; - text-decoration-color: #0062ff; + text-decoration-color: #7c3aed; } .legal-content a:focus-visible { - outline: 2px solid #0062ff; + outline: 2px solid #7c3aed; outline-offset: 2px; border-radius: 2px; } @@ -95,7 +95,7 @@ background-color: #fafbfd; } .legal-content blockquote { - border-left: 4px solid #0062ff; + border-left: 4px solid #7c3aed; background-color: rgba(247, 249, 252, 0.6); padding: 0.75rem 1rem; margin: 1.25rem 0; @@ -156,12 +156,12 @@ transition: color 150ms ease, border-color 150ms ease, background-color 150ms ease; } .legal-toc a:hover { - background-color: rgba(0, 98, 255, 0.05); + background-color: rgba(124, 58, 237, 0.05); } .legal-toc a.is-active { - border-left-color: #0062ff; - color: #0062ff !important; - background-color: rgba(0, 98, 255, 0.06); + border-left-color: #7c3aed; + color: #7c3aed !important; + background-color: rgba(124, 58, 237, 0.06); } .legal-breadcrumb { position: sticky; diff --git a/templates/legal/index.html b/templates/legal/index.html index 694e81b..026845c 100644 --- a/templates/legal/index.html +++ b/templates/legal/index.html @@ -13,16 +13,16 @@ transform: translateY(-2px); } .legal-card:focus-visible { - outline: 2px solid #0062ff; + outline: 2px solid #7c3aed; outline-offset: 3px; } /* Icône circulaire avec dégradé de marque, contraste suffisant. */ .legal-card-icon { - background: linear-gradient(135deg, rgba(0,98,255,0.10), rgba(0,200,150,0.10)); - color: #0062ff; + background: linear-gradient(135deg, rgba(124,58,237,0.10), rgba(6,182,212,0.10)); + color: #7c3aed; } .legal-card.is-external .legal-card-icon { - background: linear-gradient(135deg, rgba(0,189,216,0.12), rgba(0,200,150,0.12)); + background: linear-gradient(135deg, rgba(168,85,247,0.12), rgba(6,182,212,0.12)); } /* Print : pas de bouton CTA, pas d'animations. */ @media print { diff --git a/templates/marketing/conformite.html b/templates/marketing/conformite.html index be3ec10..8a908bf 100644 --- a/templates/marketing/conformite.html +++ b/templates/marketing/conformite.html @@ -8,7 +8,7 @@ {# ===== HEADER ===== #}
+ style="background: radial-gradient(circle, rgba(6,182,212,0.07) 0%, transparent 60%); filter: blur(60px);">

CONFORMITÉ — FORTERESSE QUÉBÉCOISE

diff --git a/templates/marketing/fonctionnalites.html b/templates/marketing/fonctionnalites.html index 97d5962..c044112 100644 --- a/templates/marketing/fonctionnalites.html +++ b/templates/marketing/fonctionnalites.html @@ -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 #}
+ style="background: radial-gradient(circle, rgba(6,182,212,0.07) 0%, transparent 60%); filter: blur(40px);">

+ style="background: linear-gradient(90deg, transparent, rgba(124,58,237,0.3), rgba(6,182,212,0.2), transparent);">
@@ -330,7 +330,7 @@ {# ===== ARCHITECTURE & INFRASTRUCTURE ===== #}
+ style="background: radial-gradient(circle, rgba(6,182,212,0.08) 0%, transparent 60%); filter: blur(60px);">
diff --git a/templates/marketing/landing.html b/templates/marketing/landing.html index e7ce8e4..6e6251d 100644 --- a/templates/marketing/landing.html +++ b/templates/marketing/landing.html @@ -19,7 +19,7 @@ } .hero-flow-card.is-active { transform: scale(1.05); - box-shadow: 0 0 22px rgba(0, 189, 216, 0.45), 0 0 44px rgba(0, 98, 255, 0.18); + box-shadow: 0 0 22px rgba(6, 182, 212, 0.45), 0 0 44px rgba(124, 58, 237, 0.18); } .hero-flow-card.is-inactive { opacity: 0.45; } /* Animated arrow draw between cards */ @@ -63,7 +63,7 @@ border-radius: 9999px; pointer-events: none; z-index: 9999; - background: radial-gradient(circle, rgba(0,189,216,0.18) 0%, rgba(0,98,255,0.10) 50%, transparent 70%); + background: radial-gradient(circle, rgba(6,182,212,0.18) 0%, rgba(124,58,237,0.10) 50%, transparent 70%); animation: hero-shockwave 700ms cubic-bezier(0.2, 0.8, 0.2, 1) forwards; } /* ── Word-staggered title reveal ── */ @@ -144,23 +144,23 @@ - {# Cosmic orbs background — 3 radial gradients (blue 16%, cyan 7%, green 11%) + subtle grid + horizontal accent line #} + {# Cosmic orbs background — 3 radial gradients (mauve 16%, aqua 7%, aqua 11%) + subtle grid + horizontal accent line #} + {# Orb 2 — aqua, mid-right #}
- {# Orb 3 — accent green, bottom-left #} + style="background: radial-gradient(circle, rgba(6,182,212,0.07) 0%, transparent 60%); filter: blur(40px);">
+ {# Orb 3 — aqua accent, bottom-left #}
+ style="background: radial-gradient(circle, rgba(6,182,212,0.11) 0%, transparent 60%); filter: blur(40px);">
{# Subtle grid overlay (FlexiHub signature) #}
- {# Horizontal accent line — gradient blue to cyan to transparent #} + {# Horizontal accent line — gradient mauve to aqua to transparent #}
+ style="background: linear-gradient(90deg, transparent, rgba(124,58,237,0.3), rgba(6,182,212,0.2), transparent);"> {# 3D abstract orb — reacts to mouse via Alpine ox/oy → CSS variables #} @@ -174,14 +174,14 @@
{# Ambient blob #}
+ style="background: radial-gradient(ellipse at 40% 40%, rgba(167,139,250,0.14) 0%, rgba(6,182,212,0.07) 50%, transparent 75%); filter: blur(20px);"> {# Rotating mesh ring A #}
{# Rotating mesh ring B #}
{# Inner glow core #}
+ style="background: radial-gradient(circle, rgba(167,139,250,0.25) 0%, rgba(6,182,212,0.08) 60%, transparent 100%);"> @@ -273,7 +273,7 @@ {# Pulse halo behind the primary CTA #} {# Halo ambiant #} + style="background: radial-gradient(ellipse 80% 35% at 50% 0%, rgba(6,182,212,0.12) 0%, transparent 65%);">
{# Numéro 03 → checkmark vert (round 4) #} @@ -870,7 +870,7 @@
{# Single subtle orb in solution bg — less busy than hero #} + style="background: radial-gradient(circle, rgba(6,182,212,0.08) 0%, transparent 60%); filter: blur(60px);">
@@ -1024,13 +1024,13 @@ {# Order bar — visible quand p ≈ 1 #} - + {% endfor %} {# Bouclier holographique (état ordre) #} @@ -1038,18 +1038,18 @@ {# Icône Texte transcrit (droite) #} @@ -1386,7 +1386,7 @@
{# Subtle orb décoratif #} + style="background: radial-gradient(circle, rgba(6,182,212,0.15) 0%, transparent 60%); filter: blur(30px);">
@@ -1470,8 +1470,8 @@ .hub-ring-3 { animation-delay: 2s; } /* DictIA core breathing glow */ @keyframes hub-core-breathe { - 0%, 100% { box-shadow: 0 0 26px rgba(0,189,216,0.55), 0 0 56px rgba(0,189,216,0.18); } - 50% { box-shadow: 0 0 38px rgba(0,189,216,0.75), 0 0 72px rgba(0,189,216,0.28); } + 0%, 100% { box-shadow: 0 0 26px rgba(168,85,247,0.55), 0 0 56px rgba(168,85,247,0.18); } + 50% { box-shadow: 0 0 38px rgba(168,85,247,0.75), 0 0 72px rgba(168,85,247,0.28); } } .hub-core { animation: hub-core-breathe 3.5s ease-in-out infinite; } /* Reduced motion : freeze everything */ @@ -1482,9 +1482,9 @@ }
- {# Decorative cosmic orb — cyan, mid-section #} + {# Decorative cosmic orb — aqua, mid-section #} + style="background: radial-gradient(circle, rgba(6,182,212,0.10) 0%, transparent 60%); filter: blur(60px);">
@@ -1533,25 +1533,25 @@ {# Render bezier connections (visible strokes) — DictIA → Hubs (thick), Hub → Tools (thin) #} {# DictIA → Hubs #} - - + + {# Hub → Tool (lighter) #} - - - - - - + + + + + + {# Animated particles — DictIA → Hubs (bigger, dual particles) #} {% for hub in [ - ('docs', '#0062ff', '0s', '2.4s'), - ('comm', '#00bdd8', '0.8s', '2.4s'), + ('docs', '#7c3aed', '0s', '2.4s'), + ('comm', '#06b6d4', '0.8s', '2.4s'), ('auto', '#8b5cf6', '1.6s', '2.4s') ] %} @@ -1568,12 +1568,12 @@ {# Animated particles — Hub → Tool (smaller, fast) #} {% for tool in [ - ('word', '#0062ff', '0s'), - ('google', '#0062ff', '0.4s'), - ('obsidian', '#0062ff', '0.8s'), - ('outlook', '#00bdd8', '0.2s'), - ('teams', '#00bdd8', '0.6s'), - ('notion', '#00bdd8', '1.0s'), + ('word', '#7c3aed', '0s'), + ('google', '#7c3aed', '0.4s'), + ('obsidian', '#7c3aed', '0.8s'), + ('outlook', '#06b6d4', '0.2s'), + ('teams', '#06b6d4', '0.6s'), + ('notion', '#06b6d4', '1.0s'), ('zapier', '#8b5cf6', '0.1s'), ('make', '#8b5cf6', '0.5s'), ('n8n', '#8b5cf6', '0.9s') @@ -1602,8 +1602,8 @@ {# Hub labels overlay — positioned to match SVG hub coords (200/460 = 43.5% top, 168/900=18.7% / 450/900=50% / 732/900=81.3% left) #} {% set hub_data = [ - ('Documents', 'Word · Google Docs · Obsidian', '18.7%', 'rgba(0,98,255,0.10)', 'rgba(0,98,255,0.30)', 'text-blue-300'), - ('Communication', 'Outlook · Teams · Notion', '50%', 'rgba(0,189,216,0.10)', 'rgba(0,189,216,0.30)', 'text-cyan-300'), + ('Documents', 'Word · Google Docs · Obsidian', '18.7%', 'rgba(124,58,237,0.10)', 'rgba(124,58,237,0.30)', 'text-violet-300'), + ('Communication', 'Outlook · Teams · Notion', '50%', 'rgba(6,182,212,0.10)', 'rgba(6,182,212,0.30)', 'text-cyan-300'), ('Automatisation', 'Zapier · Make · n8n', '81.3%', 'rgba(139,92,246,0.10)', 'rgba(139,92,246,0.30)', 'text-purple-300') ] %} {% for name, sub, leftpos, bgcol, brdcol, txtcol in hub_data %} @@ -1814,9 +1814,9 @@ {# ===== CONFORMITÉ FORTERESSE ===== #}
- {# Subtle decorative orb — green this time, like the Solution section #} + {# Subtle decorative orb — aqua, like the Solution section #} + style="background: radial-gradient(circle, rgba(6,182,212,0.07) 0%, transparent 60%); filter: blur(60px);">
diff --git a/templates/marketing/tarifs.html b/templates/marketing/tarifs.html index 6685b6a..88e132a 100644 --- a/templates/marketing/tarifs.html +++ b/templates/marketing/tarifs.html @@ -117,7 +117,7 @@

diff --git a/tests/test_marketing_landing_template.py b/tests/test_marketing_landing_template.py index f63f3db..b48c4d0 100644 --- a/tests/test_marketing_landing_template.py +++ b/tests/test_marketing_landing_template.py @@ -110,13 +110,13 @@ def test_hero_has_dual_cta(): def test_hero_has_cosmic_orbs_background(): - """Hero has 3 radial gradient orbs (FlexiHub signature).""" + """Hero has 3 radial gradient orbs (FlexiHub signature, mauve/aqua palette).""" client = app.test_client() body = client.get('/').data.decode('utf-8') - # Look for the 3 orb opacities (16% blue, 7% cyan, 11% green) - assert 'rgba(0,98,255,0.16)' in body, "Missing primary blue orb" - assert 'rgba(0,189,216,0.07)' in body, "Missing cyan orb" - assert 'rgba(0,200,150,0.11)' in body, "Missing green accent orb" + # Look for the 3 orb opacities (16% mauve, 7% aqua, 11% aqua accent) + assert 'rgba(124,58,237,0.16)' in body, "Missing primary mauve orb" + assert 'rgba(6,182,212,0.07)' in body, "Missing aqua orb" + assert 'rgba(6,182,212,0.11)' in body, "Missing aqua accent orb" def test_hero_has_social_proof_microcopy():