@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.
- package/index.bundle.js +109 -117
- package/knowledge/graphql/generation-guide.md +212 -0
- package/knowledge/graphql/generation-mutation.md +265 -0
- package/knowledge/graphql/generation-query.md +235 -0
- package/knowledge/graphql/generation-schema.md +20 -0
- package/knowledge/graphql/schema/shared.graphqls +1140 -0
- package/knowledge/o11y/activityApi.md +64 -0
- package/knowledge/o11y/bestPractices.md +106 -0
- package/knowledge/o11y/counterMetrics.md +61 -0
- package/knowledge/o11y/errorTracking.md +70 -0
- package/knowledge/o11y/initialization.md +46 -0
- package/knowledge/o11y/lifecycleInstrumentation.md +91 -0
- package/knowledge/o11y/logApi.md +53 -0
- package/knowledge/o11y/schemaUsage.md +48 -0
- package/knowledge/slds/styling-hooks/README.md +408 -0
- package/knowledge/slds/styling-hooks/categories/color.md +963 -0
- package/knowledge/slds/styling-hooks/categories/radius.md +526 -0
- package/knowledge/slds/styling-hooks/categories/shadow.md +489 -0
- package/knowledge/slds/styling-hooks/categories/sizing.md +667 -0
- package/knowledge/slds/styling-hooks/categories/spacing.md +501 -0
- package/knowledge/slds/styling-hooks/categories/typography.md +708 -0
- package/knowledge/slds/styling-hooks/global-semantic/accent-hooks.md +207 -0
- package/knowledge/slds/styling-hooks/global-semantic/feedback-hooks.md +819 -0
- package/knowledge/slds/styling-hooks/global-semantic/surface-hooks.md +215 -0
- package/knowledge/slds/styling-hooks/guidance.md +906 -0
- package/knowledge/slds/styling-hooks/metadata/hooks-index.json +6576 -0
- package/knowledge/utam/generation-guide.md +499 -0
- package/knowledge/utam/generation-workflow.md +243 -0
- package/knowledge/utam/namespaces-mapping.md +26 -0
- package/knowledge/utam/utam-json-schema.md +720 -0
- package/knowledge/utils.ts +27 -0
- package/package.json +4 -3
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-create-list-info.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-create-record.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-delete-list-info.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-delete-record.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-info-by-name.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-infos-by-name.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-infos-by-object-name.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-object-info.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-preferences.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-get-list-records-by-name.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-update-list-info.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-update-list-preferences.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/reference-update-record.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/lds-wire-adapter-types.json +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-count.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-info-batch.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-info.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-records-batch.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-list-records.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-get-related-lists-info.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-object-info.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-object-infos.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-picklist-values-record.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-picklist-values.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-record.md +0 -0
- /package/{agents → experts}/lds/resources/lwc/guides/reference/wire-adapters/reference-wire-adapters-records.md +0 -0
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
# SLDS Border Radius Styling Hooks
|
|
2
|
+
|
|
3
|
+
**Category:** Layout / Visual Treatment
|
|
4
|
+
**Total Hooks:** 6 radius hooks
|
|
5
|
+
**Purpose:** Control corner curvature and component softness
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Border radius styling hooks manage the curvature of UI elements' corners, impacting the perceived softness or hardness of components. Consistent radius usage creates visual cohesion and reinforces the design system's aesthetic.
|
|
12
|
+
|
|
13
|
+
**Key Principles:**
|
|
14
|
+
|
|
15
|
+
- Use progressive radius values (1→4) for increasing curvature
|
|
16
|
+
- Special values (circle, pill) for specific shape requirements
|
|
17
|
+
- Maintain consistency within component families
|
|
18
|
+
- Consider accessibility when using extreme radius values
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Available Hooks
|
|
23
|
+
|
|
24
|
+
| Hook | Value | Description | Common Use |
|
|
25
|
+
| ------------------------------- | ---------------- | ----------------------- | ---------------------------- |
|
|
26
|
+
| `--slds-g-radius-border-1` | `0.25rem` (4px) | Subtle rounding | Buttons, inputs, cards |
|
|
27
|
+
| `--slds-g-radius-border-2` | `0.5rem` (8px) | Medium rounding | Modals, large cards |
|
|
28
|
+
| `--slds-g-radius-border-3` | `0.75rem` (12px) | Prominent rounding | Hero sections, feature cards |
|
|
29
|
+
| `--slds-g-radius-border-4` | `1.25rem` (20px) | Maximum corner rounding | Special components |
|
|
30
|
+
| `--slds-g-radius-border-circle` | `100%` | Perfect circle | Avatars, icon buttons |
|
|
31
|
+
| `--slds-g-radius-border-pill` | `15rem` (240px) | Pill shape | Pill buttons, tags, badges |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Usage Guidance
|
|
36
|
+
|
|
37
|
+
### Radius-Border-1: Subtle Rounding (0.25rem / 4px)
|
|
38
|
+
|
|
39
|
+
**Most Common** - Default radius for standard UI elements
|
|
40
|
+
|
|
41
|
+
#### Use For:
|
|
42
|
+
|
|
43
|
+
- Standard buttons
|
|
44
|
+
- Input fields
|
|
45
|
+
- Small cards
|
|
46
|
+
- Chips and tags
|
|
47
|
+
- Tooltips
|
|
48
|
+
- Dropdown items
|
|
49
|
+
|
|
50
|
+
```css
|
|
51
|
+
.button-default {
|
|
52
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.input-field {
|
|
56
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.card-small {
|
|
60
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
### Radius-Border-2: Medium Rounding (0.5rem / 8px)
|
|
67
|
+
|
|
68
|
+
**Standard** - Balanced rounding for prominent elements
|
|
69
|
+
|
|
70
|
+
#### Use For:
|
|
71
|
+
|
|
72
|
+
- Large cards
|
|
73
|
+
- Modal dialogs
|
|
74
|
+
- Content panels
|
|
75
|
+
- Navigation containers
|
|
76
|
+
- Prominent buttons
|
|
77
|
+
|
|
78
|
+
```css
|
|
79
|
+
.card-large {
|
|
80
|
+
border-radius: var(--slds-g-radius-border-2);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.modal {
|
|
84
|
+
border-radius: var(--slds-g-radius-border-2);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.panel {
|
|
88
|
+
border-radius: var(--slds-g-radius-border-2);
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### Radius-Border-3: Prominent Rounding (0.75rem / 12px)
|
|
95
|
+
|
|
96
|
+
**Expressive** - More pronounced curvature
|
|
97
|
+
|
|
98
|
+
#### Use For:
|
|
99
|
+
|
|
100
|
+
- Hero sections
|
|
101
|
+
- Feature cards
|
|
102
|
+
- Marketing content
|
|
103
|
+
- Highlight panels
|
|
104
|
+
- Special callouts
|
|
105
|
+
|
|
106
|
+
```css
|
|
107
|
+
.hero-card {
|
|
108
|
+
border-radius: var(--slds-g-radius-border-3);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.feature-section {
|
|
112
|
+
border-radius: var(--slds-g-radius-border-3);
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### Radius-Border-4: Maximum Rounding (1.25rem / 20px)
|
|
119
|
+
|
|
120
|
+
**Distinctive** - Highest corner rounding
|
|
121
|
+
|
|
122
|
+
#### Use For:
|
|
123
|
+
|
|
124
|
+
- Special design treatments
|
|
125
|
+
- Brand-specific components
|
|
126
|
+
- Decorative elements
|
|
127
|
+
- Unique interactive elements
|
|
128
|
+
|
|
129
|
+
```css
|
|
130
|
+
.special-component {
|
|
131
|
+
border-radius: var(--slds-g-radius-border-4);
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Note:** Use sparingly to maintain visual consistency
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### Radius-Border-Circle: Perfect Circle (100%)
|
|
140
|
+
|
|
141
|
+
**Circular** - Creates perfect circles
|
|
142
|
+
|
|
143
|
+
#### Use For:
|
|
144
|
+
|
|
145
|
+
- Avatar images
|
|
146
|
+
- Icon-only buttons
|
|
147
|
+
- Status indicators
|
|
148
|
+
- Badge dots
|
|
149
|
+
- Circular progress indicators
|
|
150
|
+
|
|
151
|
+
```css
|
|
152
|
+
.avatar {
|
|
153
|
+
width: 2.5rem;
|
|
154
|
+
height: 2.5rem;
|
|
155
|
+
border-radius: var(--slds-g-radius-border-circle);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.icon-button {
|
|
159
|
+
width: 2rem;
|
|
160
|
+
height: 2rem;
|
|
161
|
+
border-radius: var(--slds-g-radius-border-circle);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.status-indicator {
|
|
165
|
+
width: 0.5rem;
|
|
166
|
+
height: 0.5rem;
|
|
167
|
+
border-radius: var(--slds-g-radius-border-circle);
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Important:** Element must have equal width and height for perfect circle
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
### Radius-Border-Pill: Pill Shape (15rem / 240px)
|
|
176
|
+
|
|
177
|
+
**Pill-shaped** - Fully rounded ends
|
|
178
|
+
|
|
179
|
+
#### Use For:
|
|
180
|
+
|
|
181
|
+
- Pill buttons
|
|
182
|
+
- Tags and labels
|
|
183
|
+
- Badges
|
|
184
|
+
- Search bars
|
|
185
|
+
- Status pills
|
|
186
|
+
|
|
187
|
+
```css
|
|
188
|
+
.pill-button {
|
|
189
|
+
padding: var(--slds-g-spacing-2) var(--slds-g-spacing-4);
|
|
190
|
+
border-radius: var(--slds-g-radius-border-pill);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.tag {
|
|
194
|
+
padding: var(--slds-g-spacing-1) var(--slds-g-spacing-3);
|
|
195
|
+
border-radius: var(--slds-g-radius-border-pill);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.badge {
|
|
199
|
+
padding: var(--slds-g-spacing-1) var(--slds-g-spacing-2);
|
|
200
|
+
border-radius: var(--slds-g-radius-border-pill);
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Best Practices
|
|
207
|
+
|
|
208
|
+
### ✅ DO:
|
|
209
|
+
|
|
210
|
+
1. **Use consistent radius within component families**
|
|
211
|
+
|
|
212
|
+
```css
|
|
213
|
+
/* All standard buttons use radius-border-1 */
|
|
214
|
+
.button-primary,
|
|
215
|
+
.button-secondary,
|
|
216
|
+
.button-tertiary {
|
|
217
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
2. **Match radius to component size**
|
|
222
|
+
|
|
223
|
+
```css
|
|
224
|
+
/* Small components use smaller radius */
|
|
225
|
+
.chip {
|
|
226
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/* Large components can use larger radius */
|
|
230
|
+
.hero-card {
|
|
231
|
+
border-radius: var(--slds-g-radius-border-2);
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
3. **Use pill shape for pill-like elements**
|
|
236
|
+
|
|
237
|
+
```css
|
|
238
|
+
.status-badge {
|
|
239
|
+
padding: 0.25rem 0.75rem;
|
|
240
|
+
border-radius: var(--slds-g-radius-border-pill);
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
4. **Ensure perfect circles have equal dimensions**
|
|
245
|
+
```css
|
|
246
|
+
.avatar {
|
|
247
|
+
width: 3rem;
|
|
248
|
+
height: 3rem; /* Same as width */
|
|
249
|
+
border-radius: var(--slds-g-radius-border-circle);
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### ❌ DON'T:
|
|
254
|
+
|
|
255
|
+
1. **Don't mix radius values randomly**
|
|
256
|
+
|
|
257
|
+
```css
|
|
258
|
+
/* Bad: Inconsistent radius in related components */
|
|
259
|
+
.card-header {
|
|
260
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
261
|
+
}
|
|
262
|
+
.card-body {
|
|
263
|
+
border-radius: var(--slds-g-radius-border-3);
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
2. **Don't use circle on non-square elements**
|
|
268
|
+
|
|
269
|
+
```css
|
|
270
|
+
/* Bad: Rectangle with circle radius */
|
|
271
|
+
.button {
|
|
272
|
+
width: 5rem;
|
|
273
|
+
height: 2rem;
|
|
274
|
+
border-radius: var(--slds-g-radius-border-circle);
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
3. **Don't hard-code radius values**
|
|
279
|
+
|
|
280
|
+
```css
|
|
281
|
+
/* Bad */
|
|
282
|
+
border-radius: 4px;
|
|
283
|
+
|
|
284
|
+
/* Good */
|
|
285
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
4. **Don't overuse large radius values**
|
|
289
|
+
```css
|
|
290
|
+
/* Bad: Everything shouldn't use radius-border-4 */
|
|
291
|
+
.button,
|
|
292
|
+
.input,
|
|
293
|
+
.card {
|
|
294
|
+
border-radius: var(--slds-g-radius-border-4);
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Common Patterns
|
|
301
|
+
|
|
302
|
+
### Pattern 1: Standard Button
|
|
303
|
+
|
|
304
|
+
```css
|
|
305
|
+
.button {
|
|
306
|
+
background: var(--slds-g-color-accent-container-1);
|
|
307
|
+
color: var(--slds-g-color-on-accent-1);
|
|
308
|
+
padding: var(--slds-g-spacing-2) var(--slds-g-spacing-4);
|
|
309
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
310
|
+
border: 1px solid var(--slds-g-color-border-accent-1);
|
|
311
|
+
}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Pattern 2: Card Component
|
|
315
|
+
|
|
316
|
+
```css
|
|
317
|
+
.card {
|
|
318
|
+
background: var(--slds-g-color-surface-container-1);
|
|
319
|
+
padding: var(--slds-g-spacing-4);
|
|
320
|
+
border-radius: var(--slds-g-radius-border-2);
|
|
321
|
+
box-shadow: var(--slds-g-shadow-2);
|
|
322
|
+
}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### Pattern 3: Avatar
|
|
326
|
+
|
|
327
|
+
```css
|
|
328
|
+
.avatar {
|
|
329
|
+
width: 2.5rem;
|
|
330
|
+
height: 2.5rem;
|
|
331
|
+
border-radius: var(--slds-g-radius-border-circle);
|
|
332
|
+
object-fit: cover;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.avatar-small {
|
|
336
|
+
width: 1.5rem;
|
|
337
|
+
height: 1.5rem;
|
|
338
|
+
border-radius: var(--slds-g-radius-border-circle);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.avatar-large {
|
|
342
|
+
width: 4rem;
|
|
343
|
+
height: 4rem;
|
|
344
|
+
border-radius: var(--slds-g-radius-border-circle);
|
|
345
|
+
}
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### Pattern 4: Pill Button
|
|
349
|
+
|
|
350
|
+
```css
|
|
351
|
+
.pill-button {
|
|
352
|
+
padding: var(--slds-g-spacing-2) var(--slds-g-spacing-5);
|
|
353
|
+
border-radius: var(--slds-g-radius-border-pill);
|
|
354
|
+
background: var(--slds-g-color-accent-container-1);
|
|
355
|
+
color: var(--slds-g-color-on-accent-1);
|
|
356
|
+
border: none;
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### Pattern 5: Tag/Badge
|
|
361
|
+
|
|
362
|
+
```css
|
|
363
|
+
.tag {
|
|
364
|
+
display: inline-flex;
|
|
365
|
+
align-items: center;
|
|
366
|
+
padding: var(--slds-g-spacing-1) var(--slds-g-spacing-3);
|
|
367
|
+
border-radius: var(--slds-g-radius-border-pill);
|
|
368
|
+
background: var(--slds-g-color-surface-container-2);
|
|
369
|
+
color: var(--slds-g-color-on-surface-2);
|
|
370
|
+
font-size: 0.75rem;
|
|
371
|
+
}
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
### Pattern 6: Input Field
|
|
375
|
+
|
|
376
|
+
```css
|
|
377
|
+
.input {
|
|
378
|
+
padding: var(--slds-g-spacing-2) var(--slds-g-spacing-3);
|
|
379
|
+
border: 1px solid var(--slds-g-color-border-1);
|
|
380
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
381
|
+
background: var(--slds-g-color-surface-container-1);
|
|
382
|
+
font-family: var(--slds-g-font-family-base);
|
|
383
|
+
font-size: var(--slds-g-font-size-base);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
.input:focus {
|
|
387
|
+
border-color: var(--slds-g-color-accent-1);
|
|
388
|
+
box-shadow: var(--slds-g-shadow-outline-focus-1);
|
|
389
|
+
}
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Pattern 7: Modal Dialog
|
|
393
|
+
|
|
394
|
+
```css
|
|
395
|
+
.modal {
|
|
396
|
+
background: var(--slds-g-color-surface-1);
|
|
397
|
+
border-radius: var(--slds-g-radius-border-2);
|
|
398
|
+
box-shadow: var(--slds-g-shadow-4);
|
|
399
|
+
padding: var(--slds-g-spacing-6);
|
|
400
|
+
max-width: 40rem;
|
|
401
|
+
}
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### Pattern 8: Icon Button (Circular)
|
|
405
|
+
|
|
406
|
+
```css
|
|
407
|
+
.icon-button {
|
|
408
|
+
width: 2.5rem;
|
|
409
|
+
height: 2.5rem;
|
|
410
|
+
display: flex;
|
|
411
|
+
align-items: center;
|
|
412
|
+
justify-content: center;
|
|
413
|
+
border-radius: var(--slds-g-radius-border-circle);
|
|
414
|
+
background: var(--slds-g-color-surface-container-1);
|
|
415
|
+
border: 1px solid var(--slds-g-color-border-1);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
.icon-button:hover {
|
|
419
|
+
background: var(--slds-g-color-surface-container-2);
|
|
420
|
+
}
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## Directional Radius
|
|
426
|
+
|
|
427
|
+
For partial radius application (specific corners):
|
|
428
|
+
|
|
429
|
+
```css
|
|
430
|
+
/* Top corners only */
|
|
431
|
+
.modal-header {
|
|
432
|
+
border-top-left-radius: var(--slds-g-radius-border-2);
|
|
433
|
+
border-top-right-radius: var(--slds-g-radius-border-2);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/* Bottom corners only */
|
|
437
|
+
.modal-footer {
|
|
438
|
+
border-bottom-left-radius: var(--slds-g-radius-border-2);
|
|
439
|
+
border-bottom-right-radius: var(--slds-g-radius-border-2);
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
/* Single corner */
|
|
443
|
+
.callout-arrow {
|
|
444
|
+
border-top-left-radius: var(--slds-g-radius-border-1);
|
|
445
|
+
}
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
## Accessibility Considerations
|
|
451
|
+
|
|
452
|
+
### Touch Targets
|
|
453
|
+
|
|
454
|
+
Radius doesn't affect touch target size - ensure adequate padding:
|
|
455
|
+
|
|
456
|
+
```css
|
|
457
|
+
.button {
|
|
458
|
+
padding: var(--slds-g-spacing-2) var(--slds-g-spacing-4); /* Ensures 44px height */
|
|
459
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
460
|
+
}
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
### Visual Clarity
|
|
464
|
+
|
|
465
|
+
Maintain adequate contrast between rounded elements and backgrounds:
|
|
466
|
+
|
|
467
|
+
```css
|
|
468
|
+
.button {
|
|
469
|
+
background: var(--slds-g-color-accent-container-1);
|
|
470
|
+
border: 1px solid var(--slds-g-color-border-accent-1);
|
|
471
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
472
|
+
}
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
### Reduced Motion
|
|
476
|
+
|
|
477
|
+
Radius changes should be instant, not animated (for motion sensitivity):
|
|
478
|
+
|
|
479
|
+
```css
|
|
480
|
+
/* Good - instant radius change */
|
|
481
|
+
.button {
|
|
482
|
+
border-radius: var(--slds-g-radius-border-1);
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
.button:hover {
|
|
486
|
+
border-radius: var(--slds-g-radius-border-1); /* No animation */
|
|
487
|
+
}
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
---
|
|
491
|
+
|
|
492
|
+
## Quick Decision Guide
|
|
493
|
+
|
|
494
|
+
**Choose radius based on component type:**
|
|
495
|
+
|
|
496
|
+
| Component Type | Recommended Radius | Why |
|
|
497
|
+
| ------------------ | ---------------------- | ------------------------ |
|
|
498
|
+
| Buttons (standard) | `radius-border-1` | Subtle, professional |
|
|
499
|
+
| Input fields | `radius-border-1` | Consistency with buttons |
|
|
500
|
+
| Small cards | `radius-border-1` | Subtle separation |
|
|
501
|
+
| Large cards | `radius-border-2` | More prominent |
|
|
502
|
+
| Modals | `radius-border-2` | Softer appearance |
|
|
503
|
+
| Pills/badges | `radius-border-pill` | Pill shape |
|
|
504
|
+
| Avatars | `radius-border-circle` | Circular |
|
|
505
|
+
| Icon buttons | `radius-border-circle` | Circular |
|
|
506
|
+
| Hero sections | `radius-border-3` | Expressive |
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
## Complete Hook Reference
|
|
511
|
+
|
|
512
|
+
**All 6 Radius Hooks:**
|
|
513
|
+
|
|
514
|
+
1. `--slds-g-radius-border-1` - 0.25rem (4px) - Subtle
|
|
515
|
+
2. `--slds-g-radius-border-2` - 0.5rem (8px) - Medium
|
|
516
|
+
3. `--slds-g-radius-border-3` - 0.75rem (12px) - Prominent
|
|
517
|
+
4. `--slds-g-radius-border-4` - 1.25rem (20px) - Maximum
|
|
518
|
+
5. `--slds-g-radius-border-circle` - 100% - Perfect circle
|
|
519
|
+
6. `--slds-g-radius-border-pill` - 15rem (240px) - Pill shape
|
|
520
|
+
|
|
521
|
+
---
|
|
522
|
+
|
|
523
|
+
**References:**
|
|
524
|
+
|
|
525
|
+
- Source: `/source-data/sds-metadata/styling-hooks/globalstylinghooks.metadata.json`
|
|
526
|
+
- SLDS Documentation: [Border Radius](https://www.lightningdesignsystem.com/2e1ef8501/)
|