Skip to content

Commit c7d4bcb

Browse files
committed
fix: format
1 parent a1f3750 commit c7d4bcb

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

guidelines/dxp/namespacing.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
To promote consistency, we have established the following rule of thumb for namespacing in DXP:
44

5-
* Unique attributes, such as `id`s, should *not* be namespaced
6-
* Non-unique attributes, such as `name`, should be namespaced
7-
* Fallback: if `id` is not passed, default to using `name` as `id`
5+
- Unique attributes, such as `id`s, should _not_ be namespaced
6+
- Non-unique attributes, such as `name`, should be namespaced
7+
- Fallback: if `id` is not passed, default to using `name` as `id`
88

99
## Reasoning
1010

11-
The purpose of the `id` attribute is to define something unique to the whole page. By following this approach, we ensure that these attributes can be used in methods such as `document.getElementById` as is, without juggling namespaces.
11+
The purpose of the `id` attribute is to define something unique to the whole page. By following this approach, we ensure that these attributes can be used in methods such as `document.getElementById` as is, without juggling namespaces.
1212

1313
Other attributes, such as `name`, only need to be unique for some internal mechanism, such as in a `form` element. By namespacing them internally we ensure that, in case they end up being used under the hood as `id`s, they won't bleed into other components and cause duplicate issues.
1414

@@ -20,16 +20,14 @@ Take the following snippet:
2020

2121
```html
2222
<aui:form id="fm" namespace="myNamespace_">
23-
<clay:headless-data-set-display formId="fm" namespace="myNamespace_" />
23+
<clay:headless-data-set-display formId="fm" namespace="myNamespace_" />
2424
</aui:form>
2525
```
2626

2727
The `clay:headless-data-set-display` element receives the `id` of its wrapping form as a `formId` attribute. This `id` **doesn't include the namespace**, and should not be namespaced inside the form taglib. The `clay:headless-data-set-display` component can now internally use `document.getElementById(formId)` to interact with the form when necessary, without adding the `namespace` before it, because the resulting HTML for the `form` would be as follows:
2828

2929
```html
30-
<form id="fm">
31-
...
32-
</form>
30+
<form id="fm">...</form>
3331
```
3432

3533
### Non-unique attributes
@@ -38,16 +36,14 @@ Take this other example:
3836

3937
```html
4038
<aui:form name="fm" namespace="myNamespace_">
41-
<clay:headless-data-set-display formName="fm" namespace="myNamespace_" />
39+
<clay:headless-data-set-display formName="fm" namespace="myNamespace_" />
4240
</aui:form>
4341
```
4442

4543
In this case, the `form` tag has a `name` attribute, which **will be namespaced under the hood**. Since we aren't passing an `id` prop, the component must use the fallback case and use the `name` as an `id`, resulting in the following HTML:
4644

4745
```html
48-
<form id="myNamespace_fm" name="myNamespace_fm">
49-
...
50-
</form>
46+
<form id="myNamespace_fm" name="myNamespace_fm">...</form>
5147
```
5248

5349
In this case, for the `clay:headless-data-set-display`, we are passing the `formName` prop instead of `id`. The component must namespace the `formName` attribute to find the element on the page, as such:

0 commit comments

Comments
 (0)