@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,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluid Framework - Modern CSS Reset
|
|
3
|
+
* @layer reset
|
|
4
|
+
*
|
|
5
|
+
* A minimal, modern reset that establishes sensible defaults
|
|
6
|
+
* without fighting against you. Uses :where() for zero specificity
|
|
7
|
+
* where appropriate, allowing easy overrides.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
@layer reset {
|
|
11
|
+
/* Box model normalization - the foundation of everything */
|
|
12
|
+
*,
|
|
13
|
+
*::before,
|
|
14
|
+
*::after {
|
|
15
|
+
box-sizing: border-box;
|
|
16
|
+
margin: 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Document setup */
|
|
20
|
+
:where(html) {
|
|
21
|
+
block-size: 100%;
|
|
22
|
+
color-scheme: light dark;
|
|
23
|
+
hanging-punctuation: first last;
|
|
24
|
+
-webkit-text-size-adjust: 100%;
|
|
25
|
+
text-size-adjust: 100%;
|
|
26
|
+
/* Prevent font size inflation on mobile */
|
|
27
|
+
-moz-text-size-adjust: 100%;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Body defaults - the canvas */
|
|
31
|
+
:where(body) {
|
|
32
|
+
min-block-size: 100%;
|
|
33
|
+
line-height: 1.6;
|
|
34
|
+
font-family: var(--font-system, system-ui, -apple-system, sans-serif);
|
|
35
|
+
-webkit-font-smoothing: antialiased;
|
|
36
|
+
-moz-osx-font-smoothing: grayscale;
|
|
37
|
+
text-rendering: optimizeLegibility;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Responsive media - images flow naturally */
|
|
41
|
+
:where(img, picture, video, canvas, svg) {
|
|
42
|
+
display: block;
|
|
43
|
+
max-inline-size: 100%;
|
|
44
|
+
block-size: auto;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Form elements inherit typography */
|
|
48
|
+
:where(input, button, textarea, select) {
|
|
49
|
+
font: inherit;
|
|
50
|
+
color: inherit;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Prevent textarea from breaking layout */
|
|
54
|
+
:where(textarea) {
|
|
55
|
+
resize: vertical;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Text overflow prevention */
|
|
59
|
+
:where(p, h1, h2, h3, h4, h5, h6, li, figcaption) {
|
|
60
|
+
overflow-wrap: break-word;
|
|
61
|
+
hyphens: auto;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Headings - tighter line height for larger text */
|
|
65
|
+
:where(h1, h2, h3, h4, h5, h6) {
|
|
66
|
+
line-height: 1.2;
|
|
67
|
+
text-wrap: balance;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Paragraphs - optimal reading width when in containers */
|
|
71
|
+
:where(p) {
|
|
72
|
+
text-wrap: pretty;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Remove list styles when role is navigation */
|
|
76
|
+
:where(ul, ol)[role="list"],
|
|
77
|
+
:where(ul, ol)[role="navigation"] {
|
|
78
|
+
list-style: none;
|
|
79
|
+
padding: 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* Links - subtle offset for better readability */
|
|
83
|
+
:where(a) {
|
|
84
|
+
color: inherit;
|
|
85
|
+
text-underline-offset: 0.2em;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Anchor links within same page */
|
|
89
|
+
:where(a[href^="#"]) {
|
|
90
|
+
scroll-margin-block-start: 2rem;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Focus styles - visible only for keyboard navigation */
|
|
94
|
+
:focus-visible {
|
|
95
|
+
outline: 2px solid var(--color-focus, currentColor);
|
|
96
|
+
outline-offset: 3px;
|
|
97
|
+
border-radius: 2px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
:focus:not(:focus-visible) {
|
|
101
|
+
outline: 2px solid transparent;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Tables - collapse borders for cleaner look */
|
|
105
|
+
:where(table) {
|
|
106
|
+
border-collapse: collapse;
|
|
107
|
+
border-spacing: 0;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* Fieldset - remove default styling */
|
|
111
|
+
:where(fieldset) {
|
|
112
|
+
border: none;
|
|
113
|
+
padding: 0;
|
|
114
|
+
margin: 0;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* Legend - reset positioning */
|
|
118
|
+
:where(legend) {
|
|
119
|
+
padding: 0;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* Summary - cursor indicates interactivity */
|
|
123
|
+
:where(summary) {
|
|
124
|
+
cursor: pointer;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* Dialog - remove default styling */
|
|
128
|
+
:where(dialog) {
|
|
129
|
+
padding: 0;
|
|
130
|
+
border: none;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* Remove animations for reduced motion preference */
|
|
134
|
+
@media (prefers-reduced-motion: reduce) {
|
|
135
|
+
*,
|
|
136
|
+
*::before,
|
|
137
|
+
*::after {
|
|
138
|
+
animation-duration: 0.01ms !important;
|
|
139
|
+
animation-iteration-count: 1 !important;
|
|
140
|
+
transition-duration: 0.01ms !important;
|
|
141
|
+
scroll-behavior: auto !important;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Smooth scrolling for non-reduced-motion users */
|
|
146
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
147
|
+
:where(html:focus-within) {
|
|
148
|
+
scroll-behavior: smooth;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/* Print styles - clean output */
|
|
153
|
+
@media print {
|
|
154
|
+
:where(body) {
|
|
155
|
+
background: white;
|
|
156
|
+
color: black;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|