<a href="/wiki/display/~I051163">Stage-Step Indicator</a>

Overview

The Stage-Step Indicator represents the current execution status of a process by a user. It shows the steps that have been executed, the current step where he can acts and the steps remaining to complete it.

The Stage-Step Indicator allows to navigate between executable steps and previously executed ones.

More details on its usage in the BTP Experience Toolkit : here

Look and Feel

Desktop

Mobile

Anatomy and Size

Desktop Stages

<div> <div></div> <div>Element</div> <div>Morning & Evening</div> <div>HCB & HCW (in addition to Morning & Evening)</div> </div> <div> <div>A</div> <div>Stage Title</div> <div> <pre><code>width: 100%; font-size: 14px; color: var(--sapTextColor); /* when active */ color: var(--sapContent_LabelColor); /* when inactive */ </code></pre> </div> <div></div> </div> <div> <div>B</div> <div>Stage margin</div> <div>width: 0,4375rem</div> <div></div> </div> <div> <div>C</div> <div>Spacing between Stage title and Extremity nested button</div> <div>height: 0,3125rem</div> <div></div> </div> <div> <div>D</div> <div>Nested button</div> <div>see <a href="https%3A%2F%2Fbtpx.frontify.com%2Fdocument%2F223118%23Buttons-NestedButton">Nested Button</a> (Compact)</div> <div></div> </div> <div> <div>E</div> <div>Step Name</div> <div> <p>font-size: 12px;</p> <p>color: var(--sapTextColor); /* when selected */</p> <p>color: var(--sapContent_LabelColor); /* when not selected */</p> </div> <div></div> </div> <div> <div>F</div> <div>Minimal Half Spacing between two step names</div> <div>width: 0,375rem</div> <div></div> </div> <div> <div>G</div> <div>Bar, completed</div> <div> <p>height: 0,75rem;</p> <p>border-radius: 0,375rem;</p> <p>/* when stage is normal */</p> <p>color: var(--sapProgress_Value_Background);</p> <p>/* when stage in error */</p> <p>color: var(--sapProgress_Value_NegativeBackground);</p> <p>/* when stage completed */</p> <p>color: var(–sapProgress_Value_PositiveBackground);</p> </div> <div> <p>/* when stage is normal */</p> <p>border: 1px solid var(--sapProgress_Value_BorderColor);</p> <p>/* when stage in error */</p> <p>border: 1px solid var(--sapProgress_Value_NegativeBorderColor);</p> <p>/* when stage completed */</p> <p>border: 1px solid var(–sapProgress_Value_PositiveBorderColor);</p> </div> </div> <div> <div>H</div> <div>Bar, not completed</div> <div> <p>height: 0,5rem;</p> <p>border-radius: 0,25rem;</p> <p>color: var(--sapProgress_Background);</p> </div> <div>border: 1px solid var(--sapProgress_BorderColor);</div> </div> <div> <div>I1</div> <div>Spacing between steps</div> <div>width: 100%;</div> <div></div> </div> <div> <div>I2</div> <div>Spacing between steps of inactive stage</div> <div>width: 0,125rem;</div> <div></div> </div> <div> <div>J</div> <div>Spacing between two stage</div> <div>width: 0,125rem;</div> <div></div> </div>

Mobile Stages

<div> <div></div> <div>Element</div> <div></div> </div> <div> <div>B</div> <div>Compacted stage margin</div> <div>width:0,25rem</div> </div> <div> <div>D</div> <div>Nested button</div> <div>See Nested Button (Cozy)</div> </div> <div> <div>G</div> <div>Bar, completed</div> <div>Idem Desktop definition above</div> </div> <div> <div>H</div> <div>Bar, not completed</div> <div>Idem Desktop definition above</div> </div> <div> <div>I</div> <div>Spacing between steps</div> <div>Idem Desktop definition above</div> </div> <div> <div>J</div> <div>Spacing between two stages</div> <div>Idem Desktop definition above</div> </div> <div> <div>K</div> <div>Stage margin</div> <div>width: 0,625rem</div> </div>

Collapsed Stages

