Rail menu npm install @tis-cca/rail
General
A rail is navigational component that allows the user to navigate between multiple main destinations of an app. While being conceptually similar to a tab-bar, a rail consists of an icon, text and an optional counter element.
Rail items should be used for:
More than 3 main destinations
where each destination has approximately similar importance for the user
where users frequently switch between the destinations
Either above content or below content of the destination.
Rail item structure
Rail items can either be:
tca-rail__text
can at maximum span 2 lines.
Tca-rail modifiers that influence the rail as a whole
tca-rail--vertical
Displays the rail navigation in a vertical layout.
Color coding rail items [optional]
Displaying a counter [optional]
Rail menu items allow to display a count of items that are contained in the destination.
Number range:
1-999
Attention
A value of 0 should not be shown in the counter. Instead, the counter should not be shown at all.
Attention
Values that exceed 999 should be shown as 999+.
Show progress while loading
Reordering rail menu items
Rail menu items can be easily reordered by using the order: value;
property of flexboxes.
tca-rail__item modifiers that influence a single rail item
tca-rail__item--selected
Should be placed on the rail item representing the current active view.
Attention
Only one rail item can be selected simultaneously.
tca-rail__item--disabled
Should be used if a navigation destination is not available under certain circumstances.
Recommendation
If the navigation destination is never available for a certain user or if there are privacy concerns, the rail item should not be shown at all.
Vertical Nav npm install @tis-cca/vertical-nav
General
A navigation component that is shown on the left of a page or dialog. This scales up nicely even when many navigation items are need that also need to be categorized (under headlines).
Variants
Global Modifiers
Use tca-vertical-nav--icon-only
to when you want to use the icons only variant.
Use tca-vertical-nav--collapsed
to switch to a collapsed view showing only icons
Use this only when you have icons AND text, the other two variants do not support the collapsed view.
Provide a tca-vertical-nav__resize-button
button to allow users toggling between expanded and collapsed view.
Use tca-vertical-nav--counters-visible-while-collapsed
to show the counters alse in the collapsed view (default is to not show them).
Use tca-vertical-nav--align-with-summary
when the menu and the summary-card are placed next to each other and should overlap.
Modifiers for nav-items
Use tca-vertical-nav__item--selected
to highlight the currently selected menu item.
Use tca-vertical-nav__item--disabled
to disable a single menu item
Use tca-vertical-nav__item--{entity}
to color the icon in the color for this entity (example: tca-vertical-nav__item--person
will color the icon background blue.
Vertical Nav with icons and text (collapseable)
Toggle counts visible while collapsed
<div class="tca-button-group">
<button class="tca-button" onclick="ToggleCountsVisible()">Toggle counts visible while collapsed</button>
</div>
<nav class="tca-vertical-nav tca-vertical-nav--counters-visible-while-collapsed" role="menu" id="tca-vertical-nav-example">
<div class="tca-vertical-nav__item-container">
<custom-angular>
<div class="tca-vertical-nav__item-headline">
<h3 class="tca-vertical-nav__headline">Allgemeines</h3>
</div>
</custom-angular>
<custom-angular>
<a class="tca-vertical-nav__item tca-vertical-nav__item--person" href="" style="order: 0;" tabindex="0">
<div class="tca-vertical-nav__icon icon-person" title="Details"></div>
<span class="tca-vertical-nav__text">Details</span>
</a>
</custom-angular>
<custom-angular>
<a class="tca-vertical-nav__item" style="order: 1;" tabindex="0">
<div class="tca-vertical-nav__icon icon-adresse"></div>
<span class="tca-vertical-nav__text">Kontaktdaten</span>
<div class="tca-vertical-nav__counter">2+2</div>
</a>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item" style="order: 2;" tabindex="0">
<div class="tca-vertical-nav__icon icon-beziehung"></div>
<span class="tca-vertical-nav__text">Beziehung</span>
<div class="tca-vertical-nav__counter">8</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--vertrag tca-vertical-nav__item--selected" aria-selected="true" style="order: 3;" tabindex="0">
<div class="tca-vertical-nav__icon icon-vertrag"></div>
<span class="tca-vertical-nav__text">Vertrag</span>
<div class="tca-vertical-nav__counter">24/8+2</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--risiko" style="order: 4;" tabindex="0">
<div class="tca-vertical-nav__icon icon-kfzrisiko"></div>
<span class="tca-vertical-nav__text">KFZ-Risiko</span>
<div class="tca-vertical-nav__counter">10</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--risiko" style="order: 5;" tabindex="0">
<div class="tca-vertical-nav__icon icon-sachrisiko"></div>
<span class="tca-vertical-nav__text">Sach-Risiko</span>
<div class="tca-vertical-nav__counter">7</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item" style="order: 6;" tabindex="0">
<div class="tca-vertical-nav__icon icon-vereinbarung"></div>
<span class="tca-vertical-nav__text">Vereinbarung</span>
<div class="tca-vertical-nav__counter">3</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--schaden" style="order: 7;" tabindex="0">
<div class="tca-vertical-nav__icon icon-schaden"></div>
<span class="tca-vertical-nav__text">Schaden</span>
<div class="tca-vertical-nav__counter">22+1</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--wiedervorlage" style="order: 8;" tabindex="0">
<div class="tca-vertical-nav__icon icon-wiedervorlage"></div>
<span class="tca-vertical-nav__text">Wiedervorlage</span>
<div class="tca-vertical-nav__counter">58+15</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--dokument" style="order: 9;" tabindex="0">
<div class="tca-vertical-nav__icon icon-dokument"></div>
<span class="tca-vertical-nav__text">Dokument</span>
<div class="tca-vertical-nav__counter">627+9</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item-headline" style="order: 10;">
<h3 class="tca-vertical-nav__headline">Headline #2</h3>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--selected" style="order: 11;" tabindex="0">
<div class="tca-vertical-nav__icon icon-bankkonto"></div>
<span class="tca-vertical-nav__text">Selected nav item</span>
<div class="tca-vertical-nav__counter">1</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--disabled" style="order: 12;">
<div class="tca-vertical-nav__icon icon-kontakt"></div>
<span class="tca-vertical-nav__text">disabled nav item</span>
</div>
</custom-angular>
</div>
<button class="tca-vertical-nav__resize-button" onclick="ToggleEntityNavState()"></button>
</nav>
<script>
function ToggleCountsVisible() {
var x = document.getElementById('tca-vertical-nav-example');
x.classList.toggle("tca-vertical-nav--counters-visible-while-collapsed");}
function ToggleEntityNavState() {
var x = document.getElementById('tca-vertical-nav-example');
x.classList.toggle("tca-vertical-nav--collapsed");}
</script>
Vertical Nav with only text Attention:
this variant does not support the collapsed modifier
Allgemeines
BETA Features
2
Anmelden mit TOGETHER
Headline #2
Selected nav item
Disabled nav item
<nav class="tca-vertical-nav" role="menu">
<div class="tca-vertical-nav__item-container">
<custom-angular>
<div class="tca-vertical-nav__item-headline">
<h3 class="tca-vertical-nav__headline">Allgemeines</h3>
</div>
</custom-angular>
<custom-angular>
<a class="tca-vertical-nav__item" href="" tabindex="0">
<span class="tca-vertical-nav__text">BETA Features</span>
<div class="tca-vertical-nav__counter">2</div>
</a>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item" tabindex="0">
<span class="tca-vertical-nav__text">Anmelden mit TOGETHER</span>
</div>
</custom-angular>
<div class="tca-vertical-nav__item-headline">
<h3 class="tca-vertical-nav__headline">Headline #2</h3>
</div>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--selected" tabindex="0">
<span class="tca-vertical-nav__text">Selected nav item</span>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--disabled">
<span class="tca-vertical-nav__text">Disabled nav item</span>
</div>
</custom-angular>
</div>
</nav>
Vertical Nav with only icons Attention:
this variant does not support displaying texts or headlines in the nav
<nav class="tca-vertical-nav tca-vertical-nav--icon-only" role="menu">
<div class="tca-vertical-nav__item-container">
<custom-angular>
<a class="tca-vertical-nav__item tca-vertical-nav__item--person" href="" style="order: 0;" tabindex="0">
<div class="tca-vertical-nav__icon icon-person"></div>
<div class="tca-vertical-nav__counter">8</div>
</a>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--vertrag tca-vertical-nav__item--selected" aria-selected="true" style="order: 1;" tabindex="0">
<div class="tca-vertical-nav__icon icon-vertrag"></div>
<div class="tca-vertical-nav__counter">99</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--schaden tca-vertical-nav__item--disabled" style="order: 2;">
<div class="tca-vertical-nav__icon icon-schaden"></div>
<div class="tca-vertical-nav__counter">-</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--dokument" style="order: 3;" tabindex="0">
<div class="tca-vertical-nav__icon icon-dokument"></div>
<div class="tca-vertical-nav__counter">15</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--risiko" style="order: 4;" tabindex="0">
<div class="tca-vertical-nav__icon icon-KFZRisiko"></div>
<div class="tca-vertical-nav__counter">3</div>
</div>
</custom-angular>
<custom-angular>
<div class="tca-vertical-nav__item tca-vertical-nav__item--risiko" style="order: 5;" tabindex="0">
<div class="tca-vertical-nav__icon icon-Sachrisiko"></div>
<div class="tca-vertical-nav__counter">5</div>
</div>
</custom-angular>
</div>
</nav>
Stepper mobile npm install @tis-cca/stepper
Dokument vorbereiten
Dann: Dokument weiterleiten
<div class="tca-stepper-mobile tca-stepper-mobile--dokument">
<div class="tca-stepper-mobile__progress">
<svg class="tca-stepper-mobile__progress-graphic" width="100%" height="100%">
<circle class="tca-stepper-mobile__progress-circle" cx="50%" cy="50%" r="42.5%"></circle>
<circle class="tca-stepper-mobile__progress-circle-done" cx="50%" cy="50%" r="42.5%"></circle>
</svg>
<div class="tca-stepper-mobile__progress-content-wrapper">
<div class="tca-stepper-mobile__progress-content">
<div class="tca-stepper-mobile__progress-content-value">
<span class="tca-stepper-mobile__progress-current-step"></span> von
<span class="tca-stepper-mobile__progress-total-steps"></span>
</div>
</div>
</div>
</div>
<div class="tca-stepper-mobile__title-wrapper">
<h2 class="tca-stepper-mobile__title">Dokument vorbereiten</h2>
<h3 class="tca-stepper-mobile__subtitle">Dann: Dokument weiterleiten</h3>
</div>
</div>
Stepper Desktop npm install @tis-cca/stepper
<div class="tca-stepper tca-stepper--dokument tca-stepper--allow-navigation" style="--number-of-steps: 4;">
<div class="tca-stepper__indicator">
<div class="tca-stepper__indicator-step tca-stepper__indicator-step--done">
<a href="www.link-to-step-1.com" class="tca-stepper__indicator-step-bubble"></a>
</div>
<div class="tca-stepper__indicator-step tca-stepper__indicator-step--in-progress">
<div class="tca-stepper__indicator-step-bubble"></div>
</div>
<div class="tca-stepper__indicator-step">
<div class="tca-stepper__indicator-step-bubble"></div>
</div>
<div class="tca-stepper__indicator-step">
<div class="tca-stepper__indicator-step-bubble"></div>
</div>
</div>
<a href="www.link-to-step-1.com" class="tca-stepper__text tca-stepper__text--done">Dokument vorbereiten</a>
<span class="tca-stepper__text tca-stepper__text--in-progress">Empfänger auswählen</span>
<span class="tca-stepper__text">Dokument zur Verfügung stellen</span>
<span class="tca-stepper__text">Fertig</span>
</div>
Next steps suggestions npm install @tis-cca/next-steps
General
A navigation component to suggest possible next steps to the user.
Global Modifiers
Use tca-next-steps--{entity-name}
when you want the next-steps area to be color-coded. A common usecase would be, if you want the headline background to match the color of the current entity/dialog.
Use tca-next-steps--align-center
to center the next-steps component within the current container.
Use tca-next-steps--restrict-width
to set a maximum width on the whole next-steps container and all its suggestion items.
Use tca-next-steps--no-border
if you want to remove the border styling. Especially if you want to use the variant without a headline.
Modifiers for the individual suggestions
You can use any icon-
class on the tca-next-steps__suggestion-icon
element to display a custom icon. If you dont specify an icon, a default icon (arrow-right) will be shown
Use tca-next-steps__suggestion--{entity-name}
when you want the background of the icon in the suggestion to be color-coded.
Allow a single suggestions to be opened in a new browser-tab
Simply add an additional button or link with the class tca-next-steps__suggestion-open-in-new-tab
within your suggestion element.
Next steps example
Was wollen Sie als nächstes tun?
Example with button instead of link
<nav class="tca-next-steps tca-next-steps--restrict-width" role="menu">
<div class="tca-next-steps__headline-container">
<h2 class="tca-next-steps__headline">Was wollen Sie als nächstes tun?</h2>
</div>
<div class="tca-next-steps__suggestion" tabindex="0">
<a href="" class="tca-next-steps__suggestion-row-wrapper">
<div class="tca-next-steps__suggestion-icon icon-star-full"></div>
<div class="tca-next-steps__suggestion-title">Recommended action</div>
</a>
</div>
<div class="tca-next-steps__suggestion" tabindex="0">
<a href="" class="tca-next-steps__suggestion-row-wrapper">
<div class="tca-next-steps__suggestion-icon tca-next-steps__suggestion-icon--icon-default"></div>
<div class="tca-next-steps__suggestion-title">Default action</div>
</a>
</div>
<hr class="tca-next-steps__separator"></hr>
<div class="tca-next-steps__suggestion" tabindex="0">
<a href="" class="tca-next-steps__suggestion-row-wrapper">
<div class="tca-next-steps__suggestion-icon icon-anruf"></div>
<div class="tca-next-steps__suggestion-title">Suggestion with option to open in new tab</div>
<div class="tca-next-steps__new-indicator">NEW</div>
</a>
<a href="" target="_blank" class="tca-next-steps__suggestion-open-in-new-tab"></a>
</div>
<hr class="tca-next-steps__separator"></hr>
<div class="tca-next-steps__suggestion" tabindex="0">
<a href="" class="tca-next-steps__suggestion-row-wrapper">
<div class="tca-next-steps__suggestion-icon icon-sichtschnittstelle"></div>
<div class="tca-next-steps__suggestion-title">In CCA Online anzeigen</div>
<div class="tca-next-steps__new-indicator">NEW</div>
</a>
<button class="tca-next-steps__suggestion-open-in-new-tab"></button>
</div>
<div class="tca-next-steps__suggestion" tabindex="0">
<a href="" class="tca-next-steps__suggestion-row-wrapper">
<div class="tca-next-steps__suggestion-icon icon-sichtschnittstelle"></div>
<div class="tca-next-steps__suggestion-title">In CCA9 Online anzeigen</div>
</a>
</div>
<div class="tca-next-steps__suggestion" tabindex="0">
<button class="tca-next-steps__suggestion-row-wrapper">
<div class="tca-next-steps__suggestion-icon icon-link"></div>
<div class="tca-next-steps__suggestion-title">Example with button instead of link</div>
</button>
<button class="tca-next-steps__suggestion-open-in-new-tab"></button>
</div>
<div class="tca-next-steps__suggestion tca-next-steps__suggestion--dokument" tabindex="0">
<button class="tca-next-steps__suggestion-row-wrapper">
<div class="tca-next-steps__suggestion-icon icon-forward-mail"></div>
<div class="tca-next-steps__suggestion-title">E-Mail weiterleiten</div>
</button>
</div>
<hr class="tca-next-steps__separator"></hr>
<div class="tca-next-steps__suggestion tca-next-steps__suggestion--person" tabindex="0">
<a href="" class="tca-next-steps__suggestion-row-wrapper">
<div class="tca-next-steps__suggestion-icon icon-person"></div>
<div class="tca-next-steps__suggestion-title">Person anzeigen</div>
</a>
</div>
<div class="tca-next-steps__suggestion tca-next-steps__suggestion--risiko" tabindex="0">
<a href="" class="tca-next-steps__suggestion-row-wrapper">
<div class="tca-next-steps__suggestion-icon icon-create"></div>
<div class="tca-next-steps__suggestion-title">Neues Kfz anlegen</div>
</a>
<button class="tca-next-steps__suggestion-open-in-new-tab"></button>
</div>
</nav>
Next steps without the container and headline
Recommended action
Default action
In CCA Online anzeigen
In CCA9 anzeigen
NEW
E-Mail zu weiteren Elementen verknüpfen
E-Mail weiterleiten
Person anzeigen
Neues KFZ anlegen
NEW
<nav class="tca-next-steps tca-next-steps--no-border" role="menu">
<a href="" class="tca-next-steps__suggestion" tabindex="0">
<div class="tca-next-steps__suggestion-icon icon-star-full"></div>
<div class="tca-next-steps__suggestion-title">Recommended action</div>
</a>
<a href="" class="tca-next-steps__suggestion" tabindex="0">
<div class="tca-next-steps__suggestion-icon tca-next-steps__suggestion-icon--icon-default"></div>
<div class="tca-next-steps__suggestion-title">Default action</div>
</a>
<hr class="tca-next-steps__separator"></hr>
<a href="" class="tca-next-steps__suggestion" tabindex="0">
<div class="tca-next-steps__suggestion-icon icon-sichtschnittstelle"></div>
<div class="tca-next-steps__suggestion-title">In CCA Online anzeigen</div>
</a>
<a href="" class="tca-next-steps__suggestion" tabindex="0">
<div class="tca-next-steps__suggestion-icon icon-sichtschnittstelle"></div>
<div class="tca-next-steps__suggestion-title">In CCA9 anzeigen</div>
<div class="tca-next-steps__new-indicator">NEW</div>
</a>
<button class="tca-next-steps__suggestion" tabindex="0">
<div class="tca-next-steps__suggestion-icon icon-link"></div>
<div class="tca-next-steps__suggestion-title">E-Mail zu weiteren Elementen verknüpfen</div>
</button>
<button class="tca-next-steps__suggestion" tabindex="0">
<div class="tca-next-steps__suggestion-icon icon-forward-mail"></div>
<div class="tca-next-steps__suggestion-title">E-Mail weiterleiten</div>
</button>
<hr class="tca-next-steps__separator"></hr>
<a href="" class="tca-next-steps__suggestion tca-next-steps__suggestion--person" tabindex="0">
<div class="tca-next-steps__suggestion-icon icon-person"></div>
<div class="tca-next-steps__suggestion-title">Person anzeigen</div>
</a>
<a href="" class="tca-next-steps__suggestion tca-next-steps__suggestion--risiko" tabindex="0">
<div class="tca-next-steps__suggestion-icon icon-create"></div>
<div class="tca-next-steps__suggestion-title">Neues KFZ anlegen</div>
<div class="tca-next-steps__new-indicator">NEW</div>
</a>
</nav>