# Steps
> Numbered ordered list with a vertical rail. For walk-throughs where sequence matters.
Source: https://shelldocs.shellui.dev/docs/components/steps
`Steps` wraps a set of `Step` children in an ordered list styled with a left-rail and centered numbered badges. Use it for install / setup / migration guides where the reader is meant to work top-to-bottom.
## Basic use
```razor
Run dotnet tool install -g ShellDocs.CLI --prerelease.
shelldocs init MyDocs produces docs/MyDocs.Docs/ with a working site.
shelldocs dev hot-reloads on .md, .razor and .cs edits.
```
## Titleless steps
`Title` is optional : drop it for a bare numbered bullet.
```razor
Fetch the changes.
Run the migration.
Verify the output.
```
## Rich step bodies
Written as an inline tag in the page, a `Step` takes a markdown body : fenced code, callouts, nested components. Leave a blank line between the tag and a fence. The rail extends through the full body.
**1. Add the package**
```bash
dotnet add package ShellDocs.Components --prerelease
```
**2. Register the services**
Add a line to `Program.cs`:
```csharp
builder.Services.AddShellDocs();
```
**3. Verify**
> **Nested primitives work**
>
> Callouts, cards, code groups : anything you can use in top-level prose also works inside a `Step`.
The source for that block:
````markdown
```bash
dotnet add package ShellDocs.Components --prerelease
```
Add a line to `Program.cs`:
```csharp
builder.Services.AddShellDocs();
```
````
Use the inline form for real walk-throughs. Keep `razor:preview` for showing the component itself : fence bodies are Razor, so markdown inside them renders literally.
## Props
### Steps
| Name | Type | Default | Description |
|------|------|---------|-------------|
| `ChildContent` | `RenderFragment?` | `—` | The Step children. |
### Step
| Name | Type | Default | Description |
|------|------|---------|-------------|
| `Title` | `string?` | `—` | Optional title, rendered next to the numbered badge. |
| `ChildContent` | `RenderFragment?` | `—` | Step body. Markdown when written as an inline tag, Razor inside a preview fence. |
## When to use
- Multi-step install / setup instructions
- Migration guides
- "Here's what to do next" walk-throughs where each step depends on the previous
## When not to use
- Independent bullet list : use `-` or `*`
- Cross-referencing a decision matrix : use `TypeTable`
- One or two items : plain prose reads better than ceremony
## See also
- [Callout](https://shelldocs.shellui.dev/docs/components/callout.md): Sidebars mid-step for warnings and tips.
- [FileTree](https://shelldocs.shellui.dev/docs/components/file-tree.md): Show the file layout that results from a step.