ps-helix 5.1.2 → 6.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/README.md +1188 -1188
- package/THEME.md +446 -446
- package/fesm2022/ps-helix.mjs +1949 -1012
- package/fesm2022/ps-helix.mjs.map +1 -1
- package/package.json +6 -5
- package/src/lib/styles/base/global.css +48 -32
- package/src/lib/styles/themes/dark.css +200 -200
- package/src/lib/styles/themes/light.css +278 -278
- package/src/lib/styles/tokens/breakpoints.tokens.css +20 -0
- package/src/lib/styles/tokens/sizing.tokens.css +94 -94
- package/src/lib/styles/tokens/spacing.tokens.css +27 -27
- package/src/lib/styles/utilities/animations.utils.css +157 -157
- package/src/lib/styles/utilities/colors.utils.css +223 -223
- package/src/lib/styles/utilities/focus.utils.css +56 -62
- package/src/lib/styles/utilities/layout.utils.css +135 -135
- package/src/lib/styles/utilities/responsive.utils.css +219 -226
- package/src/lib/styles/utilities/spacing.utils.css +150 -150
- package/src/lib/styles/utilities/typography.utils.css +36 -36
- package/styles.css +34 -33
- package/types/ps-helix.d.ts +291 -67
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
/* Design Tokens - Sizing System */
|
|
2
|
-
|
|
3
|
-
:root {
|
|
4
|
-
/* Base sizing scale - All measurements in rem for accessibility */
|
|
5
|
-
--size-0: 0;
|
|
6
|
-
--size-px: 0.0625rem; /* 1px */
|
|
7
|
-
--size-0-5: 0.125rem; /* 2px */
|
|
8
|
-
--size-1: 0.25rem; /* 4px */
|
|
9
|
-
--size-1-5: 0.375rem; /* 6px */
|
|
10
|
-
--size-2: 0.5rem; /* 8px */
|
|
11
|
-
--size-2-5: 0.625rem; /* 10px */
|
|
12
|
-
--size-3: 0.75rem; /* 12px */
|
|
13
|
-
--size-3-5: 0.875rem; /* 14px */
|
|
14
|
-
--size-4: 1rem; /* 16px */
|
|
15
|
-
--size-4-5: 1.125rem; /* 18px */
|
|
16
|
-
--size-5: 1.25rem; /* 20px */
|
|
17
|
-
--size-5-5: 1.375rem; /* 22px */
|
|
18
|
-
--size-6: 1.5rem; /* 24px */
|
|
19
|
-
--size-6-5: 1.625rem; /* 26px */
|
|
20
|
-
--size-7: 1.75rem; /* 28px */
|
|
21
|
-
--size-8: 2rem; /* 32px */
|
|
22
|
-
--size-8-5: 2.125rem; /* 34px */
|
|
23
|
-
--size-9: 2.25rem; /* 36px */
|
|
24
|
-
--size-10: 2.5rem; /* 40px */
|
|
25
|
-
--size-11: 2.75rem; /* 44px */
|
|
26
|
-
--size-12: 3rem; /* 48px */
|
|
27
|
-
--size-14: 3.5rem; /* 56px */
|
|
28
|
-
--size-16: 4rem; /* 64px */
|
|
29
|
-
--size-18: 4.5rem; /* 72px */
|
|
30
|
-
--size-20: 5rem; /* 80px */
|
|
31
|
-
--size-24: 6rem; /* 96px */
|
|
32
|
-
--size-28: 7rem; /* 112px */
|
|
33
|
-
--size-32: 8rem; /* 128px */
|
|
34
|
-
--size-36: 9rem; /* 144px */
|
|
35
|
-
--size-40: 10rem; /* 160px */
|
|
36
|
-
--size-44: 11rem; /* 176px */
|
|
37
|
-
--size-48: 12rem; /* 192px */
|
|
38
|
-
--size-52: 13rem; /* 208px */
|
|
39
|
-
--size-56: 14rem; /* 224px */
|
|
40
|
-
--size-60: 15rem; /* 240px */
|
|
41
|
-
--size-64: 16rem; /* 256px */
|
|
42
|
-
--size-72: 18rem; /* 288px */
|
|
43
|
-
--size-80: 20rem; /* 320px */
|
|
44
|
-
--size-96: 24rem; /* 384px */
|
|
45
|
-
|
|
46
|
-
/* Icon sizes */
|
|
47
|
-
--icon-size-xs: 0.75rem; /* 12px */
|
|
48
|
-
--icon-size-sm: 1rem; /* 16px */
|
|
49
|
-
--icon-size-md: 1.25rem; /* 20px */
|
|
50
|
-
--icon-size-lg: 1.5rem; /* 24px */
|
|
51
|
-
--icon-size-xl: 2rem; /* 32px */
|
|
52
|
-
--icon-size-2xl: 3rem; /* 48px */
|
|
53
|
-
|
|
54
|
-
/* Border widths - keeping px for subpixel rendering */
|
|
55
|
-
--border-width-0: 0;
|
|
56
|
-
--border-width-1: 1px;
|
|
57
|
-
--border-width-2: 2px;
|
|
58
|
-
--border-width-4: 4px;
|
|
59
|
-
--border-width-8: 8px;
|
|
60
|
-
|
|
61
|
-
/* Border radius scale */
|
|
62
|
-
--radius-none: 0;
|
|
63
|
-
--radius-sm: 0.125rem; /* 2px */
|
|
64
|
-
--radius-base: 0.25rem; /* 4px */
|
|
65
|
-
--radius-md: 0.375rem; /* 6px */
|
|
66
|
-
--radius-lg: 0.5rem; /* 8px */
|
|
67
|
-
--radius-xl: 0.75rem; /* 12px */
|
|
68
|
-
--radius-2xl: 1rem; /* 16px */
|
|
69
|
-
--radius-3xl: 1.5rem; /* 24px */
|
|
70
|
-
--radius-full: 9999px;
|
|
71
|
-
|
|
72
|
-
/* Container max-widths */
|
|
73
|
-
--container-xs: 20rem; /* 320px */
|
|
74
|
-
--container-sm: 24rem; /* 384px */
|
|
75
|
-
--container-md: 28rem; /* 448px */
|
|
76
|
-
--container-lg: 32rem; /* 512px */
|
|
77
|
-
--container-xl: 36rem; /* 576px */
|
|
78
|
-
--container-2xl: 42rem; /* 672px */
|
|
79
|
-
--container-3xl: 48rem; /* 768px */
|
|
80
|
-
--container-4xl: 56rem; /* 896px */
|
|
81
|
-
--container-5xl: 64rem; /* 1024px */
|
|
82
|
-
--container-6xl: 72rem; /* 1152px */
|
|
83
|
-
--container-7xl: 80rem; /* 1280px */
|
|
84
|
-
|
|
85
|
-
/* Input component heights */
|
|
86
|
-
--height-input-sm: 2rem; /* 32px */
|
|
87
|
-
--height-input-md: 2.5rem; /* 40px */
|
|
88
|
-
--height-input-lg: 3rem; /* 48px */
|
|
89
|
-
|
|
90
|
-
/* Scrollbar width compensation */
|
|
91
|
-
--scrollbar-width: 0;
|
|
92
|
-
|
|
93
|
-
/* Breakpoints - See
|
|
94
|
-
}
|
|
1
|
+
/* Design Tokens - Sizing System */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
/* Base sizing scale - All measurements in rem for accessibility */
|
|
5
|
+
--size-0: 0;
|
|
6
|
+
--size-px: 0.0625rem; /* 1px */
|
|
7
|
+
--size-0-5: 0.125rem; /* 2px */
|
|
8
|
+
--size-1: 0.25rem; /* 4px */
|
|
9
|
+
--size-1-5: 0.375rem; /* 6px */
|
|
10
|
+
--size-2: 0.5rem; /* 8px */
|
|
11
|
+
--size-2-5: 0.625rem; /* 10px */
|
|
12
|
+
--size-3: 0.75rem; /* 12px */
|
|
13
|
+
--size-3-5: 0.875rem; /* 14px */
|
|
14
|
+
--size-4: 1rem; /* 16px */
|
|
15
|
+
--size-4-5: 1.125rem; /* 18px */
|
|
16
|
+
--size-5: 1.25rem; /* 20px */
|
|
17
|
+
--size-5-5: 1.375rem; /* 22px */
|
|
18
|
+
--size-6: 1.5rem; /* 24px */
|
|
19
|
+
--size-6-5: 1.625rem; /* 26px */
|
|
20
|
+
--size-7: 1.75rem; /* 28px */
|
|
21
|
+
--size-8: 2rem; /* 32px */
|
|
22
|
+
--size-8-5: 2.125rem; /* 34px */
|
|
23
|
+
--size-9: 2.25rem; /* 36px */
|
|
24
|
+
--size-10: 2.5rem; /* 40px */
|
|
25
|
+
--size-11: 2.75rem; /* 44px */
|
|
26
|
+
--size-12: 3rem; /* 48px */
|
|
27
|
+
--size-14: 3.5rem; /* 56px */
|
|
28
|
+
--size-16: 4rem; /* 64px */
|
|
29
|
+
--size-18: 4.5rem; /* 72px */
|
|
30
|
+
--size-20: 5rem; /* 80px */
|
|
31
|
+
--size-24: 6rem; /* 96px */
|
|
32
|
+
--size-28: 7rem; /* 112px */
|
|
33
|
+
--size-32: 8rem; /* 128px */
|
|
34
|
+
--size-36: 9rem; /* 144px */
|
|
35
|
+
--size-40: 10rem; /* 160px */
|
|
36
|
+
--size-44: 11rem; /* 176px */
|
|
37
|
+
--size-48: 12rem; /* 192px */
|
|
38
|
+
--size-52: 13rem; /* 208px */
|
|
39
|
+
--size-56: 14rem; /* 224px */
|
|
40
|
+
--size-60: 15rem; /* 240px */
|
|
41
|
+
--size-64: 16rem; /* 256px */
|
|
42
|
+
--size-72: 18rem; /* 288px */
|
|
43
|
+
--size-80: 20rem; /* 320px */
|
|
44
|
+
--size-96: 24rem; /* 384px */
|
|
45
|
+
|
|
46
|
+
/* Icon sizes */
|
|
47
|
+
--icon-size-xs: 0.75rem; /* 12px */
|
|
48
|
+
--icon-size-sm: 1rem; /* 16px */
|
|
49
|
+
--icon-size-md: 1.25rem; /* 20px */
|
|
50
|
+
--icon-size-lg: 1.5rem; /* 24px */
|
|
51
|
+
--icon-size-xl: 2rem; /* 32px */
|
|
52
|
+
--icon-size-2xl: 3rem; /* 48px */
|
|
53
|
+
|
|
54
|
+
/* Border widths - keeping px for subpixel rendering */
|
|
55
|
+
--border-width-0: 0;
|
|
56
|
+
--border-width-1: 1px;
|
|
57
|
+
--border-width-2: 2px;
|
|
58
|
+
--border-width-4: 4px;
|
|
59
|
+
--border-width-8: 8px;
|
|
60
|
+
|
|
61
|
+
/* Border radius scale */
|
|
62
|
+
--radius-none: 0;
|
|
63
|
+
--radius-sm: 0.125rem; /* 2px */
|
|
64
|
+
--radius-base: 0.25rem; /* 4px */
|
|
65
|
+
--radius-md: 0.375rem; /* 6px */
|
|
66
|
+
--radius-lg: 0.5rem; /* 8px */
|
|
67
|
+
--radius-xl: 0.75rem; /* 12px */
|
|
68
|
+
--radius-2xl: 1rem; /* 16px */
|
|
69
|
+
--radius-3xl: 1.5rem; /* 24px */
|
|
70
|
+
--radius-full: 9999px;
|
|
71
|
+
|
|
72
|
+
/* Container max-widths */
|
|
73
|
+
--container-xs: 20rem; /* 320px */
|
|
74
|
+
--container-sm: 24rem; /* 384px */
|
|
75
|
+
--container-md: 28rem; /* 448px */
|
|
76
|
+
--container-lg: 32rem; /* 512px */
|
|
77
|
+
--container-xl: 36rem; /* 576px */
|
|
78
|
+
--container-2xl: 42rem; /* 672px */
|
|
79
|
+
--container-3xl: 48rem; /* 768px */
|
|
80
|
+
--container-4xl: 56rem; /* 896px */
|
|
81
|
+
--container-5xl: 64rem; /* 1024px */
|
|
82
|
+
--container-6xl: 72rem; /* 1152px */
|
|
83
|
+
--container-7xl: 80rem; /* 1280px */
|
|
84
|
+
|
|
85
|
+
/* Input component heights */
|
|
86
|
+
--height-input-sm: 2rem; /* 32px */
|
|
87
|
+
--height-input-md: 2.5rem; /* 40px */
|
|
88
|
+
--height-input-lg: 3rem; /* 48px */
|
|
89
|
+
|
|
90
|
+
/* Scrollbar width compensation */
|
|
91
|
+
--scrollbar-width: 0;
|
|
92
|
+
|
|
93
|
+
/* Breakpoints - See tokens/breakpoints.tokens.css for the responsive scale */
|
|
94
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
/* Design Tokens - Spacing System */
|
|
2
|
-
|
|
3
|
-
:root {
|
|
4
|
-
/* Positive spacing scale */
|
|
5
|
-
--spacing-xxs: 0.125rem; /* 2px */
|
|
6
|
-
--spacing-xs: 0.25rem; /* 4px */
|
|
7
|
-
--spacing-sm: 0.5rem; /* 8px */
|
|
8
|
-
--spacing-md: 1rem; /* 16px */
|
|
9
|
-
--spacing-lg: 1.5rem; /* 24px */
|
|
10
|
-
--spacing-xl: 2rem; /* 32px */
|
|
11
|
-
--spacing-2xl: 3rem; /* 48px */
|
|
12
|
-
--spacing-3xl: 4rem; /* 64px */
|
|
13
|
-
--spacing-4xl: 5rem; /* 80px */
|
|
14
|
-
|
|
15
|
-
/* Form field semantic spacing */
|
|
16
|
-
--form-field-gap: var(--spacing-xs); /* label <-> control <-> message */
|
|
17
|
-
--form-label-gap: var(--spacing-sm); /* control <-> inline label (checkbox/radio/switch) */
|
|
18
|
-
|
|
19
|
-
/* Negative spacing scale (for negative margins) */
|
|
20
|
-
--negative-spacing-xxs: -0.125rem;
|
|
21
|
-
--negative-spacing-xs: -0.25rem;
|
|
22
|
-
--negative-spacing-sm: -0.5rem;
|
|
23
|
-
--negative-spacing-md: -1rem;
|
|
24
|
-
--negative-spacing-lg: -1.5rem;
|
|
25
|
-
--negative-spacing-xl: -2rem;
|
|
26
|
-
--negative-spacing-2xl: -3rem;
|
|
27
|
-
}
|
|
1
|
+
/* Design Tokens - Spacing System */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
/* Positive spacing scale */
|
|
5
|
+
--spacing-xxs: 0.125rem; /* 2px */
|
|
6
|
+
--spacing-xs: 0.25rem; /* 4px */
|
|
7
|
+
--spacing-sm: 0.5rem; /* 8px */
|
|
8
|
+
--spacing-md: 1rem; /* 16px */
|
|
9
|
+
--spacing-lg: 1.5rem; /* 24px */
|
|
10
|
+
--spacing-xl: 2rem; /* 32px */
|
|
11
|
+
--spacing-2xl: 3rem; /* 48px */
|
|
12
|
+
--spacing-3xl: 4rem; /* 64px */
|
|
13
|
+
--spacing-4xl: 5rem; /* 80px */
|
|
14
|
+
|
|
15
|
+
/* Form field semantic spacing */
|
|
16
|
+
--form-field-gap: var(--spacing-xs); /* label <-> control <-> message */
|
|
17
|
+
--form-label-gap: var(--spacing-sm); /* control <-> inline label (checkbox/radio/switch) */
|
|
18
|
+
|
|
19
|
+
/* Negative spacing scale (for negative margins) */
|
|
20
|
+
--negative-spacing-xxs: -0.125rem;
|
|
21
|
+
--negative-spacing-xs: -0.25rem;
|
|
22
|
+
--negative-spacing-sm: -0.5rem;
|
|
23
|
+
--negative-spacing-md: -1rem;
|
|
24
|
+
--negative-spacing-lg: -1.5rem;
|
|
25
|
+
--negative-spacing-xl: -2rem;
|
|
26
|
+
--negative-spacing-2xl: -3rem;
|
|
27
|
+
}
|
|
@@ -1,157 +1,157 @@
|
|
|
1
|
-
/* Utility Classes - Animations */
|
|
2
|
-
|
|
3
|
-
/* Keyframe definitions */
|
|
4
|
-
@keyframes fadeIn {
|
|
5
|
-
from {
|
|
6
|
-
opacity: 0;
|
|
7
|
-
}
|
|
8
|
-
to {
|
|
9
|
-
opacity: 1;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@keyframes fadeInUp {
|
|
14
|
-
from {
|
|
15
|
-
opacity: 0;
|
|
16
|
-
transform: translateY(var(--animation-distance-md));
|
|
17
|
-
}
|
|
18
|
-
to {
|
|
19
|
-
opacity: 1;
|
|
20
|
-
transform: translateY(0);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@keyframes slideIn {
|
|
25
|
-
from {
|
|
26
|
-
opacity: 0;
|
|
27
|
-
transform: translateX(100%);
|
|
28
|
-
}
|
|
29
|
-
to {
|
|
30
|
-
opacity: 1;
|
|
31
|
-
transform: translateX(0);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@keyframes slideInDown {
|
|
36
|
-
from {
|
|
37
|
-
opacity: 0;
|
|
38
|
-
transform: translateY(calc(-1 * var(--animation-distance-md)));
|
|
39
|
-
}
|
|
40
|
-
to {
|
|
41
|
-
opacity: 1;
|
|
42
|
-
transform: translateY(0);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@keyframes slideInLeft {
|
|
47
|
-
from {
|
|
48
|
-
opacity: 0;
|
|
49
|
-
transform: translateX(calc(-1 * var(--animation-distance-md)));
|
|
50
|
-
}
|
|
51
|
-
to {
|
|
52
|
-
opacity: 1;
|
|
53
|
-
transform: translateX(0);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
@keyframes slideInRight {
|
|
58
|
-
from {
|
|
59
|
-
opacity: 0;
|
|
60
|
-
transform: translateX(var(--animation-distance-md));
|
|
61
|
-
}
|
|
62
|
-
to {
|
|
63
|
-
opacity: 1;
|
|
64
|
-
transform: translateX(0);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
@keyframes scaleIn {
|
|
69
|
-
from {
|
|
70
|
-
opacity: 0;
|
|
71
|
-
transform: scale(0.95);
|
|
72
|
-
}
|
|
73
|
-
to {
|
|
74
|
-
opacity: 1;
|
|
75
|
-
transform: scale(1);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
@keyframes spin {
|
|
80
|
-
to {
|
|
81
|
-
transform: rotate(360deg);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
@keyframes bounce {
|
|
86
|
-
0%, 100% {
|
|
87
|
-
transform: translateY(0);
|
|
88
|
-
}
|
|
89
|
-
50% {
|
|
90
|
-
transform: translateY(calc(-1 * var(--animation-distance-sm)));
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
@keyframes pulse {
|
|
95
|
-
0%, 100% {
|
|
96
|
-
opacity: 1;
|
|
97
|
-
transform: scale(1);
|
|
98
|
-
}
|
|
99
|
-
50% {
|
|
100
|
-
opacity: 0.8;
|
|
101
|
-
transform: scale(1.05);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/* Animation utility classes */
|
|
106
|
-
.animate-fade-in {
|
|
107
|
-
animation: fadeIn var(--animation-duration-default) var(--animation-easing-default);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
.animate-fade-in-up {
|
|
111
|
-
animation: fadeInUp var(--animation-duration-default) var(--animation-easing-default);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.animate-slide-in {
|
|
115
|
-
animation: slideIn var(--animation-duration-default) var(--animation-easing-default);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.animate-slide-in-down {
|
|
119
|
-
animation: slideInDown var(--animation-duration-default) var(--animation-easing-default);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
.animate-slide-in-left {
|
|
123
|
-
animation: slideInLeft var(--animation-duration-default) var(--animation-easing-default);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.animate-slide-in-right {
|
|
127
|
-
animation: slideInRight var(--animation-duration-default) var(--animation-easing-default);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
.animate-scale-in {
|
|
131
|
-
animation: scaleIn var(--animation-duration-fast) var(--animation-easing-smooth);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
.animate-spin {
|
|
135
|
-
animation: spin 1s linear infinite;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.animate-bounce {
|
|
139
|
-
animation: bounce var(--animation-duration-slow) var(--animation-easing-default) infinite;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
.animate-pulse {
|
|
143
|
-
animation: pulse var(--animation-duration-slow) var(--animation-easing-default) infinite;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/* Animation control utilities */
|
|
147
|
-
.animate-fast {
|
|
148
|
-
animation-duration: var(--animation-duration-fast) !important;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
.animate-slow {
|
|
152
|
-
animation-duration: var(--animation-duration-slow) !important;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
.animate-smooth {
|
|
156
|
-
animation-timing-function: var(--animation-easing-smooth) !important;
|
|
157
|
-
}
|
|
1
|
+
/* Utility Classes - Animations */
|
|
2
|
+
|
|
3
|
+
/* Keyframe definitions */
|
|
4
|
+
@keyframes fadeIn {
|
|
5
|
+
from {
|
|
6
|
+
opacity: 0;
|
|
7
|
+
}
|
|
8
|
+
to {
|
|
9
|
+
opacity: 1;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@keyframes fadeInUp {
|
|
14
|
+
from {
|
|
15
|
+
opacity: 0;
|
|
16
|
+
transform: translateY(var(--animation-distance-md));
|
|
17
|
+
}
|
|
18
|
+
to {
|
|
19
|
+
opacity: 1;
|
|
20
|
+
transform: translateY(0);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@keyframes slideIn {
|
|
25
|
+
from {
|
|
26
|
+
opacity: 0;
|
|
27
|
+
transform: translateX(100%);
|
|
28
|
+
}
|
|
29
|
+
to {
|
|
30
|
+
opacity: 1;
|
|
31
|
+
transform: translateX(0);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@keyframes slideInDown {
|
|
36
|
+
from {
|
|
37
|
+
opacity: 0;
|
|
38
|
+
transform: translateY(calc(-1 * var(--animation-distance-md)));
|
|
39
|
+
}
|
|
40
|
+
to {
|
|
41
|
+
opacity: 1;
|
|
42
|
+
transform: translateY(0);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@keyframes slideInLeft {
|
|
47
|
+
from {
|
|
48
|
+
opacity: 0;
|
|
49
|
+
transform: translateX(calc(-1 * var(--animation-distance-md)));
|
|
50
|
+
}
|
|
51
|
+
to {
|
|
52
|
+
opacity: 1;
|
|
53
|
+
transform: translateX(0);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@keyframes slideInRight {
|
|
58
|
+
from {
|
|
59
|
+
opacity: 0;
|
|
60
|
+
transform: translateX(var(--animation-distance-md));
|
|
61
|
+
}
|
|
62
|
+
to {
|
|
63
|
+
opacity: 1;
|
|
64
|
+
transform: translateX(0);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@keyframes scaleIn {
|
|
69
|
+
from {
|
|
70
|
+
opacity: 0;
|
|
71
|
+
transform: scale(0.95);
|
|
72
|
+
}
|
|
73
|
+
to {
|
|
74
|
+
opacity: 1;
|
|
75
|
+
transform: scale(1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@keyframes spin {
|
|
80
|
+
to {
|
|
81
|
+
transform: rotate(360deg);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@keyframes bounce {
|
|
86
|
+
0%, 100% {
|
|
87
|
+
transform: translateY(0);
|
|
88
|
+
}
|
|
89
|
+
50% {
|
|
90
|
+
transform: translateY(calc(-1 * var(--animation-distance-sm)));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@keyframes pulse {
|
|
95
|
+
0%, 100% {
|
|
96
|
+
opacity: 1;
|
|
97
|
+
transform: scale(1);
|
|
98
|
+
}
|
|
99
|
+
50% {
|
|
100
|
+
opacity: 0.8;
|
|
101
|
+
transform: scale(1.05);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Animation utility classes */
|
|
106
|
+
.psh-animate-fade-in {
|
|
107
|
+
animation: fadeIn var(--animation-duration-default) var(--animation-easing-default);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.psh-animate-fade-in-up {
|
|
111
|
+
animation: fadeInUp var(--animation-duration-default) var(--animation-easing-default);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.psh-animate-slide-in {
|
|
115
|
+
animation: slideIn var(--animation-duration-default) var(--animation-easing-default);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.psh-animate-slide-in-down {
|
|
119
|
+
animation: slideInDown var(--animation-duration-default) var(--animation-easing-default);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.psh-animate-slide-in-left {
|
|
123
|
+
animation: slideInLeft var(--animation-duration-default) var(--animation-easing-default);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.psh-animate-slide-in-right {
|
|
127
|
+
animation: slideInRight var(--animation-duration-default) var(--animation-easing-default);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.psh-animate-scale-in {
|
|
131
|
+
animation: scaleIn var(--animation-duration-fast) var(--animation-easing-smooth);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.psh-animate-spin {
|
|
135
|
+
animation: spin 1s linear infinite;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.psh-animate-bounce {
|
|
139
|
+
animation: bounce var(--animation-duration-slow) var(--animation-easing-default) infinite;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.psh-animate-pulse {
|
|
143
|
+
animation: pulse var(--animation-duration-slow) var(--animation-easing-default) infinite;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Animation control utilities */
|
|
147
|
+
.psh-animate-fast {
|
|
148
|
+
animation-duration: var(--animation-duration-fast) !important;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.psh-animate-slow {
|
|
152
|
+
animation-duration: var(--animation-duration-slow) !important;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.psh-animate-smooth {
|
|
156
|
+
animation-timing-function: var(--animation-easing-smooth) !important;
|
|
157
|
+
}
|