Zum Hauptinhalt springen

Smolitux UI Komponenten-Dokumentation

Diese Dokumentation beschreibt die verfügbaren Komponenten in der Smolitux UI-Bibliothek.

Inhaltsverzeichnis

Einführung

Smolitux UI ist eine Komponenten-Bibliothek für React-Anwendungen, die eine Vielzahl von wiederverwendbaren UI-Komponenten bietet. Die Bibliothek ist modular aufgebaut und in verschiedene Pakete unterteilt, die je nach Bedarf importiert werden können.

Installation

# Installation des gesamten Pakets
npm install @smolitux/ui

# Installation einzelner Pakete
npm install @smolitux/utils
npm install @smolitux/core
npm install @smolitux/ai
# usw.

Basis-Komponenten

Card

Die Card-Komponente dient als Container für verwandte Inhalte und Aktionen.

import { Card } from '@smolitux/utils/components/patterns';

function Example() {
return (
<Card>
<h2>Titel</h2>
<p>Inhalt der Karte</p>
</Card>
);
}

Props

PropTypStandardBeschreibung
borderedbooleantrueOb die Karte einen Rahmen haben soll
shadowedbooleanfalseOb die Karte einen Schatten haben soll
roundedbooleantrueOb die Karte abgerundete Ecken haben soll
paddedbooleantrueOb die Karte Innenabstand haben soll
hoverablebooleanfalseOb die Karte einen Hover-Effekt haben soll
classNamestring''Zusätzliche CSS-Klassen
styleReact.CSSProperties{}Inline-Styles
childrenReact.ReactNode-Inhalt der Karte

Button

Die Button-Komponente dient zum Auslösen von Aktionen oder Ereignissen.

import { Button } from '@smolitux/utils/components/patterns';

function Example() {
return (
<Button onClick={() => console.log('Geklickt!')}>
Klick mich
</Button>
);
}

Props

PropTypStandardBeschreibung
variant'solid' | 'outline' | 'ghost' | 'link''solid'Variante des Buttons
size'xs' | 'sm' | 'md' | 'lg' | 'xl''md'Größe des Buttons
disabledbooleanfalseOb der Button deaktiviert ist
loadingbooleanfalseOb der Button im Ladezustand ist
leftIconReact.ReactNode-Icon links vom Text
rightIconReact.ReactNode-Icon rechts vom Text
type'button' | 'submit' | 'reset''button'Typ des Buttons
fullWidthbooleanfalseOb der Button die volle Breite einnehmen soll
colorSchemestring'primary'Farbschema des Buttons
onClick(event: React.MouseEvent<HTMLButtonElement>) => void-Klick-Handler
classNamestring''Zusätzliche CSS-Klassen
styleReact.CSSProperties{}Inline-Styles
childrenReact.ReactNode-Inhalt des Buttons

ProgressBar

Die ProgressBar-Komponente zeigt den Fortschritt eines Vorgangs an.

import { ProgressBar } from '@smolitux/utils/components/patterns';

function Example() {
return (
<ProgressBar value={75} max={100} showValue />
);
}

Props

PropTypStandardBeschreibung
valuenumber-Aktueller Wert
maxnumber100Maximaler Wert
minnumber0Minimaler Wert
showValuebooleanfalseOb der Wert angezeigt werden soll
formatValue(value: number, max: number) => string-Funktion zur Formatierung des Werts
indeterminatebooleanfalseOb der Fortschritt unbestimmt ist
colorSchemestring'primary'Farbschema der Fortschrittsanzeige
size'xs' | 'sm' | 'md' | 'lg' | 'xl''md'Größe der Fortschrittsanzeige
roundedbooleantrueOb die Fortschrittsanzeige abgerundete Ecken haben soll
animatedbooleanfalseOb die Fortschrittsanzeige animiert sein soll
classNamestring''Zusätzliche CSS-Klassen
progressClassNamestring''Zusätzliche CSS-Klassen für das Fortschrittselement
styleReact.CSSProperties{}Inline-Styles

TabView

Die TabView-Komponente ermöglicht die Organisation von Inhalten in Tabs.

import { TabView } from '@smolitux/utils/components/patterns';

function Example() {
return (
<TabView
tabs={[
{ id: 'tab1', label: 'Tab 1', content: <div>Inhalt von Tab 1</div> },
{ id: 'tab2', label: 'Tab 2', content: <div>Inhalt von Tab 2</div> },
]}
activeTab="tab1"
onChange={(tabId) => console.log(`Tab ${tabId} ausgewählt`)}
/>
);
}

Props

