You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/copilot-instructions.md
+2-32Lines changed: 2 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -147,39 +147,10 @@ repositories {
147
147
148
148
#### Supported Material 3 Components
149
149
150
-
Not all components of Material Web are supported yet. Here is a list of supported unified component APIs:
150
+
For an up-to-date list of supported unified component APIs, refer to README.md.
151
151
152
152
When adding or aligning components, you can search in <https://m3.material.io/> to find the component first. On each component's overview page, you can usually find links or references to both its Jetpack Compose implementation (almost identical to Compose Multiplatform's Compose UI APIs) and its web/Material Web implementation.
**Components in `ext` package** (platform-specific APIs):
174
-
-`FilledSelect`, `OutlinedSelect`, `SelectOption` (wrap `MdFilledSelect`, `MdOutlinedSelect`, `MdSelectOption` on JS)
175
-
176
-
**Note:** Some Material Web components like `elevation`, `focus-ring`, and `ripple` are not wrapped as they are styling/utility components typically used internally by other components, not directly in application code.
177
-
178
-
**Labs Components:** Some components use Material Web "labs" features (experimental, not recommended for production). These are marked with `@MaterialWebLabsApi` annotation on their JS implementations:
179
-
-`Badge`
180
-
-`SegmentedButton` family
181
-
-`NavigationDrawer` (non-modal variant)
182
-
183
154
### Development Patterns and Conventions
184
155
185
156
#### API Structure
@@ -208,13 +179,12 @@ When adding or aligning components, you can search in <https://m3.material.io/>
208
179
209
180
2.**Ext package** (`com.huanshankeji.compose.material3.ext`): Components with platform-specific APIs
210
181
- Use when unification would compromise usability or when platforms have fundamentally different UX patterns
182
+
- Especially when the JS DOM component only supports taking a text in an HTML attribute such as `value` as its content, while the Compose one takes a `@Composable` content block
211
183
- Example: `FilledSelect`, `OutlinedSelect` (different interaction models between ExposedDropdownMenuBox on Compose UI and native select on JS)
212
184
213
185
3.**Labs annotations** instead of labs package:
214
-
- Don't put components in separate `labs` package
215
186
- Mark JS implementations with `@MaterialWebLabsApi` when they depend on Material Web labs components
216
187
- Opt-in to `@MaterialWebLabsApi` if Compose UI visual effects can already be achieved with consistency on JS DOM
217
-
- Mark otherwise (leave the annotation on the JS implementation only)
0 commit comments