<div> <div>Status</div> <div>Morning & Evening</div> <div>HCB & HCW (in addition to Morning & Evening)</div> </div> <div> <div> <p>Inactive</p> <p>Not Started</p> </div> <div> <p>width: 1,5rem;</p> <p>height: 0,5rem;</p> <p>border-radius: 0,25rem;</p> <p>color: var(--sapProgress_Background);</p> <p>color: var(--sapContent_Value_NonInteractiveIconColor);</p> </div> <div></div> </div> <div> <div>Not Finished</div> <div> <p>width: 1,5rem;</p> <p>height: 0,75rem;</p> <p>border-radius: 0,375rem;</p> <p>color: var(--sapProgress_Value_Background);</p> </div> <div>border: 1px solid var(--sapProgress_BorderColor);</div> </div> <div> <div>Error</div> <div> <p>width: 1,5rem;</p> <p>height: 0,75rem;</p> <p>border-radius: 0,375rem;</p> <p>color: var(--sapProgress_Value_NegativeBackground);</p> </div> <div>border: 1px solid var(--sapProgress_Value_NegativeBorderColor);</div> </div> <div> <div> <p>Completed partially</p> <p>Completed</p> </div> <div> <p>width: 1,5rem;</p> <p>height: 0,75rem;</p> <p>border-radius: 0,375rem;</p> <p>color: var(–sapProgress_Value_PositiveBackground);</p> </div> <div>border: 1px solid var(–sapProgress_Value_PositiveBorderColor);</div> </div>

Steps Icons

