@salesforce/mcp-provider-lwc-experts 0.6.3 → 0.6.4

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.
Files changed (58) hide show
  1. package/index.bundle.js +109 -117
  2. package/knowledge/graphql/generation-guide.md +212 -0
  3. package/knowledge/graphql/generation-mutation.md +265 -0
  4. package/knowledge/graphql/generation-query.md +235 -0
  5. package/knowledge/graphql/generation-schema.md +20 -0
  6. package/knowledge/graphql/schema/shared.graphqls +1140 -0
  7. package/knowledge/o11y/activityApi.md +64 -0
  8. package/knowledge/o11y/bestPractices.md +106 -0
  9. package/knowledge/o11y/counterMetrics.md +61 -0
  10. package/knowledge/o11y/errorTracking.md +70 -0
  11. package/knowledge/o11y/initialization.md +46 -0
  12. package/knowledge/o11y/lifecycleInstrumentation.md +91 -0
  13. package/knowledge/o11y/logApi.md +53 -0
  14. package/knowledge/o11y/schemaUsage.md +48 -0
  15. package/knowledge/slds/styling-hooks/README.md +408 -0
  16. package/knowledge/slds/styling-hooks/categories/color.md +963 -0
  17. package/knowledge/slds/styling-hooks/categories/radius.md +526 -0
  18. package/knowledge/slds/styling-hooks/categories/shadow.md +489 -0
  19. package/knowledge/slds/styling-hooks/categories/sizing.md +667 -0
  20. package/knowledge/slds/styling-hooks/categories/spacing.md +501 -0
  21. package/knowledge/slds/styling-hooks/categories/typography.md +708 -0
  22. package/knowledge/slds/styling-hooks/global-semantic/accent-hooks.md +207 -0
  23. package/knowledge/slds/styling-hooks/global-semantic/feedback-hooks.md +819 -0
  24. package/knowledge/slds/styling-hooks/global-semantic/surface-hooks.md +215 -0
  25. package/knowledge/slds/styling-hooks/guidance.md +906 -0
  26. package/knowledge/slds/styling-hooks/metadata/hooks-index.json +6576 -0
  27. package/knowledge/utam/generation-guide.md +499 -0
  28. package/knowledge/utam/generation-workflow.md +243 -0
  29. package/knowledge/utam/namespaces-mapping.md +26 -0
  30. package/knowledge/utam/utam-json-schema.md +720 -0
  31. package/knowledge/utils.ts +27 -0
  32. package/package.json +4 -3
  33. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-create-list-info.md +0 -0
  34. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-create-record.md +0 -0
  35. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-delete-list-info.md +0 -0
  36. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-delete-record.md +0 -0
  37. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-info-by-name.md +0 -0
  38. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-infos-by-name.md +0 -0
  39. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-infos-by-object-name.md +0 -0
  40. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-object-info.md +0 -0
  41. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-preferences.md +0 -0
  42. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-records-by-name.md +0 -0
  43. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-update-list-info.md +0 -0
  44. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-update-list-preferences.md +0 -0
  45. /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-update-record.md +0 -0
  46. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/lds-wire-adapter-types.json +0 -0
  47. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-count.md +0 -0
  48. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-info-batch.md +0 -0
  49. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-info.md +0 -0
  50. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-records-batch.md +0 -0
  51. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-records.md +0 -0
  52. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-lists-info.md +0 -0
  53. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-object-info.md +0 -0
  54. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-object-infos.md +0 -0
  55. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-picklist-values-record.md +0 -0
  56. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-picklist-values.md +0 -0
  57. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-record.md +0 -0
  58. /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-records.md +0 -0
