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: packages/nimble-components/src/stepper/specs/README.md
+58-14Lines changed: 58 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,24 +20,24 @@ The `nimble-stepper`, `nimble-step`, and `nimble-anchor-step` elements.
20
20
21
21
<!-- *State whether this component be part of Nimble or Spright and provide justification or considerations leading to that decision.* -->
22
22
23
-
Nimble, general component
23
+
Nimble: Stepper is a generic component not designed for a specific application / domain.
24
24
25
25
### Non-goals
26
26
27
27
<!-- *A list of use cases, features, or functionality which are **not** goals for the component.* -->
28
28
29
-
-Very long lists of steps
30
-
- Non-linear steps
29
+
-Handling long lists of steps (10s+)
30
+
- Non-linear step progressions
31
31
32
32
### Features
33
33
34
-
- Similar to a breadcrumb but with more visual states
34
+
- Similar to a breadcrumb conceptually but with more visual states and not only link based.
35
35
36
36
### Risks and Challenges
37
37
38
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?* -->
39
39
40
-
No known new risks or challenges
40
+
No known new unique risks or challenges
41
41
42
42
### Prior Art / Examples
43
43
@@ -59,10 +59,13 @@ No known new risks or challenges
59
59
60
60
*For each section below, consider adding an "Alternatives" sub-section to describe any design alternatives and discuss why they were rejected.* -->
61
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.
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 standard `severity` state associated with it and the ability to express that a state is the "current" `selected` step.
63
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)
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 but implementation TBD).
65
65
66
+
The `nimble-step` and `nimble-anchor-step` are elements representing individual steps with `nimble-step` behaving as a card button (i.e. a button with a concept of a `selected` visual appearance that does not change behavior) and a `nimble-anchor-step` looking visually identical but with link behaviors.
67
+
68
+
The `step` elements will primarily render a provided nimble icon (and new nimble icons for the visuals of digits 0 - 9 will be added). When a non-default severity is provided the provided icon will be replaced with an icon representing the severity.
66
69
67
70
### API
68
71
@@ -78,20 +81,61 @@ The `nimble-stepper` is just for layout, placing steps either horizontal or vert
78
81
*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
82
80
83
-`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*
84
+
- Attributes
85
+
- orientation: vertical / horizontal (aligned with radio group and wafer)
86
+
<!-- - Properties (not attribute reflected)
87
+
- Methods
88
+
- Events
89
+
- CSS custom properties -->
90
+
- CSS native properties
91
+
- Will respond to width / height sizing (on the axis corresponding to orientation) and show overflow scroll buttons following the pattern of breadcrumb
92
+
- Slots
93
+
- default: supports `nimble-step` and `nimble-anchor-step` children
94
+
<!-- - Parts
95
+
- Localizable labels -->
96
+
97
+
-`nimble-step`
98
+
- Attributes
99
+
- disabled: boolean (standard, i.e. visually disabled and interactions prevented)
100
+
-`disabled[appearance-readonly]`: (standard, i.e. visually not disabled, interactions prevented)
101
+
- readonly: boolean (standard, i.e. visually not disabled, interactions other than tab focus prevented)
102
+
- selected: boolean (visual change only, no behavior) (aligned with card button)
103
+
- severity: default / error / warning / success / information (aligned with icon)
104
+
- severity-text: string (if provided, only renders during warning, error, and information severity)
105
+
<!-- - Properties (not attribute reflected)
106
+
- Methods
107
+
- Events
108
+
- CSS custom properties
109
+
- CSS native properties
110
+
-->
111
+
- Slots
112
+
- default: supports nimble icons, will render inside the circle and have color controlled via css
113
+
- title: Title content (aligned with dialog)
114
+
- subtitle: Subtitle content (aligned with dialog)
115
+
<!-- - Parts
116
+
- Localizable labels -->
117
+
118
+
-`nimble-anchor-step`
119
+
- Attributes
120
+
- Properties (not attribute reflected)
121
+
- Methods
122
+
- Events
123
+
- CSS custom properties
124
+
- CSS native properties
125
+
- Slots
126
+
- Parts
127
+
- Localizable labels
86
128
87
129
### Anatomy
88
-
130
+
<!--
89
131
*Outline the component structure with a diagram of its visual tree (shadow DOM). Enumerate key areas of visual customization, such as:*
0 commit comments