&#x3C;p&#x3E;&#x3C;div&#x3E; &#x3C;div&#x3E;Step&#x3C;/div&#x3E; &#x3C;div&#x3E;Description&#x3C;/div&#x3E; &#x3C;div&#x3E;Icon&#x3C;/div&#x3E; &#x3C;div&#x3E;&#x3C;/div&#x3E; &#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;div&#x3E;Mandatory Active Step&#x3C;/div&#x3E; &#x3C;div&#x3E;Circle&#x3C;/div&#x3E; &#x3C;div&#x3E;sap-icon-tnt://start-event&#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;picture&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;/content/dam/sapcom/design-system/btp/components/components/stage-step-indicator/media1_1f57be6e3895ef530be5c9c50e64386406bf33ce6.png?width=2000&#x26;format=webply&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;./media_1f57be6e3895ef530be5c9c50e64386406bf33ce6.png?width=750&#x26;format=webply&#x26;optimize=medium&#x22;&#x3E; &#x3C;source type=&#x22;image/png&#x22; srcset=&#x22;./media_1f57be6e3895ef530be5c9c50e64386406bf33ce6.png?width=2000&#x26;format=png&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;img loading=&#x22;lazy&#x22; alt=&#x22;&#x22; src=&#x22;&#x3C;a href=&#x22;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media%5C_1f57be6e3895ef530be5c9c50e64386406bf33ce6.png?width=750%5C&#x26;format=png%5C&#x26;optimize=medium&#x22;&#x3E;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media_1f57be6e3895ef530be5c9c50e64386406bf33ce6.png?width=750&#x26;format=png&#x26;optimize=medium&#x3C;/a&#x3E;&#x22; width=&#x22;42&#x22; height=&#x22;42&#x22;&#x3E; &#x3C;/picture&#x3E; &#x3C;/div&#x3E; &#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;div&#x3E;Optional Active Step&#x3C;/div&#x3E; &#x3C;div&#x3E;Dotted Circle&#x3C;/div&#x3E; &#x3C;div&#x3E;sap-icon-tnt://task-optional&#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;picture&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;/content/dam/sapcom/design-system/btp/components/components/stage-step-indicator/media1_1d9ead33b1b58f11d80421b2f9d8419017951050a.png?width=2000&#x26;format=webply&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;./media_1d9ead33b1b58f11d80421b2f9d8419017951050a.png?width=750&#x26;format=webply&#x26;optimize=medium&#x22;&#x3E; &#x3C;source type=&#x22;image/png&#x22; srcset=&#x22;./media_1d9ead33b1b58f11d80421b2f9d8419017951050a.png?width=2000&#x26;format=png&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;img loading=&#x22;lazy&#x22; alt=&#x22;&#x22; src=&#x22;&#x3C;a href=&#x22;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media%5C_1d9ead33b1b58f11d80421b2f9d8419017951050a.png?width=750%5C&#x26;format=png%5C&#x26;optimize=medium&#x22;&#x3E;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media_1d9ead33b1b58f11d80421b2f9d8419017951050a.png?width=750&#x26;format=png&#x26;optimize=medium&#x3C;/a&#x3E;&#x22; width=&#x22;42&#x22; height=&#x22;40&#x22;&#x3E; &#x3C;/picture&#x3E; &#x3C;/div&#x3E; &#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;div&#x3E;Done Step (:normal)&#x3C;/div&#x3E; &#x3C;div&#x3E;6px Dot&#x3C;/div&#x3E; &#x3C;div&#x3E;sap-icon-tnt://task-done&#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;picture&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;/content/dam/sapcom/design-system/btp/components/components/stage-step-indicator/media1_1c1e4ab084af1aeff8ddd2ed2d302e74886167366.png?width=2000&#x26;format=webply&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;./media_1c1e4ab084af1aeff8ddd2ed2d302e74886167366.png?width=750&#x26;format=webply&#x26;optimize=medium&#x22;&#x3E; &#x3C;source type=&#x22;image/png&#x22; srcset=&#x22;./media_1c1e4ab084af1aeff8ddd2ed2d302e74886167366.png?width=2000&#x26;format=png&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;img loading=&#x22;lazy&#x22; alt=&#x22;&#x22; src=&#x22;&#x3C;a href=&#x22;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media%5C_1c1e4ab084af1aeff8ddd2ed2d302e74886167366.png?width=750%5C&#x26;format=png%5C&#x26;optimize=medium&#x22;&#x3E;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media_1c1e4ab084af1aeff8ddd2ed2d302e74886167366.png?width=750&#x26;format=png&#x26;optimize=medium&#x3C;/a&#x3E;&#x22; width=&#x22;40&#x22; height=&#x22;40&#x22;&#x3E; &#x3C;/picture&#x3E; &#x3C;/div&#x3E; &#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;div&#x3E;Intermediate Step in Error&#x3C;/div&#x3E; &#x3C;div&#x3E;Error&#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;p&#x3E;sap-icon://error&#x3C;/p&#x3E; &#x3C;p&#x3E;color: var(--sapProgress_Value_NegativeBackground);&#x3C;/p&#x3E; &#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;picture&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;/content/dam/sapcom/design-system/btp/components/components/stage-step-indicator/media1_13677f51afd6aad8d279694419e14a049a1456783.png?width=2000&#x26;format=webply&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;./media_13677f51afd6aad8d279694419e14a049a1456783.png?width=750&#x26;format=webply&#x26;optimize=medium&#x22;&#x3E; &#x3C;source type=&#x22;image/png&#x22; srcset=&#x22;./media_13677f51afd6aad8d279694419e14a049a1456783.png?width=2000&#x26;format=png&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;img loading=&#x22;lazy&#x22; alt=&#x22;&#x22; src=&#x22;&#x3C;a href=&#x22;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media%5C_13677f51afd6aad8d279694419e14a049a1456783.png?width=750%5C&#x26;format=png%5C&#x26;optimize=medium&#x22;&#x3E;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media_13677f51afd6aad8d279694419e14a049a1456783.png?width=750&#x26;format=png&#x26;optimize=medium&#x3C;/a&#x3E;&#x22; width=&#x22;40&#x22; height=&#x22;40&#x22;&#x3E; &#x3C;/picture&#x3E; &#x3C;/div&#x3E; &#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;div&#x3E;Intermediate Step Waiting&#x3C;/div&#x3E; &#x3C;div&#x3E;Pause&#x3C;/div&#x3E; &#x3C;div&#x3E;sap-icon://pause&#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;picture&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;/content/dam/sapcom/design-system/btp/components/components/stage-step-indicator/media1_15f87a6092e73b0d48e6326cb59ca5f8b584db057.png?width=2000&#x26;format=webply&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;./media_15f87a6092e73b0d48e6326cb59ca5f8b584db057.png?width=750&#x26;format=webply&#x26;optimize=medium&#x22;&#x3E; &#x3C;source type=&#x22;image/png&#x22; srcset=&#x22;./media_15f87a6092e73b0d48e6326cb59ca5f8b584db057.png?width=2000&#x26;format=png&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;img loading=&#x22;lazy&#x22; alt=&#x22;&#x22; src=&#x22;&#x3C;a href=&#x22;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media%5C_15f87a6092e73b0d48e6326cb59ca5f8b584db057.png?width=750%5C&#x26;format=png%5C&#x26;optimize=medium&#x22;&#x3E;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media_15f87a6092e73b0d48e6326cb59ca5f8b584db057.png?width=750&#x26;format=png&#x26;optimize=medium&#x3C;/a&#x3E;&#x22; width=&#x22;36&#x22; height=&#x22;36&#x22;&#x3E; &#x3C;/picture&#x3E; &#x3C;/div&#x3E; &#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;div&#x3E;Future Step&#x3C;/div&#x3E; &#x3C;div&#x3E;4px Dot&#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;p&#x3E;sap-icon-tnt://indicator&#x3C;/p&#x3E; &#x3C;p&#x3E;color: var(--sapContent_Value_NonInteractiveIconColor);&#x3C;/p&#x3E; &#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;picture&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;/content/dam/sapcom/design-system/btp/components/components/stage-step-indicator/media1_131b2407136049bf4801738c7a26246dde48f829c.png?width=2000&#x26;format=webply&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;./media_131b2407136049bf4801738c7a26246dde48f829c.png?width=750&#x26;format=webply&#x26;optimize=medium&#x22;&#x3E; &#x3C;source type=&#x22;image/png&#x22; srcset=&#x22;./media_131b2407136049bf4801738c7a26246dde48f829c.png?width=2000&#x26;format=png&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;img loading=&#x22;lazy&#x22; alt=&#x22;&#x22; src=&#x22;&#x3C;a href=&#x22;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media%5C_131b2407136049bf4801738c7a26246dde48f829c.png?width=750%5C&#x26;format=png%5C&#x26;optimize=medium&#x22;&#x3E;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media_131b2407136049bf4801738c7a26246dde48f829c.png?width=750&#x26;format=png&#x26;optimize=medium&#x3C;/a&#x3E;&#x22; width=&#x22;32&#x22; height=&#x22;32&#x22;&#x3E; &#x3C;/picture&#x3E; &#x3C;/div&#x3E; &#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;div&#x3E;Completion Step&#x3C;/div&#x3E; &#x3C;div&#x3E;Check mark&#x3C;/div&#x3E; &#x3C;div&#x3E;sap-icon://status-completed&#x3C;/div&#x3E; &#x3C;div&#x3E; &#x3C;picture&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;/content/dam/sapcom/design-system/btp/components/components/stage-step-indicator/media1_13a94f92b055ea79e2c5060d8fc7efb255bb73340.png?width=2000&#x26;format=webply&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;./media_13a94f92b055ea79e2c5060d8fc7efb255bb73340.png?width=750&#x26;format=webply&#x26;optimize=medium&#x22;&#x3E; &#x3C;source type=&#x22;image/png&#x22; srcset=&#x22;./media_13a94f92b055ea79e2c5060d8fc7efb255bb73340.png?width=2000&#x26;format=png&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;img loading=&#x22;lazy&#x22; alt=&#x22;&#x22; src=&#x22;&#x3C;a href=&#x22;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media%5C_13a94f92b055ea79e2c5060d8fc7efb255bb73340.png?width=750%5C&#x26;format=png%5C&#x26;optimize=medium&#x22;&#x3E;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media_13a94f92b055ea79e2c5060d8fc7efb255bb73340.png?width=750&#x26;format=png&#x26;optimize=medium&#x3C;/a&#x3E;&#x22; width=&#x22;38&#x22; height=&#x22;38&#x22;&#x3E; &#x3C;/picture&#x3E; &#x3C;picture&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;/content/dam/sapcom/design-system/btp/components/components/stage-step-indicator/media1_16dc7f6b7243da3bc7a172ffeec39844d24da2c92.png?width=2000&#x26;format=webply&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;source type=&#x22;image/webp&#x22; srcset=&#x22;./media_16dc7f6b7243da3bc7a172ffeec39844d24da2c92.png?width=750&#x26;format=webply&#x26;optimize=medium&#x22;&#x3E; &#x3C;source type=&#x22;image/png&#x22; srcset=&#x22;./media_16dc7f6b7243da3bc7a172ffeec39844d24da2c92.png?width=2000&#x26;format=png&#x26;optimize=medium&#x22; media=&#x22;(min-width: 600px)&#x22;&#x3E; &#x3C;img loading=&#x22;lazy&#x22; alt=&#x22;&#x22; src=&#x22;&#x3C;a href=&#x22;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media%5C_16dc7f6b7243da3bc7a172ffeec39844d24da2c92.png?width=750%5C&#x26;format=png%5C&#x26;optimize=medium&#x22;&#x3E;https://www.sap.com/design-system/btp/components/components/stage-step-indicator/media_16dc7f6b7243da3bc7a172ffeec39844d24da2c92.png?width=750&#x26;format=png&#x26;optimize=medium&#x3C;/a&#x3E;&#x22; width=&#x22;40&#x22; height=&#x22;40&#x22;&#x3E; &#x3C;/picture&#x3E; &#x3C;/div&#x3E; &#x3C;/div&#x3E;&#x3C;/p&#x3E;

