Komponenten
Dieser Bereich gibt dir einen schnellen Überblick über häufig genutzte Komponenten aus @document-writing-tools/kernux-nextra-theme.
Import
import {
CallToAction,
Faqs,
Features,
Feedback,
ReviewCarousel,
LogoCloud,
} from '@document-writing-tools/kernux-nextra-theme'CallToAction
Verwendbar für Handlungsaufforderungen am Seitenende oder zwischen Inhaltsblöcken.
Parameter:
headline(optional): Überschriftdescription(optional): BeschreibungstextlinkLabel(optional) +link(optional): Link-Button (nur sichtbar, wennlinkgesetzt ist)actionLabel(optional) +action(optional): Action-Button/Callback (nur sichtbar, wennactiongesetzt ist)btnClassName(optional): Eigene Klassen für ButtonsclassName(optional): Eigene Klassen für den Wrapper
<CallToAction
headline="Jetzt starten"
description="Lege dein erstes Dokumentationsprojekt an."
linkLabel="Zum Leitfaden"
link="/fuer-entwickler-innen"
/>Faqs
Für strukturierte Frage-Antwort-Bereiche.
Parameter:
faqs(optional): Array mit{ question, answer }headline(optional): ÜberschriftactionLabel(optional) +actionHref(optional): CTA unter der ÜberschriftclassName(optional): Eigene Klassen für den Wrapper
<Faqs
headline="Häufige Fragen"
faqs={[
{
question: 'Wie starte ich lokal?',
answer: 'Mit npm run dev im Theme-Repository und verlinkten Paketen.',
},
]}
actionLabel="Alle FAQs"
actionHref="/faq"
/>Features
Für Feature-Listen oder Funktionsübersichten.
Parameter:
headline(optional): Überschriftfeatures(optional): Array mit{ title, description, img, safariImg, alt }actionLabel(optional) +actionHref(optional): CTA-ButtonbtnClassName(optional): Eigene Klassen für den CTA-ButtonclassName(optional): Eigene Klassen für den Wrapper
<Features
headline="Funktionsumfang"
features={[
{
title: 'Suche',
description: 'Volltextsuche über Inhalte',
img: '//assets/features/suche.svg',
safariImg: '//assets/features/suche-fallback.png',
alt: 'Feature Suche',
},
{
title: 'Navigation',
description: 'Sidebar und TOC',
img: '//assets/features/navigation.svg',
safariImg: '//assets/features/navigation-fallback.png',
alt: 'Feature Navigation',
},
]}
actionLabel="Mehr erfahren"
actionHref="/fuer-entwickler-innen"
/>Feedback
Für integriertes Seitenfeedback (abhängig von Projektkonfiguration).
Nutzung
-
Automatisch über
theme.config -
Manuell pro Seite mit
<Feedback />- Importiere die Komponente direkt in einer Seite und übergib die benötigten Props.
- Damit steuerst du die Position der Sektion im Seiteninhalt selbst.
Top-Level-Parameter:
feedbackServerUrl(required): URL des Feedback-ServersgitlabProjectId(required): Zielprojekt-ID in GitLablabels(required): Labels für das erstellte IssuerequiredText(required): Hinweistext über Pflichtfelderfields(required): Feldkonfiguration (mindestensemailundmessage)privacyConsent(required): Text- und Link-Konfiguration für die Datenschutz-EinwilligungafterSubmit(required): Texte nach dem Senden (Success/Error und optionaler Button-Label)headline(optional): Überschrift des Feedback-Bereichsdescription(optional): Einleitungstext über dem FormularbuttonText(optional): Beschriftung des Submit-Buttons,
Default:"Absenden"shouldCreateConfidentialIssue(optional): Steuert, ob ein vertrauliches oder öffentliches Issue erzeugt wird; Default:falsenotice(conditionally required): Hinweisbox bei öffentlichen Issues.
WennshouldCreateConfidentialIssue = false, solltenoticemit allen Unterfeldern gesetzt werden- Styling-Klassen (alle optional):
className,headlineClassName,descriptionClassName,inputClassName,inputLabelClassName,textareaClassName,checkboxClassName,btnClassName
Objekt-Props im Detail:
-
fields(required)email(required): Felddefinition für E-Maillabel(required)placeholder(required)type(optional), z. B."email"required(optional), Default:true
message(required): Felddefinition für Nachrichtlabel(required)placeholder(required)type(optional)
<customFieldName>(optional): zusätzliche Felder (z. B.organization,department)label(required)placeholder(required)type(optional)required(optional), Default:true
-
privacyConsent(required)textBeforeLink(required)link(required)label(required)href(required)
textAfterLink(required)
-
afterSubmit(required)successText(required)errorText(required)buttonLabel(optional)
-
notice(conditionally required, siehe oben)title(required)body(required)link(required)href(required)label(required)
Wichtiges Verhalten:
- Die Feldreihenfolge im Formular entspricht der Reihenfolge der Keys in
fields. - Du kannst die Reihenfolge beliebig ändern, indem du die Keys in
fieldsumsortierst. - Für alle Felder gilt standardmäßig
required = true(außermessage, das immer Pflicht ist und nicht umgestellt werden kann).
<Feedback
feedbackServerUrl="https://deine-feedback-api.beispiel.de"
gitlabProjectId="12345"
labels={['dokumentation', 'feedback']}
requiredText="Pflichtfelder sind mit * markiert"
fields={{
organization: {
label: 'Organisation',
placeholder: 'Behörde / Team',
required: false,
},
email: {
label: 'E-Mail',
placeholder: 'max.mustermann@beispiel.de',
type: 'email',
},
message: {
label: 'Feedback',
placeholder: 'Was können wir verbessern?',
},
}}
shouldCreateConfidentialIssue={false}
notice={{
title: 'Hinweis zur Veröffentlichung',
body: 'Dein Feedback wird als öffentliches Issue erstellt. Bitte keine sensiblen Daten teilen. Mehr Infos: ',
link: { label: 'Sicherheitsleitfaden', href: '/sicherheit' },
}}
privacyConsent={{
textBeforeLink: 'Ich stimme der ',
link: { label: 'Datenschutzerklärung', href: '/datenschutz' },
textAfterLink: ' zu.',
}}
afterSubmit={{
successText: 'Vielen Dank für dein Feedback!',
errorText: 'Beim Senden ist ein Fehler aufgetreten.',
buttonLabel: 'Feedback anzeigen',
}}
/>ReviewCarousel
Zum Anzeigen von Referenzen/Reviews im Carousel.
Parameter:
reviews(optional): Array mitReviewcardClassName,blockuoteClassName,authorClassName,titleClassName(alle optional): Styling der KartenclassName(optional): Eigene Klassen für den Wrapper
Review besteht aus:
quote(required)author(required)title(required)url(required)
<ReviewCarousel
reviews={[
{
quote: 'Sehr gute Entwicklererfahrung.',
author: 'Max Mustermann',
title: 'Frontend Entwickler',
url: '//assets/reviews/max-mustermann.jpg',
},
{
quote: 'Schneller Einstieg in Nextra.',
author: 'Erika Musterfrau',
title: 'Tech Writerin',
url: '//assets/reviews/erika-musterfrau.jpg',
},
]}
/>LogoCloud
Zum Anzeigen einer Logo-Leiste, z. B. für Partner, Referenzen oder unterstützende Organisationen.
Parameter:
headline(optional): Überschrift über der Logo-LeisteheadlineClassName(optional): Eigene Klassen für die Überschriftlogos(required): Array mit{ src (required), alt (required), className (optional), style (optional), href (optional) }divider(optional): Trenner-/Layout-Variante (true= mit Divider,false= Grid)className(optional): Eigene Klassen für den Wrapper
<LogoCloud
headline="Unterstützt von"
divider={true}
logos={[
{
src: '//assets/logos/partner-1.svg',
alt: 'Partner 1',
href: 'https://example.org',
},
{
src: '//assets/logos/partner-2.svg',
alt: 'Partner 2',
},
]}
/>Hinweis
Die exakten Props können sich je Version ändern. Prüfe bei Bedarf die Typdefinitionen im Quellprojekt und teste Komponenten direkt im Developer Mode.
Zurück zum Überblick.