Figma ↔ Code Mapping
Side-by-Side-Vergleich der 27 UI-Primitives in src/components/ui/ mit den Komponenten in der Figma-Library KPT Designsystem. Linke Spalte: Code-Komponente live gerendert. Rechte Spalte: Figma-Live-Embed (lädt on-demand beim Scrollen) + Link in den Figma-File.
Matches — Figma-Komponente vorhanden
Input
components/ui/input.tsxMatchBadge
components/ui/badge.tsxMatchCard
components/ui/card.tsxMatchSwitch
components/ui/switch.tsxMatchDialog
components/ui/dialog.tsxMatchTabs
components/ui/tabs.tsxMatchPopover
components/ui/popover.tsxMatchToast
components/ui/toast.tsxMatchBeispiel-Notification (info-Variante).
Divider
components/ui/divider.tsxMatchoder
DropZone
components/ui/dropzone.tsxMatchDokumente zum Hochladen hier reinziehen und ablegen.
PNG, JPG, TIFF max. 30MB
Link
components/ui/link.tsxMatchLabel
components/ui/label.tsxMatchAlert
components/ui/alert.tsxMatchCheckbox
components/ui/checkbox.tsxMatchCollapsibleSection
components/berater-vermittler/collapsible-section.tsxMatchDateInput
components/ui/date-input.tsxMatchFormField
components/ui/form-field.tsxMatchSelectInput
components/ui/select-input.tsxMatchZu prüfen — möglicher Match, noch nicht verifiziert
Diese Code-Komponenten haben in der Figma-Library einen möglichen Match, aber das UX-Pattern oder der Scope ist nicht eindeutig identisch. Bitte inhaltlich vergleichen und je nach Ergebnis nach „Matches" oder „Lücken" verschieben.
VvgSection (BV+KR)
components/{berater-vermittler,kundenrechner}/vvg-section.tsx⚠ Zu prüfenInsuranceCard
components/insurance-card.tsx⚠ Zu prüfenTBD — Figma-Match unklar
Für diese Code-Komponenten ist in Figma keine klare Komponente identifizierbar. Muss im Designteam geklärt werden, ob eine passende Komponente existiert oder neu angelegt werden muss.
Header
components/header.tsxTBDLücken — kein direktes Figma-Pendant
ActionSheet
components/ui/action-sheet.tsxLücke- Option A: Dialog wiederverwenden (Mobile-Variante)ActionSheet ist auf Mobile ein Bottom-Sheet, auf Desktop ein centered Modal. Kann mit Dialog gemappt werden.
- Option B: Eigene Figma-Komponente bauenKlare Trennung in Figma als 'ActionSheet'-Komponente.
AutocompleteInput
components/ui/autocomplete-input.tsxLücke- Option A: Aus Input + Dropdown komponierenBeim Export setzt das Script Input + Popover/Dropdown zusammen.
- Option B: Eigene Figma-Komponente bauenEigene Komponente mit Typeahead-State.
Combobox / ComboboxSingle
components/ui/combobox.tsxLücke- Option A: Aus Input + Chips + Dropdown komponierenBeim Export aus mehreren Primitives zusammenbauen.
- Option B: Eigene Figma-Komponente bauenMulti-Select mit Chips als eigene Komponente.
CompletenessRing
components/ui/completeness-ring.tsxLücke- Option A: Bewusst nicht in FigmaBeim Export als statisches PNG einbetten oder per Frame-Placeholder darstellen.
- Option B: Eigene Figma-Komponente mit 5 Snapshots (0/25/50/75/100%)Diskrete Snapshots in Figma, Code interpoliert.
PlzOrtInput
components/ui/plz-ort-input.tsxLückeStreetAddressInput
components/ui/street-address-input.tsxLückeNur im Code — Komposite & Page-Templates
Diese Komponenten existieren ausschliesslich im Code (kein Figma-Pendant). Gruppiert nach Library-Potential: Cross-domain Komposite sollten priorisiert in Figma aufgenommen werden. Domain-Komposite sind Kandidaten für eine separate "KPT-Strecken-Komposite"-Sektion. Page-Templates gehören nicht in eine UI-Library.
Cross-domain Komposite
4 KomponentenWerden in mehreren Strecken wiederverwendet. Hoechster Library-ROI — sollten priorisiert in Figma angelegt werden.
- BestandView
components/berater-vermittler/bestand-view.tsxGenutzt in: Berater-Vermittler, Kundenportal, Magic-Link, Comparis4 Strecken — read-only Personen-Karte. 1:1 in Figma sinnvoll.Hoch - EditPersonalDataDialog
components/kundenportal/edit-personal-data-dialog.tsxGenutzt in: Kundenportal, Magic-Link, Comparis3 Strecken — Modal fuer Stammdaten-Bearbeitung.Hoch - LanguageSelector
components/language-selector.tsxGenutzt in: im Header eingebettetEng mit Header gekoppelt — sollte als Header-Variant in Figma abgebildet werden, nicht als eigene Library-Komponente. Nur 1 Consumer (Header).Niedrig - PulseLeistungenDialog
components/berater-vermittler/pulse-leistungen-dialog.tsxGenutzt in: Berater-Vermittler, KundenrechnerWiederverwendete Leistungstabelle Eco/Top/Premium.Hoch
Domain-Komposite
22 KomponentenNur in einer Strecke genutzt, aber als Pattern Library-wuerdig. Optional: eigene Library-Sektion 'KPT-Strecken-Komposite' in Figma.
- PersonCardSection (BV)
components/berater-vermittler/person-card-section.tsxGenutzt in: Berater-VermittlerEditor-Block-PatternHoch - PaymentDetailsSection
components/berater-vermittler/payment-details-section.tsxGenutzt in: Berater-VermittlerHoch - ContactDataSection
components/berater-vermittler/contact-data-section.tsxGenutzt in: Berater-VermittlerHoch - BezugspersonContent
components/berater-vermittler/bezugsperson-section.tsxGenutzt in: Berater-VermittlerMittel - VergleichDialog
components/berater-vermittler/vergleich-dialog.tsxGenutzt in: Berater-VermittlerFullscreen-Overlay-PatternMittel - SendOfferDialog
components/berater-vermittler/send-offer-dialog.tsxGenutzt in: Berater-VermittlerMittel - OkpSection (BV)
components/berater-vermittler/okp-section.tsxGenutzt in: Berater-VermittlerMittel - ValidationBanner
components/berater-vermittler/validation-banner.tsxGenutzt in: Berater-VermittlerBanner-Pattern — generisch wiederverwendbarHoch - DuplicateHint
components/berater-vermittler/duplicate-hint.tsxGenutzt in: Berater-VermittlerToast-VarianteMittel - DuplicateMatchDialog
components/berater-vermittler/duplicate-match-dialog.tsxGenutzt in: Berater-VermittlerSehr spezifisches DialogNiedrig - DuplicateCheckController
components/berater-vermittler/duplicate-check-controller.tsxGenutzt in: Berater-VermittlerLogik-Wrapper ohne UIKeine - CheckboxWithExpansion
components/berater-vermittler/checkbox-with-expansion.tsxGenutzt in: Berater-VermittlerWiederverwendbares Pattern (Checkbox + revealed Form)Hoch - OverviewSidebar (BV)
components/berater-vermittler/overview-sidebar.tsxGenutzt in: Berater-VermittlerNiedrig - PersonCard (KR)
components/kundenrechner/person-card.tsxGenutzt in: KundenrechnerMittel - OkpSection (KR)
components/kundenrechner/okp-section.tsxGenutzt in: Kundenrechner, Kundenportal, Magic-Link, ComparisCross-domain — koennte auch in Gruppe Cross-domainHoch - PraxisPickerSection
components/kundenrechner/praxis-picker-section.tsxGenutzt in: KundenrechnerMittel - AddPersonDialog
components/kundenrechner/add-person-dialog.tsxGenutzt in: KundenrechnerMittel - SaveProgressDialog
components/kundenrechner/save-progress-dialog.tsxGenutzt in: KundenrechnerMittel - OfferteAnfordernDialog
components/kundenrechner/offerte-anfordern-dialog.tsxGenutzt in: KundenrechnerMittel - Overview / OverviewSidebar (KR)
components/kundenrechner/overview.tsxGenutzt in: KundenrechnerNiedrig - PersonPills
components/kundenrechner/person-pills.tsxGenutzt in: KundenrechnerNiedrig - TrustCards
components/kundenrechner/trust-cards.tsxGenutzt in: KundenrechnerTrust-Signal-Banner, wiederverwendbarHoch
Page-Layouts / Templates
25 KomponentenPage-Level-Komponenten. Gehoeren NICHT in eine UI-Library. In Figma hoechstens als Page-Templates (separate Pages, nicht Component-Sets).
- Step1Content
components/kundenrechner/step1-content.tsxKeine - Step2Content
components/kundenrechner/step2-content.tsxKeine - Step3Content
components/kundenrechner/step3-content.tsxKeine - Step4Content
components/kundenrechner/step4-content.tsxKeine - Step5Content
components/kundenrechner/step5-content.tsxKeine - AbschlussPersoenlicheAngabenPage
components/kundenrechner/abschluss-persoenliche-angaben-page.tsxKeine - AbschlussGesundheitsfragenPage
components/kundenrechner/abschluss-gesundheitsfragen-page.tsxKeine - AbschlussZahlungPage
components/kundenrechner/abschluss-zahlung-page.tsxKeine - AbschlussBestaetigenPage
components/kundenrechner/abschluss-bestaetigen-page.tsxKeine - AbschlussPage
components/kundenrechner/abschluss-page.tsxKeine - KuendigungPage
components/kundenrechner/kuendigung-page.tsxKeine - KuendigungErfolgPage
components/kundenrechner/kuendigung-erfolg-page.tsxKeine - OfferteAngefordertPage
components/kundenrechner/offerte-angefordert-page.tsxKeine - PageShell
components/kundenrechner/page-shell.tsxKeine - AbschlussPageShell
components/kundenrechner/abschluss-page-shell.tsxKeine - StepNav / StepSidebar / StepBar
components/kundenrechner/step-*Generischer Stepper als Figma-Kit in 'UI Design exploration' (7xqWQgq3biH8Fpv2aC9rwt), Section 'Stepper — Kit': Komponente 'Menü-Item' (Key b6b41cf8b59326486258a61719ba7c982e6adec8, Status=Erledigt/Aktuell/Inaktiv) als nested Component + Komponente 'Stepper' (Key 9df1dcb651d2f54acd9dcc90bda351692d98f523) mit 8 Platzhalter-Instanzen zum Ein-/Ausblenden. Code-Pendant: src/components/ui/stepper.tsx (Stepper + StepItem). Kein Designsystem-Library-Pendant.Keine - AbschlussStepNav
components/kundenrechner/abschluss-step-nav.tsxKeine - OfferteOverviewPage (Magic-Link)
components/kunden-offerte/offerte-overview-page.tsxKeine - OfferteAdvisorCard (Magic-Link)
components/kunden-offerte/offerte-sidebar.tsxBerater-Herkunfts-Card, oben im geteilten Step4Sidebar der Offerten-Übersicht (Figma 2477:98597).Keine - ComparisOverviewPage
components/comparis/comparis-overview-page.tsxKeine - ComparisBrandCard
components/comparis/comparis-sidebar.tsxComparis-Herkunfts-Card, oben im geteilten Step4Sidebar der Comparis-Übersicht (Figma 2477:98678).Keine - AnpassungSidebar (Kundenportal)
components/kundenportal/anpassung-sidebar.tsxKeine - KundenportalSkeletonSidebar
components/kundenportal/skeleton-sidebar.tsxKeine - WizardSidebar / WizardStep
components/wizard-*.tsxKeine - SelectCard (root)
components/select-card.tsxDublikat zu UI-Komponente — Konsolidierung pruefenNiedrig