@pantheon-systems/pds-toolkit-react 2.0.0-alpha.7 → 2.0.0-alpha.9

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.
@@ -0,0 +1,258 @@
1
+ /**
2
+ * PDS Tailwind v3 Preset
3
+ *
4
+ * Maps Pantheon Design System tokens to Tailwind CSS v3 utilities.
5
+ * Use as a preset in tailwind.config.js — replaces Tailwind's default
6
+ * color, spacing, and typography scales with PDS values.
7
+ *
8
+ * Requirements:
9
+ * - pds-core.css must be loaded globally (provides --pds-* CSS variables)
10
+ * - Tailwind v3.x
11
+ *
12
+ * Usage:
13
+ * // tailwind.config.js
14
+ * module.exports = {
15
+ * presets: [require('@pantheon-systems/pds-toolkit-react/tailwind/v3/preset')],
16
+ * content: ['./src/**\/*.{js,ts,jsx,tsx}'],
17
+ * };
18
+ */
19
+
20
+ const plugin = require('tailwindcss/plugin');
21
+
22
+ /** @type {import('tailwindcss').Config} */
23
+ module.exports = {
24
+ corePlugins: {
25
+ // Disable Tailwind's CSS reset — PDS provides its own base styles.
26
+ // Enabling preflight alongside PDS will cause style conflicts.
27
+ preflight: false,
28
+ },
29
+ plugins: [
30
+ // Reset border-style to none so borders are fully opt-in.
31
+ // Without this, any element that picks up a non-zero border-width
32
+ // (from PDS components, inheritance, or browser defaults) gets a
33
+ // visible border even without explicit border classes.
34
+ // Always include border-solid (or border-dashed, etc.) when adding borders.
35
+ plugin(function ({ addBase }) {
36
+ addBase({
37
+ '*, ::before, ::after': {
38
+ borderWidth: '0',
39
+ borderStyle: 'none',
40
+ borderColor: 'var(--pds-color-border-default)',
41
+ },
42
+ });
43
+ }),
44
+ ],
45
+ theme: {
46
+ // ─── Colors ──────────────────────────────────────────────────────────────
47
+ // All values reference PDS CSS custom properties so dark mode and token
48
+ // updates are reflected automatically. Requires pds-core.css to be loaded.
49
+ //
50
+ // Note: opacity modifiers (e.g. bg-bg-default/50) are not supported with
51
+ // CSS variable color references.
52
+ colors: {
53
+ // Backgrounds — use as bg-bg-default, bg-bg-secondary, bg-bg-reverse
54
+ bg: {
55
+ default: 'var(--pds-color-bg-default)',
56
+ secondary: 'var(--pds-color-bg-default-secondary)',
57
+ reverse: 'var(--pds-color-bg-reverse)',
58
+ },
59
+ // General foregrounds (icons, decorative elements)
60
+ fg: {
61
+ default: 'var(--pds-color-fg-default)',
62
+ secondary: 'var(--pds-color-fg-default-secondary)',
63
+ reverse: 'var(--pds-color-fg-reverse)',
64
+ },
65
+ // Borders — use as border-border-default, border-border-input, etc.
66
+ border: {
67
+ default: 'var(--pds-color-border-default)',
68
+ input: 'var(--pds-color-border-input)',
69
+ separator: 'var(--pds-color-border-separator)',
70
+ brand: 'var(--pds-color-border-brand)',
71
+ },
72
+ // Interactive elements (links, focus rings)
73
+ interactive: {
74
+ focus: 'var(--pds-color-interactive-focus)',
75
+ 'bg-hover': 'var(--pds-color-interactive-background-hover)',
76
+ 'bg-active': 'var(--pds-color-interactive-background-active)',
77
+ link: 'var(--pds-color-interactive-link-default)',
78
+ 'link-hover': 'var(--pds-color-interactive-link-hover)',
79
+ 'link-active': 'var(--pds-color-interactive-link-active)',
80
+ 'link-visited': 'var(--pds-color-interactive-link-visited)',
81
+ 'reverse-focus': 'var(--pds-color-interactive-reverse-focus)',
82
+ 'reverse-link': 'var(--pds-color-interactive-reverse-link-default)',
83
+ 'reverse-link-hover': 'var(--pds-color-interactive-reverse-link-hover)',
84
+ 'reverse-link-active':
85
+ 'var(--pds-color-interactive-reverse-link-active)',
86
+ 'reverse-link-visited':
87
+ 'var(--pds-color-interactive-reverse-link-visited)',
88
+ },
89
+ // Status colors — background/foreground/border/dot per status type
90
+ status: {
91
+ info: {
92
+ background: 'var(--pds-color-status-info-background)',
93
+ foreground: 'var(--pds-color-status-info-foreground)',
94
+ border: 'var(--pds-color-status-info-border)',
95
+ dot: 'var(--pds-color-status-info-dot)',
96
+ },
97
+ success: {
98
+ background: 'var(--pds-color-status-success-background)',
99
+ foreground: 'var(--pds-color-status-success-foreground)',
100
+ border: 'var(--pds-color-status-success-border)',
101
+ dot: 'var(--pds-color-status-success-dot)',
102
+ },
103
+ warning: {
104
+ background: 'var(--pds-color-status-warning-background)',
105
+ foreground: 'var(--pds-color-status-warning-foreground)',
106
+ border: 'var(--pds-color-status-warning-border)',
107
+ dot: 'var(--pds-color-status-warning-dot)',
108
+ },
109
+ critical: {
110
+ background: 'var(--pds-color-status-critical-background)',
111
+ foreground: 'var(--pds-color-status-critical-foreground)',
112
+ border: 'var(--pds-color-status-critical-border)',
113
+ dot: 'var(--pds-color-status-critical-dot)',
114
+ },
115
+ discovery: {
116
+ background: 'var(--pds-color-status-discovery-background)',
117
+ foreground: 'var(--pds-color-status-discovery-foreground)',
118
+ border: 'var(--pds-color-status-discovery-border)',
119
+ dot: 'var(--pds-color-status-discovery-dot)',
120
+ },
121
+ },
122
+ // Overlay (e.g. modal backdrops)
123
+ overlay: 'var(--pds-color-overlay)',
124
+ // Data visualization palette
125
+ datavis: {
126
+ 1: 'var(--pds-color-datavis-1)',
127
+ 2: 'var(--pds-color-datavis-2)',
128
+ 3: 'var(--pds-color-datavis-3)',
129
+ 4: 'var(--pds-color-datavis-4)',
130
+ 5: 'var(--pds-color-datavis-5)',
131
+ },
132
+ },
133
+
134
+ // ─── Spacing ─────────────────────────────────────────────────────────────
135
+ // Primary scale uses PDS named keys: p-xs, m-xl, gap-m, etc.
136
+ // Numeric aliases map common Tailwind values to the nearest PDS token so
137
+ // that p-4 / p-6 / etc. still work and stay in sync if tokens change.
138
+ spacing: {
139
+ 0: '0px',
140
+ // PDS named scale
141
+ '5xs': 'var(--pds-spacing-5xs)',
142
+ '4xs': 'var(--pds-spacing-4xs)',
143
+ '3xs': 'var(--pds-spacing-3xs)',
144
+ '2xs': 'var(--pds-spacing-2xs)',
145
+ xs: 'var(--pds-spacing-xs)',
146
+ s: 'var(--pds-spacing-s)',
147
+ m: 'var(--pds-spacing-m)',
148
+ l: 'var(--pds-spacing-l)',
149
+ xl: 'var(--pds-spacing-xl)',
150
+ '2xl': 'var(--pds-spacing-2xl)',
151
+ '3xl': 'var(--pds-spacing-3xl)',
152
+ '4xl': 'var(--pds-spacing-4xl)',
153
+ '5xl': 'var(--pds-spacing-5xl)',
154
+ '6xl': 'var(--pds-spacing-6xl)',
155
+ '7xl': 'var(--pds-spacing-7xl)',
156
+ '8xl': 'var(--pds-spacing-8xl)',
157
+ '9xl': 'var(--pds-spacing-9xl)',
158
+ // Numeric aliases → PDS tokens (p-4 = p-m, p-6 = p-xl, etc.)
159
+ // Values reference CSS variables so they stay in sync if tokens change.
160
+ 0.5: 'var(--pds-spacing-5xs)', // 0.125rem
161
+ 1: 'var(--pds-spacing-4xs)', // 0.25rem
162
+ 1.5: 'var(--pds-spacing-3xs)', // 0.375rem
163
+ 2: 'var(--pds-spacing-2xs)', // 0.5rem
164
+ 2.5: 'var(--pds-spacing-xs)', // 0.625rem
165
+ 3: 'var(--pds-spacing-s)', // 0.75rem
166
+ 4: 'var(--pds-spacing-m)', // 1rem
167
+ 5: 'var(--pds-spacing-l)', // 1.25rem
168
+ 6: 'var(--pds-spacing-xl)', // 1.5rem
169
+ 8: 'var(--pds-spacing-2xl)', // 2rem
170
+ 10: 'var(--pds-spacing-3xl)', // 2.5rem
171
+ 12: 'var(--pds-spacing-4xl)', // 3rem
172
+ 16: 'var(--pds-spacing-5xl)', // 4rem
173
+ 20: 'var(--pds-spacing-6xl)', // 5rem
174
+ 24: 'var(--pds-spacing-7xl)', // 6rem
175
+ 32: 'var(--pds-spacing-8xl)', // 8rem
176
+ 40: 'var(--pds-spacing-9xl)', // 10rem
177
+ },
178
+
179
+ // ─── Typography ──────────────────────────────────────────────────────────
180
+ // Font families are intentionally excluded. PDS applies font families
181
+ // automatically via pds-core.css (body, headings, code blocks, etc.).
182
+ // Teams should not override font families via Tailwind utilities.
183
+ fontSize: {
184
+ xs: 'var(--pds-typography-size-xs)',
185
+ s: 'var(--pds-typography-size-s)',
186
+ m: 'var(--pds-typography-size-m)',
187
+ l: 'var(--pds-typography-size-l)',
188
+ xl: 'var(--pds-typography-size-xl)',
189
+ '2xl': 'var(--pds-typography-size-2xl)',
190
+ '3xl': 'var(--pds-typography-size-3xl)',
191
+ '4xl': 'var(--pds-typography-size-4xl)',
192
+ '5xl': 'var(--pds-typography-size-5xl)',
193
+ '6xl': 'var(--pds-typography-size-6xl)',
194
+ '7xl': 'var(--pds-typography-size-7xl)',
195
+ '8xl': 'var(--pds-typography-size-8xl)',
196
+ '9xl': 'var(--pds-typography-size-9xl)',
197
+ },
198
+ fontWeight: {
199
+ light: 'var(--pds-typography-fw-light)',
200
+ normal: 'var(--pds-typography-fw-regular)',
201
+ medium: 'var(--pds-typography-fw-medium)',
202
+ semibold: 'var(--pds-typography-fw-semibold)',
203
+ bold: 'var(--pds-typography-fw-bold)',
204
+ },
205
+ lineHeight: {
206
+ s: 'var(--pds-typography-lh-s)',
207
+ m: 'var(--pds-typography-lh-m)',
208
+ l: 'var(--pds-typography-lh-l)',
209
+ xl: 'var(--pds-typography-lh-xl)',
210
+ },
211
+ letterSpacing: {
212
+ s: 'var(--pds-typography-ls-s)',
213
+ m: 'var(--pds-typography-ls-m)',
214
+ l: 'var(--pds-typography-ls-l)',
215
+ xl: 'var(--pds-typography-ls-xl)',
216
+ },
217
+
218
+ // ─── Border ──────────────────────────────────────────────────────────────
219
+ borderRadius: {
220
+ none: '0px',
221
+ DEFAULT: 'var(--pds-border-radius-default)',
222
+ button: 'var(--pds-border-radius-button)',
223
+ input: 'var(--pds-border-radius-input)',
224
+ container: 'var(--pds-border-radius-container)',
225
+ bar: 'var(--pds-border-radius-bar)',
226
+ full: '9999px',
227
+ },
228
+ borderWidth: {
229
+ 0: '0px',
230
+ DEFAULT: 'var(--pds-border-width-default)',
231
+ thicker: 'var(--pds-border-width-thicker)',
232
+ },
233
+
234
+ // ─── Z-index ─────────────────────────────────────────────────────────────
235
+ zIndex: {
236
+ 0: '0',
237
+ navigation: 'var(--pds-z-index-navigation)',
238
+ dropdown: 'var(--pds-z-index-dropdown)',
239
+ notifications: 'var(--pds-z-index-notifications)',
240
+ overlay: 'var(--pds-z-index-overlay)',
241
+ modal: 'var(--pds-z-index-modal)',
242
+ max: 'var(--pds-z-index-max)',
243
+ },
244
+
245
+ // ─── Max Width ───────────────────────────────────────────────────────────
246
+ // PDS standard container widths — use to match PDS layout components.
247
+ maxWidth: {
248
+ none: 'none',
249
+ full: '100%',
250
+ narrow: 'var(--pds-container-max-width-narrow)',
251
+ standard: 'var(--pds-container-max-width-standard)',
252
+ wide: 'var(--pds-container-max-width-wide)',
253
+ 'x-wide': 'var(--pds-container-max-width-x-wide)',
254
+ },
255
+
256
+ extend: {},
257
+ },
258
+ };
@@ -0,0 +1,230 @@
1
+ /**
2
+ * PDS Tailwind v4 Theme
3
+ *
4
+ * Maps Pantheon Design System tokens to Tailwind CSS v4 utilities via @theme.
5
+ * Replaces Tailwind's default color, spacing, and typography scales with PDS values.
6
+ *
7
+ * Requirements:
8
+ * - pds-core.css must be imported before this file (provides --pds-* CSS variables)
9
+ * - Tailwind v4.x
10
+ *
11
+ * Usage in your global CSS entry point:
12
+ *
13
+ * @import 'tailwindcss/theme' layer(theme);
14
+ * @import 'tailwindcss/utilities' layer(utilities);
15
+ * @import '@pantheon-systems/pds-toolkit-react/tailwind/v4/theme.css';
16
+ *
17
+ * And in your root layout (JS import, before globals.css):
18
+ * import '@pantheon-systems/pds-toolkit-react/css/pds-core.css';
19
+ */
20
+
21
+ /*
22
+ * Reset border-style to none so borders are fully opt-in.
23
+ * Without this, any element that picks up a non-zero border-width
24
+ * (from PDS components, inheritance, or browser defaults) gets a
25
+ * visible border even without explicit border classes.
26
+ * Always include border-solid (or border-dashed, etc.) when adding borders.
27
+ */
28
+ @layer base {
29
+ *,
30
+ ::before,
31
+ ::after {
32
+ border-color: var(--pds-color-border-default);
33
+ border-style: none;
34
+ border-width: 0;
35
+ }
36
+ }
37
+
38
+ @theme {
39
+ /* ── Reset Tailwind defaults we are replacing ──────────────────────────── */
40
+ --color-*: initial;
41
+ --spacing-*: initial;
42
+ --font-*: initial;
43
+ --text-*: initial;
44
+ --font-weight-*: initial;
45
+ --leading-*: initial;
46
+ --tracking-*: initial;
47
+ --radius-*: initial;
48
+ --border-*: initial;
49
+ --z-*: initial;
50
+ --max-w-*: initial;
51
+
52
+ /* ── Colors ────────────────────────────────────────────────────────────── */
53
+
54
+ /* Backgrounds — use as bg-bg-default, bg-bg-secondary, bg-bg-reverse */
55
+ --color-bg-default: var(--pds-color-bg-default);
56
+ --color-bg-secondary: var(--pds-color-bg-default-secondary);
57
+ --color-bg-reverse: var(--pds-color-bg-reverse);
58
+
59
+ /* Foregrounds */
60
+ --color-fg-default: var(--pds-color-fg-default);
61
+ --color-fg-secondary: var(--pds-color-fg-default-secondary);
62
+ --color-fg-reverse: var(--pds-color-fg-reverse);
63
+
64
+ /* Borders — use as border-border-default, border-border-input, etc. */
65
+ --color-border-default: var(--pds-color-border-default);
66
+ --color-border-input: var(--pds-color-border-input);
67
+ --color-border-separator: var(--pds-color-border-separator);
68
+ --color-border-brand: var(--pds-color-border-brand);
69
+
70
+ /* Interactive */
71
+ --color-interactive-focus: var(--pds-color-interactive-focus);
72
+ --color-interactive-bg-hover: var(--pds-color-interactive-background-hover);
73
+ --color-interactive-bg-active: var(--pds-color-interactive-background-active);
74
+ --color-interactive-link: var(--pds-color-interactive-link-default);
75
+ --color-interactive-link-hover: var(--pds-color-interactive-link-hover);
76
+ --color-interactive-link-active: var(--pds-color-interactive-link-active);
77
+ --color-interactive-link-visited: var(--pds-color-interactive-link-visited);
78
+ --color-interactive-reverse-focus: var(--pds-color-interactive-reverse-focus);
79
+ --color-interactive-reverse-link: var(
80
+ --pds-color-interactive-reverse-link-default
81
+ );
82
+ --color-interactive-reverse-link-hover: var(
83
+ --pds-color-interactive-reverse-link-hover
84
+ );
85
+ --color-interactive-reverse-link-active: var(
86
+ --pds-color-interactive-reverse-link-active
87
+ );
88
+ --color-interactive-reverse-link-visited: var(
89
+ --pds-color-interactive-reverse-link-visited
90
+ );
91
+
92
+ /* Status */
93
+ --color-status-info-background: var(--pds-color-status-info-background);
94
+ --color-status-info-foreground: var(--pds-color-status-info-foreground);
95
+ --color-status-info-border: var(--pds-color-status-info-border);
96
+ --color-status-info-dot: var(--pds-color-status-info-dot);
97
+ --color-status-success-background: var(--pds-color-status-success-background);
98
+ --color-status-success-foreground: var(--pds-color-status-success-foreground);
99
+ --color-status-success-border: var(--pds-color-status-success-border);
100
+ --color-status-success-dot: var(--pds-color-status-success-dot);
101
+ --color-status-warning-background: var(--pds-color-status-warning-background);
102
+ --color-status-warning-foreground: var(--pds-color-status-warning-foreground);
103
+ --color-status-warning-border: var(--pds-color-status-warning-border);
104
+ --color-status-warning-dot: var(--pds-color-status-warning-dot);
105
+ --color-status-critical-background: var(
106
+ --pds-color-status-critical-background
107
+ );
108
+ --color-status-critical-foreground: var(
109
+ --pds-color-status-critical-foreground
110
+ );
111
+ --color-status-critical-border: var(--pds-color-status-critical-border);
112
+ --color-status-critical-dot: var(--pds-color-status-critical-dot);
113
+ --color-status-discovery-background: var(
114
+ --pds-color-status-discovery-background
115
+ );
116
+ --color-status-discovery-foreground: var(
117
+ --pds-color-status-discovery-foreground
118
+ );
119
+ --color-status-discovery-border: var(--pds-color-status-discovery-border);
120
+ --color-status-discovery-dot: var(--pds-color-status-discovery-dot);
121
+
122
+ /* Overlay */
123
+ --color-overlay: var(--pds-color-overlay);
124
+
125
+ /* Data visualization */
126
+ --color-datavis-1: var(--pds-color-datavis-1);
127
+ --color-datavis-2: var(--pds-color-datavis-2);
128
+ --color-datavis-3: var(--pds-color-datavis-3);
129
+ --color-datavis-4: var(--pds-color-datavis-4);
130
+ --color-datavis-5: var(--pds-color-datavis-5);
131
+
132
+ /* ── Spacing ───────────────────────────────────────────────────────────── */
133
+ /* PDS named scale */
134
+ --spacing-5xs: var(--pds-spacing-5xs);
135
+ --spacing-4xs: var(--pds-spacing-4xs);
136
+ --spacing-3xs: var(--pds-spacing-3xs);
137
+ --spacing-2xs: var(--pds-spacing-2xs);
138
+ --spacing-xs: var(--pds-spacing-xs);
139
+ --spacing-s: var(--pds-spacing-s);
140
+ --spacing-m: var(--pds-spacing-m);
141
+ --spacing-l: var(--pds-spacing-l);
142
+ --spacing-xl: var(--pds-spacing-xl);
143
+ --spacing-2xl: var(--pds-spacing-2xl);
144
+ --spacing-3xl: var(--pds-spacing-3xl);
145
+ --spacing-4xl: var(--pds-spacing-4xl);
146
+ --spacing-5xl: var(--pds-spacing-5xl);
147
+ --spacing-6xl: var(--pds-spacing-6xl);
148
+ --spacing-7xl: var(--pds-spacing-7xl);
149
+ --spacing-8xl: var(--pds-spacing-8xl);
150
+ --spacing-9xl: var(--pds-spacing-9xl);
151
+ /* Numeric aliases → PDS tokens (p-4 = p-m, p-6 = p-xl, etc.) */
152
+ --spacing-0\.5: var(--pds-spacing-5xs);
153
+ --spacing-1: var(--pds-spacing-4xs);
154
+ --spacing-1\.5: var(--pds-spacing-3xs);
155
+ --spacing-2: var(--pds-spacing-2xs);
156
+ --spacing-2\.5: var(--pds-spacing-xs);
157
+ --spacing-3: var(--pds-spacing-s);
158
+ --spacing-4: var(--pds-spacing-m);
159
+ --spacing-5: var(--pds-spacing-l);
160
+ --spacing-6: var(--pds-spacing-xl);
161
+ --spacing-8: var(--pds-spacing-2xl);
162
+ --spacing-10: var(--pds-spacing-3xl);
163
+ --spacing-12: var(--pds-spacing-4xl);
164
+ --spacing-16: var(--pds-spacing-5xl);
165
+ --spacing-20: var(--pds-spacing-6xl);
166
+ --spacing-24: var(--pds-spacing-7xl);
167
+ --spacing-32: var(--pds-spacing-8xl);
168
+ --spacing-40: var(--pds-spacing-9xl);
169
+
170
+ /* ── Typography ────────────────────────────────────────────────────────── */
171
+ /* Font families are intentionally excluded. PDS applies font families
172
+ automatically via pds-core.css (body, headings, code blocks, etc.).
173
+ Teams should not override font families via Tailwind utilities. */
174
+
175
+ --text-xs: var(--pds-typography-size-xs);
176
+ --text-s: var(--pds-typography-size-s);
177
+ --text-m: var(--pds-typography-size-m);
178
+ --text-l: var(--pds-typography-size-l);
179
+ --text-xl: var(--pds-typography-size-xl);
180
+ --text-2xl: var(--pds-typography-size-2xl);
181
+ --text-3xl: var(--pds-typography-size-3xl);
182
+ --text-4xl: var(--pds-typography-size-4xl);
183
+ --text-5xl: var(--pds-typography-size-5xl);
184
+ --text-6xl: var(--pds-typography-size-6xl);
185
+ --text-7xl: var(--pds-typography-size-7xl);
186
+ --text-8xl: var(--pds-typography-size-8xl);
187
+ --text-9xl: var(--pds-typography-size-9xl);
188
+
189
+ --font-weight-light: var(--pds-typography-fw-light);
190
+ --font-weight-normal: var(--pds-typography-fw-regular);
191
+ --font-weight-medium: var(--pds-typography-fw-medium);
192
+ --font-weight-semibold: var(--pds-typography-fw-semibold);
193
+ --font-weight-bold: var(--pds-typography-fw-bold);
194
+
195
+ --leading-s: var(--pds-typography-lh-s);
196
+ --leading-m: var(--pds-typography-lh-m);
197
+ --leading-l: var(--pds-typography-lh-l);
198
+ --leading-xl: var(--pds-typography-lh-xl);
199
+
200
+ --tracking-s: var(--pds-typography-ls-s);
201
+ --tracking-m: var(--pds-typography-ls-m);
202
+ --tracking-l: var(--pds-typography-ls-l);
203
+ --tracking-xl: var(--pds-typography-ls-xl);
204
+
205
+ /* ── Border ────────────────────────────────────────────────────────────── */
206
+ --radius-none: 0px;
207
+ --radius-DEFAULT: var(--pds-border-radius-default);
208
+ --radius-button: var(--pds-border-radius-button);
209
+ --radius-input: var(--pds-border-radius-input);
210
+ --radius-container: var(--pds-border-radius-container);
211
+ --radius-bar: var(--pds-border-radius-bar);
212
+ --radius-full: 9999px;
213
+
214
+ --border-DEFAULT: var(--pds-border-width-default);
215
+ --border-thicker: var(--pds-border-width-thicker);
216
+
217
+ /* ── Z-index ───────────────────────────────────────────────────────────── */
218
+ --z-navigation: var(--pds-z-index-navigation);
219
+ --z-dropdown: var(--pds-z-index-dropdown);
220
+ --z-notifications: var(--pds-z-index-notifications);
221
+ --z-overlay: var(--pds-z-index-overlay);
222
+ --z-modal: var(--pds-z-index-modal);
223
+ --z-max: var(--pds-z-index-max);
224
+
225
+ /* ── Max Width ─────────────────────────────────────────────────────────── */
226
+ --max-w-narrow: var(--pds-container-max-width-narrow);
227
+ --max-w-standard: var(--pds-container-max-width-standard);
228
+ --max-w-wide: var(--pds-container-max-width-wide);
229
+ --max-w-x-wide: var(--pds-container-max-width-x-wide);
230
+ }