PropTypStandardBeschreibung
tabsTabItem[]-Array von Tab-Elementen
activeTabstring-ID des aktiven Tabs
onChange(tabId: string) => void-Callback bei Tab-Wechsel
orientation'horizontal' | 'vertical''horizontal'Ausrichtung der Tabs
size'sm' | 'md' | 'lg''md'Größe der Tabs
variant'line' | 'enclosed' | 'soft-rounded' | 'solid-rounded' | 'unstyled''line'Variante der Tabs
isFittedbooleanfalseOb die Tabs die volle Breite einnehmen sollen
isLazybooleantrueOb Inhalte erst beim Aktivieren geladen werden sollen
isManualbooleanfalseOb die Tab-Auswahl manuell gesteuert wird
classNamestring''Zusätzliche CSS-Klassen
tabListClassNamestring''Zusätzliche CSS-Klassen für die Tab-Liste
tabPanelsClassNamestring''Zusätzliche CSS-Klassen für die Tab-Panels
activeTabClassNamestring''Zusätzliche CSS-Klassen für den aktiven Tab
inactiveTabClassNamestring''Zusätzliche CSS-Klassen für inaktive Tabs

Tooltip

Die Tooltip-Komponente zeigt zusätzliche Informationen an, wenn der Benutzer mit einem Element interagiert.

import { Tooltip } from '@smolitux/utils/components/patterns';

function Example() {
return (
<Tooltip content="Zusätzliche Informationen">
<button>Hover mich</button>
</Tooltip>
);
}

Props

PropTypStandardBeschreibung
contentReact.ReactNode-Inhalt des Tooltips
childrenReact.ReactElement-Element, das den Tooltip auslöst
placementTooltipPlacement'top'Position des Tooltips
disabledbooleanfalseOb der Tooltip deaktiviert ist
showDelaynumber0Verzögerung vor dem Anzeigen (in ms)
hideDelaynumber0Verzögerung vor dem Ausblenden (in ms)
hasArrowbooleantrueOb der Tooltip einen Pfeil haben soll
isOpenboolean-Ob der Tooltip geöffnet ist
defaultIsOpenbooleanfalseStandard-Öffnungszustand
onOpen() => void-Callback beim Öffnen
onClose() => void-Callback beim Schließen
classNamestring''Zusätzliche CSS-Klassen
tooltipClassNamestring''Zusätzliche CSS-Klassen für den Tooltip
arrowClassNamestring''Zusätzliche CSS-Klassen für den Pfeil
tooltipStyleReact.CSSProperties{}Inline-Styles für den Tooltip
offsetnumber8Abstand vom auslösenden Element (in px)
closeOnClickbooleantrueOb der Tooltip beim Klicken außerhalb geschlossen werden soll
closeOnEscbooleantrueOb der Tooltip beim Drücken der Escape-Taste geschlossen werden soll

KI-Komponenten

TrendingTopics

Die TrendingTopics-Komponente zeigt Trending-Themen und -Inhalte an.

import { TrendingTopics } from '@smolitux/ai/components';

function Example() {
return (
<TrendingTopics
title="Trending-Themen"
topics={topics}
onRefresh={handleRefresh}
/>
);
}

EngagementScore

Die EngagementScore-Komponente zeigt und erklärt Engagement-Scores.

import { EngagementScore } from '@smolitux/ai/components';

function Example() {
return (
<EngagementScore
title="Engagement-Analyse"
score={78}
metrics={metrics}
onRefresh={handleRefresh}
/>
);
}

Voice-Komponenten

Die Voice-Komponenten integrieren Sprachbefehle in Standard-UI-Elemente. Eine Übersicht befindet sich unter Voice-Komponenten.

Blockchain

Die Blockchain-Komponenten ermöglichen die Integration von Web3-Funktionalität. Weitere Details finden sich im Verzeichnis Blockchain.

Styling

Die Komponenten unterstützen verschiedene Styling-Optionen:

  • className: Alle Komponenten akzeptieren eine className-Prop für zusätzliche CSS-Klassen.
  • style: Alle Komponenten akzeptieren eine style-Prop für Inline-Styles.
  • Utility-Funktionen: Das @smolitux/utils-Paket bietet Utility-Funktionen für Farben, Abstände, Typografie und mehr.

Theming

Die Komponenten unterstützen ein flexibles Theming-System, das auf CSS-Variablen basiert. Sie können das Erscheinungsbild der Komponenten anpassen, indem Sie die CSS-Variablen überschreiben.

:root {
--primary-color: #3b82f6;
--secondary-color: #6b7280;
--success-color: #10b981;
--danger-color: #ef4444;
--warning-color: #f59e0b;
--info-color: #3b82f6;
}

Barrierefreiheit

Alle Komponenten sind so konzipiert, dass sie den WCAG 2.1 AA-Richtlinien entsprechen. Sie unterstützen Tastaturnavigation, Screenreader und andere Hilfstechnologien.