canny-ui 1.0.0 → 3.0.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/dist/canny-ui.css DELETED
@@ -1,887 +0,0 @@
1
- @charset "UTF-8";
2
- @import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght,SOFT@0,9..144,300..900,0..100;1,9..144,300..900,0..100&family=Geist+Mono:wght@300..700&family=Geist:wght@300..700&display=swap");
3
- :root {
4
- --bg-base: #f5f2ea;
5
- --bg-surface-low: #fbfaf6;
6
- --bg-surface-lowest: #ffffff;
7
- --bg-surface-edge: #ebe6d8;
8
- --text-primary: #10131a;
9
- --text-secondary: #2a2f3a;
10
- --text-muted: #6b7180;
11
- --text-on-solid: #fbfaf6;
12
- --text-accent: #0050b3;
13
- --color-primary: #0066ff;
14
- --color-primary-dark: #003a7a;
15
- --color-primary-soft: #88b3ff;
16
- --color-danger: #c2410c;
17
- --color-warning: #a16207;
18
- --color-success: #3f6212;
19
- --color-info: #475569;
20
- --hairline-color: rgba(16, 19, 26, 0.12);
21
- --hairline-strong: rgba(16, 19, 26, 0.24);
22
- --shadow-ambient: 0 6px 32px -8px rgba(0, 102, 255, 0.22);
23
- --shadow-card: 0 1px 2px rgba(16, 19, 26, 0.04),
24
- 0 8px 24px -12px rgba(16, 19, 26, 0.12);
25
- --shadow-lift: 0 2px 4px rgba(16, 19, 26, 0.06),
26
- 0 24px 48px -16px rgba(16, 19, 26, 0.18);
27
- --ease-precise: cubic-bezier(0.2, 0.8, 0.2, 1);
28
- --transition-fast: 120ms var(--ease-precise);
29
- --transition-base: 200ms var(--ease-precise);
30
- --transition-slow: 320ms var(--ease-precise);
31
- --radius-xs: 2px;
32
- --radius-sm: 4px;
33
- --radius-md: 6px;
34
- --radius-lg: 10px;
35
- --font-display: 'Fraunces', 'Newsreader', 'Iowan Old Style', Georgia, serif;
36
- --font-body: 'Geist', ui-sans-serif, -apple-system, 'Segoe UI', sans-serif;
37
- --font-mono: 'Geist Mono', 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
38
- --text-xs: 0.75rem;
39
- --text-sm: 0.875rem;
40
- --text-base: 1rem;
41
- --text-lg: 1.125rem;
42
- --text-xl: 1.375rem;
43
- --text-2xl: 1.875rem;
44
- --text-3xl: 2.75rem;
45
- --text-4xl: 4rem;
46
- --track-tight: -0.02em;
47
- --track-normal: 0;
48
- --track-wide: 0.08em;
49
- --track-wider: 0.14em;
50
- }
51
-
52
- @media (prefers-color-scheme: dark) {
53
- :root {
54
- --bg-base: #0b0d12;
55
- --bg-surface-low: #131620;
56
- --bg-surface-lowest: #1c2030;
57
- --bg-surface-edge: #262b3d;
58
- --text-primary: #fbfaf6;
59
- --text-secondary: #ebe6d8;
60
- --text-muted: #9aa0ae;
61
- --text-on-solid: #0b0d12;
62
- --text-accent: #4d8cff;
63
- --color-primary: #4d8cff;
64
- --color-primary-dark: #0050b3;
65
- --color-primary-soft: #003a7a;
66
- --color-danger: #ea580c;
67
- --color-warning: #ca8a04;
68
- --color-success: #65a30d;
69
- --color-info: #64748b;
70
- --hairline-color: rgba(251, 250, 246, 0.10);
71
- --hairline-strong: rgba(251, 250, 246, 0.22);
72
- --shadow-ambient: 0 8px 40px -8px rgba(77, 140, 255, 0.35);
73
- --shadow-card: 0 1px 0 rgba(251, 250, 246, 0.04),
74
- 0 16px 40px -16px rgba(0, 0, 0, 0.6);
75
- --shadow-lift: 0 24px 48px -16px rgba(0, 0, 0, 0.7);
76
- }
77
- }
78
- .cny-dark {
79
- --bg-base: #0b0d12;
80
- --bg-surface-low: #131620;
81
- --bg-surface-lowest: #1c2030;
82
- --bg-surface-edge: #262b3d;
83
- --text-primary: #fbfaf6;
84
- --text-secondary: #ebe6d8;
85
- --text-muted: #9aa0ae;
86
- --text-on-solid: #0b0d12;
87
- --text-accent: #4d8cff;
88
- --color-primary: #4d8cff;
89
- --color-primary-dark: #0050b3;
90
- --color-primary-soft: #003a7a;
91
- --color-danger: #ea580c;
92
- --color-warning: #ca8a04;
93
- --color-success: #65a30d;
94
- --color-info: #64748b;
95
- --hairline-color: rgba(251, 250, 246, 0.10);
96
- --hairline-strong: rgba(251, 250, 246, 0.22);
97
- --shadow-ambient: 0 8px 40px -8px rgba(77, 140, 255, 0.35);
98
- --shadow-card: 0 1px 0 rgba(251, 250, 246, 0.04),
99
- 0 16px 40px -16px rgba(0, 0, 0, 0.6);
100
- --shadow-lift: 0 24px 48px -16px rgba(0, 0, 0, 0.7);
101
- }
102
-
103
- *,
104
- *::before,
105
- *::after {
106
- box-sizing: border-box;
107
- }
108
-
109
- html,
110
- body {
111
- margin: 0;
112
- padding: 0;
113
- }
114
-
115
- body {
116
- background: var(--bg-base);
117
- color: var(--text-primary);
118
- }
119
-
120
- .cny-app {
121
- font-family: var(--font-body);
122
- font-size: var(--text-base);
123
- line-height: 1.55;
124
- color: var(--text-primary);
125
- font-feature-settings: "ss01", "cv11";
126
- -webkit-font-smoothing: antialiased;
127
- -moz-osx-font-smoothing: grayscale;
128
- text-rendering: optimizeLegibility;
129
- }
130
- .cny-app h1 {
131
- font-family: var(--font-display);
132
- font-size: var(--text-3xl);
133
- font-weight: 400;
134
- font-variation-settings: "opsz" 144, "SOFT" 20;
135
- letter-spacing: var(--track-tight);
136
- line-height: 1.02;
137
- margin: 0 0 24px;
138
- color: var(--text-primary);
139
- }
140
- .cny-app h2 {
141
- font-family: var(--font-display);
142
- font-size: var(--text-2xl);
143
- font-weight: 400;
144
- font-variation-settings: "opsz" 96, "SOFT" 40;
145
- letter-spacing: var(--track-tight);
146
- line-height: 1.12;
147
- margin: 0 0 16px;
148
- }
149
- .cny-app h3 {
150
- font-family: var(--font-body);
151
- font-size: var(--text-xl);
152
- font-weight: 500;
153
- letter-spacing: -0.005em;
154
- line-height: 1.25;
155
- margin: 0 0 12px;
156
- }
157
- .cny-app p {
158
- margin: 0 0 16px;
159
- max-width: 68ch;
160
- }
161
- .cny-app a {
162
- color: var(--text-accent);
163
- text-decoration-line: underline;
164
- text-decoration-color: var(--hairline-strong);
165
- text-decoration-thickness: 1px;
166
- text-underline-offset: 0.18em;
167
- transition: text-decoration-color var(--transition-fast);
168
- }
169
- .cny-app a:hover {
170
- text-decoration-color: currentColor;
171
- }
172
- .cny-app small,
173
- .cny-app .cny-meta {
174
- font-size: var(--text-xs);
175
- color: var(--text-muted);
176
- }
177
- .cny-app code, .cny-app kbd, .cny-app pre, .cny-app samp {
178
- font-family: var(--font-mono);
179
- font-size: 0.92em;
180
- }
181
- .cny-app em, .cny-app i {
182
- font-family: var(--font-display);
183
- font-style: italic;
184
- font-variation-settings: "opsz" 48, "SOFT" 80;
185
- }
186
- .cny-app .cny-tabular {
187
- font-variant-numeric: tabular-nums slashed-zero;
188
- }
189
-
190
- .btn {
191
- position: relative;
192
- display: inline-flex;
193
- align-items: center;
194
- justify-content: center;
195
- gap: 8px;
196
- padding: 8px 20px;
197
- min-height: 36px;
198
- border: 0;
199
- border-radius: var(--radius-md);
200
- font-family: var(--font-body);
201
- font-size: 0.875rem;
202
- font-weight: 500;
203
- letter-spacing: -0.005em;
204
- line-height: 1.2;
205
- cursor: pointer;
206
- user-select: none;
207
- transition: background var(--transition-base), color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
208
- }
209
- .btn:disabled {
210
- opacity: 0.4;
211
- cursor: not-allowed;
212
- }
213
- .btn:focus-visible {
214
- outline: 2px solid var(--color-primary);
215
- outline-offset: 2px;
216
- }
217
- .btn.solid {
218
- background: linear-gradient(180deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
219
- color: var(--text-on-solid);
220
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 1px 2px rgba(0, 0, 0, 0.08);
221
- }
222
- .btn.solid:hover:not(:disabled) {
223
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), var(--shadow-ambient);
224
- transform: translateY(-1px);
225
- }
226
- .btn.solid:active:not(:disabled) {
227
- transform: translateY(0);
228
- box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.2);
229
- }
230
- .btn.solid.danger {
231
- --color-primary: var(--color-danger);
232
- --color-primary-dark: #c2410c;
233
- }
234
- .btn.solid.warning {
235
- --color-primary: var(--color-warning);
236
- --color-primary-dark: #a16207;
237
- }
238
- .btn.solid.success {
239
- --color-primary: var(--color-success);
240
- --color-primary-dark: #3f6212;
241
- }
242
- .btn.solid.info {
243
- --color-primary: var(--color-info);
244
- --color-primary-dark: #475569;
245
- }
246
- .btn.ghost {
247
- background: transparent;
248
- color: var(--color-primary);
249
- }
250
- .btn.ghost:hover:not(:disabled) {
251
- background: var(--bg-surface-low);
252
- }
253
- .btn.ghost:active:not(:disabled) {
254
- background: var(--bg-surface-edge);
255
- }
256
- .btn.ghost.danger {
257
- color: var(--color-danger);
258
- }
259
- .btn.ghost.warning {
260
- color: var(--color-warning);
261
- }
262
- .btn.ghost.success {
263
- color: var(--color-success);
264
- }
265
- .btn.ghost.info {
266
- color: var(--color-info);
267
- }
268
- .btn.outline {
269
- background: transparent;
270
- color: var(--text-primary);
271
- box-shadow: inset 0 0 0 1px var(--hairline-strong);
272
- }
273
- .btn.outline:hover:not(:disabled) {
274
- background: var(--bg-surface-low);
275
- box-shadow: inset 0 0 0 1px var(--text-primary);
276
- }
277
- .btn.link {
278
- background: transparent;
279
- color: var(--text-accent);
280
- padding-left: 0;
281
- padding-right: 0;
282
- min-height: auto;
283
- box-shadow: inset 0 -1px 0 0 var(--hairline-color);
284
- border-radius: 0;
285
- }
286
- .btn.link:hover:not(:disabled) {
287
- box-shadow: inset 0 -1px 0 0 currentColor;
288
- }
289
- .btn.sm {
290
- padding: 4px 12px;
291
- min-height: 28px;
292
- font-size: 0.8125rem;
293
- }
294
- .btn.lg {
295
- padding: 12px 24px;
296
- min-height: 44px;
297
- font-size: 0.9375rem;
298
- }
299
-
300
- .input {
301
- display: block;
302
- width: 100%;
303
- padding: 12px 12px 8px;
304
- background: transparent;
305
- color: var(--text-primary);
306
- border: 0;
307
- border-bottom: 1px solid var(--hairline-strong);
308
- border-radius: 0;
309
- outline: none;
310
- font-family: var(--font-body);
311
- font-size: 0.9375rem;
312
- line-height: 1.4;
313
- transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
314
- }
315
- .input::placeholder {
316
- color: var(--text-muted);
317
- }
318
- .input:hover:not(:disabled):not(:focus) {
319
- border-bottom-color: var(--text-primary);
320
- }
321
- .input:focus {
322
- border-bottom: 1px solid var(--color-primary);
323
- background: linear-gradient(to top, color-mix(in oklch, var(--color-primary) 6%, transparent) 0%, transparent 40%);
324
- box-shadow: 0 1px 0 0 var(--color-primary);
325
- }
326
- .input:disabled {
327
- opacity: 0.5;
328
- cursor: not-allowed;
329
- }
330
- .input.danger {
331
- border-bottom-color: var(--color-danger);
332
- }
333
- .input.danger:focus {
334
- border-bottom-color: var(--color-danger);
335
- box-shadow: 0 1px 0 0 var(--color-danger);
336
- background: linear-gradient(to top, color-mix(in oklch, var(--color-danger) 6%, transparent) 0%, transparent 40%);
337
- }
338
- .input.warning {
339
- border-bottom-color: var(--color-warning);
340
- }
341
- .input.warning:focus {
342
- border-bottom-color: var(--color-warning);
343
- box-shadow: 0 1px 0 0 var(--color-warning);
344
- }
345
-
346
- .card {
347
- position: relative;
348
- background: var(--bg-surface-lowest);
349
- border-radius: var(--radius-lg);
350
- box-shadow: var(--shadow-card);
351
- padding: 24px;
352
- transition: box-shadow var(--transition-base), transform var(--transition-base);
353
- }
354
- .card.interactive {
355
- cursor: pointer;
356
- }
357
- .card.interactive:hover {
358
- box-shadow: var(--shadow-lift);
359
- transform: translateY(-2px);
360
- }
361
- .card.danger, .card.warning, .card.success, .card.info {
362
- overflow: hidden;
363
- }
364
- .card.danger::before, .card.warning::before, .card.success::before, .card.info::before {
365
- content: "";
366
- position: absolute;
367
- left: 0;
368
- top: 24px;
369
- bottom: 24px;
370
- width: 2px;
371
- border-radius: 1px;
372
- }
373
- .card.danger::before {
374
- background: var(--color-danger);
375
- }
376
- .card.warning::before {
377
- background: var(--color-warning);
378
- }
379
- .card.success::before {
380
- background: var(--color-success);
381
- }
382
- .card.info::before {
383
- background: var(--color-info);
384
- }
385
- .card.flush {
386
- background: transparent;
387
- box-shadow: none;
388
- border-top: 1px solid var(--hairline-color);
389
- border-radius: 0;
390
- padding: 20px 0;
391
- }
392
- .card-header {
393
- display: flex;
394
- align-items: baseline;
395
- justify-content: space-between;
396
- gap: 16px;
397
- margin-bottom: 16px;
398
- }
399
- .card-footer {
400
- margin-top: 20px;
401
- padding-top: 16px;
402
- border-top: 1px solid var(--hairline-color);
403
- display: flex;
404
- align-items: center;
405
- justify-content: space-between;
406
- gap: 12px;
407
- }
408
-
409
- .p-0 {
410
- padding: 0;
411
- }
412
-
413
- .m-0 {
414
- margin: 0;
415
- }
416
-
417
- .px-0 {
418
- padding-left: 0;
419
- padding-right: 0;
420
- }
421
-
422
- .py-0 {
423
- padding-top: 0;
424
- padding-bottom: 0;
425
- }
426
-
427
- .mx-0 {
428
- margin-left: 0;
429
- margin-right: 0;
430
- }
431
-
432
- .my-0 {
433
- margin-top: 0;
434
- margin-bottom: 0;
435
- }
436
-
437
- .gap-0 {
438
- gap: 0;
439
- }
440
-
441
- .p-1 {
442
- padding: 4px;
443
- }
444
-
445
- .m-1 {
446
- margin: 4px;
447
- }
448
-
449
- .px-1 {
450
- padding-left: 4px;
451
- padding-right: 4px;
452
- }
453
-
454
- .py-1 {
455
- padding-top: 4px;
456
- padding-bottom: 4px;
457
- }
458
-
459
- .mx-1 {
460
- margin-left: 4px;
461
- margin-right: 4px;
462
- }
463
-
464
- .my-1 {
465
- margin-top: 4px;
466
- margin-bottom: 4px;
467
- }
468
-
469
- .gap-1 {
470
- gap: 4px;
471
- }
472
-
473
- .p-2 {
474
- padding: 8px;
475
- }
476
-
477
- .m-2 {
478
- margin: 8px;
479
- }
480
-
481
- .px-2 {
482
- padding-left: 8px;
483
- padding-right: 8px;
484
- }
485
-
486
- .py-2 {
487
- padding-top: 8px;
488
- padding-bottom: 8px;
489
- }
490
-
491
- .mx-2 {
492
- margin-left: 8px;
493
- margin-right: 8px;
494
- }
495
-
496
- .my-2 {
497
- margin-top: 8px;
498
- margin-bottom: 8px;
499
- }
500
-
501
- .gap-2 {
502
- gap: 8px;
503
- }
504
-
505
- .p-3 {
506
- padding: 12px;
507
- }
508
-
509
- .m-3 {
510
- margin: 12px;
511
- }
512
-
513
- .px-3 {
514
- padding-left: 12px;
515
- padding-right: 12px;
516
- }
517
-
518
- .py-3 {
519
- padding-top: 12px;
520
- padding-bottom: 12px;
521
- }
522
-
523
- .mx-3 {
524
- margin-left: 12px;
525
- margin-right: 12px;
526
- }
527
-
528
- .my-3 {
529
- margin-top: 12px;
530
- margin-bottom: 12px;
531
- }
532
-
533
- .gap-3 {
534
- gap: 12px;
535
- }
536
-
537
- .p-4 {
538
- padding: 16px;
539
- }
540
-
541
- .m-4 {
542
- margin: 16px;
543
- }
544
-
545
- .px-4 {
546
- padding-left: 16px;
547
- padding-right: 16px;
548
- }
549
-
550
- .py-4 {
551
- padding-top: 16px;
552
- padding-bottom: 16px;
553
- }
554
-
555
- .mx-4 {
556
- margin-left: 16px;
557
- margin-right: 16px;
558
- }
559
-
560
- .my-4 {
561
- margin-top: 16px;
562
- margin-bottom: 16px;
563
- }
564
-
565
- .gap-4 {
566
- gap: 16px;
567
- }
568
-
569
- .p-5 {
570
- padding: 20px;
571
- }
572
-
573
- .m-5 {
574
- margin: 20px;
575
- }
576
-
577
- .px-5 {
578
- padding-left: 20px;
579
- padding-right: 20px;
580
- }
581
-
582
- .py-5 {
583
- padding-top: 20px;
584
- padding-bottom: 20px;
585
- }
586
-
587
- .mx-5 {
588
- margin-left: 20px;
589
- margin-right: 20px;
590
- }
591
-
592
- .my-5 {
593
- margin-top: 20px;
594
- margin-bottom: 20px;
595
- }
596
-
597
- .gap-5 {
598
- gap: 20px;
599
- }
600
-
601
- .p-6 {
602
- padding: 24px;
603
- }
604
-
605
- .m-6 {
606
- margin: 24px;
607
- }
608
-
609
- .px-6 {
610
- padding-left: 24px;
611
- padding-right: 24px;
612
- }
613
-
614
- .py-6 {
615
- padding-top: 24px;
616
- padding-bottom: 24px;
617
- }
618
-
619
- .mx-6 {
620
- margin-left: 24px;
621
- margin-right: 24px;
622
- }
623
-
624
- .my-6 {
625
- margin-top: 24px;
626
- margin-bottom: 24px;
627
- }
628
-
629
- .gap-6 {
630
- gap: 24px;
631
- }
632
-
633
- .p-8 {
634
- padding: 32px;
635
- }
636
-
637
- .m-8 {
638
- margin: 32px;
639
- }
640
-
641
- .px-8 {
642
- padding-left: 32px;
643
- padding-right: 32px;
644
- }
645
-
646
- .py-8 {
647
- padding-top: 32px;
648
- padding-bottom: 32px;
649
- }
650
-
651
- .mx-8 {
652
- margin-left: 32px;
653
- margin-right: 32px;
654
- }
655
-
656
- .my-8 {
657
- margin-top: 32px;
658
- margin-bottom: 32px;
659
- }
660
-
661
- .gap-8 {
662
- gap: 32px;
663
- }
664
-
665
- .p-10 {
666
- padding: 40px;
667
- }
668
-
669
- .m-10 {
670
- margin: 40px;
671
- }
672
-
673
- .px-10 {
674
- padding-left: 40px;
675
- padding-right: 40px;
676
- }
677
-
678
- .py-10 {
679
- padding-top: 40px;
680
- padding-bottom: 40px;
681
- }
682
-
683
- .mx-10 {
684
- margin-left: 40px;
685
- margin-right: 40px;
686
- }
687
-
688
- .my-10 {
689
- margin-top: 40px;
690
- margin-bottom: 40px;
691
- }
692
-
693
- .gap-10 {
694
- gap: 40px;
695
- }
696
-
697
- .p-12 {
698
- padding: 48px;
699
- }
700
-
701
- .m-12 {
702
- margin: 48px;
703
- }
704
-
705
- .px-12 {
706
- padding-left: 48px;
707
- padding-right: 48px;
708
- }
709
-
710
- .py-12 {
711
- padding-top: 48px;
712
- padding-bottom: 48px;
713
- }
714
-
715
- .mx-12 {
716
- margin-left: 48px;
717
- margin-right: 48px;
718
- }
719
-
720
- .my-12 {
721
- margin-top: 48px;
722
- margin-bottom: 48px;
723
- }
724
-
725
- .gap-12 {
726
- gap: 48px;
727
- }
728
-
729
- .p-16 {
730
- padding: 64px;
731
- }
732
-
733
- .m-16 {
734
- margin: 64px;
735
- }
736
-
737
- .px-16 {
738
- padding-left: 64px;
739
- padding-right: 64px;
740
- }
741
-
742
- .py-16 {
743
- padding-top: 64px;
744
- padding-bottom: 64px;
745
- }
746
-
747
- .mx-16 {
748
- margin-left: 64px;
749
- margin-right: 64px;
750
- }
751
-
752
- .my-16 {
753
- margin-top: 64px;
754
- margin-bottom: 64px;
755
- }
756
-
757
- .gap-16 {
758
- gap: 64px;
759
- }
760
-
761
- .text-primary {
762
- color: var(--text-primary);
763
- }
764
-
765
- .text-secondary {
766
- color: var(--text-secondary);
767
- }
768
-
769
- .text-muted {
770
- color: var(--text-muted);
771
- }
772
-
773
- .text-accent {
774
- color: var(--text-accent);
775
- }
776
-
777
- .text-danger {
778
- color: var(--color-danger);
779
- }
780
-
781
- .text-success {
782
- color: var(--color-success);
783
- }
784
-
785
- .text-warning {
786
- color: var(--color-warning);
787
- }
788
-
789
- .text-info {
790
- color: var(--color-info);
791
- }
792
-
793
- .cny-label {
794
- font-family: var(--font-mono);
795
- font-size: 0.6875rem;
796
- font-weight: 500;
797
- letter-spacing: var(--track-wider);
798
- text-transform: uppercase;
799
- color: var(--text-muted);
800
- }
801
-
802
- .cny-mono {
803
- font-family: var(--font-mono);
804
- font-feature-settings: "tnum" 1, "zero" 1;
805
- letter-spacing: -0.005em;
806
- }
807
-
808
- .cny-rule {
809
- height: 1px;
810
- width: 100%;
811
- background: var(--hairline-color);
812
- border: 0;
813
- margin: 24px 0;
814
- }
815
-
816
- .cny-index {
817
- font-family: var(--font-mono);
818
- font-size: 0.75rem;
819
- font-weight: 500;
820
- letter-spacing: var(--track-wide);
821
- color: var(--color-primary);
822
- margin-right: 12px;
823
- vertical-align: 0.08em;
824
- }
825
- .cny-index::after {
826
- content: " —";
827
- color: var(--text-muted);
828
- margin-left: 0.25em;
829
- }
830
-
831
- .cny-grid-paper {
832
- background-image: linear-gradient(var(--hairline-color) 1px, transparent 1px), linear-gradient(90deg, var(--hairline-color) 1px, transparent 1px);
833
- background-size: 8px 8px, 8px 8px;
834
- background-position: -1px -1px;
835
- }
836
-
837
- .cny-grain {
838
- position: relative;
839
- isolation: isolate;
840
- }
841
- .cny-grain::after {
842
- content: "";
843
- position: absolute;
844
- inset: 0;
845
- pointer-events: none;
846
- z-index: -1;
847
- opacity: 0.35;
848
- mix-blend-mode: multiply;
849
- background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.05 0 0 0 0 0.08 0 0 0 0.25 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");
850
- }
851
-
852
- .cny-divide-top {
853
- box-shadow: 0 -1px 0 0 var(--hairline-color);
854
- }
855
-
856
- .cny-divide-bottom {
857
- box-shadow: 0 1px 0 0 var(--hairline-color);
858
- }
859
-
860
- @keyframes cny-rise {
861
- from {
862
- opacity: 0;
863
- transform: translateY(12px);
864
- }
865
- to {
866
- opacity: 1;
867
- transform: translateY(0);
868
- }
869
- }
870
- .cny-rise {
871
- animation: cny-rise 700ms var(--ease-precise) both;
872
- }
873
-
874
- .cny-stack {
875
- display: flex;
876
- flex-direction: column;
877
- }
878
-
879
- .cny-row {
880
- display: flex;
881
- flex-direction: row;
882
- align-items: center;
883
- }
884
-
885
- .cny-wrap {
886
- flex-wrap: wrap;
887
- }