@knitli/docs-components 1.1.2 → 1.1.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/CHANGELOG.md +6 -0
- package/README.md +6 -6
- package/dist/assets/logos/Thread_vector_mono_aubergine.svg +41 -0
- package/dist/assets/logos/Thread_vector_mono_copper.svg +41 -0
- package/dist/assets/logos/Thread_vector_mono_parchment.svg +41 -0
- package/dist/assets/logos/codeweaver-primary.svg +103 -0
- package/dist/assets/logos/codeweaver-reverse.svg +103 -0
- package/dist/assets/logos/headline_logo.webp +0 -0
- package/dist/assets/logos/headline_logo_dark.png +0 -0
- package/dist/assets/logos/headline_logo_dark.webp +0 -0
- package/dist/assets/logos/index.d.ts +36 -0
- package/dist/assets/logos/index.d.ts.map +1 -0
- package/dist/assets/logos/index.js +27 -0
- package/dist/assets/logos/knitli_logo.svg +143 -0
- package/dist/assets/logos/knitli_wordmark.svg +118 -0
- package/dist/assets/logos/recoco-med.webp +0 -0
- package/dist/assets/logos/recoco-sm.webp +0 -0
- package/dist/assets/logos/recoco-xl.webp +0 -0
- package/dist/assets/styles/codeweaver-theme.css +570 -0
- package/dist/assets/styles/global.css +166 -0
- package/dist/assets/styles/index.d.ts +15 -0
- package/dist/assets/styles/index.d.ts.map +1 -0
- package/dist/assets/styles/index.js +14 -0
- package/dist/assets/styles/knitli-theme.css +215 -0
- package/dist/assets/styles/textures.css +668 -0
- package/dist/assets/styles/typography.css +262 -0
- package/dist/assets/styles/variables.css +238 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/styles/index.d.ts +2 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/index.js +2 -0
- package/dist/types/index.d.ts +35 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/package.json +49 -48
- package/scripts/copy-assets.mjs +37 -0
- package/scripts/copy-dist-assets.mjs +30 -0
- package/src/assets/asset-types.d.ts +29 -0
- package/src/assets/logos/Thread_vector_mono_aubergine.svg +41 -0
- package/src/assets/logos/Thread_vector_mono_copper.svg +41 -0
- package/src/assets/logos/Thread_vector_mono_parchment.svg +41 -0
- package/src/assets/logos/codeweaver-primary.svg +103 -0
- package/src/assets/logos/codeweaver-reverse.svg +103 -0
- package/src/assets/logos/headline_logo.webp +0 -0
- package/src/assets/logos/headline_logo_dark.png +0 -0
- package/src/assets/logos/headline_logo_dark.webp +0 -0
- package/src/assets/logos/index.ts +43 -0
- package/src/assets/logos/knitli_logo.svg +143 -0
- package/src/assets/logos/knitli_wordmark.svg +118 -0
- package/src/assets/logos/recoco-med.webp +0 -0
- package/src/assets/logos/recoco-sm.webp +0 -0
- package/src/assets/logos/recoco-xl.webp +0 -0
- package/src/assets/styles/codeweaver-theme.css +570 -0
- package/src/assets/styles/global.css +166 -0
- package/src/assets/styles/index.ts +26 -0
- package/src/assets/styles/knitli-theme.css +215 -0
- package/src/assets/styles/textures.css +668 -0
- package/src/assets/styles/typography.css +262 -0
- package/src/assets/styles/variables.css +238 -0
- package/src/components/DocsBreadcrumb.astro +74 -74
- package/src/components/Footer.astro +252 -216
- package/src/components/PageFrame.astro +118 -111
- package/src/index.d.ts +32 -0
- package/src/index.ts +46 -6
- package/src/styles/custom.css +73 -0
- package/src/styles/custom.d.css.ts +8 -0
- package/src/styles/index.ts +3 -0
- package/src/types/index.ts +2 -45
- package/src/assets/logos/README.md +0 -180
- package/src/styles/docs-theme.css +0 -682
- package/src/styles/variables.css +0 -200
|
@@ -0,0 +1,668 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SPDX-FileCopyrightText: 2025 Knitli Inc.
|
|
3
|
+
* SPDX-FileContributor: Adam Poulemanos <adam@knit.li>
|
|
4
|
+
*
|
|
5
|
+
* SPDX-License-Identifier: LicenseRef-KnitliProprietary
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/* ===================================================
|
|
9
|
+
TEXTURES - Knitli Landing Page
|
|
10
|
+
Literal Knit Patterns & Workshop Affordances
|
|
11
|
+
=================================================== */
|
|
12
|
+
|
|
13
|
+
/* === KNITLI TEXTURES === */
|
|
14
|
+
|
|
15
|
+
.knitli-section::before {
|
|
16
|
+
content: "";
|
|
17
|
+
position: absolute;
|
|
18
|
+
inset: 0;
|
|
19
|
+
background-image: var(--texture-knit-pattern);
|
|
20
|
+
background-size: 180px 180px;
|
|
21
|
+
background-repeat: repeat;
|
|
22
|
+
opacity: 0.12;
|
|
23
|
+
/* More visible texture for tactile feel */
|
|
24
|
+
mix-blend-mode: multiply;
|
|
25
|
+
pointer-events: none;
|
|
26
|
+
z-index: 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.knitli-section > * {
|
|
30
|
+
position: relative;
|
|
31
|
+
z-index: 1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Paper grain for depth */
|
|
35
|
+
.knitli-section.with-grain::after {
|
|
36
|
+
content: "";
|
|
37
|
+
position: absolute;
|
|
38
|
+
inset: 0;
|
|
39
|
+
background-image: var(--texture-noise);
|
|
40
|
+
background-size: 400px 400px;
|
|
41
|
+
opacity: 0.03;
|
|
42
|
+
pointer-events: none;
|
|
43
|
+
z-index: 0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* === CODEWEAVER TEXTURES === */
|
|
47
|
+
|
|
48
|
+
/* Primary blueprint grid - more pronounced for drafting table feel */
|
|
49
|
+
.codeweaver-section::before {
|
|
50
|
+
content: "";
|
|
51
|
+
position: absolute;
|
|
52
|
+
inset: 0;
|
|
53
|
+
/* Major grid lines */
|
|
54
|
+
background-image:
|
|
55
|
+
linear-gradient(to right, rgba(69, 91, 107, 0.08) 1px, transparent 1px),
|
|
56
|
+
linear-gradient(to bottom, rgba(69, 91, 107, 0.08) 1px, transparent 1px),
|
|
57
|
+
/* Minor grid lines */
|
|
58
|
+
linear-gradient(to right, rgba(69, 91, 107, 0.04) 1px, transparent 1px),
|
|
59
|
+
linear-gradient(to bottom, rgba(69, 91, 107, 0.04) 1px, transparent 1px),
|
|
60
|
+
/* Original texture for depth */
|
|
61
|
+
var(--texture-grid-pattern);
|
|
62
|
+
background-size:
|
|
63
|
+
80px 80px,
|
|
64
|
+
80px 80px,
|
|
65
|
+
20px 20px,
|
|
66
|
+
20px 20px,
|
|
67
|
+
40px 40px;
|
|
68
|
+
background-repeat: repeat;
|
|
69
|
+
opacity: 1;
|
|
70
|
+
pointer-events: none;
|
|
71
|
+
z-index: 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Blueprint corner marks - engineering paper aesthetic */
|
|
75
|
+
.codeweaver-section::after {
|
|
76
|
+
content: "";
|
|
77
|
+
position: absolute;
|
|
78
|
+
inset: 0;
|
|
79
|
+
/* CSS custom properties for gradient parameters */
|
|
80
|
+
--gradient-copper-opacity: 0.08;
|
|
81
|
+
--gradient-blue-opacity: 0.05;
|
|
82
|
+
--gradient-copper-ellipse-width: 100%;
|
|
83
|
+
--gradient-copper-ellipse-height: 70%;
|
|
84
|
+
--gradient-blue-ellipse-width: 80%;
|
|
85
|
+
--gradient-blue-ellipse-height: 60%;
|
|
86
|
+
--gradient-copper-stop: 50%;
|
|
87
|
+
--gradient-blue-stop: 40%;
|
|
88
|
+
|
|
89
|
+
/* Top-left corner mark */
|
|
90
|
+
background:
|
|
91
|
+
linear-gradient(
|
|
92
|
+
135deg,
|
|
93
|
+
transparent 20px,
|
|
94
|
+
rgba(181, 108, 48, 0.15) 20px,
|
|
95
|
+
rgba(181, 108, 48, 0.15) 22px,
|
|
96
|
+
transparent 22px
|
|
97
|
+
), /* Bottom-right corner mark */
|
|
98
|
+
linear-gradient(
|
|
99
|
+
-45deg,
|
|
100
|
+
transparent 20px,
|
|
101
|
+
rgba(69, 91, 107, 0.12) 20px,
|
|
102
|
+
rgba(69, 91, 107, 0.12) 22px,
|
|
103
|
+
transparent 22px
|
|
104
|
+
), /* Warm copper gradient wash from top-left */
|
|
105
|
+
radial-gradient(
|
|
106
|
+
ellipse var(--gradient-copper-ellipse-width)
|
|
107
|
+
var(--gradient-copper-ellipse-height) at 15% 10%,
|
|
108
|
+
rgba(181, 108, 48, var(--gradient-copper-opacity)) 0%,
|
|
109
|
+
transparent var(--gradient-copper-stop)
|
|
110
|
+
), /* Cool blue-gray gradient from bottom-right for balance */
|
|
111
|
+
radial-gradient(
|
|
112
|
+
ellipse var(--gradient-blue-ellipse-width)
|
|
113
|
+
var(--gradient-blue-ellipse-height) at 90% 85%,
|
|
114
|
+
rgba(69, 91, 107, var(--gradient-blue-opacity)) 0%,
|
|
115
|
+
transparent var(--gradient-blue-stop)
|
|
116
|
+
);
|
|
117
|
+
background-position:
|
|
118
|
+
top left,
|
|
119
|
+
bottom right,
|
|
120
|
+
top left,
|
|
121
|
+
bottom right;
|
|
122
|
+
background-repeat: no-repeat;
|
|
123
|
+
pointer-events: none;
|
|
124
|
+
z-index: 0;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* Mobile adjustments to reduce radial gradient visibility */
|
|
128
|
+
@media (max-width: 768px) {
|
|
129
|
+
.codeweaver-section::after {
|
|
130
|
+
/* Override only the varying parameters for mobile */
|
|
131
|
+
--gradient-copper-opacity: 0.02;
|
|
132
|
+
--gradient-blue-opacity: 0.02;
|
|
133
|
+
--gradient-copper-ellipse-width: 80%;
|
|
134
|
+
--gradient-copper-ellipse-height: 50%;
|
|
135
|
+
--gradient-blue-ellipse-width: 60%;
|
|
136
|
+
--gradient-blue-ellipse-height: 40%;
|
|
137
|
+
--gradient-copper-stop: 40%;
|
|
138
|
+
--gradient-blue-stop: 30%;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.codeweaver-section > * {
|
|
143
|
+
position: relative;
|
|
144
|
+
z-index: 1;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* === WORKBENCH DIVIDERS === */
|
|
148
|
+
|
|
149
|
+
.simple-divider {
|
|
150
|
+
height: 2px;
|
|
151
|
+
background: linear-gradient(
|
|
152
|
+
90deg,
|
|
153
|
+
transparent 0%,
|
|
154
|
+
var(--workshop-border) 2%,
|
|
155
|
+
var(--workshop-border) 98%,
|
|
156
|
+
transparent 100%
|
|
157
|
+
);
|
|
158
|
+
box-shadow: 0 1px 0 var(--workshop-bevel);
|
|
159
|
+
/* Beveled edge */
|
|
160
|
+
margin: var(--space-3xl) 0;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.simple-divider.knitli {
|
|
164
|
+
background: linear-gradient(
|
|
165
|
+
90deg,
|
|
166
|
+
transparent 0%,
|
|
167
|
+
var(--knitli-rust) 2%,
|
|
168
|
+
var(--knitli-rust) 98%,
|
|
169
|
+
transparent 100%
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.simple-divider.codeweaver {
|
|
174
|
+
background: linear-gradient(
|
|
175
|
+
90deg,
|
|
176
|
+
transparent 0%,
|
|
177
|
+
var(--cw-primary) 2%,
|
|
178
|
+
var(--cw-primary) 98%,
|
|
179
|
+
transparent 100%
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* === TOOL DRAWER LABELS === */
|
|
184
|
+
|
|
185
|
+
.workshop-label {
|
|
186
|
+
font-family: var(--font-bridge);
|
|
187
|
+
text-transform: uppercase;
|
|
188
|
+
letter-spacing: 0.1em;
|
|
189
|
+
font-size: var(--font-2xs);
|
|
190
|
+
font-weight: 700;
|
|
191
|
+
padding: 0.375rem 1rem;
|
|
192
|
+
background: var(--knitli-aubergine);
|
|
193
|
+
color: var(--knitli-parchment);
|
|
194
|
+
clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
|
|
195
|
+
/* Chamfered */
|
|
196
|
+
box-shadow:
|
|
197
|
+
0 2px 4px var(--workshop-shadow),
|
|
198
|
+
inset 0 -1px 0 rgba(0, 0, 0, 0.2);
|
|
199
|
+
display: inline-block;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.workshop-label.codeweaver {
|
|
203
|
+
background: var(--cw-blue-gray);
|
|
204
|
+
color: var(--cw-cream);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/* === CHAMFERED CORNERS === */
|
|
208
|
+
|
|
209
|
+
.card-workshop {
|
|
210
|
+
clip-path: polygon(
|
|
211
|
+
8px 0,
|
|
212
|
+
100% 0,
|
|
213
|
+
100% calc(100% - 8px),
|
|
214
|
+
calc(100% - 8px) 100%,
|
|
215
|
+
0 100%,
|
|
216
|
+
0 8px
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* Smaller chamfer for badges */
|
|
221
|
+
.badge-workshop {
|
|
222
|
+
clip-path: polygon(
|
|
223
|
+
4px 0,
|
|
224
|
+
100% 0,
|
|
225
|
+
100% calc(100% - 4px),
|
|
226
|
+
calc(100% - 4px) 100%,
|
|
227
|
+
0 100%,
|
|
228
|
+
0 4px
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/* === BEVELED EDGES === */
|
|
233
|
+
|
|
234
|
+
.bevel-top {
|
|
235
|
+
box-shadow: inset 0 1px 0 var(--workshop-bevel);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.bevel-bottom {
|
|
239
|
+
box-shadow: inset 0 -1px 0 var(--workshop-bevel);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.bevel-all {
|
|
243
|
+
box-shadow:
|
|
244
|
+
inset 0 1px 0 var(--workshop-bevel),
|
|
245
|
+
inset 0 -1px 0 rgba(0, 0, 0, 0.1);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/* === DEPTH & SHADOW === */
|
|
249
|
+
|
|
250
|
+
.workshop-depth-sm {
|
|
251
|
+
box-shadow: 0 2px 4px var(--workshop-shadow);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.workshop-depth-md {
|
|
255
|
+
box-shadow:
|
|
256
|
+
0 4px 8px var(--workshop-shadow),
|
|
257
|
+
inset 0 -1px 0 rgba(0, 0, 0, 0.1);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.workshop-depth-lg {
|
|
261
|
+
box-shadow:
|
|
262
|
+
0 8px 16px var(--workshop-shadow),
|
|
263
|
+
inset 0 -2px 0 rgba(0, 0, 0, 0.15);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/* === PRESSED EFFECT === */
|
|
267
|
+
|
|
268
|
+
.pressed {
|
|
269
|
+
box-shadow:
|
|
270
|
+
inset 0 2px 4px rgba(0, 0, 0, 0.1),
|
|
271
|
+
0 1px 2px var(--workshop-shadow);
|
|
272
|
+
transform: translateY(1px);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/* === TEXTURED BACKGROUNDS === */
|
|
276
|
+
|
|
277
|
+
.bg-knit {
|
|
278
|
+
background-image: var(--texture-knit-pattern);
|
|
279
|
+
background-size: 180px 180px;
|
|
280
|
+
background-repeat: repeat;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.bg-grid {
|
|
284
|
+
background-image: var(--texture-grid-pattern);
|
|
285
|
+
background-size: 40px 40px;
|
|
286
|
+
background-repeat: repeat;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.bg-noise {
|
|
290
|
+
background-image: var(--texture-noise);
|
|
291
|
+
background-size: 400px 400px;
|
|
292
|
+
background-repeat: repeat;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/* === TEXTURE OVERLAYS === */
|
|
296
|
+
|
|
297
|
+
.overlay-knit {
|
|
298
|
+
position: relative;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.overlay-knit::before {
|
|
302
|
+
content: "";
|
|
303
|
+
position: absolute;
|
|
304
|
+
inset: 0;
|
|
305
|
+
background-image: var(--texture-knit-pattern);
|
|
306
|
+
background-size: 180px 180px;
|
|
307
|
+
opacity: 0.07;
|
|
308
|
+
pointer-events: none;
|
|
309
|
+
z-index: 1;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.overlay-grid {
|
|
313
|
+
position: relative;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.overlay-grid::before {
|
|
317
|
+
content: "";
|
|
318
|
+
position: absolute;
|
|
319
|
+
inset: 0;
|
|
320
|
+
background-image:
|
|
321
|
+
linear-gradient(to right, rgba(69, 91, 107, 0.06) 1px, transparent 1px),
|
|
322
|
+
linear-gradient(to bottom, rgba(69, 91, 107, 0.06) 1px, transparent 1px),
|
|
323
|
+
var(--texture-grid-pattern);
|
|
324
|
+
background-size:
|
|
325
|
+
40px 40px,
|
|
326
|
+
40px 40px,
|
|
327
|
+
40px 40px;
|
|
328
|
+
opacity: 1;
|
|
329
|
+
pointer-events: none;
|
|
330
|
+
z-index: 1;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/* === BORDER STYLES === */
|
|
334
|
+
|
|
335
|
+
.border-workshop {
|
|
336
|
+
border: 2px solid var(--workshop-border);
|
|
337
|
+
box-shadow: 0 1px 0 var(--workshop-bevel);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
.border-knitli {
|
|
341
|
+
border: 2px solid var(--knitli-aubergine);
|
|
342
|
+
box-shadow: 0 1px 0 var(--workshop-bevel);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
.border-codeweaver {
|
|
346
|
+
border: 2px solid var(--cw-primary);
|
|
347
|
+
box-shadow: 0 1px 0 var(--workshop-bevel);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/* === MOBILE ADJUSTMENTS === */
|
|
351
|
+
|
|
352
|
+
@media (max-width: 768px) {
|
|
353
|
+
/* Reduce texture opacity on mobile for better readability */
|
|
354
|
+
.knitli-section::before {
|
|
355
|
+
opacity: 0.05;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.codeweaver-section::before {
|
|
359
|
+
opacity: 0.03;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/* Smaller chamfer on mobile */
|
|
363
|
+
.card-workshop {
|
|
364
|
+
clip-path: polygon(
|
|
365
|
+
6px 0,
|
|
366
|
+
100% 0,
|
|
367
|
+
100% calc(100% - 6px),
|
|
368
|
+
calc(100% - 6px) 100%,
|
|
369
|
+
0 100%,
|
|
370
|
+
0 6px
|
|
371
|
+
);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/* ===================================================
|
|
376
|
+
TORN PAPER & FABRIC EDGE TREATMENTS
|
|
377
|
+
Organic, handcrafted edge character
|
|
378
|
+
=================================================== */
|
|
379
|
+
|
|
380
|
+
/* === TORN PAPER EDGE (TOP) === */
|
|
381
|
+
.torn-edge-top {
|
|
382
|
+
position: relative;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
.torn-edge-top::before {
|
|
386
|
+
content: "";
|
|
387
|
+
position: absolute;
|
|
388
|
+
top: -1px;
|
|
389
|
+
left: 0;
|
|
390
|
+
right: 0;
|
|
391
|
+
height: 12px;
|
|
392
|
+
background: inherit;
|
|
393
|
+
mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1200 12' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3Cpath d='M0,12 L0,4 Q15,6 30,3 T60,5 T90,2 T120,6 T150,3 T180,5 T210,2 T240,4 T270,6 T300,3 T330,5 T360,2 T390,4 T420,6 T450,3 T480,5 T510,2 T540,4 T570,6 T600,3 T630,5 T660,2 T690,4 T720,6 T750,3 T780,5 T810,2 T840,4 T870,6 T900,3 T930,5 T960,2 T990,4 T1020,6 T1050,3 T1080,5 T1110,2 T1140,4 T1170,6 T1200,3 L1200,12 Z' fill='white'/%3E%3C/svg%3E");
|
|
394
|
+
mask-size: 100% 100%;
|
|
395
|
+
mask-repeat: no-repeat;
|
|
396
|
+
-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1200 12' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3Cpath d='M0,12 L0,4 Q15,6 30,3 T60,5 T90,2 T120,6 T150,3 T180,5 T210,2 T240,4 T270,6 T300,3 T330,5 T360,2 T390,4 T420,6 T450,3 T480,5 T510,2 T540,4 T570,6 T600,3 T630,5 T660,2 T690,4 T720,6 T750,3 T780,5 T810,2 T840,4 T870,6 T900,3 T930,5 T960,2 T990,4 T1020,6 T1050,3 T1080,5 T1110,2 T1140,4 T1170,6 T1200,3 L1200,12 Z' fill='white'/%3E%3C/svg%3E");
|
|
397
|
+
-webkit-mask-size: 100% 100%;
|
|
398
|
+
-webkit-mask-repeat: no-repeat;
|
|
399
|
+
z-index: 10;
|
|
400
|
+
pointer-events: none;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/* === TORN PAPER EDGE (BOTTOM) === */
|
|
404
|
+
.torn-edge-bottom {
|
|
405
|
+
position: relative;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
.torn-edge-bottom::after {
|
|
409
|
+
content: "";
|
|
410
|
+
position: absolute;
|
|
411
|
+
bottom: -1px;
|
|
412
|
+
left: 0;
|
|
413
|
+
right: 0;
|
|
414
|
+
height: 12px;
|
|
415
|
+
background: inherit;
|
|
416
|
+
mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1200 12' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L0,8 Q15,6 30,9 T60,7 T90,10 T120,6 T150,9 T180,7 T210,10 T240,8 T270,6 T300,9 T330,7 T360,10 T390,8 T420,6 T450,9 T480,7 T510,10 T540,8 T570,6 T600,9 T630,7 T660,10 T690,8 T720,6 T750,9 T780,7 T810,10 T840,8 T870,6 T900,9 T930,7 T960,10 T990,8 T1020,6 T1050,9 T1080,7 T1110,10 T1140,8 T1170,6 T1200,9 L1200,0 Z' fill='white'/%3E%3C/svg%3E");
|
|
417
|
+
mask-size: 100% 100%;
|
|
418
|
+
mask-repeat: no-repeat;
|
|
419
|
+
-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1200 12' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L0,8 Q15,6 30,9 T60,7 T90,10 T120,6 T150,9 T180,7 T210,10 T240,8 T270,6 T300,9 T330,7 T360,10 T390,8 T420,6 T450,9 T480,7 T510,10 T540,8 T570,6 T600,9 T630,7 T660,10 T690,8 T720,6 T750,9 T780,7 T810,10 T840,8 T870,6 T900,9 T930,7 T960,10 T990,8 T1020,6 T1050,9 T1080,7 T1110,10 T1140,8 T1170,6 T1200,9 L1200,0 Z' fill='white'/%3E%3C/svg%3E");
|
|
420
|
+
-webkit-mask-size: 100% 100%;
|
|
421
|
+
-webkit-mask-repeat: no-repeat;
|
|
422
|
+
z-index: 10;
|
|
423
|
+
pointer-events: none;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
/* === FABRIC FRAYED EDGE (HORIZONTAL) === */
|
|
427
|
+
.frayed-edge-top {
|
|
428
|
+
position: relative;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
.frayed-edge-top::before {
|
|
432
|
+
content: "";
|
|
433
|
+
position: absolute;
|
|
434
|
+
top: -2px;
|
|
435
|
+
left: 0;
|
|
436
|
+
right: 0;
|
|
437
|
+
height: 8px;
|
|
438
|
+
background: repeating-linear-gradient(
|
|
439
|
+
90deg,
|
|
440
|
+
transparent 0px,
|
|
441
|
+
transparent 3px,
|
|
442
|
+
currentColor 3px,
|
|
443
|
+
currentColor 4px,
|
|
444
|
+
transparent 4px,
|
|
445
|
+
transparent 8px
|
|
446
|
+
);
|
|
447
|
+
opacity: 0.15;
|
|
448
|
+
mask-image: linear-gradient(to bottom, black 0%, transparent 100%);
|
|
449
|
+
-webkit-mask-image: linear-gradient(to bottom, black 0%, transparent 100%);
|
|
450
|
+
z-index: 5;
|
|
451
|
+
pointer-events: none;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
.frayed-edge-bottom {
|
|
455
|
+
position: relative;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
.frayed-edge-bottom::after {
|
|
459
|
+
content: "";
|
|
460
|
+
position: absolute;
|
|
461
|
+
bottom: -2px;
|
|
462
|
+
left: 0;
|
|
463
|
+
right: 0;
|
|
464
|
+
height: 8px;
|
|
465
|
+
background: repeating-linear-gradient(
|
|
466
|
+
90deg,
|
|
467
|
+
transparent 0px,
|
|
468
|
+
transparent 3px,
|
|
469
|
+
currentColor 3px,
|
|
470
|
+
currentColor 4px,
|
|
471
|
+
transparent 4px,
|
|
472
|
+
transparent 8px
|
|
473
|
+
);
|
|
474
|
+
opacity: 0.15;
|
|
475
|
+
mask-image: linear-gradient(to top, black 0%, transparent 100%);
|
|
476
|
+
-webkit-mask-image: linear-gradient(to top, black 0%, transparent 100%);
|
|
477
|
+
z-index: 5;
|
|
478
|
+
pointer-events: none;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
/* === STITCHED BORDER EDGE === */
|
|
482
|
+
.stitched-edge {
|
|
483
|
+
position: relative;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
.stitched-edge::before {
|
|
487
|
+
content: "";
|
|
488
|
+
position: absolute;
|
|
489
|
+
top: 12px;
|
|
490
|
+
left: 24px;
|
|
491
|
+
right: 24px;
|
|
492
|
+
height: 0;
|
|
493
|
+
border-top: 2px dashed var(--knitli-rust);
|
|
494
|
+
opacity: 0.4;
|
|
495
|
+
z-index: 5;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
.stitched-edge::after {
|
|
499
|
+
content: "";
|
|
500
|
+
position: absolute;
|
|
501
|
+
bottom: 12px;
|
|
502
|
+
left: 24px;
|
|
503
|
+
right: 24px;
|
|
504
|
+
height: 0;
|
|
505
|
+
border-top: 2px dashed var(--knitli-rust);
|
|
506
|
+
opacity: 0.4;
|
|
507
|
+
z-index: 5;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
/* CodeWeaver variant */
|
|
511
|
+
.stitched-edge.codeweaver::before,
|
|
512
|
+
.stitched-edge.codeweaver::after {
|
|
513
|
+
border-color: var(--cw-primary);
|
|
514
|
+
opacity: 0.25;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
/* === FABRIC FOLD SHADOW === */
|
|
518
|
+
.fabric-crease {
|
|
519
|
+
position: relative;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
.fabric-crease::before {
|
|
523
|
+
content: "";
|
|
524
|
+
position: absolute;
|
|
525
|
+
top: 0;
|
|
526
|
+
bottom: 0;
|
|
527
|
+
left: 50%;
|
|
528
|
+
width: 1px;
|
|
529
|
+
background: linear-gradient(
|
|
530
|
+
to bottom,
|
|
531
|
+
transparent 0%,
|
|
532
|
+
rgba(0, 0, 0, 0.08) 20%,
|
|
533
|
+
rgba(0, 0, 0, 0.12) 50%,
|
|
534
|
+
rgba(0, 0, 0, 0.08) 80%,
|
|
535
|
+
transparent 100%
|
|
536
|
+
);
|
|
537
|
+
box-shadow:
|
|
538
|
+
-1px 0 0 rgba(255, 255, 255, 0.5),
|
|
539
|
+
1px 0 0 rgba(0, 0, 0, 0.03);
|
|
540
|
+
z-index: 2;
|
|
541
|
+
pointer-events: none;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
/* === HANDMADE PAPER CORNER === */
|
|
545
|
+
.paper-corner {
|
|
546
|
+
position: relative;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
.paper-corner::after {
|
|
550
|
+
content: "";
|
|
551
|
+
position: absolute;
|
|
552
|
+
top: 0;
|
|
553
|
+
right: 0;
|
|
554
|
+
width: 24px;
|
|
555
|
+
height: 24px;
|
|
556
|
+
background: linear-gradient(
|
|
557
|
+
135deg,
|
|
558
|
+
transparent 50%,
|
|
559
|
+
rgba(0, 0, 0, 0.03) 50%,
|
|
560
|
+
rgba(0, 0, 0, 0.06) 100%
|
|
561
|
+
);
|
|
562
|
+
z-index: 3;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
/* Folded corner effect */
|
|
566
|
+
.paper-fold {
|
|
567
|
+
position: relative;
|
|
568
|
+
overflow: hidden;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
.paper-fold::before {
|
|
572
|
+
content: "";
|
|
573
|
+
position: absolute;
|
|
574
|
+
top: -12px;
|
|
575
|
+
right: -12px;
|
|
576
|
+
width: 24px;
|
|
577
|
+
height: 24px;
|
|
578
|
+
background: var(--knitli-parchment);
|
|
579
|
+
box-shadow:
|
|
580
|
+
-2px 2px 4px rgba(0, 0, 0, 0.1),
|
|
581
|
+
inset 1px -1px 0 rgba(0, 0, 0, 0.05);
|
|
582
|
+
transform: rotate(45deg);
|
|
583
|
+
z-index: 10;
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
.paper-fold.codeweaver::before {
|
|
587
|
+
background: var(--cw-cream);
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
/* === WOVEN BORDER === */
|
|
591
|
+
.woven-border {
|
|
592
|
+
position: relative;
|
|
593
|
+
border: none;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
.woven-border::before {
|
|
597
|
+
content: "";
|
|
598
|
+
position: absolute;
|
|
599
|
+
inset: 0;
|
|
600
|
+
border: 3px solid transparent;
|
|
601
|
+
background:
|
|
602
|
+
repeating-linear-gradient(
|
|
603
|
+
90deg,
|
|
604
|
+
var(--knitli-rust) 0px,
|
|
605
|
+
var(--knitli-rust) 8px,
|
|
606
|
+
transparent 8px,
|
|
607
|
+
transparent 12px
|
|
608
|
+
)
|
|
609
|
+
top / 100% 3px no-repeat,
|
|
610
|
+
repeating-linear-gradient(
|
|
611
|
+
90deg,
|
|
612
|
+
var(--knitli-rust) 0px,
|
|
613
|
+
var(--knitli-rust) 8px,
|
|
614
|
+
transparent 8px,
|
|
615
|
+
transparent 12px
|
|
616
|
+
)
|
|
617
|
+
bottom / 100% 3px no-repeat,
|
|
618
|
+
repeating-linear-gradient(
|
|
619
|
+
0deg,
|
|
620
|
+
var(--knitli-rust) 0px,
|
|
621
|
+
var(--knitli-rust) 8px,
|
|
622
|
+
transparent 8px,
|
|
623
|
+
transparent 12px
|
|
624
|
+
)
|
|
625
|
+
left / 3px 100% no-repeat,
|
|
626
|
+
repeating-linear-gradient(
|
|
627
|
+
0deg,
|
|
628
|
+
var(--knitli-rust) 0px,
|
|
629
|
+
var(--knitli-rust) 8px,
|
|
630
|
+
transparent 8px,
|
|
631
|
+
transparent 12px
|
|
632
|
+
)
|
|
633
|
+
right / 3px 100% no-repeat;
|
|
634
|
+
opacity: 0.4;
|
|
635
|
+
pointer-events: none;
|
|
636
|
+
z-index: 5;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
/* === SECTION EDGE SHADOW (BETWEEN SECTIONS) === */
|
|
640
|
+
.section-shadow-bottom {
|
|
641
|
+
box-shadow:
|
|
642
|
+
inset 0 -20px 30px -20px rgba(0, 0, 0, 0.08),
|
|
643
|
+
0 4px 12px -4px rgba(0, 0, 0, 0.06);
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
.section-shadow-top {
|
|
647
|
+
box-shadow: inset 0 20px 30px -20px rgba(0, 0, 0, 0.06);
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
/* === MOBILE ADJUSTMENTS FOR EDGES === */
|
|
651
|
+
@media (max-width: 768px) {
|
|
652
|
+
.torn-edge-top::before,
|
|
653
|
+
.torn-edge-bottom::after {
|
|
654
|
+
height: 8px;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
.frayed-edge-top::before,
|
|
658
|
+
.frayed-edge-bottom::after {
|
|
659
|
+
height: 5px;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
.paper-fold::before {
|
|
663
|
+
width: 16px;
|
|
664
|
+
height: 16px;
|
|
665
|
+
top: -8px;
|
|
666
|
+
right: -8px;
|
|
667
|
+
}
|
|
668
|
+
}
|