Responsiveness

Desktop

The container constraints are defined by:

The size of the progress indicator depends on:

Some spacing are defined by design:

The minimal width of a desktop indicator without text is:

indicator.minWidth = (cs+es) * (BUTTON_WIDTH+STEP_SPACING) + cp * (STAGE_SPACING - STEP_SPACING) - STEP_SPACING;

If we define the additional width due to the display of the texts, lets define:

for the first and last step of each stage:

step[i].addTextWidth = step[i].label.length + (TEXT_SPACING - STEP_SPACING)/2 - BUTTON_WIDTH;

for the other steps:

step[i].addTextWidth = step[i].label.length + (TEXT_SPACING - STEP_SPACING) - BUTTON_WIDTH;

The container gives a constraint on the indicator size:

indicator.maxWidth = container.width - 2*(container.padding-STAGE_MARGIN);

The following algorithm describes the logic on how the texts of the active stage's step have to be displayed:

The first step is to find "outliers" which are texts that are very long compare to the others and the possibility of display.

We consider that we must display at least 2 or 3 text. COEF= 2.5

So the MAX_TEXT_LENGTH = remainingSpace/COEF.

As the goal of this navigator is also to display some texts, it is preferable in some edge cases to not display all the indicator in the width and provide horizontal scrolling like on mobile than forcing to display with very truncated texts.

