@salifbiaye/create-boutique 0.3.6 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -2
- package/templates/storefront/locales/en.json +16 -1
- package/templates/storefront/locales/fr.json +16 -1
- package/templates/storefront/src/app/(main)/page.tsx +123 -0
- package/templates/storefront/src/app/layout.tsx +4 -0
- package/templates/storefront/src/lib/boutique/schema.ts +1 -1
- package/templates/storefront/src/modules/ub/album.tsx +137 -0
- package/templates/storefront/src/modules/ub/cinema.tsx +180 -0
- package/templates/storefront/src/modules/ub/gala.tsx +178 -0
- package/templates/storefront/src/modules/ub/tech.tsx +279 -0
- package/templates/storefront/src/styles/ub/album.css +205 -0
- package/templates/storefront/src/styles/ub/cinema.css +169 -0
- package/templates/storefront/src/styles/ub/gala.css +242 -0
- package/templates/storefront/src/styles/ub/tech.css +421 -0
- package/templates/storefront/src/styles/ub/variants.css +1 -5
- package/templates/storefront/themes/cyber-monday/theme.json +4 -3
- package/templates/storefront/themes/cyber-monday-2/campaign.en.json +1 -1
- package/templates/storefront/themes/cyber-monday-2/campaign.fr.json +1 -1
- package/templates/storefront/themes/cyber-monday-2/theme.json +5 -4
- package/templates/storefront/themes/halloween/theme.json +3 -2
- package/templates/storefront/themes/halloween-2/theme.json +2 -1
- package/templates/storefront/themes/noel/theme.json +3 -2
- package/templates/storefront/themes/noel-2/theme.json +3 -2
- package/templates/storefront/themes/nouvel-an/campaign.en.json +3 -3
- package/templates/storefront/themes/nouvel-an/campaign.fr.json +2 -2
- package/templates/storefront/themes/nouvel-an/theme.json +2 -1
- package/templates/storefront/themes/nouvel-an-2/campaign.en.json +5 -5
- package/templates/storefront/themes/nouvel-an-2/campaign.fr.json +5 -5
- package/templates/storefront/themes/nouvel-an-2/theme.json +4 -3
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
/* Accueil « Tech » (thèmes Cyber Monday) — modules/ub/tech.tsx. Lancement produit : grille lumineuse, bandeau défilant,
|
|
2
|
+
flash deals, bento, fiche technique. Cyber Monday 1 : nuit violette, visuel sur le côté.
|
|
3
|
+
Cyber Monday 2 : blanc studio, le visuel couvre le hero, mot en lettres « tuiles ».
|
|
4
|
+
Les jetons ci-dessous s'appliquent à tout le site (produit, panier, checkout, compte). */
|
|
5
|
+
|
|
6
|
+
[data-theme="cyber-monday"]:not([data-variant]) {
|
|
7
|
+
--bg: #0b0716; --surface: #140d27; --tint-1: #1d1338; --tint-2: #181032; --tint-3: #16122c; --tint-4: #221440;
|
|
8
|
+
--ink: #f4f0ff; --ink-muted: #a69dc9; --border: #2a1f4a;
|
|
9
|
+
--primary: #8b5cf6; --on-primary: #ffffff; --accent: #c4b5fd; --on-accent: #1a0f33;
|
|
10
|
+
--sale: #f0abfc; --star: #facc15; --success: #4ade80;
|
|
11
|
+
--hero-bg: #05030b; --hero-ink: #ffffff; --hero-muted: #b9b0dc;
|
|
12
|
+
--band-bg: #8b5cf6; --band-ink: #ffffff; --bubble-bg: #8b5cf6; --bubble-ink: #ffffff;
|
|
13
|
+
--topbar-bg: #6d28d9; --topbar-ink: #ffffff; --focus: #c4b5fd;
|
|
14
|
+
--shadow-card: 0 18px 40px -24px rgb(0 0 0 / 0.8);
|
|
15
|
+
--ub-font-head: var(--font-space-grotesk); --ub-font-body: var(--font-inter);
|
|
16
|
+
--ub-head-weight: 700; --ub-head-case: none; --ub-head-track: -0.03em;
|
|
17
|
+
--ub-r-card: 18px; --ub-r-btn: 12px; --ub-r-tile: 18px; --ub-r-media: 14px;
|
|
18
|
+
--tc-glow: 0 0 0 1px rgb(139 92 246 / 0.35), 0 18px 60px -18px rgb(139 92 246 / 0.65);
|
|
19
|
+
--tc-card: linear-gradient(180deg, #171030 0%, #110b22 100%);
|
|
20
|
+
color-scheme: dark;
|
|
21
|
+
}
|
|
22
|
+
[data-variant="cyber-monday-2"] {
|
|
23
|
+
--bg: #ffffff; --surface: #f4f4f6; --tint-1: #efeff2; --tint-2: #f1f0fb; --tint-3: #eef3f2; --tint-4: #f6f1ee;
|
|
24
|
+
--ink: #0b0b0f; --ink-muted: #5f616c; --border: #e4e4ea;
|
|
25
|
+
--primary: #0b0b0f; --on-primary: #ffffff; --accent: #5b3df5; --on-accent: #ffffff;
|
|
26
|
+
--sale: #e11d48; --star: #f59e0b; --success: #15803d;
|
|
27
|
+
--hero-bg: #ececec; --hero-ink: #0b0b0f; --hero-muted: #4d4f59;
|
|
28
|
+
--band-bg: #0b0b0f; --band-ink: #ffffff; --bubble-bg: #0b0b0f; --bubble-ink: #ffffff;
|
|
29
|
+
--topbar-bg: #0b0b0f; --topbar-ink: #ffffff; --focus: #5b3df5;
|
|
30
|
+
--shadow-card: 0 14px 34px -22px rgb(11 11 15 / 0.35);
|
|
31
|
+
--ub-font-head: var(--font-sora); --ub-font-body: var(--font-inter);
|
|
32
|
+
--ub-head-weight: 700; --ub-head-case: none; --ub-head-track: -0.035em;
|
|
33
|
+
--ub-r-card: 14px; --ub-r-btn: 999px; --ub-r-tile: 14px; --ub-r-hero: 0px; --ub-r-media: 10px;
|
|
34
|
+
--tc-glow: 0 18px 40px -26px rgb(11 11 15 / 0.45);
|
|
35
|
+
--tc-card: #ffffff;
|
|
36
|
+
color-scheme: light;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* ---------- En-tête et pied de page ---------- */
|
|
40
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-nav { background: rgb(11 7 22 / 0.82); backdrop-filter: blur(14px); border-bottom: 1px solid var(--border); }
|
|
41
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-search { background: var(--surface); border-color: var(--border); color: var(--ink); }
|
|
42
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-nav__cta { background: var(--primary); color: #fff; box-shadow: var(--tc-glow); }
|
|
43
|
+
[data-variant="cyber-monday-2"] .ub-nav { background: rgb(255 255 255 / 0.9); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); }
|
|
44
|
+
[data-variant="cyber-monday-2"] .ub-nav__cta { background: var(--ink); color: #fff; }
|
|
45
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-footwrap { --foot-bg: #120b24; --foot-ink: var(--ink); --cta-bg: var(--primary); --cta-ink: #ffffff; }
|
|
46
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-footwrap .ub-footer { border: 1px solid var(--border); }
|
|
47
|
+
[data-variant="cyber-monday-2"] .ub-footwrap { --foot-bg: #0b0b0f; --foot-ink: #f4f4f6; --cta-bg: #ececec; --cta-ink: #0b0b0f; }
|
|
48
|
+
|
|
49
|
+
/* Cartes produits du reste du site (boutique, recherche, produits liés) */
|
|
50
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-card { background: var(--tc-card); border: 1px solid var(--border); }
|
|
51
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-card__media { background: #1a1233; }
|
|
52
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-card__cart { background: var(--surface); color: var(--ink); border-color: var(--border); }
|
|
53
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-badge { background: var(--primary); color: #fff; }
|
|
54
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-tile { background: var(--surface); border: 1px solid var(--border); box-shadow: none; }
|
|
55
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-tile__ic { color: var(--accent); }
|
|
56
|
+
[data-theme="cyber-monday"]:not([data-variant]) .ub-eyebrow { background: rgb(139 92 246 / 0.18); color: var(--accent); }
|
|
57
|
+
[data-variant="cyber-monday-2"] .ub-card { border: 1px solid var(--border); box-shadow: none; }
|
|
58
|
+
[data-variant="cyber-monday-2"] .ub-card:hover { box-shadow: var(--shadow-card); }
|
|
59
|
+
[data-variant="cyber-monday-2"] .ub-badge { background: var(--sale); color: #fff; }
|
|
60
|
+
[data-variant="cyber-monday-2"] .ub-eyebrow { background: var(--ink); color: #fff; }
|
|
61
|
+
[data-variant="cyber-monday-2"] .ub-tile__ic { color: var(--accent); }
|
|
62
|
+
|
|
63
|
+
/* ---------- Hero ---------- */
|
|
64
|
+
.ub-tc-hero {
|
|
65
|
+
position: relative;
|
|
66
|
+
isolation: isolate;
|
|
67
|
+
overflow: hidden;
|
|
68
|
+
background: radial-gradient(55% 75% at 78% 45%, #170a33 0%, var(--hero-bg) 70%);
|
|
69
|
+
color: var(--hero-ink);
|
|
70
|
+
}
|
|
71
|
+
.ub-tc-hero__grid {
|
|
72
|
+
position: absolute;
|
|
73
|
+
inset: 0;
|
|
74
|
+
z-index: -2;
|
|
75
|
+
background-image:
|
|
76
|
+
linear-gradient(rgb(139 92 246 / 0.12) 1px, transparent 1px),
|
|
77
|
+
linear-gradient(90deg, rgb(139 92 246 / 0.12) 1px, transparent 1px);
|
|
78
|
+
background-size: 56px 56px;
|
|
79
|
+
mask-image: radial-gradient(70% 70% at 30% 60%, #000 20%, transparent 75%);
|
|
80
|
+
}
|
|
81
|
+
.ub-tc-hero__beam {
|
|
82
|
+
position: absolute;
|
|
83
|
+
top: -30%;
|
|
84
|
+
left: 38%;
|
|
85
|
+
z-index: -1;
|
|
86
|
+
width: 38%;
|
|
87
|
+
height: 160%;
|
|
88
|
+
background: linear-gradient(180deg, rgb(167 139 250 / 0.35), transparent 70%);
|
|
89
|
+
filter: blur(40px);
|
|
90
|
+
transform: rotate(-24deg);
|
|
91
|
+
pointer-events: none;
|
|
92
|
+
}
|
|
93
|
+
.ub-tc-hero__cover { display: none; }
|
|
94
|
+
.ub-tc-hero__in {
|
|
95
|
+
display: grid;
|
|
96
|
+
grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
|
|
97
|
+
gap: var(--space-12);
|
|
98
|
+
align-items: center;
|
|
99
|
+
min-height: clamp(560px, 46vw, 720px);
|
|
100
|
+
padding-top: var(--space-12);
|
|
101
|
+
padding-bottom: var(--space-12);
|
|
102
|
+
}
|
|
103
|
+
.ub-tc-hero__text { display: grid; gap: var(--space-6); justify-items: start; animation: ub-rise 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
|
|
104
|
+
.ub-tc-chip {
|
|
105
|
+
display: inline-flex;
|
|
106
|
+
align-items: center;
|
|
107
|
+
gap: 8px;
|
|
108
|
+
padding: 6px 14px 6px 10px;
|
|
109
|
+
border: 1px solid rgb(196 181 253 / 0.35);
|
|
110
|
+
border-radius: 999px;
|
|
111
|
+
background: rgb(139 92 246 / 0.14);
|
|
112
|
+
color: var(--accent);
|
|
113
|
+
font: 600 13px/18px var(--ub-font-body);
|
|
114
|
+
letter-spacing: 0.08em;
|
|
115
|
+
text-transform: uppercase;
|
|
116
|
+
}
|
|
117
|
+
.ub-tc-chip__dot { width: 8px; height: 8px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 4px rgb(74 222 128 / 0.2); animation: ub-tc-pulse 1.6s ease-in-out infinite; }
|
|
118
|
+
@keyframes ub-tc-pulse { 50% { box-shadow: 0 0 0 8px rgb(74 222 128 / 0); } }
|
|
119
|
+
.ub-tc-title {
|
|
120
|
+
margin: 0;
|
|
121
|
+
font: 700 clamp(44px, 6vw, 88px) / 0.98 var(--ub-font-head);
|
|
122
|
+
letter-spacing: -0.04em;
|
|
123
|
+
text-wrap: balance;
|
|
124
|
+
}
|
|
125
|
+
.ub-tc-title__hl {
|
|
126
|
+
background: linear-gradient(92deg, #c4b5fd 0%, #8b5cf6 45%, #f0abfc 100%);
|
|
127
|
+
-webkit-background-clip: text;
|
|
128
|
+
background-clip: text;
|
|
129
|
+
color: transparent;
|
|
130
|
+
filter: drop-shadow(0 0 22px rgb(139 92 246 / 0.55));
|
|
131
|
+
}
|
|
132
|
+
.ub-tc-tile { display: inline; }
|
|
133
|
+
.ub-tc-sub { max-width: 34em; margin: 0; color: var(--hero-muted); font-size: 18px; line-height: 28px; }
|
|
134
|
+
.ub-tc-actions { display: flex; flex-wrap: wrap; gap: 12px; }
|
|
135
|
+
.ub-tc-btn {
|
|
136
|
+
display: inline-flex;
|
|
137
|
+
align-items: center;
|
|
138
|
+
justify-content: center;
|
|
139
|
+
gap: 10px;
|
|
140
|
+
min-height: 52px;
|
|
141
|
+
padding: 0 26px;
|
|
142
|
+
border-radius: var(--ub-r-btn);
|
|
143
|
+
font: 600 16px/20px var(--ub-font-body);
|
|
144
|
+
transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
|
|
145
|
+
}
|
|
146
|
+
.ub-tc-btn svg { width: 18px; height: 18px; }
|
|
147
|
+
.ub-tc-btn--solid { background: var(--primary); color: var(--on-primary); box-shadow: var(--tc-glow); }
|
|
148
|
+
.ub-tc-btn--solid:hover { transform: translateY(-2px); }
|
|
149
|
+
.ub-tc-btn--ghost { border: 1px solid rgb(255 255 255 / 0.22); color: var(--hero-ink); }
|
|
150
|
+
.ub-tc-btn--ghost:hover { background: rgb(255 255 255 / 0.06); }
|
|
151
|
+
.ub-tc-hero__cd .ub-countdown__c,
|
|
152
|
+
.ub-tc-flash__cd .ub-countdown__c {
|
|
153
|
+
min-width: 70px;
|
|
154
|
+
height: 70px;
|
|
155
|
+
border: 1px solid var(--border);
|
|
156
|
+
background: rgb(20 13 39 / 0.8);
|
|
157
|
+
color: var(--ink);
|
|
158
|
+
box-shadow: inset 0 0 22px rgb(139 92 246 / 0.18);
|
|
159
|
+
}
|
|
160
|
+
.ub-tc-hero__cd .ub-countdown__c b,
|
|
161
|
+
.ub-tc-flash__cd .ub-countdown__c b { font: 700 26px/30px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--accent); }
|
|
162
|
+
|
|
163
|
+
/* Visuel sur le côté (Cyber Monday 1) */
|
|
164
|
+
/* Pas de cadre : le visuel se fond dans la nuit du hero (bords en fondu) */
|
|
165
|
+
.ub-tc-hero__side { position: relative; justify-self: end; width: min(115%, 640px); margin-right: -6%; aspect-ratio: 4 / 5; }
|
|
166
|
+
.ub-tc-hero__side > img,
|
|
167
|
+
.ub-tc-hero__side > .ub-ph {
|
|
168
|
+
width: 100%;
|
|
169
|
+
height: 100%;
|
|
170
|
+
object-fit: cover;
|
|
171
|
+
-webkit-mask-image: radial-gradient(72% 68% at 55% 55%, #000 45%, transparent 100%);
|
|
172
|
+
mask-image: radial-gradient(72% 68% at 55% 55%, #000 45%, transparent 100%);
|
|
173
|
+
animation: ub-tc-fadein 1.2s 0.1s ease both;
|
|
174
|
+
}
|
|
175
|
+
@keyframes ub-tc-fadein { from { opacity: 0; transform: scale(1.03); } }
|
|
176
|
+
.ub-tc-badge {
|
|
177
|
+
position: absolute;
|
|
178
|
+
left: -34px;
|
|
179
|
+
bottom: 48px;
|
|
180
|
+
z-index: 2;
|
|
181
|
+
display: grid;
|
|
182
|
+
justify-items: center;
|
|
183
|
+
margin: 0;
|
|
184
|
+
padding: 16px 22px;
|
|
185
|
+
border: 1px solid rgb(196 181 253 / 0.4);
|
|
186
|
+
border-radius: 20px;
|
|
187
|
+
background: rgb(20 13 39 / 0.72);
|
|
188
|
+
backdrop-filter: blur(14px);
|
|
189
|
+
color: #fff;
|
|
190
|
+
box-shadow: var(--tc-glow);
|
|
191
|
+
}
|
|
192
|
+
.ub-tc-badge small { color: var(--hero-muted); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; }
|
|
193
|
+
.ub-tc-badge b { font: 700 44px/1 var(--ub-font-head); color: var(--accent); }
|
|
194
|
+
|
|
195
|
+
/* ---------- Bandeau défilant ---------- */
|
|
196
|
+
.ub-tc-ticker { overflow: hidden; border-block: 1px solid var(--border); background: var(--band-bg); color: var(--band-ink); }
|
|
197
|
+
.ub-tc-ticker__track { display: flex; width: max-content; animation: ub-tc-marquee 32s linear infinite; }
|
|
198
|
+
.ub-tc-ticker__row { display: flex; gap: 48px; margin: 0; padding: 14px 24px; list-style: none; }
|
|
199
|
+
.ub-tc-ticker__row li { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; font: 600 15px/20px var(--ub-font-head); letter-spacing: 0.04em; text-transform: uppercase; }
|
|
200
|
+
.ub-tc-ticker__row svg { width: 16px; height: 16px; opacity: 0.8; }
|
|
201
|
+
@keyframes ub-tc-marquee { to { transform: translateX(-50%); } }
|
|
202
|
+
@media (prefers-reduced-motion: reduce) { .ub-tc-ticker__track { animation: none; } }
|
|
203
|
+
|
|
204
|
+
/* ---------- Fiche technique (avantages) ---------- */
|
|
205
|
+
.ub-tc-specs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: var(--space-12); }
|
|
206
|
+
.ub-tc-spec { display: flex; align-items: center; gap: 14px; padding: 18px; border: 1px solid var(--border); border-radius: var(--ub-r-card); background: var(--surface); }
|
|
207
|
+
.ub-tc-spec svg { flex: none; width: 26px; height: 26px; color: var(--accent); }
|
|
208
|
+
.ub-tc-spec span { display: grid; }
|
|
209
|
+
.ub-tc-spec b { font-size: 15px; line-height: 20px; }
|
|
210
|
+
.ub-tc-spec small { color: var(--ink-muted); font-size: 13px; line-height: 18px; }
|
|
211
|
+
|
|
212
|
+
/* ---------- Sections ---------- */
|
|
213
|
+
.ub-tc-section { padding-top: var(--space-16); }
|
|
214
|
+
.ub-tech > :last-child { padding-bottom: var(--space-16); }
|
|
215
|
+
.ub-tc-kicker { display: inline-flex; align-items: center; gap: 8px; margin: 0; color: var(--accent); font: 600 13px/18px var(--ub-font-body); letter-spacing: 0.12em; text-transform: uppercase; }
|
|
216
|
+
.ub-tc-kicker svg { width: 15px; height: 15px; }
|
|
217
|
+
.ub-tc-h2 { margin: 8px 0 0; font: 700 clamp(28px, 3.4vw, 44px) / 1.05 var(--ub-font-head); letter-spacing: -0.03em; }
|
|
218
|
+
.ub-tc-head { display: flex; align-items: end; justify-content: space-between; gap: var(--space-6); margin-bottom: var(--space-8); }
|
|
219
|
+
.ub-tc-link { display: inline-flex; align-items: center; gap: 8px; color: var(--accent); font-weight: 600; white-space: nowrap; }
|
|
220
|
+
.ub-tc-link svg { width: 16px; height: 16px; }
|
|
221
|
+
|
|
222
|
+
/* Flash deals */
|
|
223
|
+
.ub-tc-flash__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--space-6); margin-bottom: var(--space-8); }
|
|
224
|
+
.ub-tc-flash__row {
|
|
225
|
+
display: grid;
|
|
226
|
+
grid-auto-flow: column;
|
|
227
|
+
grid-auto-columns: minmax(240px, 1fr);
|
|
228
|
+
gap: 16px;
|
|
229
|
+
margin: 0;
|
|
230
|
+
padding: 0 0 12px;
|
|
231
|
+
list-style: none;
|
|
232
|
+
overflow-x: auto;
|
|
233
|
+
scroll-snap-type: x mandatory;
|
|
234
|
+
scrollbar-width: thin;
|
|
235
|
+
}
|
|
236
|
+
.ub-tc-flash__row > li { scroll-snap-align: start; }
|
|
237
|
+
@media (min-width: 1100px) { .ub-tc-flash__row { grid-auto-columns: calc((100% - 48px) / 4); } }
|
|
238
|
+
|
|
239
|
+
/* Carte produit */
|
|
240
|
+
.ub-tc-card {
|
|
241
|
+
position: relative;
|
|
242
|
+
display: grid;
|
|
243
|
+
height: 100%;
|
|
244
|
+
overflow: hidden;
|
|
245
|
+
border: 1px solid var(--border);
|
|
246
|
+
border-radius: var(--ub-r-card);
|
|
247
|
+
background: var(--tc-card);
|
|
248
|
+
color: var(--ink);
|
|
249
|
+
transition: transform 0.25s, border-color 0.25s, box-shadow 0.25s;
|
|
250
|
+
}
|
|
251
|
+
.ub-tc-card:hover { transform: translateY(-4px); border-color: var(--primary); box-shadow: var(--tc-glow); }
|
|
252
|
+
.ub-tc-card__media { position: relative; display: block; aspect-ratio: 1; margin: 10px 10px 0; overflow: hidden; border-radius: var(--ub-r-media); background: var(--surface); }
|
|
253
|
+
.ub-tc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
|
|
254
|
+
.ub-tc-card:hover .ub-tc-card__media img { transform: scale(1.05); }
|
|
255
|
+
.ub-tc-off {
|
|
256
|
+
position: absolute;
|
|
257
|
+
top: 10px;
|
|
258
|
+
left: 10px;
|
|
259
|
+
padding: 4px 10px;
|
|
260
|
+
border-radius: 999px;
|
|
261
|
+
background: var(--primary);
|
|
262
|
+
color: var(--on-primary);
|
|
263
|
+
font: 700 13px/18px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
264
|
+
}
|
|
265
|
+
.ub-tc-card__rank { position: absolute; right: 10px; top: 10px; padding: 3px 8px; border-radius: 8px; background: rgb(0 0 0 / 0.55); color: #fff; font: 600 12px/16px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
|
|
266
|
+
.ub-tc-card__body { display: grid; gap: 6px; padding: 14px 16px 18px; }
|
|
267
|
+
.ub-tc-card__name { padding-right: 34px; font-weight: 600; font-size: 15px; line-height: 20px; }
|
|
268
|
+
.ub-tc-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
|
|
269
|
+
.ub-tc-card__price b { font: 700 18px/22px var(--ub-font-head); color: var(--accent); }
|
|
270
|
+
.ub-tc-card__price s { color: var(--ink-muted); font-size: 14px; }
|
|
271
|
+
.ub-tc-card__price--lg b { font-size: 34px; line-height: 38px; }
|
|
272
|
+
.ub-tc-card__price--lg .ub-tc-off { position: static; }
|
|
273
|
+
.ub-tc-card__go {
|
|
274
|
+
position: absolute;
|
|
275
|
+
right: 14px;
|
|
276
|
+
bottom: 16px;
|
|
277
|
+
display: grid;
|
|
278
|
+
place-items: center;
|
|
279
|
+
width: 30px;
|
|
280
|
+
height: 30px;
|
|
281
|
+
border-radius: 50%;
|
|
282
|
+
background: var(--surface);
|
|
283
|
+
color: var(--ink);
|
|
284
|
+
transition: background 0.2s, color 0.2s;
|
|
285
|
+
}
|
|
286
|
+
.ub-tc-card__go svg { width: 16px; height: 16px; }
|
|
287
|
+
.ub-tc-card:hover .ub-tc-card__go { background: var(--primary); color: var(--on-primary); }
|
|
288
|
+
|
|
289
|
+
/* Bento */
|
|
290
|
+
.ub-tc-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: auto; gap: 16px; }
|
|
291
|
+
.ub-tc-bento__main {
|
|
292
|
+
grid-column: span 2;
|
|
293
|
+
grid-row: span 2;
|
|
294
|
+
position: relative;
|
|
295
|
+
display: grid;
|
|
296
|
+
grid-template-rows: 1fr auto;
|
|
297
|
+
overflow: hidden;
|
|
298
|
+
border: 1px solid var(--border);
|
|
299
|
+
border-radius: var(--ub-r-card);
|
|
300
|
+
background: radial-gradient(80% 70% at 50% 20%, #2a1263 0%, #120b24 70%);
|
|
301
|
+
color: #fff;
|
|
302
|
+
}
|
|
303
|
+
.ub-tc-bento__img { display: block; min-height: 300px; padding: 24px 24px 0; }
|
|
304
|
+
.ub-tc-bento__img img { width: 100%; height: 100%; max-height: 380px; object-fit: cover; border-radius: 16px; }
|
|
305
|
+
.ub-tc-bento__txt { display: grid; justify-items: start; gap: 10px; padding: 24px; }
|
|
306
|
+
.ub-tc-bento__name { font: 700 clamp(24px, 2.4vw, 32px) / 1.1 var(--ub-font-head); letter-spacing: -0.03em; }
|
|
307
|
+
|
|
308
|
+
/* Grille */
|
|
309
|
+
.ub-tc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
|
|
310
|
+
|
|
311
|
+
/* Bannière finale */
|
|
312
|
+
.ub-tc-final {
|
|
313
|
+
position: relative;
|
|
314
|
+
isolation: isolate;
|
|
315
|
+
display: grid;
|
|
316
|
+
justify-items: center;
|
|
317
|
+
gap: 14px;
|
|
318
|
+
overflow: hidden;
|
|
319
|
+
padding: clamp(48px, 7vw, 96px) 24px;
|
|
320
|
+
border: 1px solid var(--border);
|
|
321
|
+
border-radius: 28px;
|
|
322
|
+
background: #0e0820;
|
|
323
|
+
color: #fff;
|
|
324
|
+
text-align: center;
|
|
325
|
+
}
|
|
326
|
+
.ub-tc-final__glow { position: absolute; inset: auto 10% -60% 10%; z-index: -1; height: 120%; background: radial-gradient(closest-side, rgb(139 92 246 / 0.7), transparent); filter: blur(30px); }
|
|
327
|
+
.ub-tc-final__title { max-width: 18em; margin: 0; font: 700 clamp(30px, 4.4vw, 58px) / 1.02 var(--ub-font-head); letter-spacing: -0.04em; text-wrap: balance; }
|
|
328
|
+
.ub-tc-final__text { max-width: 36em; margin: 0; color: #cfc8ea; font-size: 17px; line-height: 26px; }
|
|
329
|
+
|
|
330
|
+
/* ================= Cyber Monday 2 : blanc studio ================= */
|
|
331
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero { background: var(--hero-bg); }
|
|
332
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__grid,
|
|
333
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__beam,
|
|
334
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__side { display: none; }
|
|
335
|
+
/* Le visuel couvre tout le hero ; un voile blanc à gauche garde le texte lisible */
|
|
336
|
+
/* Fond du hero = gris béton clair du visuel : l'image posée à droite se fond dans toute la largeur */
|
|
337
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__cover { display: block; position: absolute; inset: 0 0 0 30%; z-index: -1; }
|
|
338
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__cover img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 78%; animation: ub-tc-zoom 1.4s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
|
|
339
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__cover::after {
|
|
340
|
+
content: "";
|
|
341
|
+
position: absolute;
|
|
342
|
+
inset: 0;
|
|
343
|
+
background: linear-gradient(90deg, var(--hero-bg) 0%, rgb(236 236 236 / 0.7) 18%, transparent 42%);
|
|
344
|
+
}
|
|
345
|
+
@keyframes ub-tc-zoom { from { transform: scale(1.06); opacity: 0; } }
|
|
346
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__in { grid-template-columns: minmax(0, 620px); min-height: clamp(580px, 48vw, 760px); }
|
|
347
|
+
[data-variant="cyber-monday-2"] .ub-tc-chip { border-color: var(--ink); background: #fff; color: var(--ink); }
|
|
348
|
+
[data-variant="cyber-monday-2"] .ub-tc-title { font-size: clamp(42px, 5.6vw, 80px); }
|
|
349
|
+
/* Mot en lettres « tuiles », comme les lettres posées sur le visuel */
|
|
350
|
+
[data-variant="cyber-monday-2"] .ub-tc-title__hl { display: inline-flex; flex-wrap: wrap; gap: 0.08em; background: none; color: var(--ink); filter: none; vertical-align: 0.06em; }
|
|
351
|
+
[data-variant="cyber-monday-2"] .ub-tc-tile {
|
|
352
|
+
display: inline-grid;
|
|
353
|
+
place-items: center;
|
|
354
|
+
min-width: 0.78em;
|
|
355
|
+
height: 1.06em;
|
|
356
|
+
padding: 0 0.06em;
|
|
357
|
+
border: 1px solid rgb(11 11 15 / 0.12);
|
|
358
|
+
border-radius: 0.08em;
|
|
359
|
+
background: rgb(255 255 255 / 0.72);
|
|
360
|
+
box-shadow: 0 0.06em 0.14em rgb(11 11 15 / 0.14);
|
|
361
|
+
font-size: 0.9em;
|
|
362
|
+
line-height: 1;
|
|
363
|
+
text-transform: uppercase;
|
|
364
|
+
}
|
|
365
|
+
[data-variant="cyber-monday-2"] .ub-tc-tile:nth-child(odd) { transform: rotate(-2deg); }
|
|
366
|
+
[data-variant="cyber-monday-2"] .ub-tc-tile:nth-child(3n) { transform: rotate(2.5deg) translateY(0.03em); }
|
|
367
|
+
[data-variant="cyber-monday-2"] .ub-tc-tile--sp { min-width: 0.3em; border: 0; background: none; box-shadow: none; }
|
|
368
|
+
[data-variant="cyber-monday-2"] .ub-tc-sub { color: var(--hero-muted); }
|
|
369
|
+
[data-variant="cyber-monday-2"] .ub-tc-btn--solid { background: var(--ink); color: #fff; }
|
|
370
|
+
[data-variant="cyber-monday-2"] .ub-tc-btn--ghost { border-color: var(--ink); color: var(--ink); background: rgb(255 255 255 / 0.6); }
|
|
371
|
+
[data-variant="cyber-monday-2"] .ub-tc-btn--ghost:hover { background: #fff; }
|
|
372
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__cd .ub-countdown__c,
|
|
373
|
+
[data-variant="cyber-monday-2"] .ub-tc-flash__cd .ub-countdown__c { border-color: var(--border); background: #fff; box-shadow: var(--shadow-card); }
|
|
374
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__cd .ub-countdown__c b,
|
|
375
|
+
[data-variant="cyber-monday-2"] .ub-tc-flash__cd .ub-countdown__c b { color: var(--ink); }
|
|
376
|
+
[data-variant="cyber-monday-2"] .ub-tc-ticker { border-color: var(--ink); }
|
|
377
|
+
[data-variant="cyber-monday-2"] .ub-tc-spec { background: #fff; }
|
|
378
|
+
[data-variant="cyber-monday-2"] .ub-tc-kicker,
|
|
379
|
+
[data-variant="cyber-monday-2"] .ub-tc-link { color: var(--accent); }
|
|
380
|
+
[data-variant="cyber-monday-2"] .ub-tc-card { border-color: var(--border); }
|
|
381
|
+
[data-variant="cyber-monday-2"] .ub-tc-card:hover { border-color: var(--ink); }
|
|
382
|
+
[data-variant="cyber-monday-2"] .ub-tc-card__price b { color: var(--ink); }
|
|
383
|
+
[data-variant="cyber-monday-2"] .ub-tc-off { background: var(--sale); color: #fff; }
|
|
384
|
+
[data-variant="cyber-monday-2"] .ub-tc-card:hover .ub-tc-card__go { background: var(--ink); color: #fff; }
|
|
385
|
+
[data-variant="cyber-monday-2"] .ub-tc-bento__main { background: var(--surface); color: var(--ink); }
|
|
386
|
+
[data-variant="cyber-monday-2"] .ub-tc-bento__main .ub-tc-btn--solid { background: var(--ink); color: #fff; }
|
|
387
|
+
[data-variant="cyber-monday-2"] .ub-tc-final { background: #0b0b0f; border-color: #0b0b0f; }
|
|
388
|
+
[data-variant="cyber-monday-2"] .ub-tc-final__glow { background: radial-gradient(closest-side, rgb(91 61 245 / 0.55), transparent); }
|
|
389
|
+
[data-variant="cyber-monday-2"] .ub-tc-final .ub-tc-kicker { color: #b9adff; }
|
|
390
|
+
[data-variant="cyber-monday-2"] .ub-tc-final .ub-tc-btn--solid { background: #fff; color: var(--ink); }
|
|
391
|
+
|
|
392
|
+
/* ---------- Responsive ---------- */
|
|
393
|
+
@media (max-width: 1024px) {
|
|
394
|
+
.ub-tc-specs, .ub-tc-grid { grid-template-columns: repeat(2, 1fr); }
|
|
395
|
+
.ub-tc-bento { grid-template-columns: repeat(2, 1fr); }
|
|
396
|
+
}
|
|
397
|
+
@media (max-width: 900px) {
|
|
398
|
+
.ub-tc-hero__in { grid-template-columns: 1fr; gap: var(--space-8); min-height: 0; padding-top: var(--space-8); }
|
|
399
|
+
.ub-tc-hero__side { justify-self: center; width: min(100%, 440px); margin-right: 0; }
|
|
400
|
+
.ub-tc-badge { left: 12px; bottom: 16px; padding: 10px 16px; }
|
|
401
|
+
.ub-tc-badge b { font-size: 32px; }
|
|
402
|
+
/* Cyber Monday 2 mobile : visuel en haut, texte dessous sur fond blanc */
|
|
403
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero { display: grid; background: #fff; }
|
|
404
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__cover { position: relative; inset: auto; z-index: 0; aspect-ratio: 1; max-height: 460px; }
|
|
405
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__cover::after { background: linear-gradient(0deg, #fff 0%, transparent 30%); }
|
|
406
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__cover img { object-position: center; }
|
|
407
|
+
[data-variant="cyber-monday-2"] .ub-tc-hero__in { grid-template-columns: 1fr; min-height: 0; padding-top: 0; }
|
|
408
|
+
}
|
|
409
|
+
@media (max-width: 600px) {
|
|
410
|
+
.ub-tc-title { font-size: 40px; }
|
|
411
|
+
[data-variant="cyber-monday-2"] .ub-tc-title { font-size: 36px; }
|
|
412
|
+
.ub-tc-specs { grid-template-columns: 1fr; }
|
|
413
|
+
.ub-tc-grid, .ub-tc-bento { grid-template-columns: repeat(2, 1fr); gap: 10px; }
|
|
414
|
+
.ub-tc-bento__main { grid-column: span 2; grid-row: auto; }
|
|
415
|
+
.ub-tc-bento__img { min-height: 0; padding: 12px 12px 0; }
|
|
416
|
+
.ub-tc-head { flex-direction: column; align-items: start; }
|
|
417
|
+
.ub-tc-hero__cd .ub-countdown__c, .ub-tc-flash__cd .ub-countdown__c { min-width: 58px; height: 58px; }
|
|
418
|
+
.ub-tc-hero__cd .ub-countdown__c b, .ub-tc-flash__cd .ub-countdown__c b { font-size: 20px; }
|
|
419
|
+
.ub-tc-card__body { padding: 10px 12px 14px; }
|
|
420
|
+
.ub-tc-card__name { font-size: 14px; }
|
|
421
|
+
}
|
|
@@ -16,11 +16,7 @@
|
|
|
16
16
|
--ub-head-weight:700;--ub-head-case:uppercase;--ub-head-track:0.005em;
|
|
17
17
|
--ub-r-card:var(--radius-lg);--ub-r-btn:var(--radius-pill);--ub-r-tile:var(--radius-lg);--ub-r-hero:0px;--ub-r-media:var(--radius-lg);
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
--ub-font-head:var(--font-sora);--ub-font-body:var(--font-inter);
|
|
21
|
-
--ub-head-weight:600;--ub-head-case:uppercase;--ub-head-track:0.02em;
|
|
22
|
-
--ub-r-card:var(--radius-lg);--ub-r-btn:var(--radius-md);--ub-r-tile:var(--radius-lg);--ub-r-hero:0px;--ub-r-media:var(--radius-lg);
|
|
23
|
-
}
|
|
19
|
+
/* cyber-monday-2 : jetons dans styles/ub/tech.css (variante blanche) */
|
|
24
20
|
[data-variant="noel-2"]{--bg:#0f1d17;--surface:#16271f;--tint-1:#1d3328;--tint-2:#2a1d1d;--tint-3:#2b2715;--tint-4:#1a2633;--ink:#f7f3e8;--ink-muted:#b5b39f;--border:#243a2f;--primary:#d4af37;--on-primary:#0f1d17;--accent:#c0392b;--on-accent:#ffffff;--sale:#e25c4b;--star:#d4af37;--success:#6fcf97;--hero-bg:#132a20;--hero-ink:#f7f3e8;--hero-muted:#c2c0ab;--band-bg:#7f1d1d;--band-ink:#f7f3e8;--bubble-bg:#d4af37;--bubble-ink:#0f1d17;--topbar-bg:#7f1d1d;--topbar-ink:#f7f3e8;--focus:#d4af37;
|
|
25
21
|
--ub-font-head:var(--font-jakarta);--ub-font-body:var(--font-inter);
|
|
26
22
|
--ub-head-weight:800;--ub-head-case:none;--ub-head-track:-0.02em;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"2-year warranty on tech"
|
|
6
6
|
],
|
|
7
7
|
"hero": {
|
|
8
|
-
"eyebrow": "Cyber Monday ·
|
|
8
|
+
"eyebrow": "Cyber Monday · 24 h",
|
|
9
9
|
"title": "24 hours to upgrade your setup",
|
|
10
10
|
"highlight": "upgrade",
|
|
11
11
|
"sub": "Audio, gaming, accessories and gadgets up to {discount} off. Web-only deals, until {endDate}.",
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"Garantie 2 ans sur la tech"
|
|
6
6
|
],
|
|
7
7
|
"hero": {
|
|
8
|
-
"eyebrow": "Cyber Monday ·
|
|
8
|
+
"eyebrow": "Cyber Monday · 24 h",
|
|
9
9
|
"title": "24 heures pour upgrader votre setup",
|
|
10
10
|
"highlight": "upgrader",
|
|
11
11
|
"sub": "Audio, gaming, accessoires et gadgets jusqu'à -{discount}. Offres réservées au site, jusqu'au {endDate}.",
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "cyber-monday-2",
|
|
3
|
-
"name": "Cyber Monday ·
|
|
4
|
-
"reference": "variante, mise en page
|
|
5
|
-
"layout": "
|
|
3
|
+
"name": "Cyber Monday · Studio",
|
|
4
|
+
"reference": "variante blanche, mise en page cyber-monday",
|
|
5
|
+
"layout": "cyber-monday",
|
|
6
6
|
"fonts": {
|
|
7
7
|
"head": "sora",
|
|
8
8
|
"body": "inter"
|
|
9
|
-
}
|
|
9
|
+
},
|
|
10
|
+
"home": "tech"
|
|
10
11
|
}
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
],
|
|
7
7
|
"hero": {
|
|
8
8
|
"eyebrow": "New Year Sale",
|
|
9
|
-
"title": "New
|
|
10
|
-
"highlight": "
|
|
9
|
+
"title": "Happy New Year",
|
|
10
|
+
"highlight": "New Year",
|
|
11
11
|
"sub": "Start the year with up to {discount} off our best sellers. Ends {endDate}.",
|
|
12
|
-
"cta": "
|
|
12
|
+
"cta": "Shop the sale",
|
|
13
13
|
"cta2": "New arrivals",
|
|
14
14
|
"bubble": [
|
|
15
15
|
"Up to",
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
],
|
|
7
7
|
"hero": {
|
|
8
8
|
"eyebrow": "Soldes du Nouvel An",
|
|
9
|
-
"title": "
|
|
10
|
-
"highlight": "
|
|
9
|
+
"title": "Bonne Année",
|
|
10
|
+
"highlight": "Année",
|
|
11
11
|
"sub": "Commencez l'année avec jusqu'à -{discount} sur nos meilleures ventes. Jusqu'au {endDate}.",
|
|
12
12
|
"cta": "Voir les soldes",
|
|
13
13
|
"cta2": "Nouveautés",
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"Free 30-day returns"
|
|
6
6
|
],
|
|
7
7
|
"hero": {
|
|
8
|
-
"eyebrow": "
|
|
9
|
-
"title": "New
|
|
10
|
-
"highlight": "
|
|
8
|
+
"eyebrow": "Happy",
|
|
9
|
+
"title": "New Year",
|
|
10
|
+
"highlight": "Year",
|
|
11
11
|
"sub": "Fashion, party and wellness up to {discount} off. Start the year right, before {endDate}.",
|
|
12
|
-
"cta": "
|
|
13
|
-
"cta2": "
|
|
12
|
+
"cta": "Shop now",
|
|
13
|
+
"cta2": "Read more",
|
|
14
14
|
"bubble": [
|
|
15
15
|
"Up to",
|
|
16
16
|
"{discount}",
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"Retours gratuits 30 jours"
|
|
6
6
|
],
|
|
7
7
|
"hero": {
|
|
8
|
-
"eyebrow": "
|
|
9
|
-
"title": "
|
|
10
|
-
"highlight": "
|
|
8
|
+
"eyebrow": "Bonne année",
|
|
9
|
+
"title": "Nouvel An",
|
|
10
|
+
"highlight": "An",
|
|
11
11
|
"sub": "Mode, soirée et bien-être jusqu'à -{discount}. Commencez l'année du bon pied, avant le {endDate}.",
|
|
12
|
-
"cta": "
|
|
13
|
-
"cta2": "
|
|
12
|
+
"cta": "Voir les offres",
|
|
13
|
+
"cta2": "En savoir plus",
|
|
14
14
|
"bubble": [
|
|
15
15
|
"Jusqu'à",
|
|
16
16
|
"{discount}",
|