ps-helix 6.2.3 → 7.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/CONFIGURATION.md +492 -0
- package/README.md +131 -125
- package/THEME.md +37 -27
- package/TOKENS.md +662 -0
- package/fesm2022/ps-helix.mjs +7777 -5714
- package/fesm2022/ps-helix.mjs.map +1 -1
- package/package.json +18 -8
- package/src/lib/styles/base/a11y.css +36 -0
- package/src/lib/styles/base/behavior.css +15 -0
- package/src/lib/styles/base/global.css +9 -26
- package/src/lib/styles/compat.css +580 -0
- package/src/lib/styles/themes/dark-auto.css +315 -0
- package/src/lib/styles/themes/dark.css +259 -157
- package/src/lib/styles/themes/light.css +236 -221
- package/src/lib/styles/tokens/animations.tokens.css +30 -21
- package/src/lib/styles/tokens/breakpoints.tokens.css +22 -6
- package/src/lib/styles/tokens/effects.tokens.css +25 -25
- package/src/lib/styles/tokens/layout.tokens.css +32 -32
- package/src/lib/styles/tokens/sizing.tokens.css +87 -75
- package/src/lib/styles/tokens/spacing.tokens.css +18 -18
- package/src/lib/styles/tokens/typography.tokens.css +34 -34
- package/src/lib/styles/utilities/animations.utils.css +18 -18
- package/src/lib/styles/utilities/colors.utils.css +196 -196
- package/src/lib/styles/utilities/focus.utils.css +13 -13
- package/src/lib/styles/utilities/layout.utils.css +9 -9
- package/src/lib/styles/utilities/responsive.utils.css +49 -49
- package/src/lib/styles/utilities/spacing.utils.css +96 -96
- package/src/lib/styles/utilities/typography.utils.css +25 -25
- package/styles-full.css +25 -0
- package/styles.css +17 -8
- package/types/ps-helix.d.ts +3251 -1724
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
/* Design Tokens - Visual Effects */
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
|
-
/* Border
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
/* Border radii live in sizing.tokens.css. They used to be shadowed here by a shifted
|
|
5
|
+
alias layer — --border-radius resolved to --radius-lg, --border-radius-lg to
|
|
6
|
+
--radius-xl — which is why the library carried two competing scales. The aliases are
|
|
7
|
+
gone and their consumers now point at the step they actually rendered. */
|
|
8
8
|
|
|
9
9
|
/* Shadows */
|
|
10
|
-
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
11
|
-
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
12
|
-
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
|
10
|
+
--psh-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
11
|
+
--psh-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
12
|
+
--psh-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
|
13
13
|
|
|
14
14
|
/* Z-Index System */
|
|
15
|
-
--z-index-navigation: 50;
|
|
16
|
-
--z-index-dropdown: 100;
|
|
17
|
-
--z-index-tooltip: 200;
|
|
18
|
-
--z-index-modal-backdrop: 999;
|
|
19
|
-
--z-index-modal: 1000;
|
|
20
|
-
--z-index-overlay: 1100; /* body-teleported popovers (select/dropdown/menu) above modals */
|
|
21
|
-
--z-index-toast: 9999;
|
|
15
|
+
--psh-z-index-navigation: 50;
|
|
16
|
+
--psh-z-index-dropdown: 100;
|
|
17
|
+
--psh-z-index-tooltip: 200;
|
|
18
|
+
--psh-z-index-modal-backdrop: 999;
|
|
19
|
+
--psh-z-index-modal: 1000;
|
|
20
|
+
--psh-z-index-overlay: 1100; /* body-teleported popovers (select/dropdown/menu) above modals */
|
|
21
|
+
--psh-z-index-toast: 9999;
|
|
22
22
|
|
|
23
23
|
/* Focus System */
|
|
24
|
-
--focus-outline-width: 2px;
|
|
25
|
-
--focus-outline-style: solid;
|
|
26
|
-
--focus-outline-color: var(--primary-color);
|
|
27
|
-
--focus-outline-offset: 2px;
|
|
28
|
-
--focus-ring-width: 3px;
|
|
29
|
-
--focus-ring-color: rgba(var(--primary-color-rgb), 0.2);
|
|
24
|
+
--psh-focus-outline-width: 2px;
|
|
25
|
+
--psh-focus-outline-style: solid;
|
|
26
|
+
--psh-focus-outline-color: var(--psh-primary-color);
|
|
27
|
+
--psh-focus-outline-offset: 2px;
|
|
28
|
+
--psh-focus-ring-width: 3px;
|
|
29
|
+
--psh-focus-ring-color: rgba(var(--psh-primary-color-rgb), 0.2);
|
|
30
30
|
|
|
31
31
|
/* Focus variants */
|
|
32
|
-
--focus-ring-error: rgba(var(--danger-color-rgb), 0.2);
|
|
33
|
-
--focus-ring-success: rgba(var(--success-color-rgb), 0.2);
|
|
34
|
-
--focus-ring-warning: rgba(var(--warning-color-rgb), 0.2);
|
|
32
|
+
--psh-focus-ring-error: rgba(var(--psh-danger-color-rgb), 0.2);
|
|
33
|
+
--psh-focus-ring-success: rgba(var(--psh-success-color-rgb), 0.2);
|
|
34
|
+
--psh-focus-ring-warning: rgba(var(--psh-warning-color-rgb), 0.2);
|
|
35
35
|
|
|
36
36
|
/* Opacity System */
|
|
37
|
-
--opacity-disabled: 0.6;
|
|
38
|
-
--opacity-loading: 0.7;
|
|
37
|
+
--psh-opacity-disabled: 0.6;
|
|
38
|
+
--psh-opacity-loading: 0.7;
|
|
39
39
|
}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
/* Design Tokens - Layout System */
|
|
2
|
-
|
|
3
|
-
:root {
|
|
4
|
-
/* Container System */
|
|
5
|
-
--container-padding-sm: var(--spacing-md);
|
|
6
|
-
--container-padding-md: var(--spacing-lg);
|
|
7
|
-
--container-padding-lg: var(--spacing-xl);
|
|
8
|
-
--container-max-width: 80rem; /* 1280px */
|
|
9
|
-
|
|
10
|
-
/* Grid System */
|
|
11
|
-
--grid-gap-sm: var(--spacing-sm);
|
|
12
|
-
--grid-gap-md: var(--spacing-md);
|
|
13
|
-
--grid-gap-lg: var(--spacing-lg);
|
|
14
|
-
|
|
15
|
-
/* Flexbox variables */
|
|
16
|
-
--flex-none: 0 0 auto;
|
|
17
|
-
--flex-auto: 1 1 auto;
|
|
18
|
-
--flex-initial: 0 1 auto;
|
|
19
|
-
|
|
20
|
-
/* Grid variables */
|
|
21
|
-
--grid-cols-1: repeat(1, minmax(0, 1fr));
|
|
22
|
-
--grid-cols-2: repeat(2, minmax(0, 1fr));
|
|
23
|
-
--grid-cols-3: repeat(3, minmax(0, 1fr));
|
|
24
|
-
--grid-cols-4: repeat(4, minmax(0, 1fr));
|
|
25
|
-
--grid-cols-6: repeat(6, minmax(0, 1fr));
|
|
26
|
-
--grid-cols-12: repeat(12, minmax(0, 1fr));
|
|
27
|
-
|
|
28
|
-
/* Select component specific */
|
|
29
|
-
--select-max-width: var(--container-sm);
|
|
30
|
-
--dropdown-max-height: var(--size-52);
|
|
31
|
-
--select-checkbox-size: var(--size-4-5);
|
|
32
|
-
}
|
|
1
|
+
/* Design Tokens - Layout System */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
/* Container System */
|
|
5
|
+
--psh-container-padding-sm: var(--psh-spacing-md);
|
|
6
|
+
--psh-container-padding-md: var(--psh-spacing-lg);
|
|
7
|
+
--psh-container-padding-lg: var(--psh-spacing-xl);
|
|
8
|
+
--psh-container-max-width: 80rem; /* 1280px */
|
|
9
|
+
|
|
10
|
+
/* Grid System */
|
|
11
|
+
--psh-grid-gap-sm: var(--psh-spacing-sm);
|
|
12
|
+
--psh-grid-gap-md: var(--psh-spacing-md);
|
|
13
|
+
--psh-grid-gap-lg: var(--psh-spacing-lg);
|
|
14
|
+
|
|
15
|
+
/* Flexbox variables */
|
|
16
|
+
--psh-flex-none: 0 0 auto;
|
|
17
|
+
--psh-flex-auto: 1 1 auto;
|
|
18
|
+
--psh-flex-initial: 0 1 auto;
|
|
19
|
+
|
|
20
|
+
/* Grid variables */
|
|
21
|
+
--psh-grid-cols-1: repeat(1, minmax(0, 1fr));
|
|
22
|
+
--psh-grid-cols-2: repeat(2, minmax(0, 1fr));
|
|
23
|
+
--psh-grid-cols-3: repeat(3, minmax(0, 1fr));
|
|
24
|
+
--psh-grid-cols-4: repeat(4, minmax(0, 1fr));
|
|
25
|
+
--psh-grid-cols-6: repeat(6, minmax(0, 1fr));
|
|
26
|
+
--psh-grid-cols-12: repeat(12, minmax(0, 1fr));
|
|
27
|
+
|
|
28
|
+
/* Select component specific */
|
|
29
|
+
--psh-select-max-width: var(--psh-container-sm);
|
|
30
|
+
--psh-dropdown-max-height: var(--psh-size-52);
|
|
31
|
+
--psh-select-checkbox-size: var(--psh-size-4-5);
|
|
32
|
+
}
|
|
@@ -2,93 +2,105 @@
|
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
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 */
|
|
5
|
+
--psh-size-0: 0;
|
|
6
|
+
--psh-size-px: 0.0625rem; /* 1px */
|
|
7
|
+
--psh-size-0-5: 0.125rem; /* 2px */
|
|
8
|
+
--psh-size-1: 0.25rem; /* 4px */
|
|
9
|
+
--psh-size-1-5: 0.375rem; /* 6px */
|
|
10
|
+
--psh-size-2: 0.5rem; /* 8px */
|
|
11
|
+
--psh-size-2-5: 0.625rem; /* 10px */
|
|
12
|
+
--psh-size-3: 0.75rem; /* 12px */
|
|
13
|
+
--psh-size-3-5: 0.875rem; /* 14px */
|
|
14
|
+
--psh-size-4: 1rem; /* 16px */
|
|
15
|
+
--psh-size-4-5: 1.125rem; /* 18px */
|
|
16
|
+
--psh-size-5: 1.25rem; /* 20px */
|
|
17
|
+
--psh-size-5-5: 1.375rem; /* 22px */
|
|
18
|
+
--psh-size-6: 1.5rem; /* 24px */
|
|
19
|
+
--psh-size-6-5: 1.625rem; /* 26px */
|
|
20
|
+
--psh-size-7: 1.75rem; /* 28px */
|
|
21
|
+
--psh-size-8: 2rem; /* 32px */
|
|
22
|
+
--psh-size-8-5: 2.125rem; /* 34px */
|
|
23
|
+
--psh-size-9: 2.25rem; /* 36px */
|
|
24
|
+
--psh-size-10: 2.5rem; /* 40px */
|
|
25
|
+
--psh-size-11: 2.75rem; /* 44px */
|
|
26
|
+
--psh-size-12: 3rem; /* 48px */
|
|
27
|
+
--psh-size-14: 3.5rem; /* 56px */
|
|
28
|
+
--psh-size-16: 4rem; /* 64px */
|
|
29
|
+
--psh-size-18: 4.5rem; /* 72px */
|
|
30
|
+
--psh-size-20: 5rem; /* 80px */
|
|
31
|
+
--psh-size-24: 6rem; /* 96px */
|
|
32
|
+
--psh-size-28: 7rem; /* 112px */
|
|
33
|
+
--psh-size-32: 8rem; /* 128px */
|
|
34
|
+
--psh-size-36: 9rem; /* 144px */
|
|
35
|
+
--psh-size-40: 10rem; /* 160px */
|
|
36
|
+
--psh-size-44: 11rem; /* 176px */
|
|
37
|
+
--psh-size-48: 12rem; /* 192px */
|
|
38
|
+
--psh-size-52: 13rem; /* 208px */
|
|
39
|
+
--psh-size-56: 14rem; /* 224px */
|
|
40
|
+
--psh-size-60: 15rem; /* 240px */
|
|
41
|
+
--psh-size-64: 16rem; /* 256px */
|
|
42
|
+
--psh-size-72: 18rem; /* 288px */
|
|
43
|
+
--psh-size-80: 20rem; /* 320px */
|
|
44
|
+
--psh-size-96: 24rem; /* 384px */
|
|
45
45
|
|
|
46
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 */
|
|
47
|
+
--psh-icon-size-xs: 0.75rem; /* 12px */
|
|
48
|
+
--psh-icon-size-sm: 1rem; /* 16px */
|
|
49
|
+
--psh-icon-size-md: 1.25rem; /* 20px */
|
|
50
|
+
--psh-icon-size-lg: 1.5rem; /* 24px */
|
|
51
|
+
--psh-icon-size-xl: 2rem; /* 32px */
|
|
52
|
+
--psh-icon-size-2xl: 3rem; /* 48px */
|
|
53
53
|
|
|
54
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;
|
|
55
|
+
--psh-border-width-0: 0;
|
|
56
|
+
--psh-border-width-1: 1px;
|
|
57
|
+
--psh-border-width-2: 2px;
|
|
58
|
+
--psh-border-width-4: 4px;
|
|
59
|
+
--psh-border-width-8: 8px;
|
|
60
60
|
|
|
61
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;
|
|
62
|
+
--psh-radius-none: 0;
|
|
63
|
+
--psh-radius-sm: 0.125rem; /* 2px */
|
|
64
|
+
--psh-radius-base: 0.25rem; /* 4px */
|
|
65
|
+
--psh-radius-md: 0.375rem; /* 6px */
|
|
66
|
+
--psh-radius-lg: 0.5rem; /* 8px */
|
|
67
|
+
--psh-radius-xl: 0.75rem; /* 12px */
|
|
68
|
+
--psh-radius-2xl: 1rem; /* 16px */
|
|
69
|
+
--psh-radius-3xl: 1.5rem; /* 24px */
|
|
70
|
+
--psh-radius-full: 9999px;
|
|
71
71
|
|
|
72
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 */
|
|
73
|
+
--psh-container-xs: 20rem; /* 320px */
|
|
74
|
+
--psh-container-sm: 24rem; /* 384px */
|
|
75
|
+
--psh-container-md: 28rem; /* 448px */
|
|
76
|
+
--psh-container-lg: 32rem; /* 512px */
|
|
77
|
+
--psh-container-xl: 36rem; /* 576px */
|
|
78
|
+
--psh-container-2xl: 42rem; /* 672px */
|
|
79
|
+
--psh-container-3xl: 48rem; /* 768px */
|
|
80
|
+
--psh-container-4xl: 56rem; /* 896px */
|
|
81
|
+
--psh-container-5xl: 64rem; /* 1024px */
|
|
82
|
+
--psh-container-6xl: 72rem; /* 1152px */
|
|
83
|
+
--psh-container-7xl: 80rem; /* 1280px */
|
|
84
84
|
|
|
85
85
|
/* Input component heights */
|
|
86
|
-
--height-
|
|
87
|
-
--height-
|
|
88
|
-
--height-
|
|
86
|
+
--psh-control-height-sm: 2rem; /* 32px */
|
|
87
|
+
--psh-control-height-md: 2.5rem; /* 40px */
|
|
88
|
+
--psh-control-height-lg: 3rem; /* 48px */
|
|
89
|
+
|
|
90
|
+
/*
|
|
91
|
+
* Minimum hit area for anything tappable.
|
|
92
|
+
*
|
|
93
|
+
* WCAG 2.5.8 (AA) asks for 24px and 2.5.5 (AAA) for 44. The library had neither an opinion
|
|
94
|
+
* nor a token, and shipped targets at 24, 32 and 36px — so the smallest one was exactly at
|
|
95
|
+
* the AA floor and nothing was near AAA.
|
|
96
|
+
*
|
|
97
|
+
* It bounds the *target*, not the drawing: a 24px icon inside a 44px button looks the same
|
|
98
|
+
* and is twice as easy to hit.
|
|
99
|
+
*/
|
|
100
|
+
--psh-touch-target-min: 2.75rem; /* 44px */
|
|
89
101
|
|
|
90
102
|
/* Scrollbar width compensation */
|
|
91
|
-
--scrollbar-width: 0;
|
|
103
|
+
--psh-scrollbar-width: 0;
|
|
92
104
|
|
|
93
105
|
/* Breakpoints - See tokens/breakpoints.tokens.css for the responsive scale */
|
|
94
106
|
}
|
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
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 */
|
|
5
|
+
--psh-spacing-xxs: 0.125rem; /* 2px */
|
|
6
|
+
--psh-spacing-xs: 0.25rem; /* 4px */
|
|
7
|
+
--psh-spacing-sm: 0.5rem; /* 8px */
|
|
8
|
+
--psh-spacing-md: 1rem; /* 16px */
|
|
9
|
+
--psh-spacing-lg: 1.5rem; /* 24px */
|
|
10
|
+
--psh-spacing-xl: 2rem; /* 32px */
|
|
11
|
+
--psh-spacing-2xl: 3rem; /* 48px */
|
|
12
|
+
--psh-spacing-3xl: 4rem; /* 64px */
|
|
13
|
+
--psh-spacing-4xl: 5rem; /* 80px */
|
|
14
14
|
|
|
15
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) */
|
|
16
|
+
--psh-form-field-gap: var(--psh-spacing-xs); /* label <-> control <-> message */
|
|
17
|
+
--psh-form-label-gap: var(--psh-spacing-sm); /* control <-> inline label (checkbox/radio/switch) */
|
|
18
18
|
|
|
19
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;
|
|
20
|
+
--psh-negative-spacing-xxs: -0.125rem;
|
|
21
|
+
--psh-negative-spacing-xs: -0.25rem;
|
|
22
|
+
--psh-negative-spacing-sm: -0.5rem;
|
|
23
|
+
--psh-negative-spacing-md: -1rem;
|
|
24
|
+
--psh-negative-spacing-lg: -1.5rem;
|
|
25
|
+
--psh-negative-spacing-xl: -2rem;
|
|
26
|
+
--psh-negative-spacing-2xl: -3rem;
|
|
27
27
|
}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
/* Design Tokens - Typography System */
|
|
2
|
-
|
|
3
|
-
:root {
|
|
4
|
-
/* Font family */
|
|
5
|
-
--font-family: 'Poppins', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
6
|
-
|
|
7
|
-
/* Font Sizes - Fluid Typography with clamp() */
|
|
8
|
-
--font-size-xs: clamp(0.6875rem, 0.5vw + 0.625rem, 0.75rem); /* 11-12px */
|
|
9
|
-
--font-size-sm: clamp(0.8125rem, 0.5vw + 0.75rem, 0.875rem); /* 13-14px */
|
|
10
|
-
--font-size-base: clamp(0.9375rem, 0.5vw + 0.875rem, 1rem); /* 15-16px */
|
|
11
|
-
--font-size-lg: clamp(1.0625rem, 0.75vw + 0.9375rem, 1.125rem); /* 17-18px */
|
|
12
|
-
--font-size-xl: clamp(1.125rem, 1vw + 1rem, 1.25rem); /* 18-20px */
|
|
13
|
-
--font-size-2xl: clamp(1.25rem, 1.5vw + 1rem, 1.5rem); /* 20-24px */
|
|
14
|
-
--font-size-3xl: clamp(1.5rem, 2vw + 1.125rem, 1.875rem); /* 24-30px */
|
|
15
|
-
--font-size-4xl: clamp(1.75rem, 2.5vw + 1.25rem, 2.25rem); /* 28-36px */
|
|
16
|
-
|
|
17
|
-
/* Font Weights */
|
|
18
|
-
--font-weight-normal: 400;
|
|
19
|
-
--font-weight-medium: 500;
|
|
20
|
-
--font-weight-semibold: 600;
|
|
21
|
-
--font-weight-bold: 700;
|
|
22
|
-
|
|
23
|
-
/* Line Heights */
|
|
24
|
-
--line-height-tight: 1.25;
|
|
25
|
-
--line-height-normal: 1.5;
|
|
26
|
-
--line-height-relaxed: 1.75;
|
|
27
|
-
|
|
28
|
-
/* Letter Spacing */
|
|
29
|
-
--letter-spacing-tight: -0.025em;
|
|
30
|
-
--letter-spacing-normal: 0;
|
|
31
|
-
--letter-spacing-wide: 0.025em;
|
|
32
|
-
--letter-spacing-wider: 0.05em;
|
|
33
|
-
--letter-spacing-widest: 0.1em;
|
|
34
|
-
}
|
|
1
|
+
/* Design Tokens - Typography System */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
/* Font family */
|
|
5
|
+
--psh-font-family: 'Poppins', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
6
|
+
|
|
7
|
+
/* Font Sizes - Fluid Typography with clamp() */
|
|
8
|
+
--psh-font-size-xs: clamp(0.6875rem, 0.5vw + 0.625rem, 0.75rem); /* 11-12px */
|
|
9
|
+
--psh-font-size-sm: clamp(0.8125rem, 0.5vw + 0.75rem, 0.875rem); /* 13-14px */
|
|
10
|
+
--psh-font-size-base: clamp(0.9375rem, 0.5vw + 0.875rem, 1rem); /* 15-16px */
|
|
11
|
+
--psh-font-size-lg: clamp(1.0625rem, 0.75vw + 0.9375rem, 1.125rem); /* 17-18px */
|
|
12
|
+
--psh-font-size-xl: clamp(1.125rem, 1vw + 1rem, 1.25rem); /* 18-20px */
|
|
13
|
+
--psh-font-size-2xl: clamp(1.25rem, 1.5vw + 1rem, 1.5rem); /* 20-24px */
|
|
14
|
+
--psh-font-size-3xl: clamp(1.5rem, 2vw + 1.125rem, 1.875rem); /* 24-30px */
|
|
15
|
+
--psh-font-size-4xl: clamp(1.75rem, 2.5vw + 1.25rem, 2.25rem); /* 28-36px */
|
|
16
|
+
|
|
17
|
+
/* Font Weights */
|
|
18
|
+
--psh-font-weight-normal: 400;
|
|
19
|
+
--psh-font-weight-medium: 500;
|
|
20
|
+
--psh-font-weight-semibold: 600;
|
|
21
|
+
--psh-font-weight-bold: 700;
|
|
22
|
+
|
|
23
|
+
/* Line Heights */
|
|
24
|
+
--psh-line-height-tight: 1.25;
|
|
25
|
+
--psh-line-height-normal: 1.5;
|
|
26
|
+
--psh-line-height-relaxed: 1.75;
|
|
27
|
+
|
|
28
|
+
/* Letter Spacing */
|
|
29
|
+
--psh-letter-spacing-tight: -0.025em;
|
|
30
|
+
--psh-letter-spacing-normal: 0;
|
|
31
|
+
--psh-letter-spacing-wide: 0.025em;
|
|
32
|
+
--psh-letter-spacing-wider: 0.05em;
|
|
33
|
+
--psh-letter-spacing-widest: 0.1em;
|
|
34
|
+
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
@keyframes fadeInUp {
|
|
14
14
|
from {
|
|
15
15
|
opacity: 0;
|
|
16
|
-
transform: translateY(var(--animation-distance-md));
|
|
16
|
+
transform: translateY(var(--psh-animation-distance-md));
|
|
17
17
|
}
|
|
18
18
|
to {
|
|
19
19
|
opacity: 1;
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
@keyframes slideInDown {
|
|
36
36
|
from {
|
|
37
37
|
opacity: 0;
|
|
38
|
-
transform: translateY(calc(-1 * var(--animation-distance-md)));
|
|
38
|
+
transform: translateY(calc(-1 * var(--psh-animation-distance-md)));
|
|
39
39
|
}
|
|
40
40
|
to {
|
|
41
41
|
opacity: 1;
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
@keyframes slideInLeft {
|
|
47
47
|
from {
|
|
48
48
|
opacity: 0;
|
|
49
|
-
transform: translateX(calc(-1 * var(--animation-distance-md)));
|
|
49
|
+
transform: translateX(calc(-1 * var(--psh-animation-distance-md)));
|
|
50
50
|
}
|
|
51
51
|
to {
|
|
52
52
|
opacity: 1;
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
@keyframes slideInRight {
|
|
58
58
|
from {
|
|
59
59
|
opacity: 0;
|
|
60
|
-
transform: translateX(var(--animation-distance-md));
|
|
60
|
+
transform: translateX(var(--psh-animation-distance-md));
|
|
61
61
|
}
|
|
62
62
|
to {
|
|
63
63
|
opacity: 1;
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
transform: translateY(0);
|
|
88
88
|
}
|
|
89
89
|
50% {
|
|
90
|
-
transform: translateY(calc(-1 * var(--animation-distance-sm)));
|
|
90
|
+
transform: translateY(calc(-1 * var(--psh-animation-distance-sm)));
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
|
|
@@ -104,54 +104,54 @@
|
|
|
104
104
|
|
|
105
105
|
/* Animation utility classes */
|
|
106
106
|
.psh-animate-fade-in {
|
|
107
|
-
animation: fadeIn var(--animation-duration-default) var(--animation-easing-default);
|
|
107
|
+
animation: fadeIn var(--psh-animation-duration-default) var(--psh-animation-easing-default);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
.psh-animate-fade-in-up {
|
|
111
|
-
animation: fadeInUp var(--animation-duration-default) var(--animation-easing-default);
|
|
111
|
+
animation: fadeInUp var(--psh-animation-duration-default) var(--psh-animation-easing-default);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
.psh-animate-slide-in {
|
|
115
|
-
animation: slideIn var(--animation-duration-default) var(--animation-easing-default);
|
|
115
|
+
animation: slideIn var(--psh-animation-duration-default) var(--psh-animation-easing-default);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
.psh-animate-slide-in-down {
|
|
119
|
-
animation: slideInDown var(--animation-duration-default) var(--animation-easing-default);
|
|
119
|
+
animation: slideInDown var(--psh-animation-duration-default) var(--psh-animation-easing-default);
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
.psh-animate-slide-in-left {
|
|
123
|
-
animation: slideInLeft var(--animation-duration-default) var(--animation-easing-default);
|
|
123
|
+
animation: slideInLeft var(--psh-animation-duration-default) var(--psh-animation-easing-default);
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
.psh-animate-slide-in-right {
|
|
127
|
-
animation: slideInRight var(--animation-duration-default) var(--animation-easing-default);
|
|
127
|
+
animation: slideInRight var(--psh-animation-duration-default) var(--psh-animation-easing-default);
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
.psh-animate-scale-in {
|
|
131
|
-
animation: scaleIn var(--animation-duration-fast) var(--animation-easing-smooth);
|
|
131
|
+
animation: scaleIn var(--psh-animation-duration-fast) var(--psh-animation-easing-smooth);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
.psh-animate-spin {
|
|
135
|
-
animation: spin
|
|
135
|
+
animation: spin var(--psh-animation-loop-normal) var(--psh-animation-easing-linear) infinite;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
.psh-animate-bounce {
|
|
139
|
-
animation: bounce var(--animation-duration-slow) var(--animation-easing-default) infinite;
|
|
139
|
+
animation: bounce var(--psh-animation-duration-slow) var(--psh-animation-easing-default) infinite;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
.psh-animate-pulse {
|
|
143
|
-
animation: pulse var(--animation-duration-slow) var(--animation-easing-default) infinite;
|
|
143
|
+
animation: pulse var(--psh-animation-duration-slow) var(--psh-animation-easing-default) infinite;
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
/* Animation control utilities */
|
|
147
147
|
.psh-animate-fast {
|
|
148
|
-
animation-duration: var(--animation-duration-fast) !important;
|
|
148
|
+
animation-duration: var(--psh-animation-duration-fast) !important;
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
.psh-animate-slow {
|
|
152
|
-
animation-duration: var(--animation-duration-slow) !important;
|
|
152
|
+
animation-duration: var(--psh-animation-duration-slow) !important;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
.psh-animate-smooth {
|
|
156
|
-
animation-timing-function: var(--animation-easing-smooth) !important;
|
|
156
|
+
animation-timing-function: var(--psh-animation-easing-smooth) !important;
|
|
157
157
|
}
|