Skip to content

Commit b4e5617

Browse files
committed
WIP
1 parent 9e24651 commit b4e5617

1 file changed

Lines changed: 58 additions & 14 deletions

File tree

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

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

Lines changed: 58 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,24 @@ The `nimble-stepper`, `nimble-step`, and `nimble-anchor-step` elements.
2020

2121
<!-- *State whether this component be part of Nimble or Spright and provide justification or considerations leading to that decision.* -->
2222

23-
Nimble, general component
23+
Nimble: Stepper is a generic component not designed for a specific application / domain.
2424

2525
### Non-goals
2626

2727
<!-- *A list of use cases, features, or functionality which are **not** goals for the component.* -->
2828

29-
- Very long lists of steps
30-
- Non-linear steps
29+
- Handling long lists of steps (10s+)
30+
- Non-linear step progressions
3131

3232
### Features
3333

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.
3535

3636
### Risks and Challenges
3737

3838
<!-- *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?* -->
3939

40-
No known new risks or challenges
40+
No known new unique risks or challenges
4141

4242
### Prior Art / Examples
4343

@@ -59,10 +59,13 @@ No known new risks or challenges
5959
6060
*For each section below, consider adding an "Alternatives" sub-section to describe any design alternatives and discuss why they were rejected.* -->
6161

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.
6363

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).
6565

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.
6669

6770
### API
6871

@@ -78,20 +81,61 @@ The `nimble-stepper` is just for layout, placing steps either horizontal or vert
7881
*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.* -->
7982

8083
- `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
86128

87129
### Anatomy
88-
130+
<!--
89131
*Outline the component structure with a diagram of its visual tree (shadow DOM). Enumerate key areas of visual customization, such as:*
90132
91133
- *Slot Names*
92134
- *Host Classes*
93135
- *Slotted Content/Slotted Classes*
94-
- *CSS Parts*
136+
- *CSS Parts* -->
137+
138+
Merged above in API.
95139

96140
### Native form integration
97141

0 commit comments

Comments
 (0)