Wie kann ich einen eigenen Button-Typ hinzufügen?
Im Grunde ist es so, dass jede Komponente innerhalb ihrere HTML-Struktur frei gestylt werden kann.
Mit Hilfe unsereres Designers oder dem SCSS-Script können vorhandene Themes angepasst oder eigenes Theme erstellt werden.
Button und Custom-Class
Beim Button/Schalter gibt es 5 Typen, die von der Design Sprache der Design Systeme abgeleitet wurden:
- primary: Schalter für Hauptaktion (z.B. speichern)
- secondary: Schalter für Sekundäraktion (z.B. abbrechen)
- normal/tertiary: Schalter für Tertiäraktion (z.B. zurück)
- danger: Schalter für "„gefährliche” Aktionen (z.B. löschen)
- ghost:Schalter für "unscheinbare” Aktionen (z.B. Hilfe)
Neben diesen Basis-Typen können noch weiterer Typen mittels Custom-Class hinzugefügt werden. Dazu müssen jedoch alle Custom-Classes im CSS des Theme hinterlegt werden.
In der Umsetzung soll ein abgestimmtes Design System / Design Sprache nicht willkürlich geändert oder erweitert werden. Alle definierten Custom-Buttons werden schon bei der Erstellung des Themes bereitgestellt und deren Verwendung in der Dokumentation des eigenen Design Systems beschrieben.
Custom-Class im Theme hinterlegen
- Theme-Designer öffnen
- Theme auswählen
- Button-Komponente auswählen
- Schalter auf Komponent-Styling umstellen
- CSS für den Custom-Button eintragen und speichern (bei
primary
abschauen) - Theme in Projekt übernehmen
Beispiel für Custom-Class loading
:
.loading :is(a, button) > kol-span-wc kol-icon {
animation: spin 2.5s infinite linear;
display: block;
}
/* https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion#toning_down_the_animation_scaling */
@media (prefers-reduced-motion) {
.loading :is(a, button) > kol-span-wc kol-icon {
animation-duration: 5s;
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
Custom-Class verwenden
Um in den Custom-Modus zu schalten, muss das Property _variant
auf custom
gesetzt werden. Danach können über das Property _custom-class
beliebige vordefinierte Custom-Classes übergeben werden.
<kol-button _custom-class="loading" _label="Speichern" variant="custom"></kol-button>
Icon im Button von außen stylen
Es ist möglich dem Button einen Icon-Style zu übergeben. Dazu muss dem Property _icon
der gewünschte Style übergeben werden.
<KolButton
_icons={{
left: {
icon: 'codicon codicon-home',
style: {
color: 'red',
'font-size': '300%',
},
},
}}
_label="Schalter mit großen roten Icon"
></KolButton>