Skip to content
This repository was archived by the owner on Jan 6, 2025. It is now read-only.

Commit a1a6b4d

Browse files
Improve dropdown label docs (#463)
Description of changes Adds better documentation on how to create labels in dropdown components that adhere to the VS Code design language.
1 parent a188973 commit a1a6b4d

File tree

1 file changed

+34
-16
lines changed

1 file changed

+34
-16
lines changed

src/dropdown/README.md

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,42 @@ The `vscode-dropdown` component must be used with the `vscode-option` component.
4747

4848
### With Label
4949

50+
_Note: There are [long term plans](https://github.com/microsoft/vscode-webview-ui-toolkit/issues/461#issuecomment-1478408942) to better support labels in dropdown components, but in the meantime the below markup and styling will create a label that adheres to the VS Code design language._
51+
5052
```html
51-
<label for="my-dropdown">Choose an option:</label>
52-
<vscode-dropdown id="my-dropdown">
53-
<vscode-option>Option Label #1</vscode-option>
54-
<vscode-option>Option Label #2</vscode-option>
55-
<vscode-option>Option Label #3</vscode-option>
56-
</vscode-dropdown>
53+
<div class="dropdown-container">
54+
<label for="my-dropdown">Choose an option:</label>
55+
<vscode-dropdown id="my-dropdown">
56+
<vscode-option>Option Label #1</vscode-option>
57+
<vscode-option>Option Label #2</vscode-option>
58+
<vscode-option>Option Label #3</vscode-option>
59+
</vscode-dropdown>
60+
</div>
61+
```
62+
63+
```css
64+
.dropdown-container {
65+
box-sizing: border-box;
66+
display: flex;
67+
flex-flow: column nowrap;
68+
align-items: flex-start;
69+
justify-content: flex-start;
70+
}
71+
72+
.dropdown-container label {
73+
display: block;
74+
color: var(--vscode-foreground);
75+
cursor: pointer;
76+
font-size: var(--vscode-font-size);
77+
line-height: normal;
78+
margin-bottom: 2px;
79+
}
5780
```
5881

5982
### Disabled Attribute
6083

6184
```html
62-
<label for="my-dropdown">Choose an option:</label>
63-
<vscode-dropdown id="my-dropdown" disabled>
85+
<vscode-dropdown disabled>
6486
<vscode-option>Option Label #1</vscode-option>
6587
<vscode-option>Option Label #2</vscode-option>
6688
<vscode-option>Option Label #3</vscode-option>
@@ -70,8 +92,7 @@ The `vscode-dropdown` component must be used with the `vscode-option` component.
7092
### Open Attribute
7193

7294
```html
73-
<label for="my-dropdown">Choose an option:</label>
74-
<vscode-dropdown id="my-dropdown" open>
95+
<vscode-dropdown open>
7596
<vscode-option>Option Label #1</vscode-option>
7697
<vscode-option>Option Label #2</vscode-option>
7798
<vscode-option>Option Label #3</vscode-option>
@@ -81,17 +102,15 @@ The `vscode-dropdown` component must be used with the `vscode-option` component.
81102
### Position Attribute
82103

83104
```html
84-
<label for="my-dropdown">Choose an option:</label>
85-
<vscode-dropdown id="my-dropdown" position="above">
105+
<vscode-dropdown position="above">
86106
<vscode-option>Option Label #1</vscode-option>
87107
<vscode-option>Option Label #2</vscode-option>
88108
<vscode-option>Option Label #3</vscode-option>
89109
</vscode-dropdown>
90110
```
91111

92112
```html
93-
<label for="my-dropdown">Choose an option:</label>
94-
<vscode-dropdown id="my-dropdown" position="below">
113+
<vscode-dropdown position="below">
95114
<vscode-option>Option Label #1</vscode-option>
96115
<vscode-option>Option Label #2</vscode-option>
97116
<vscode-option>Option Label #3</vscode-option>
@@ -105,8 +124,7 @@ The default indicator is a downward facing chevron, but it can customized by add
105124
```html
106125
<!-- Note: Using Visual Studio Code Codicon Library -->
107126

108-
<label for="my-dropdown">Choose an option:</label>
109-
<vscode-dropdown id="my-dropdown">
127+
<vscode-dropdown>
110128
<span slot="indicator" class="codicon codicon-settings"></span>
111129
<vscode-option>Option Label #1</vscode-option>
112130
<vscode-option>Option Label #2</vscode-option>

0 commit comments

Comments
 (0)