For that there is a limit to truncation. This limit is MIN_WIDTH_FOR_TEXT_TRUNCATION. This limit is

With that, we find all the step where step[i].addTextWidth > MAX_TEXT_LENGTH and we set the value to it.

If zero or one step remains unchanged then see the stage display mode is with one and only one item.

The next iterative algorithm find which steps have to be hidden or not.

remainingSpace = indicator.maxWidth - indicator.minWidth - sum(step[i].addTextWidth)

nFutureSteps : the number of step after

visibleFutureSteps = nFutureSteps

nPreviousSteps : the number of step before

visiblePreviousSteps = nPreviousSteps

while ( remainingSpace < 0 )

if ( visiblePreviousSteps > 0) hide the text of the first step that has not already been already hidden

elseif (visibleFutureStep>0) hide the text of the last step that has not already been hidden

recompute the remainingSpace

Mobile

The progress indicator can have two displays depending if it fits into the container or not : indicator.minWidth 2* (container.padding-4px)<= container.width

The container constraints are defined by:

The indicator is defined by:

The size is:

The indicator can fit in the container: indicator.minWidth <= container.width - 2*(container.padding-4px)

The active stage takes the maximum of space:

Interval (I1) : (container.width - 2*(container.padding+4px) - indicator.minWidth) / (es-1)

The indicator cannot fit in the container: indicator.minWidth > container.width - 2*(container.padding-4px)

the indicator with the container's margins scrolls horizontally.

Interval (I2) = 0px

Interactions

Selection to select the step or to display the menu

On mobile, a menu appears on the selection of enabled collapsed stages or enabled steps of compacted stages.

On desktop, a menu appears on enabled compacted stages only. enabled steps of compacted stages and expanded stages are directly selectable.

Horizontal scroll or selection

If the indicator cannot fit inside the container, the horizontal scroll is allowed.

If the user selects a step (press event) and drags it horizontally, the scrolls works and the selection of the step is taken in account (at the release event) only if the horizontal shift is less or equal to 4 pixels.

Optional: During the move, the press state of the step remains if and only if the shift is less or equal to 4 pixels.

Accessibility

Landmarks

Reading-Swipe Order

Keyboard Interactions