santycss 2.0.1 → 2.2.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/README.md +32 -13
- package/dist/santy-animations.css +179 -1
- package/dist/santy-core.css +33 -4569
- package/dist/santy-scroll.js +45 -0
- package/dist/santy-start.css +9817 -0
- package/dist/santy-variants.css +4579 -0
- package/dist/santy.css +244 -1
- package/dist/santy.min.css +1 -1
- package/package.json +5 -2
package/dist/santy.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ============================================================
|
|
2
|
-
SantyCSS v2.
|
|
2
|
+
SantyCSS v2.2.0 — Plain-English Utility CSS Framework
|
|
3
3
|
https://github.com/santybad/santy_css
|
|
4
4
|
============================================================ */
|
|
5
5
|
|
|
@@ -5281,6 +5281,8 @@
|
|
|
5281
5281
|
.on-desktop\:set-height-64 { height:64px; }
|
|
5282
5282
|
}
|
|
5283
5283
|
|
|
5284
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
5285
|
+
|
|
5284
5286
|
@media (min-width: 1280px) {
|
|
5285
5287
|
.on-wide\:make-block { display:block; }
|
|
5286
5288
|
.on-wide\:make-inline { display:inline; }
|
|
@@ -5430,6 +5432,9 @@
|
|
|
5430
5432
|
.on-wide\:set-width-64 { width:64px; }
|
|
5431
5433
|
.on-wide\:set-height-64 { height:64px; }
|
|
5432
5434
|
}
|
|
5435
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
5436
|
+
|
|
5437
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
5433
5438
|
|
|
5434
5439
|
@media (min-width: 1536px) {
|
|
5435
5440
|
.on-ultra\:make-block { display:block; }
|
|
@@ -5580,6 +5585,9 @@
|
|
|
5580
5585
|
.on-ultra\:set-width-64 { width:64px; }
|
|
5581
5586
|
.on-ultra\:set-height-64 { height:64px; }
|
|
5582
5587
|
}
|
|
5588
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
5589
|
+
|
|
5590
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
5583
5591
|
|
|
5584
5592
|
@media (min-width: 640px) {
|
|
5585
5593
|
.sm\:make-block { display:block; }
|
|
@@ -5730,6 +5738,7 @@
|
|
|
5730
5738
|
.sm\:set-width-64 { width:64px; }
|
|
5731
5739
|
.sm\:set-height-64 { height:64px; }
|
|
5732
5740
|
}
|
|
5741
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
5733
5742
|
|
|
5734
5743
|
@media (min-width: 768px) {
|
|
5735
5744
|
.md\:make-block { display:block; }
|
|
@@ -5881,6 +5890,8 @@
|
|
|
5881
5890
|
.md\:set-height-64 { height:64px; }
|
|
5882
5891
|
}
|
|
5883
5892
|
|
|
5893
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
5894
|
+
|
|
5884
5895
|
@media (min-width: 1024px) {
|
|
5885
5896
|
.lg\:make-block { display:block; }
|
|
5886
5897
|
.lg\:make-inline { display:inline; }
|
|
@@ -6030,6 +6041,9 @@
|
|
|
6030
6041
|
.lg\:set-width-64 { width:64px; }
|
|
6031
6042
|
.lg\:set-height-64 { height:64px; }
|
|
6032
6043
|
}
|
|
6044
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
6045
|
+
|
|
6046
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
6033
6047
|
|
|
6034
6048
|
@media (min-width: 1280px) {
|
|
6035
6049
|
.xl\:make-block { display:block; }
|
|
@@ -6180,6 +6194,9 @@
|
|
|
6180
6194
|
.xl\:set-width-64 { width:64px; }
|
|
6181
6195
|
.xl\:set-height-64 { height:64px; }
|
|
6182
6196
|
}
|
|
6197
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
6198
|
+
|
|
6199
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
6183
6200
|
|
|
6184
6201
|
@media (min-width: 1536px) {
|
|
6185
6202
|
.xxl\:make-block { display:block; }
|
|
@@ -6330,6 +6347,7 @@
|
|
|
6330
6347
|
.xxl\:set-width-64 { width:64px; }
|
|
6331
6348
|
.xxl\:set-height-64 { height:64px; }
|
|
6332
6349
|
}
|
|
6350
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
6333
6351
|
|
|
6334
6352
|
/* ═══════════════════════════════════════════════════════════════
|
|
6335
6353
|
DARK MODE VARIANTS
|
|
@@ -7489,6 +7507,8 @@
|
|
|
7489
7507
|
.on-focus\:add-border-2:focus { border:2px solid; }
|
|
7490
7508
|
.on-focus\:add-border-4:focus { border:4px solid; }
|
|
7491
7509
|
|
|
7510
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
7511
|
+
|
|
7492
7512
|
/* on-active */
|
|
7493
7513
|
.on-active\:background-red-300:active { background-color:#fca5a5; }
|
|
7494
7514
|
.on-active\:color-red-300:active { color:#fca5a5; }
|
|
@@ -7789,6 +7809,9 @@
|
|
|
7789
7809
|
.on-active\:add-border-1:active { border:1px solid; }
|
|
7790
7810
|
.on-active\:add-border-2:active { border:2px solid; }
|
|
7791
7811
|
.on-active\:add-border-4:active { border:4px solid; }
|
|
7812
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
7813
|
+
|
|
7814
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
7792
7815
|
|
|
7793
7816
|
/* on-disabled */
|
|
7794
7817
|
.on-disabled\:background-red-300:disabled { background-color:#fca5a5; }
|
|
@@ -8090,6 +8113,9 @@
|
|
|
8090
8113
|
.on-disabled\:add-border-1:disabled { border:1px solid; }
|
|
8091
8114
|
.on-disabled\:add-border-2:disabled { border:2px solid; }
|
|
8092
8115
|
.on-disabled\:add-border-4:disabled { border:4px solid; }
|
|
8116
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
8117
|
+
|
|
8118
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
8093
8119
|
|
|
8094
8120
|
/* on-checked */
|
|
8095
8121
|
.on-checked\:background-red-300:checked { background-color:#fca5a5; }
|
|
@@ -8391,6 +8417,9 @@
|
|
|
8391
8417
|
.on-checked\:add-border-1:checked { border:1px solid; }
|
|
8392
8418
|
.on-checked\:add-border-2:checked { border:2px solid; }
|
|
8393
8419
|
.on-checked\:add-border-4:checked { border:4px solid; }
|
|
8420
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
8421
|
+
|
|
8422
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
8394
8423
|
|
|
8395
8424
|
/* on-first */
|
|
8396
8425
|
.on-first\:background-red-300:first-child { background-color:#fca5a5; }
|
|
@@ -8692,6 +8721,9 @@
|
|
|
8692
8721
|
.on-first\:add-border-1:first-child { border:1px solid; }
|
|
8693
8722
|
.on-first\:add-border-2:first-child { border:2px solid; }
|
|
8694
8723
|
.on-first\:add-border-4:first-child { border:4px solid; }
|
|
8724
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
8725
|
+
|
|
8726
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
8695
8727
|
|
|
8696
8728
|
/* on-last */
|
|
8697
8729
|
.on-last\:background-red-300:last-child { background-color:#fca5a5; }
|
|
@@ -8993,6 +9025,9 @@
|
|
|
8993
9025
|
.on-last\:add-border-1:last-child { border:1px solid; }
|
|
8994
9026
|
.on-last\:add-border-2:last-child { border:2px solid; }
|
|
8995
9027
|
.on-last\:add-border-4:last-child { border:4px solid; }
|
|
9028
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
9029
|
+
|
|
9030
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
8996
9031
|
|
|
8997
9032
|
/* on-odd */
|
|
8998
9033
|
.on-odd\:background-red-300:nth-child(odd) { background-color:#fca5a5; }
|
|
@@ -9294,6 +9329,9 @@
|
|
|
9294
9329
|
.on-odd\:add-border-1:nth-child(odd) { border:1px solid; }
|
|
9295
9330
|
.on-odd\:add-border-2:nth-child(odd) { border:2px solid; }
|
|
9296
9331
|
.on-odd\:add-border-4:nth-child(odd) { border:4px solid; }
|
|
9332
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
9333
|
+
|
|
9334
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
9297
9335
|
|
|
9298
9336
|
/* on-even */
|
|
9299
9337
|
.on-even\:background-red-300:nth-child(even) { background-color:#fca5a5; }
|
|
@@ -9595,6 +9633,9 @@
|
|
|
9595
9633
|
.on-even\:add-border-1:nth-child(even) { border:1px solid; }
|
|
9596
9634
|
.on-even\:add-border-2:nth-child(even) { border:2px solid; }
|
|
9597
9635
|
.on-even\:add-border-4:nth-child(even) { border:4px solid; }
|
|
9636
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
9637
|
+
|
|
9638
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
9598
9639
|
|
|
9599
9640
|
/* on-placeholder */
|
|
9600
9641
|
.on-placeholder\:background-red-300::placeholder { background-color:#fca5a5; }
|
|
@@ -9896,6 +9937,9 @@
|
|
|
9896
9937
|
.on-placeholder\:add-border-1::placeholder { border:1px solid; }
|
|
9897
9938
|
.on-placeholder\:add-border-2::placeholder { border:2px solid; }
|
|
9898
9939
|
.on-placeholder\:add-border-4::placeholder { border:4px solid; }
|
|
9940
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
9941
|
+
|
|
9942
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
9899
9943
|
|
|
9900
9944
|
/* on-focus-within */
|
|
9901
9945
|
.on-focus-within\:background-red-300:focus-within { background-color:#fca5a5; }
|
|
@@ -10197,6 +10241,9 @@
|
|
|
10197
10241
|
.on-focus-within\:add-border-1:focus-within { border:1px solid; }
|
|
10198
10242
|
.on-focus-within\:add-border-2:focus-within { border:2px solid; }
|
|
10199
10243
|
.on-focus-within\:add-border-4:focus-within { border:4px solid; }
|
|
10244
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
10245
|
+
|
|
10246
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
10200
10247
|
|
|
10201
10248
|
/* on-focus-visible */
|
|
10202
10249
|
.on-focus-visible\:background-red-300:focus-visible { background-color:#fca5a5; }
|
|
@@ -10498,6 +10545,9 @@
|
|
|
10498
10545
|
.on-focus-visible\:add-border-1:focus-visible { border:1px solid; }
|
|
10499
10546
|
.on-focus-visible\:add-border-2:focus-visible { border:2px solid; }
|
|
10500
10547
|
.on-focus-visible\:add-border-4:focus-visible { border:4px solid; }
|
|
10548
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
10549
|
+
|
|
10550
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
10501
10551
|
|
|
10502
10552
|
/* ── Group Hover ── */
|
|
10503
10553
|
/* Add class="group" to parent, then use group-hover: on children */
|
|
@@ -10800,6 +10850,9 @@
|
|
|
10800
10850
|
.group:hover .group-hover\:add-border-1 { border:1px solid; }
|
|
10801
10851
|
.group:hover .group-hover\:add-border-2 { border:2px solid; }
|
|
10802
10852
|
.group:hover .group-hover\:add-border-4 { border:4px solid; }
|
|
10853
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
10854
|
+
|
|
10855
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
10803
10856
|
|
|
10804
10857
|
/* ── Print Utilities ── */
|
|
10805
10858
|
@media print {
|
|
@@ -10808,6 +10861,7 @@
|
|
|
10808
10861
|
.print\:no-shadow { box-shadow: none !important; }
|
|
10809
10862
|
}
|
|
10810
10863
|
|
|
10864
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
10811
10865
|
|
|
10812
10866
|
/* ── Backdrop Filter ── */
|
|
10813
10867
|
.backdrop-blur-none { backdrop-filter: blur(0); -webkit-backdrop-filter: blur(0); }
|
|
@@ -10976,6 +11030,10 @@
|
|
|
10976
11030
|
background-clip: text;
|
|
10977
11031
|
}
|
|
10978
11032
|
|
|
11033
|
+
|
|
11034
|
+
|
|
11035
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
11036
|
+
|
|
10979
11037
|
/* ── RTL / Logical Properties ── */
|
|
10980
11038
|
.ps-0 { padding-inline-start: 0; }
|
|
10981
11039
|
.ps-4 { padding-inline-start: 4px; }
|
|
@@ -11006,6 +11064,9 @@
|
|
|
11006
11064
|
.start-auto { inset-inline-start: auto; }
|
|
11007
11065
|
.end-auto { inset-inline-end: auto; }
|
|
11008
11066
|
|
|
11067
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
11068
|
+
|
|
11069
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
11009
11070
|
|
|
11010
11071
|
/* ── Peer Variants ── */
|
|
11011
11072
|
/* Usage: add class="peer" to input, then class="peer-checked:make-block" to sibling */
|
|
@@ -11072,6 +11133,9 @@
|
|
|
11072
11133
|
* { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
|
|
11073
11134
|
}
|
|
11074
11135
|
|
|
11136
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
11137
|
+
|
|
11138
|
+
/* ═══ VARIANTS_BLOCK_START ═══ */
|
|
11075
11139
|
|
|
11076
11140
|
/* ── Extra State Variants ── */
|
|
11077
11141
|
|
|
@@ -11334,6 +11398,7 @@
|
|
|
11334
11398
|
.on-read-write\:ring-green:read-write { box-shadow:0 0 0 3px rgba(34,197,94,.4); }
|
|
11335
11399
|
.on-read-write\:make-block:read-write { display:block; }
|
|
11336
11400
|
.on-read-write\:make-hidden:read-write { display:none; }
|
|
11401
|
+
/* ═══ VARIANTS_BLOCK_END ═══ */
|
|
11337
11402
|
|
|
11338
11403
|
/* ═══════════════════════════════════════════════════════════════════════
|
|
11339
11404
|
SANTY ANIMATIONS — animate.css compatible · Plain-English naming
|
|
@@ -12166,6 +12231,184 @@
|
|
|
12166
12231
|
</script> */
|
|
12167
12232
|
|
|
12168
12233
|
|
|
12234
|
+
/* ═════════════════════════════════════════════════════════════════════════
|
|
12235
|
+
SCROLL ANIMATIONS
|
|
12236
|
+
Family 1: when-visible: — one-shot viewport-entry (+ santy-scroll.js)
|
|
12237
|
+
Family 2: on-scroll: — scroll-progress (animation-timeline: scroll())
|
|
12238
|
+
Family 3: scroll-{prop} — scroll-linked property utilities
|
|
12239
|
+
Stagger: stagger-children / stagger-{n}
|
|
12240
|
+
═════════════════════════════════════════════════════════════════════════ */
|
|
12241
|
+
|
|
12242
|
+
/* ── Keyframes for when-visible: ── */
|
|
12243
|
+
@keyframes wv-fade-in { from{opacity:0} to{opacity:1} }
|
|
12244
|
+
@keyframes wv-slide-up { from{transform:translateY(24px);opacity:0} to{transform:translateY(0);opacity:1} }
|
|
12245
|
+
@keyframes wv-slide-in-left { from{transform:translateX(-32px);opacity:0} to{transform:translateX(0);opacity:1} }
|
|
12246
|
+
@keyframes wv-slide-in-right { from{transform:translateX(32px);opacity:0} to{transform:translateX(0);opacity:1} }
|
|
12247
|
+
@keyframes wv-slide-in-bottom { from{transform:translateY(32px);opacity:0} to{transform:translateY(0);opacity:1} }
|
|
12248
|
+
@keyframes wv-zoom-in { from{transform:scale(0.85);opacity:0} to{transform:scale(1);opacity:1} }
|
|
12249
|
+
@keyframes wv-zoom-in-up { from{transform:scale(0.8) translateY(20px);opacity:0} to{transform:scale(1) translateY(0);opacity:1} }
|
|
12250
|
+
@keyframes wv-zoom-bounce { from{transform:scale(0.7);opacity:0} to{transform:scale(1);opacity:1} }
|
|
12251
|
+
@keyframes wv-bounce-in-bottom {
|
|
12252
|
+
0% {transform:translateY(40px);opacity:0}
|
|
12253
|
+
60% {transform:translateY(-8px);opacity:1}
|
|
12254
|
+
80% {transform:translateY(4px)}
|
|
12255
|
+
100%{transform:translateY(0)}
|
|
12256
|
+
}
|
|
12257
|
+
@keyframes wv-flip-in {
|
|
12258
|
+
from{transform:perspective(600px) rotateX(-80deg);opacity:0}
|
|
12259
|
+
to {transform:perspective(600px) rotateX(0);opacity:1}
|
|
12260
|
+
}
|
|
12261
|
+
|
|
12262
|
+
|
|
12263
|
+
/* ── when-visible: — viewport-entry animations ── */
|
|
12264
|
+
/* Requires santy-scroll.js observer. Classes activate via .is-visible. */
|
|
12265
|
+
.when-visible\:animate-fade-in { animation:none; animation-fill-mode:both; }
|
|
12266
|
+
.when-visible\:animate-fade-in.is-visible { animation-name:wv-fade-in; animation-duration:0.6s; animation-timing-function:ease-out; }
|
|
12267
|
+
.when-visible\:animate-slide-up { animation:none; animation-fill-mode:both; }
|
|
12268
|
+
.when-visible\:animate-slide-up.is-visible { animation-name:wv-slide-up; animation-duration:0.5s; animation-timing-function:ease-out; }
|
|
12269
|
+
.when-visible\:animate-slide-in-from-left { animation:none; animation-fill-mode:both; }
|
|
12270
|
+
.when-visible\:animate-slide-in-from-left.is-visible { animation-name:wv-slide-in-left; animation-duration:0.5s; animation-timing-function:ease-out; }
|
|
12271
|
+
.when-visible\:animate-slide-in-from-right { animation:none; animation-fill-mode:both; }
|
|
12272
|
+
.when-visible\:animate-slide-in-from-right.is-visible { animation-name:wv-slide-in-right; animation-duration:0.5s; animation-timing-function:ease-out; }
|
|
12273
|
+
.when-visible\:animate-slide-in-from-bottom { animation:none; animation-fill-mode:both; }
|
|
12274
|
+
.when-visible\:animate-slide-in-from-bottom.is-visible { animation-name:wv-slide-in-bottom; animation-duration:0.5s; animation-timing-function:ease-out; }
|
|
12275
|
+
.when-visible\:animate-zoom-in { animation:none; animation-fill-mode:both; }
|
|
12276
|
+
.when-visible\:animate-zoom-in.is-visible { animation-name:wv-zoom-in; animation-duration:0.5s; animation-timing-function:ease-out; }
|
|
12277
|
+
.when-visible\:animate-zoom-in-up { animation:none; animation-fill-mode:both; }
|
|
12278
|
+
.when-visible\:animate-zoom-in-up.is-visible { animation-name:wv-zoom-in-up; animation-duration:0.5s; animation-timing-function:ease-out; }
|
|
12279
|
+
.when-visible\:animate-zoom-bounce { animation:none; animation-fill-mode:both; }
|
|
12280
|
+
.when-visible\:animate-zoom-bounce.is-visible { animation-name:wv-zoom-bounce; animation-duration:0.5s; animation-timing-function:cubic-bezier(0.34,1.56,0.64,1); }
|
|
12281
|
+
.when-visible\:animate-bounce-in-from-bottom { animation:none; animation-fill-mode:both; }
|
|
12282
|
+
.when-visible\:animate-bounce-in-from-bottom.is-visible { animation-name:wv-bounce-in-bottom; animation-duration:0.7s; animation-timing-function:ease-out; }
|
|
12283
|
+
.when-visible\:animate-flip-in { animation:none; animation-fill-mode:both; }
|
|
12284
|
+
.when-visible\:animate-flip-in.is-visible { animation-name:wv-flip-in; animation-duration:0.6s; animation-timing-function:ease-out; }
|
|
12285
|
+
.when-visible\:animate-bounce { animation:none; animation-fill-mode:both; }
|
|
12286
|
+
.when-visible\:animate-bounce.is-visible { animation-name:santy-bounce; animation-duration:1s; animation-timing-function:ease; }
|
|
12287
|
+
.when-visible\:animate-pulse { animation:none; animation-fill-mode:both; }
|
|
12288
|
+
.when-visible\:animate-pulse.is-visible { animation-name:santy-pulse; animation-duration:2s; animation-timing-function:cubic-bezier(0.4,0,0.6,1); }
|
|
12289
|
+
|
|
12290
|
+
/* ── enter-at-{n} — how much of element must be visible before triggering ── */
|
|
12291
|
+
.enter-at-15 { --santy-enter-threshold:0.15; }
|
|
12292
|
+
.enter-at-25 { --santy-enter-threshold:0.25; }
|
|
12293
|
+
.enter-at-50 { --santy-enter-threshold:0.5; }
|
|
12294
|
+
.enter-at-75 { --santy-enter-threshold:0.75; }
|
|
12295
|
+
.enter-repeat { --santy-enter-repeat:1; }
|
|
12296
|
+
|
|
12297
|
+
/* ── on-scroll: — animations linked to scroll position ── */
|
|
12298
|
+
@keyframes os-width-full { from{width:0%} to{width:100%} }
|
|
12299
|
+
@keyframes os-rotate-180 { from{transform:rotate(0)} to{transform:rotate(180deg)} }
|
|
12300
|
+
@keyframes os-rotate-360 { from{transform:rotate(0)} to{transform:rotate(360deg)} }
|
|
12301
|
+
@keyframes os-fade-in { from{opacity:0} to{opacity:1} }
|
|
12302
|
+
@keyframes os-fade-out { from{opacity:1} to{opacity:0} }
|
|
12303
|
+
@keyframes os-scale-up { from{transform:scale(0.8)} to{transform:scale(1)} }
|
|
12304
|
+
@keyframes os-slide-down { from{transform:translateY(-20px);opacity:0} to{transform:translateY(0);opacity:1} }
|
|
12305
|
+
@keyframes os-translate-y-half { from{transform:translateY(0)} to{transform:translateY(-50%)} }
|
|
12306
|
+
|
|
12307
|
+
.on-scroll\:animate-width-full { animation:os-width-full linear; animation-timeline:scroll(); animation-fill-mode:both; }
|
|
12308
|
+
.on-scroll\:rotate-180 { animation:os-rotate-180 linear; animation-timeline:scroll(); animation-fill-mode:both; }
|
|
12309
|
+
.on-scroll\:rotate-360 { animation:os-rotate-360 linear; animation-timeline:scroll(); animation-fill-mode:both; }
|
|
12310
|
+
.on-scroll\:fade-in { animation:os-fade-in linear; animation-timeline:scroll(); animation-fill-mode:both; }
|
|
12311
|
+
.on-scroll\:fade-out { animation:os-fade-out linear; animation-timeline:scroll(); animation-fill-mode:both; }
|
|
12312
|
+
.on-scroll\:scale-up { animation:os-scale-up linear; animation-timeline:scroll(); animation-fill-mode:both; }
|
|
12313
|
+
.on-scroll\:slide-down { animation:os-slide-down linear; animation-timeline:scroll(); animation-fill-mode:both; }
|
|
12314
|
+
.on-scroll\:translate-y-half { animation:os-translate-y-half linear; animation-timeline:scroll(); animation-fill-mode:both; }
|
|
12315
|
+
|
|
12316
|
+
/* ── scroll-{prop} — scroll-linked CSS property utilities ── */
|
|
12317
|
+
@keyframes scroll-grow-width { from{width:0} to{width:100%} }
|
|
12318
|
+
@keyframes scroll-opacity-out { from{opacity:1} to{opacity:0} }
|
|
12319
|
+
@keyframes scroll-scale-down { from{transform:scale(1)} to{transform:scale(0.8)} }
|
|
12320
|
+
@keyframes scroll-parallax-slow { from{transform:translateY(0)} to{transform:translateY(-30%)} }
|
|
12321
|
+
@keyframes scroll-parallax-fast { from{transform:translateY(0)} to{transform:translateY(-60%)} }
|
|
12322
|
+
|
|
12323
|
+
.scroll-width { animation:scroll-grow-width linear both; animation-timeline:scroll(root); }
|
|
12324
|
+
.scroll-opacity-out { animation:scroll-opacity-out linear both; animation-timeline:scroll(root); }
|
|
12325
|
+
.scroll-scale-down { animation:scroll-scale-down linear both; animation-timeline:scroll(root); }
|
|
12326
|
+
.scroll-parallax-slow { animation:scroll-parallax-slow linear both; animation-timeline:scroll(nearest); }
|
|
12327
|
+
.scroll-parallax-fast { animation:scroll-parallax-fast linear both; animation-timeline:scroll(nearest); }
|
|
12328
|
+
|
|
12329
|
+
|
|
12330
|
+
/* ── stagger-children — auto-delay nth-child for list animations ── */
|
|
12331
|
+
.stagger-children > *:nth-child(1) { animation-delay:0ms; }
|
|
12332
|
+
.stagger-children > *:nth-child(2) { animation-delay:100ms; }
|
|
12333
|
+
.stagger-children > *:nth-child(3) { animation-delay:200ms; }
|
|
12334
|
+
.stagger-children > *:nth-child(4) { animation-delay:300ms; }
|
|
12335
|
+
.stagger-children > *:nth-child(5) { animation-delay:400ms; }
|
|
12336
|
+
.stagger-children > *:nth-child(6) { animation-delay:500ms; }
|
|
12337
|
+
.stagger-children > *:nth-child(7) { animation-delay:600ms; }
|
|
12338
|
+
.stagger-children > *:nth-child(8) { animation-delay:700ms; }
|
|
12339
|
+
.stagger-children > *:nth-child(9) { animation-delay:800ms; }
|
|
12340
|
+
.stagger-children > *:nth-child(10) { animation-delay:900ms; }
|
|
12341
|
+
.stagger-children > *:nth-child(11) { animation-delay:1000ms; }
|
|
12342
|
+
.stagger-children > *:nth-child(12) { animation-delay:1100ms; }
|
|
12343
|
+
|
|
12344
|
+
/* stagger-50 */
|
|
12345
|
+
.stagger-50 > *:nth-child(1) { animation-delay:0ms; }
|
|
12346
|
+
.stagger-50 > *:nth-child(2) { animation-delay:50ms; }
|
|
12347
|
+
.stagger-50 > *:nth-child(3) { animation-delay:100ms; }
|
|
12348
|
+
.stagger-50 > *:nth-child(4) { animation-delay:150ms; }
|
|
12349
|
+
.stagger-50 > *:nth-child(5) { animation-delay:200ms; }
|
|
12350
|
+
.stagger-50 > *:nth-child(6) { animation-delay:250ms; }
|
|
12351
|
+
.stagger-50 > *:nth-child(7) { animation-delay:300ms; }
|
|
12352
|
+
.stagger-50 > *:nth-child(8) { animation-delay:350ms; }
|
|
12353
|
+
.stagger-50 > *:nth-child(9) { animation-delay:400ms; }
|
|
12354
|
+
.stagger-50 > *:nth-child(10) { animation-delay:450ms; }
|
|
12355
|
+
.stagger-50 > *:nth-child(11) { animation-delay:500ms; }
|
|
12356
|
+
.stagger-50 > *:nth-child(12) { animation-delay:550ms; }
|
|
12357
|
+
|
|
12358
|
+
/* stagger-150 */
|
|
12359
|
+
.stagger-150 > *:nth-child(1) { animation-delay:0ms; }
|
|
12360
|
+
.stagger-150 > *:nth-child(2) { animation-delay:150ms; }
|
|
12361
|
+
.stagger-150 > *:nth-child(3) { animation-delay:300ms; }
|
|
12362
|
+
.stagger-150 > *:nth-child(4) { animation-delay:450ms; }
|
|
12363
|
+
.stagger-150 > *:nth-child(5) { animation-delay:600ms; }
|
|
12364
|
+
.stagger-150 > *:nth-child(6) { animation-delay:750ms; }
|
|
12365
|
+
.stagger-150 > *:nth-child(7) { animation-delay:900ms; }
|
|
12366
|
+
.stagger-150 > *:nth-child(8) { animation-delay:1050ms; }
|
|
12367
|
+
.stagger-150 > *:nth-child(9) { animation-delay:1200ms; }
|
|
12368
|
+
.stagger-150 > *:nth-child(10) { animation-delay:1350ms; }
|
|
12369
|
+
.stagger-150 > *:nth-child(11) { animation-delay:1500ms; }
|
|
12370
|
+
.stagger-150 > *:nth-child(12) { animation-delay:1650ms; }
|
|
12371
|
+
|
|
12372
|
+
/* stagger-200 */
|
|
12373
|
+
.stagger-200 > *:nth-child(1) { animation-delay:0ms; }
|
|
12374
|
+
.stagger-200 > *:nth-child(2) { animation-delay:200ms; }
|
|
12375
|
+
.stagger-200 > *:nth-child(3) { animation-delay:400ms; }
|
|
12376
|
+
.stagger-200 > *:nth-child(4) { animation-delay:600ms; }
|
|
12377
|
+
.stagger-200 > *:nth-child(5) { animation-delay:800ms; }
|
|
12378
|
+
.stagger-200 > *:nth-child(6) { animation-delay:1000ms; }
|
|
12379
|
+
.stagger-200 > *:nth-child(7) { animation-delay:1200ms; }
|
|
12380
|
+
.stagger-200 > *:nth-child(8) { animation-delay:1400ms; }
|
|
12381
|
+
.stagger-200 > *:nth-child(9) { animation-delay:1600ms; }
|
|
12382
|
+
.stagger-200 > *:nth-child(10) { animation-delay:1800ms; }
|
|
12383
|
+
.stagger-200 > *:nth-child(11) { animation-delay:2000ms; }
|
|
12384
|
+
.stagger-200 > *:nth-child(12) { animation-delay:2200ms; }
|
|
12385
|
+
|
|
12386
|
+
/* stagger-300 */
|
|
12387
|
+
.stagger-300 > *:nth-child(1) { animation-delay:0ms; }
|
|
12388
|
+
.stagger-300 > *:nth-child(2) { animation-delay:300ms; }
|
|
12389
|
+
.stagger-300 > *:nth-child(3) { animation-delay:600ms; }
|
|
12390
|
+
.stagger-300 > *:nth-child(4) { animation-delay:900ms; }
|
|
12391
|
+
.stagger-300 > *:nth-child(5) { animation-delay:1200ms; }
|
|
12392
|
+
.stagger-300 > *:nth-child(6) { animation-delay:1500ms; }
|
|
12393
|
+
.stagger-300 > *:nth-child(7) { animation-delay:1800ms; }
|
|
12394
|
+
.stagger-300 > *:nth-child(8) { animation-delay:2100ms; }
|
|
12395
|
+
.stagger-300 > *:nth-child(9) { animation-delay:2400ms; }
|
|
12396
|
+
.stagger-300 > *:nth-child(10) { animation-delay:2700ms; }
|
|
12397
|
+
.stagger-300 > *:nth-child(11) { animation-delay:3000ms; }
|
|
12398
|
+
.stagger-300 > *:nth-child(12) { animation-delay:3300ms; }
|
|
12399
|
+
|
|
12400
|
+
/* ── Scroll animations — prefers-reduced-motion ── */
|
|
12401
|
+
@media (prefers-reduced-motion: reduce) {
|
|
12402
|
+
[class*="when-visible:"],
|
|
12403
|
+
[class*="on-scroll:"],
|
|
12404
|
+
.scroll-width, .scroll-opacity-out, .scroll-scale-down,
|
|
12405
|
+
.scroll-parallax-slow, .scroll-parallax-fast {
|
|
12406
|
+
animation: none !important;
|
|
12407
|
+
transition: none !important;
|
|
12408
|
+
}
|
|
12409
|
+
}
|
|
12410
|
+
|
|
12411
|
+
|
|
12169
12412
|
/* ═══ SANTY COMPONENTS ═══ */
|
|
12170
12413
|
|
|
12171
12414
|
/* ═══════════════════════════════════════════════════════════════
|