@fluid-theme/core 0.4.3
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/AGENTS.md +32 -0
- package/CHANGELOG.md +159 -0
- package/CLAUDE.md +104 -0
- package/GEMINI.md +48 -0
- package/LICENSE +21 -0
- package/README.md +253 -0
- package/dist/fluid.min.css +2 -0
- package/fluid-agent-kit/README.md +57 -0
- package/fluid-agent-kit/skills/accessibility.md +41 -0
- package/fluid-agent-kit/skills/css-conventions.md +51 -0
- package/fluid-agent-kit/skills/image-optimization.md +115 -0
- package/fluid-agent-kit/skills/ux-rules.md +43 -0
- package/package.json +68 -0
- package/src/animations/scroll-reveal.css +224 -0
- package/src/components/accordion.css +250 -0
- package/src/components/alert.css +453 -0
- package/src/components/avatar.css +192 -0
- package/src/components/badge.css +182 -0
- package/src/components/button.css +387 -0
- package/src/components/card.css +650 -0
- package/src/components/chip.css +143 -0
- package/src/components/dropdown.css +335 -0
- package/src/components/empty-state.css +105 -0
- package/src/components/form.css +508 -0
- package/src/components/hero.css +293 -0
- package/src/components/indicator.css +455 -0
- package/src/components/loading.css +274 -0
- package/src/components/modal.css +364 -0
- package/src/components/nav.css +726 -0
- package/src/components/scroll-progress.css +104 -0
- package/src/components/search-input.css +125 -0
- package/src/components/settings-panel.css +603 -0
- package/src/components/step-indicator.css +188 -0
- package/src/components/table.css +350 -0
- package/src/components/themed-images.css +229 -0
- package/src/components/tooltip.css +247 -0
- package/src/components/version-badge.css +70 -0
- package/src/core/base.css +884 -0
- package/src/core/reset.css +159 -0
- package/src/core/tokens.css +2416 -0
- package/src/fluid.css +242 -0
- package/src/layouts/positioning.css +626 -0
- package/src/sections/cta.css +210 -0
- package/src/sections/features.css +356 -0
- package/src/sections/footer.css +283 -0
- package/src/sections/stats.css +234 -0
- package/src/sections/team.css +181 -0
- package/src/sections/testimonials.css +251 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluid Framework - Testimonial Sections
|
|
3
|
+
* @layer components
|
|
4
|
+
*
|
|
5
|
+
* Social proof sections with customer quotes, avatars, and logo walls.
|
|
6
|
+
* Three layout variants via data-type attribute.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* <!-- Single centered (default) -->
|
|
10
|
+
* <section class="testimonials">
|
|
11
|
+
* <header class="testimonials__header">
|
|
12
|
+
* <h2>What people say</h2>
|
|
13
|
+
* </header>
|
|
14
|
+
* <figure class="testimonial">
|
|
15
|
+
* <blockquote class="testimonial__quote" cite="https://...">
|
|
16
|
+
* <p>"This changed everything for our team."</p>
|
|
17
|
+
* </blockquote>
|
|
18
|
+
* <figcaption class="testimonial__author">
|
|
19
|
+
* <img class="avatar" src="..." alt="Jane Doe">
|
|
20
|
+
* <div>
|
|
21
|
+
* <cite class="testimonial__name">Jane Doe</cite>
|
|
22
|
+
* <span class="testimonial__role">CEO, Acme Corp</span>
|
|
23
|
+
* </div>
|
|
24
|
+
* </figcaption>
|
|
25
|
+
* </figure>
|
|
26
|
+
* </section>
|
|
27
|
+
*
|
|
28
|
+
* <!-- Grid -->
|
|
29
|
+
* <section class="testimonials" data-type="grid">
|
|
30
|
+
* <div class="testimonials__grid">
|
|
31
|
+
* <figure class="testimonial">...</figure>
|
|
32
|
+
* <figure class="testimonial">...</figure>
|
|
33
|
+
* <figure class="testimonial">...</figure>
|
|
34
|
+
* </div>
|
|
35
|
+
* </section>
|
|
36
|
+
*
|
|
37
|
+
* <!-- Logo wall -->
|
|
38
|
+
* <section class="testimonials" data-type="logos">
|
|
39
|
+
* <header class="testimonials__header">
|
|
40
|
+
* <p>Trusted by leading companies</p>
|
|
41
|
+
* </header>
|
|
42
|
+
* <div class="testimonials__logos">
|
|
43
|
+
* <img src="logo1.svg" alt="Company 1">
|
|
44
|
+
* <img src="logo2.svg" alt="Company 2">
|
|
45
|
+
* </div>
|
|
46
|
+
* </section>
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
@layer components {
|
|
50
|
+
|
|
51
|
+
/* ========================================
|
|
52
|
+
BASE TESTIMONIALS SECTION
|
|
53
|
+
======================================== */
|
|
54
|
+
|
|
55
|
+
.testimonials {
|
|
56
|
+
padding-block: var(--space-16);
|
|
57
|
+
padding-inline: var(--space-5);
|
|
58
|
+
max-inline-size: var(--container-xl);
|
|
59
|
+
margin-inline: auto;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.testimonials__header {
|
|
63
|
+
text-align: center;
|
|
64
|
+
max-inline-size: var(--container-md);
|
|
65
|
+
margin-inline: auto;
|
|
66
|
+
margin-block-end: var(--space-12);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.testimonials__header h2 {
|
|
70
|
+
font-size: var(--font-size-3xl);
|
|
71
|
+
font-weight: var(--weight-bold);
|
|
72
|
+
color: var(--color-text);
|
|
73
|
+
margin-block-end: var(--space-3);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.testimonials__header p {
|
|
77
|
+
font-size: var(--font-size-lg);
|
|
78
|
+
color: var(--color-text-muted);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
/* ========================================
|
|
83
|
+
SINGLE CENTERED (default)
|
|
84
|
+
Large featured testimonial
|
|
85
|
+
======================================== */
|
|
86
|
+
|
|
87
|
+
.testimonial {
|
|
88
|
+
--_testi-bg: var(--color-surface);
|
|
89
|
+
--_testi-border: var(--color-border-subtle);
|
|
90
|
+
--_testi-padding: var(--space-8);
|
|
91
|
+
--_testi-radius: var(--radius-xl);
|
|
92
|
+
|
|
93
|
+
display: flex;
|
|
94
|
+
flex-direction: column;
|
|
95
|
+
align-items: center;
|
|
96
|
+
gap: var(--space-6);
|
|
97
|
+
padding: var(--_testi-padding);
|
|
98
|
+
background-color: var(--_testi-bg);
|
|
99
|
+
border: var(--border-width) solid var(--_testi-border);
|
|
100
|
+
border-radius: var(--_testi-radius);
|
|
101
|
+
margin: 0;
|
|
102
|
+
text-align: center;
|
|
103
|
+
position: relative;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* Decorative quote mark */
|
|
107
|
+
.testimonial::before {
|
|
108
|
+
content: "\201C";
|
|
109
|
+
position: absolute;
|
|
110
|
+
inset-block-start: var(--space-4);
|
|
111
|
+
inset-inline-start: var(--space-6);
|
|
112
|
+
font-size: var(--font-size-5xl);
|
|
113
|
+
line-height: 1;
|
|
114
|
+
color: color-mix(in oklch, var(--accent) 25%, transparent);
|
|
115
|
+
font-family: var(--font-serif, Georgia, serif);
|
|
116
|
+
pointer-events: none;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.testimonial__quote {
|
|
120
|
+
margin: 0;
|
|
121
|
+
padding: 0;
|
|
122
|
+
border: none;
|
|
123
|
+
max-inline-size: var(--container-prose);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.testimonial__quote p {
|
|
127
|
+
font-size: var(--font-size-lg);
|
|
128
|
+
font-style: italic;
|
|
129
|
+
line-height: var(--leading-relaxed);
|
|
130
|
+
color: var(--color-text);
|
|
131
|
+
margin: 0;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.testimonial__author {
|
|
135
|
+
display: flex;
|
|
136
|
+
align-items: center;
|
|
137
|
+
gap: var(--space-3);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.testimonial__author .avatar {
|
|
141
|
+
flex-shrink: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.testimonial__name {
|
|
145
|
+
display: block;
|
|
146
|
+
font-style: normal;
|
|
147
|
+
font-weight: var(--weight-semibold, 600);
|
|
148
|
+
color: var(--color-text);
|
|
149
|
+
font-size: var(--font-size-sm);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.testimonial__role {
|
|
153
|
+
display: block;
|
|
154
|
+
font-size: var(--font-size-xs);
|
|
155
|
+
color: var(--color-text-muted);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* Single centered: wider and more spacious */
|
|
159
|
+
.testimonials:not([data-type]) .testimonial {
|
|
160
|
+
max-inline-size: var(--container-md);
|
|
161
|
+
margin-inline: auto;
|
|
162
|
+
padding: var(--space-10);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.testimonials:not([data-type]) .testimonial__quote p {
|
|
166
|
+
font-size: var(--font-size-xl);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
/* ========================================
|
|
171
|
+
GRID
|
|
172
|
+
Multiple testimonials in card grid
|
|
173
|
+
======================================== */
|
|
174
|
+
|
|
175
|
+
.testimonials__grid {
|
|
176
|
+
display: grid;
|
|
177
|
+
gap: var(--space-6);
|
|
178
|
+
grid-template-columns: repeat(
|
|
179
|
+
auto-fit,
|
|
180
|
+
minmax(min(100%, 18rem), 1fr)
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.testimonials[data-type="grid"] .testimonial {
|
|
185
|
+
text-align: start;
|
|
186
|
+
align-items: flex-start;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.testimonials[data-type="grid"] .testimonial::before {
|
|
190
|
+
font-size: var(--font-size-4xl);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.testimonials[data-type="grid"] .testimonial__quote p {
|
|
194
|
+
font-size: var(--font-size-base);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
/* ========================================
|
|
199
|
+
LOGO WALL
|
|
200
|
+
Client/partner logos in a responsive row
|
|
201
|
+
======================================== */
|
|
202
|
+
|
|
203
|
+
.testimonials__logos {
|
|
204
|
+
display: flex;
|
|
205
|
+
flex-wrap: wrap;
|
|
206
|
+
justify-content: center;
|
|
207
|
+
align-items: center;
|
|
208
|
+
gap: var(--space-10);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.testimonials__logos img,
|
|
212
|
+
.testimonials__logos svg {
|
|
213
|
+
block-size: 2.5rem;
|
|
214
|
+
inline-size: auto;
|
|
215
|
+
object-fit: contain;
|
|
216
|
+
opacity: 0.6;
|
|
217
|
+
filter: grayscale(100%);
|
|
218
|
+
transition:
|
|
219
|
+
opacity var(--duration-normal) var(--ease-fluid),
|
|
220
|
+
filter var(--duration-normal) var(--ease-fluid);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.testimonials__logos img:hover,
|
|
224
|
+
.testimonials__logos svg:hover {
|
|
225
|
+
opacity: 1;
|
|
226
|
+
filter: grayscale(0%);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.testimonials[data-type="logos"] .testimonials__header {
|
|
230
|
+
margin-block-end: var(--space-8);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.testimonials[data-type="logos"] .testimonials__header p {
|
|
234
|
+
font-size: var(--font-size-sm);
|
|
235
|
+
text-transform: uppercase;
|
|
236
|
+
letter-spacing: var(--tracking-wider);
|
|
237
|
+
color: var(--color-text-muted);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
/* ========================================
|
|
242
|
+
ACCESSIBILITY
|
|
243
|
+
======================================== */
|
|
244
|
+
|
|
245
|
+
@media (prefers-reduced-motion: reduce) {
|
|
246
|
+
.testimonials__logos img,
|
|
247
|
+
.testimonials__logos svg {
|
|
248
|
+
transition: none;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|