@@ -0,0 +1,667 @@
1
+ # SLDS Sizing Styling Hooks
2
+
3
+ **Category:** Layout / Dimensions
4
+ **Total Hooks:** 26 sizing hooks (16 general + 4 border + 6 typography-width)
5
+ **Purpose:** Define element dimensions with consistent, scalable values
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ Sizing styling hooks create dimensions for elements using height and width-based properties. These hooks ensure visual consistency, align with grid systems, and scale relative to the root font-size for responsive behavior.
12
+
13
+ **Key Principles:**
14
+
15
+ - Use sizing hooks for element dimensions (width/height)
16
+ - Values align with 8-point grid system (multiples of 8)
17
+ - Sizing is relative to root font-size (responsive)
18
+ - **Don't** use sizing hooks for spacing (use spacing hooks instead)
19
+ - Most interactive elements achieve target sizing through padding, not fixed dimensions
20
+
21
+ ---
22
+
23
+ ## General Sizing Hooks (`--slds-g-sizing-*`)
24
+
25
+ ### Available Hooks
26
+
27
+ | Hook | Value | Pixels @ 16px base | Common Use |
28
+ | -------------------- | -------- | ------------------ | ----------------------- |
29
+ | `--slds-g-sizing-1` | 0.125rem | 2px | Minimal dimensions |
30
+ | `--slds-g-sizing-2` | 0.25rem | 4px | Very small elements |
31
+ | `--slds-g-sizing-3` | 0.5rem | 8px | Small icons, indicators |
32
+ | `--slds-g-sizing-4` | 0.75rem | 12px | Small icons |
33
+ | `--slds-g-sizing-5` | 1rem | 16px | Standard icons |
34
+ | `--slds-g-sizing-6` | 1.25rem | 20px | Medium icons |
35
+ | `--slds-g-sizing-7` | 1.5rem | 24px | Large icons |
36
+ | `--slds-g-sizing-8` | 1.75rem | 28px | Extra large icons |
37
+ | `--slds-g-sizing-9` | 2rem | 32px | Icon buttons, avatars |
38
+ | `--slds-g-sizing-10` | 3rem | 48px | Large avatars |
39
+ | `--slds-g-sizing-11` | 4rem | 64px | Extra large avatars |
40
+ | `--slds-g-sizing-12` | 5rem | 80px | Hero avatars |
41
+ | `--slds-g-sizing-13` | 10rem | 160px | Small containers |
42
+ | `--slds-g-sizing-14` | 15rem | 240px | Medium containers |
43
+ | `--slds-g-sizing-15` | 20rem | 320px | Large containers |
44
+ | `--slds-g-sizing-16` | 30rem | 480px | Extra large containers |
45
+
46
+ ### Usage Guidance
47
+
48
+ #### Small Sizing (1-4): Minimal Elements
49
+
50
+ **Use For:**
51
+
52
+ - Status indicators
53
+ - Dots and bullets
54
+ - Minimal visual elements
55
+
56
+ ```css
57
+ .status-dot {
58
+ width: var(--slds-g-sizing-3);
59
+ height: var(--slds-g-sizing-3);
60
+ border-radius: var(--slds-g-radius-border-circle);
61
+ }
62
+ ```
63
+
64
+ #### Icon Sizing (3-8): Icon Elements
65
+
66
+ **Use For:**
67
+
68
+ - Icons in buttons
69
+ - Standalone icons
70
+ - Icon indicators
71
+
72
+ ```css
73
+ .icon-small {
74
+ width: var(--slds-g-sizing-4);
75
+ height: var(--slds-g-sizing-4);
76
+ }
77
+
78
+ .icon-standard {
79
+ width: var(--slds-g-sizing-5);
80
+ height: var(--slds-g-sizing-5);
81
+ }
82
+
83
+ .icon-large {
84
+ width: var(--slds-g-sizing-7);
85
+ height: var(--slds-g-sizing-7);
86
+ }
87
+ ```
88
+
89
+ #### Avatar/Button Sizing (9-12): Interactive Elements
90
+
91
+ **Use For:**
92
+
93
+ - Icon-only buttons
94
+ - Avatar images
95
+ - Circular interactive elements
96
+
97
+ ```css
98
+ .icon-button {
99
+ width: var(--slds-g-sizing-9);
100
+ height: var(--slds-g-sizing-9);
101
+ border-radius: var(--slds-g-radius-border-circle);
102
+ }
103
+
104
+ .avatar-standard {
105
+ width: var(--slds-g-sizing-10);
106
+ height: var(--slds-g-sizing-10);
107
+ border-radius: var(--slds-g-radius-border-circle);
108
+ }
109
+ ```
110
+
111
+ #### Container Sizing (13-16): Layout Containers
112
+
113
+ **Use For:**
114
+
115
+ - Fixed-width containers
116
+ - Sidebars
117
+ - Modal max-widths
118
+
119
+ ```css
120
+ .sidebar {
121
+ width: var(--slds-g-sizing-14);
122
+ }
123
+
124
+ .modal-small {
125
+ max-width: var(--slds-g-sizing-15);
126
+ }
127
+
128
+ .modal-large {
129
+ max-width: var(--slds-g-sizing-16);
130
+ }
131
+ ```
132
+
133
+ ---
134
+
135
+ ## Typography Width Hooks (`--slds-g-sizing-content-*`, `--slds-g-sizing-heading-*`)
136
+
137
+ ### Available Hooks
138
+
139
+ Character-based width sizing for optimal text readability:
140
+
141
+ | Hook | Value | Description |
142
+ | --------------------------- | ----- | ----------------------------------------- |
143
+ | `--slds-g-sizing-content-1` | 20ch | Narrow content width (20 characters) |
144
+ | `--slds-g-sizing-content-2` | 45ch | Comfortable reading width (45 characters) |
145
+ | `--slds-g-sizing-content-3` | 60ch | Wide content width (60 characters) |
146
+ | `--slds-g-sizing-heading-1` | 20ch | Short heading width (20 characters) |
147
+ | `--slds-g-sizing-heading-2` | 25ch | Medium heading width (25 characters) |
148
+ | `--slds-g-sizing-heading-3` | 30ch | Long heading width (30 characters) |
149
+
150
+ ### Usage Guidance
151
+
152
+ **Character Width (`ch`) Units:**
153
+
154
+ - `1ch` = width of the "0" character in the current font
155
+ - Ensures consistent line lengths regardless of font-size
156
+ - Optimal for readability: 45-75 characters per line
157
+
158
+ #### Content Width Hooks
159
+
160
+ **Use For:**
161
+
162
+ - Constraining paragraph widths for readability
163
+ - Article or blog content containers
164
+ - Form field max-widths
165
+
166
+ ```css
167
+ .article-content {
168
+ max-width: var(--slds-g-sizing-content-2); /* 45ch - optimal reading */
169
+ }
170
+
171
+ .narrow-content {
172
+ max-width: var(--slds-g-sizing-content-1); /* 20ch - compact */
173
+ }
174
+
175
+ .wide-content {
176
+ max-width: var(--slds-g-sizing-content-3); /* 60ch - generous */
177
+ }
178
+ ```
179
+
180
+ #### Heading Width Hooks
181
+
182
+ **Use For:**
183
+
184
+ - Preventing headings from becoming too wide
185
+ - Maintaining visual hierarchy
186
+ - Short, punchy headings
187
+
188
+ ```css
189
+ .page-title {
190
+ max-width: var(--slds-g-sizing-heading-2); /* 25ch */
191
+ }
192
+
193
+ .section-heading {
194
+ max-width: var(--slds-g-sizing-heading-3); /* 30ch */
195
+ }
196
+ ```
197
+
198
+ ### Readability Guidelines
199
+
200
+ **Optimal Line Lengths:**
201
+
202
+ - **Body text:** 45-75 characters per line (use `sizing-content-2`)
203
+ - **Headings:** 20-30 characters (use `sizing-heading-*`)
204
+ - **Narrow columns:** 20-40 characters (use `sizing-content-1`)
205
+
206
+ ```css
207
+ /* Optimal readability pattern */
208
+ .readable-content {
209
+ max-width: var(--slds-g-sizing-content-2); /* 45ch */
210
+ font-size: var(--slds-g-font-size-base);
211
+ line-height: var(--slds-g-font-lineheight-4); /* 1.5 */
212
+ }
213
+ ```
214
+
215
+ ---
216
+
217
+ ## Border Sizing Hooks (`--slds-g-sizing-border-*`)
218
+
219
+ ### Available Hooks
220
+
221
+ | Hook | Value | Description |
222
+ | -------------------------- | ----- | --------------------- |
223
+ | `--slds-g-sizing-border-1` | 1px | Thin border (default) |
224
+ | `--slds-g-sizing-border-2` | 2px | Medium border |
225
+ | `--slds-g-sizing-border-3` | 3px | Thick border |
226
+ | `--slds-g-sizing-border-4` | 4px | Extra thick border |
227
+
228
+ ### Usage Guidance
229
+
230
+ #### Border-1: Standard Borders (1px)
231
+
232
+ **Most Common** - Default border thickness
233
+
234
+ ```css
235
+ .card {
236
+ border: var(--slds-g-sizing-border-1) solid var(--slds-g-color-border-1);
237
+ }
238
+
239
+ .input {
240
+ border: var(--slds-g-sizing-border-1) solid var(--slds-g-color-border-1);
241
+ }
242
+ ```
243
+
244
+ #### Border-2: Emphasis Borders (2px)
245
+
246
+ **Increased visibility**
247
+
248
+ ```css
249
+ .card-emphasized {
250
+ border: var(--slds-g-sizing-border-2) solid var(--slds-g-color-border-accent-1);
251
+ }
252
+
253
+ .input:focus {
254
+ border-width: var(--slds-g-sizing-border-2);
255
+ }
256
+ ```
257
+
258
+ #### Border-3 & Border-4: Heavy Borders (3px, 4px)
259
+
260
+ **Strong visual weight**
261
+
262
+ ```css
263
+ .alert-error {
264
+ border-left: var(--slds-g-sizing-border-4) solid var(--slds-g-color-error-1);
265
+ }
266
+
267
+ .sidebar-divider {
268
+ border-right: var(--slds-g-sizing-border-3) solid var(--slds-g-color-border-1);
269
+ }
270
+ ```
271
+
272
+ ---
273
+
274
+ ## Best Practices
275
+
276
+ ### ✅ DO:
277
+
278
+ 1. **Use sizing hooks for element dimensions**
279
+
280
+ ```css
281
+ .icon {
282
+ width: var(--slds-g-sizing-5);
283
+ height: var(--slds-g-sizing-5);
284
+ }
285
+ ```
286
+
287
+ 2. **Use border sizing for border widths**
288
+
289
+ ```css
290
+ .card {
291
+ border: var(--slds-g-sizing-border-1) solid var(--slds-g-color-border-1);
292
+ }
293
+ ```
294
+
295
+ 3. **Keep icons square (equal width/height)**
296
+
297
+ ```css
298
+ .icon-button {
299
+ width: var(--slds-g-sizing-9);
300
+ height: var(--slds-g-sizing-9);
301
+ }
302
+ ```
303
+
304
+ 4. **Use max-width for containers, not fixed width**
305
+
306
+ ```css
307
+ .modal {
308
+ max-width: var(--slds-g-sizing-15);
309
+ }
310
+ ```
311
+
312
+ 5. **Let padding define button dimensions**
313
+
314
+ ```css
315
+ /* Good - padding determines height */
316
+ .button {
317
+ padding: var(--slds-g-spacing-2) var(--slds-g-spacing-4);
318
+ }
319
+
320
+ /* Avoid - fixed height */
321
+ .button {
322
+ height: 2.5rem; /* Less flexible */
323
+ }
324
+ ```
325
+
326
+ ### ❌ DON'T:
327
+
328
+ 1. **Don't use sizing hooks for spacing**
329
+
330
+ ```css
331
+ /* Bad - use spacing hooks instead */
332
+ margin: var(--slds-g-sizing-5);
333
+
334
+ /* Good */
335
+ margin: var(--slds-g-spacing-4);
336
+ ```
337
+
338
+ 2. **Don't hard-code pixel values**
339
+
340
+ ```css
341
+ /* Bad */
342
+ width: 24px;
343
+ border-width: 1px;
344
+
345
+ /* Good */
346
+ width: var(--slds-g-sizing-7);
347
+ border-width: var(--slds-g-sizing-border-1);
348
+ ```
349
+
350
+ 3. **Don't mix sizing scales**
351
+
352
+ ```css
353
+ /* Bad - inconsistent sizing */
354
+ .icon-1 {
355
+ width: 18px;
356
+ }
357
+ .icon-2 {
358
+ width: 22px;
359
+ }
360
+
361
+ /* Good - consistent scale */
362
+ .icon-1 {
363
+ width: var(--slds-g-sizing-5);
364
+ }
365
+ .icon-2 {
366
+ width: var(--slds-g-sizing-6);
367
+ }
368
+ ```
369
+
370
+ 4. **Don't set fixed heights on text-based buttons**
371
+
372
+ ```css
373
+ /* Bad - breaks with font scaling */
374
+ .button {
375
+ height: 2rem;
376
+ }
377
+
378
+ /* Good - padding allows flexibility */
379
+ .button {
380
+ padding: var(--slds-g-spacing-2) var(--slds-g-spacing-4);
381
+ }
382
+ ```
383
+
384
+ ---
385
+
386
+ ## Common Patterns
387
+
388
+ ### Pattern 1: Icon Sizing
389
+
390
+ ```css
391
+ .icon-tiny {
392
+ width: var(--slds-g-sizing-3);
393
+ height: var(--slds-g-sizing-3);
394
+ }
395
+
396
+ .icon-small {
397
+ width: var(--slds-g-sizing-4);
398
+ height: var(--slds-g-sizing-4);
399
+ }
400
+
401
+ .icon-medium {
402
+ width: var(--slds-g-sizing-5);
403
+ height: var(--slds-g-sizing-5);
404
+ }
405
+
406
+ .icon-large {
407
+ width: var(--slds-g-sizing-7);
408
+ height: var(--slds-g-sizing-7);
409
+ }
410
+ ```
411
+
412
+ ### Pattern 2: Icon-Only Button
413
+
414
+ ```css
415
+ .icon-button {
416
+ /* Fixed dimensions for circular button */
417
+ width: var(--slds-g-sizing-9);
418
+ height: var(--slds-g-sizing-9);
419
+
420
+ /* Center icon */
421
+ display: flex;
422
+ align-items: center;
423
+ justify-content: center;
424
+
425
+ /* Circle shape */
426
+ border-radius: var(--slds-g-radius-border-circle);
427
+
428
+ /* Visual style */
429
+ background: var(--slds-g-color-surface-container-1);
430
+ border: var(--slds-g-sizing-border-1) solid var(--slds-g-color-border-1);
431
+ }
432
+
433
+ .icon-button:hover {
434
+ background: var(--slds-g-color-surface-container-2);
435
+ }
436
+ ```
437
+
438
+ ### Pattern 3: Avatar Variations
439
+
440
+ ```css
441
+ .avatar {
442
+ border-radius: var(--slds-g-radius-border-circle);
443
+ object-fit: cover;
444
+ }
445
+
446
+ .avatar-small {
447
+ width: var(--slds-g-sizing-7);
448
+ height: var(--slds-g-sizing-7);
449
+ }
450
+
451
+ .avatar-medium {
452
+ width: var(--slds-g-sizing-9);
453
+ height: var(--slds-g-sizing-9);
454
+ }
455
+
456
+ .avatar-large {
457
+ width: var(--slds-g-sizing-10);
458
+ height: var(--slds-g-sizing-10);
459
+ }
460
+
461
+ .avatar-hero {
462
+ width: var(--slds-g-sizing-12);
463
+ height: var(--slds-g-sizing-12);
464
+ }
465
+ ```
466
+
467
+ ### Pattern 4: Card with Border
468
+
469
+ ```css
470
+ .card {
471
+ background: var(--slds-g-color-surface-container-1);
472
+ border: var(--slds-g-sizing-border-1) solid var(--slds-g-color-border-1);
473
+ border-radius: var(--slds-g-radius-border-2);
474
+ padding: var(--slds-g-spacing-4);
475
+ box-shadow: var(--slds-g-shadow-2);
476
+ }
477
+ ```
478
+
479
+ ### Pattern 5: Status Indicator
480
+
481
+ ```css
482
+ .status-indicator {
483
+ width: var(--slds-g-sizing-3);
484
+ height: var(--slds-g-sizing-3);
485
+ border-radius: var(--slds-g-radius-border-circle);
486
+ background: var(--slds-g-color-success-1);
487
+ }
488
+ ```
489
+
490
+ ### Pattern 6: Modal Dialog
491
+
492
+ ```css
493
+ .modal {
494
+ background: var(--slds-g-color-surface-1);
495
+ border-radius: var(--slds-g-radius-border-2);
496
+ box-shadow: var(--slds-g-shadow-4);
497
+ padding: var(--slds-g-spacing-6);
498
+
499
+ /* Responsive width with max */
500
+ width: 90%;
501
+ max-width: var(--slds-g-sizing-15);
502
+ }
503
+ ```
504
+
505
+ ### Pattern 7: Alert with Accent Border
506
+
507
+ ```css
508
+ .alert-error {
509
+ background: var(--slds-g-color-error-container-1);
510
+ color: var(--slds-g-color-on-error-1);
511
+ padding: var(--slds-g-spacing-3) var(--slds-g-spacing-4);
512
+ border-radius: var(--slds-g-radius-border-1);
513
+ border-left: var(--slds-g-sizing-border-4) solid var(--slds-g-color-error-1);
514
+ }
515
+ ```
516
+
517
+ ### Pattern 8: Sidebar Panel
518
+
519
+ ```css
520
+ .sidebar {
521
+ width: var(--slds-g-sizing-14);
522
+ background: var(--slds-g-color-surface-2);
523
+ border-right: var(--slds-g-sizing-border-1) solid var(--slds-g-color-border-1);
524
+ padding: var(--slds-g-spacing-4);
525
+ }
526
+ ```
527
+
528
+ ---
529
+
530
+ ## Important: Target Sizing vs Fixed Sizing
531
+
532
+ ### Interactive Elements: Use Padding (Recommended)
533
+
534
+ Most interactive elements should achieve target sizing through padding, **not** fixed dimensions:
535
+
536
+ ```css
537
+ /* ✅ RECOMMENDED - Flexible button using padding */
538
+ .button {
539
+ padding: var(--slds-g-spacing-2) var(--slds-g-spacing-4);
540
+ /* Height automatically determined by padding + content */
541
+ }
542
+
543
+ /* ❌ AVOID - Fixed height is less flexible */
544
+ .button {
545
+ height: 2.5rem; /* Breaks with font size changes */
546
+ }
547
+ ```
548
+
549
+ ### When to Use Fixed Sizing
550
+
551
+ **DO use fixed sizing for:**
552
+
553
+ 1. **Icon-only buttons** (square, circular)
554
+ 2. **Avatars** (always square/circular)
555
+ 3. **Status indicators** (fixed dots, badges)
556
+ 4. **Icons** (consistent sizing)
557
+ 5. **Container max-widths** (responsive constraints)
558
+
559
+ ```css
560
+ /* ✅ Fixed sizing appropriate here */
561
+ .icon-button {
562
+ width: var(--slds-g-sizing-9);
563
+ height: var(--slds-g-sizing-9);
564
+ }
565
+
566
+ .avatar {
567
+ width: var(--slds-g-sizing-10);
568
+ height: var(--slds-g-sizing-10);
569
+ }
570
+ ```
571
+
572
+ ---
573
+
574
+ ## Accessibility Considerations
575
+
576
+ ### Target Sizing
577
+
578
+ Ensure interactive elements meet minimum target sizes:
579
+
580
+ **WCAG 2.2 Requirements:**
581
+
582
+ - Desktop/Pointer: 24×24px minimum (AA), 44×44px recommended (AAA)
583
+ - Mobile/Touch: 44×44px minimum
584
+ - Salesforce default: 44×44px for consistency
585
+
586
+ ```css
587
+ /* Icon button meets minimum target size */
588
+ .icon-button {
589
+ width: var(--slds-g-sizing-9); /* 32px */
590
+ height: var(--slds-g-sizing-9);
591
+ /* Still needs adequate spacing to meet 44px in context */
592
+ }
593
+
594
+ /* Text button meets target through padding */
595
+ .button {
596
+ padding: var(--slds-g-spacing-3) var(--slds-g-spacing-4);
597
+ /* Results in 44px+ height */
598
+ }
599
+ ```
600
+
601
+ ### Responsive Sizing
602
+
603
+ Sizing hooks scale with root font-size:
604
+
605
+ ```css
606
+ /* Automatically scales with user font size preferences */
607
+ .icon {
608
+ width: var(--slds-g-sizing-5); /* 1rem = 16px at default */
609
+ height: var(--slds-g-sizing-5);
610
+ }
611
+
612
+ /* If user increases font to 20px, icon becomes 20px */
613
+ ```
614
+
615
+ ---
616
+
617
+ ## Quick Decision Guide
618
+
619
+ **Choose sizing hook based on element type:**
620
+
621
+ | Element Type | Recommended Hook | Why |
622
+ | --------------- | -------------------------- | ------------------------------ |
623
+ | Tiny status dot | `sizing-2` or `sizing-3` | Minimal visual indicator |
624
+ | Small icon | `sizing-4` | Compact icon |
625
+ | Standard icon | `sizing-5` | Default icon size |
626
+ | Large icon | `sizing-7` | Prominent icon |
627
+ | Icon button | `sizing-9` | Touch-friendly circular button |
628
+ | Small avatar | `sizing-7` | Compact profile image |
629
+ | Standard avatar | `sizing-9` or `sizing-10` | Default profile size |
630
+ | Large avatar | `sizing-11` or `sizing-12` | Hero profile image |
631
+ | Modal width | `sizing-15` or `sizing-16` | Content container |
632
+ | Sidebar width | `sizing-13` or `sizing-14` | Side panel |
633
+
634
+ **Choose border sizing based on emphasis:**
635
+
636
+ | Border Context | Hook | Why |
637
+ | ------------------ | -------------------------------------- | -------------------- |
638
+ | Standard borders | `sizing-border-1` | Default, subtle |
639
+ | Emphasized borders | `sizing-border-2` | Noticeable |
640
+ | Accent borders | `sizing-border-3` or `sizing-border-4` | Strong visual weight |
641
+
642
+ ---
643
+
644
+ ## Complete Hook Reference
645
+
646
+ **General Sizing (16 hooks):**
647
+
648
+ - `--slds-g-sizing-1` through `--slds-g-sizing-16`
649
+
650
+ **Border Sizing (4 hooks):**
651
+
652
+ - `--slds-g-sizing-border-1` through `--slds-g-sizing-border-4`
653
+
654
+ **Typography Width (6 hooks):**
655
+
656
+ - `--slds-g-sizing-content-1/2/3` (content width)
657
+ - `--slds-g-sizing-heading-1/2/3` (heading width)
658
+
659
+ **Total: 26 sizing hooks**
660
+
661
+ ---
662
+
663
+ **References:**
664
+
665
+ - Source: `/source-data/sds-metadata/styling-hooks/globalstylinghooks.metadata.json`
666
+ - Source: `/source-data/final-ux-guidance/styling-hooks/spacing-and-sizing/spacing-and-sizing-hooks.md`
667
+ - SLDS Documentation: [Spacing & Sizing](https://www.lightningdesignsystem.com/2e1ef8501/p/03d6b0-spacing-and-sizing)