Skip to content

Commit 9e24651

Browse files
committed
wip
1 parent baa8a84 commit 9e24651

1 file changed

Lines changed: 52 additions & 23 deletions

File tree

  • packages/nimble-components/src/stepper/specs

packages/nimble-components/src/stepper/specs/README.md

Lines changed: 52 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,71 @@
22

33
## Overview
44

5-
The `nimble-stepper-group` and
5+
The `nimble-stepper`, `nimble-step`, and `nimble-anchor-step` elements.
66

77
### Background
88

9-
9+
<!--
1010
- *Relevant historical or background information*
11-
- *Link to Interaction Design spec*
12-
- *Link to Visual Design spec*
1311
- *Link to relevant work items, related existing issues, etc.*
12+
-->
13+
14+
- Interaction Design: None
15+
- Visual Design:
16+
- [Nimble Components Stepper Figma](https://www.figma.com/design/PO9mFOu5BCl8aJvFchEeuN/Nimble_Components?node-id=11742-71097&p=f&t=U3UnPlU4awyN4ybh-0)
17+
- [Config App Figma](https://www.figma.com/design/eG9PhYykbokYf1OBd8KLkn/Valinor?node-id=0-1&p=f&t=oRGYidVydXMcgj3I-0)
1418

1519
### Containing Library
1620

17-
*State whether this component be part of Nimble or Spright and provide justification or considerations leading to that decision.*
21+
<!-- *State whether this component be part of Nimble or Spright and provide justification or considerations leading to that decision.* -->
22+
23+
Nimble, general component
1824

1925
### Non-goals
2026

21-
*A list of use cases, features, or functionality which are **not** goals for the component.*
22-
27+
<!-- *A list of use cases, features, or functionality which are **not** goals for the component.* -->
28+
29+
- Very long lists of steps
30+
- Non-linear steps
31+
2332
### Features
2433

25-
*A list of the key features unique to this component.*
34+
- Similar to a breadcrumb but with more visual states
2635

2736
### Risks and Challenges
2837

29-
*Notable risks or challenges associated with implementing the component. Would we need to make any breaking changes in order to achieve this component's goals?*
38+
<!-- *Notable risks or challenges associated with implementing the component. Would we need to make any breaking changes in order to achieve this component's goals?* -->
3039

31-
### Prior Art/Examples
40+
No known new risks or challenges
3241

33-
- Carbon design system progress: <https://carbondesignsystem.com/components/progress-indicator/usage/>
42+
### Prior Art / Examples
3443

35-
*Screenshots and/or links to existing, canonical, or exemplary implementations of the component.*
36-
37-
---
44+
- Relevant design systems:
45+
- [Carbon progress indicator](https://carbondesignsystem.com/components/progress-indicator/usage/)
46+
- [Angular Material stepper](https://material.angular.dev/components/stepper/overview)
47+
- [WAI Patterns step-by-step indicator](https://www.w3.org/WAI/tutorials/forms/multi-page/#using-step-by-step-indicator)
48+
- [USDS step indicator](https://designsystem.digital.gov/components/step-indicator/)
3849

3950
## Design
4051

41-
*Describe the design of the component, thinking through several perspectives:*
52+
<!-- *Describe the design of the component, thinking through several perspectives:*
4253
4354
- *A customer using the component on a web page.*
4455
- *A developer building an app with the component and interacting through HTML/CSS/JavaScript.*
4556
- *A designer customizing the component.*
4657
4758
*Include code snippets showing basic component use and any interesting configurations.*
4859
49-
*For each section below, consider adding an "Alternatives" sub-section to describe any design alternatives and discuss why they were rejected.*
60+
*For each section below, consider adding an "Alternatives" sub-section to describe any design alternatives and discuss why they were rejected.* -->
61+
62+
The `nimble-stepper` acts a a progress indicator for a wizard / step-by-step workflow. It behaves conceptually as either a collection of card buttons (i.e. collection of `nimble-step`) or as a breadcrumb (i.e. collection of `nimble-anchor-step`). Each item has a severity state associated with it (potentially with extra detail messages to show) and the ability to show what state is the "current" selected step that the user is on.
63+
64+
The `nimble-stepper` is just for layout, placing steps either horizontal or vertical orientation and communicating internal state to child steps as needed (ideally just via style)
65+
5066

5167
### API
5268

53-
*The key elements of the component's public API surface:*
69+
<!-- *The key elements of the component's public API surface:*
5470
5571
- *Component Name*
5672
- *Props/Attrs: to match native element APIs, prefer primitive types rather than complex configuration objects and expose fields as both properties on the TypeScript class and attributes on the HTML element*
@@ -59,7 +75,14 @@ The `nimble-stepper-group` and
5975
- *CSS Classes and CSS Custom Properties that affect the component*
6076
- *How native CSS Properties (height, width, etc.) affect the component*
6177
62-
*Consider high and low-level APIs. Attempt to design a powerful and extensible low-level API with a high-level API for developer/designer ergonomics and simplicity.*
78+
*Consider high and low-level APIs. Attempt to design a powerful and extensible low-level API with a high-level API for developer/designer ergonomics and simplicity.* -->
79+
80+
- `nimble-stepper`
81+
- *Props/Attrs: to match native element APIs, prefer primitive types rather than complex configuration objects and expose fields as both properties on the TypeScript class and attributes on the HTML element*
82+
- *Methods*
83+
- *Events*
84+
- *CSS Classes and CSS Custom Properties that affect the component*
85+
- *How native CSS Properties (height, width, etc.) affect the component*
6386

6487
### Anatomy
6588

@@ -72,13 +95,17 @@ The `nimble-stepper-group` and
7295

7396
### Native form integration
7497

75-
*Describe the plan for custom element form integration or why it's not necessary.*
98+
<!-- *Describe the plan for custom element form integration or why it's not necessary.*
99+
100+
*Components that are intended to replace a native form element (input, textarea, select) should generally behave like their native counterpart. See ["More capable form controls" on web.dev](https://web.dev/articles/more-capable-form-controls) for an overview of requirements. Leverage patterns from [FAST Form Associated Custom Elements](https://github.com/microsoft/fast/blob/master/packages/web-components/fast-foundation/src/form-associated/form-associated-custom-element.spec.md).* -->
76101

77-
*Components that are intended to replace a native form element (input, textarea, select) should generally behave like their native counterpart. See ["More capable form controls" on web.dev](https://web.dev/articles/more-capable-form-controls) for an overview of requirements. Leverage patterns from [FAST Form Associated Custom Elements](https://github.com/microsoft/fast/blob/master/packages/web-components/fast-foundation/src/form-associated/form-associated-custom-element.spec.md).*
102+
N/A
78103

79104
### Angular integration
80105

81-
*Describe the plan for Angular support, including directives for attribute binding and ControlValueAccessor for form integration. Depending on the contributor's needs, implementing Angular integration may be deferred but the initial spec should still document what work will be needed.*
106+
<!-- *Describe the plan for Angular support, including directives for attribute binding and ControlValueAccessor for form integration. Depending on the contributor's needs, implementing Angular integration may be deferred but the initial spec should still document what work will be needed.* -->
107+
108+
Angular `routerLink` integration for `nimble-anchor-step`
82109

83110
### Blazor integration
84111

@@ -118,11 +145,13 @@ The `nimble-stepper-group` and
118145

119146
### Mobile
120147

121-
*Consider how the component will behave on mobile devices, including:*
148+
<!-- *Consider how the component will behave on mobile devices, including:*
122149
123150
- *Overflow behavior when screen space is constrained*
124151
- *Interactions that are affected by touch rather than a pointer device (e.g. hover)*
125-
- *Integration with common mobile experiences like native pickers, on-screen keyboards, and dictation*
152+
- *Integration with common mobile experiences like native pickers, on-screen keyboards, and dictation* -->
153+
154+
Overflow of `nimble-step-group`
126155

127156
### Globalization
128157

0 commit comments

Comments
 (0)