diff --git a/packages/nimble-components/src/stepper/specs/README.md b/packages/nimble-components/src/stepper/specs/README.md
new file mode 100644
index 0000000000..4982306e92
--- /dev/null
+++ b/packages/nimble-components/src/stepper/specs/README.md
@@ -0,0 +1,293 @@
+# Nimble Stepper
+
+## Overview
+
+The `nimble-stepper`, `nimble-step`, and `nimble-anchor-step` elements.
+
+### Background
+
+
+
+- Nimble issue: [#624](https://github.com/ni/nimble/issues/624)
+- Interaction Design: None
+- Visual Design:
+ - [Nimble Components Stepper Figma](https://www.figma.com/design/PO9mFOu5BCl8aJvFchEeuN/Nimble_Components?node-id=11742-71097&p=f&t=U3UnPlU4awyN4ybh-0)
+ - [Config App Figma](https://www.figma.com/design/eG9PhYykbokYf1OBd8KLkn/Valinor?node-id=0-1&p=f&t=oRGYidVydXMcgj3I-0)
+
+### Containing Library
+
+
+
+Nimble: Stepper is a generic component not designed for a specific application / domain.
+
+### Non-goals
+
+
+
+- Handling long lists of steps (10+)
+- Non-linear step progressions such as following steps in a branching flow chart or graph are not in the scope of the current HLD / designs.
+
+### Features
+
+- Similar to a collection of card buttons / breadcrumb conceptually but with more visual states.
+
+### Risks and Challenges
+
+
+
+No known new unique risks or challenges
+
+### Prior Art / Examples
+
+- Relevant design systems:
+ - [Carbon progress indicator](https://carbondesignsystem.com/components/progress-indicator/usage/)
+ - [Angular Material stepper](https://material.angular.dev/components/stepper/overview)
+ - [WAI Patterns step-by-step indicator](https://www.w3.org/WAI/tutorials/forms/multi-page/#using-step-by-step-indicator)
+ - [USDS step indicator](https://designsystem.digital.gov/components/step-indicator/)
+
+## Design
+
+
+
+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 breadcrumbs (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.
+
+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).
+
+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.
+
+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.
+
+### API
+
+
+
+- `nimble-stepper`
+ - Attributes
+ - orientation: vertical / horizontal (aligned with radio group and wafer)
+
+ - CSS native properties
+ - Will respond to width / height sizing (on the axis corresponding to orientation) and show overflow scroll buttons following the pattern of breadcrumb
+ - Slots
+ - default: supports `nimble-step` and `nimble-anchor-step` children
+
+
+- `nimble-step`
+ - Attributes
+ - disabled: boolean (standard, i.e. visually disabled and interactions prevented)
+ - readonly: boolean (standard, i.e. visually not disabled, interactions other than tab focus prevented)
+ - selected: boolean (visual change only, no behavior) (aligned with card button)
+ - severity: default / error / warning / success / information (aligned with icon)
+ - severity-text: string (if provided, only renders during warning, error, and information severity)
+
+ - Events
+ - click (aligned to button, not emitted on disable)
+
+ - Slots
+ - default: supports nimble icons, will render inside the circle and have color controlled via iconColor token
+ - title: Title content (aligned with dialog)
+ - subtitle: Subtitle content (aligned with dialog)
+
+
+- `nimble-anchor-step`
+ - Attributes
+ - All `nimble-step` attributes
+ - `` attributes (href, target, etc)
+ - href: null / undefined should behave like disabled (seems inconsistent across controls)
+
+ - Events
+ - click (aligned to anchor-button, not emitted on disable)
+
+ - Slots
+ - All `nimble-step` slots
+
+
+### Anatomy
+
+
+Slots, parts, etc. merged above in API section.
+
+### Native form integration
+
+
+
+- Anchor related components will use native `` tag and forward attributes.
+- control has no intrinsic "value" state, so not a form control
+- control used for navigation, does not seem like a good candidate for form submit button behavior
+
+### Angular integration
+
+
+
+- Angular `routerLink` integration for `nimble-anchor-step`.
+- No Angular Form integration.
+
+### Blazor integration
+
+
+
+- To align with Blazor conventions we could implement the same behavior as Blazor [`NavLink`](https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/navigation?view=aspnetcore-10.0#navlink-component) ([component src](https://github.com/dotnet/aspnetcore/blob/main/src/Components/Web/src/Routing/NavLink.cs)) (we have not done that for other anchor controls). Not sure how our current Blazor components behave with the router as they don't have any specific integration.
+- Could be a good candidate for Blazor `EditForm` integration to visualize form error state as [`ValidationSummary`](https://learn.microsoft.com/en-us/aspnet/core/blazor/forms/validation?view=aspnetcore-10.0#validation-summary-and-validation-message-components) components.
+- Current scope does not include specific considerations for Blazor Router / `NavLink` or `EditForm` / `ValidationSummary` support.
+
+### Visual Appearance
+
+
+
+See figma linked in background section.
+
+### Interactions
+
+
+
+Step button / link interaction area is the step control size boundaries which includes the icon, title, subtitle, and the line visual. The control size / interaction area does not include the severity text (similar to error text in other controls).
+
+See the blue areas in the following image as an example:
+
+
+
+## Implementation
+
+
+
+No particularly interesting implementation concerns. Follows existing patterns around buttons and anchors.
+
+### States
+
+
+
+Some specific usage notes:
+- Only one step should be marked selected at a time
+- Disabled steps represent a step that doesn't apply for the current workflow (previous step configuration disabled a future step which is now skipped)
+- Readonly steps are steps that don't have associated views for them (it's a step that just indicates something like disk formatted or software installed)
+
+### Accessibility
+
+
+
+Will follow the [ARIA WAI Forms: step-by-step indicator pattern](https://www.w3.org/WAI/tutorials/forms/multi-page/#using-step-by-step-indicator) with key elements of:
+- Items are in an ordered list
+- Visibly hidden text is used convey step state
+
+Otherwise standard keyboard accessibility and aria for buttons / links.
+
+### Mobile
+
+
+
+No additional support beyond discussion in API section on CSS sizing.
+
+### Globalization
+
+
+
+Label providers for visibly hidden step states:
+- Reuse `popupIconError`, `popupIconInformation`, `popupIconWarning`
+- Add (for consistency but maybe unexpected naming): `popupIconComplete`, `popupIconCurrent`
+
+### Security
+
+
+
+No unique concerns.
+
+### Performance
+
+
+
+No unique concerns.
+
+### Dependencies
+
+
+
+N/A
+
+### Test Plan
+
+
+
+No unique concerns.
+
+### Tooling
+
+
+
+N/A
+
+### Documentation
+
+
+
+No unique concerns. Use common link docs.
+
+## Open Issues
+
+
+
+Visual design does not currently represent full matrix of states: `severity` x `selected` x `interaction` (hover, mouse down, tab focus).
diff --git a/packages/nimble-components/src/stepper/specs/stepper-interaction-bounds.png b/packages/nimble-components/src/stepper/specs/stepper-interaction-bounds.png
new file mode 100644
index 0000000000..e69ee4cd54
Binary files /dev/null and b/packages/nimble-components/src/stepper/specs/stepper-interaction-bounds.png differ
diff --git a/specs/templates/component-interaction-design.md b/specs/templates/component-interaction-design.md
index 1fdc9d5dba..73b1f7a9d0 100644
--- a/specs/templates/component-interaction-design.md
+++ b/specs/templates/component-interaction-design.md
@@ -41,4 +41,4 @@
*Highlight any open questions for discussion during the spec PR. Before the spec is approved these should typically be resolved with the answers incorporated in this document.*
## Future Considerations
-*List any open questions or future work for discussion not currently scoped to this document.*
\ No newline at end of file
+*List any open questions or future work for discussion not currently scoped to this document.*
diff --git a/specs/templates/custom-component.md b/specs/templates/custom-component.md
index c28e98ead2..d54dfc2dac 100644
--- a/specs/templates/custom-component.md
+++ b/specs/templates/custom-component.md
@@ -31,8 +31,6 @@
*Screenshots and/or links to existing, canonical, or exemplary implementations of the component.*
----
-
## Design
*Describe the design of the component, thinking through several perspectives:*
@@ -85,7 +83,9 @@
*Work with Visual Design to create Figma files and other design assets. Be sure to account for the various component states, including hover, active, etc. as well as validity, and appearance variants.*
----
+### Interactions
+
+*Work with Interaction Design to create Figma files and other design assets. Be sure to account for the various interactions from mouse, keyboard, and touch.*
## Implementation
@@ -159,7 +159,6 @@
*What additions or changes are needed for user documentation and demos? Are there any architectural/engineering docs we should create as well, perhaps due to some interesting technical challenge or design decisions related to this component?*
----
## Open Issues
-*Highlight any open questions for discussion during the spec PR. Before the spec is approved these should typically be resolved with the answers being incorporated in the spec document.*
\ No newline at end of file
+*Highlight any open questions for discussion during the spec PR. Before the spec is approved these should typically be resolved with the answers being incorporated in the spec document.*
diff --git a/specs/templates/fast-based-component.md b/specs/templates/fast-based-component.md
index a44e39bf70..a3223165f3 100644
--- a/specs/templates/fast-based-component.md
+++ b/specs/templates/fast-based-component.md
@@ -14,8 +14,6 @@
*State whether this component be part of Nimble or Spright and provide justification or considerations leading to that decision.*
----
-
## Design
*Include code snippets showing basic component use and any interesting configurations.*
@@ -42,7 +40,6 @@
*Summarize the component's form integration. Is it built in to FAST, requiring custom development, or not necessary?*
-
### Angular integration
*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.*
@@ -67,8 +64,6 @@
- *Performance: does the FAST component meet Nimble's performance requirements?*
- *Security: Any requirements for security?*
----
-
## Open Issues
-*Highlight any open questions for discussion during the spec PR. Before the spec is approved these should typically be resolved with the answers being incorporated in the spec document.*
\ No newline at end of file
+*Highlight any open questions for discussion during the spec PR. Before the spec is approved these should typically be resolved with the answers being incorporated in the spec document.*