3defacto Frontend-System / Styleguide
data-site

Komponenten

Atomare Bausteine. Makros in components/ui.html und components/illustration.html, Styles in src/styles/components/. Zustände über ARIA-Attribute und is--Klassen.

Buttons und Links

Buttons immer Primärrot (primary) oder neutral (secondary, text). Nie in Bereichsfarbe. Links neutral mit Underline. Rechts vom Text steht auf einem Button nichts – kein Pfeil, kein Icon. Der Icon-Slot steht vor der Beschriftung. Makro: ui.button(label, href, variant, icon, size).

Zwei Klassen, nicht drei Größen (2026-09-10). Die Vorgabe ist der Inhalt: 3.5rem hoch, Satz 1rem – jeder Button, der einen Gedanken beendet (Media Object, Formular, Hero, Abschluss-CTA). --compact ist die Bedienleiste: 2.75rem, Satz 0.875rem – Header-CTA, Suche, mobile Navigation. --sm bleibt die Zeilenaktion der Downloadliste. Die frühere Variante --lg ist entfallen: Sie meinte dasselbe wie die neue Vorgabe. Innerhalb einer Klasse gilt weiter, dass ein Button seine Präsenz über die Fläche ändert und nicht über den Satz; nur der Wechsel der Klasse wechselt beides.

Icons

Grundlage ist Lucide (ISC, lokal aus lucide-static, kein externer Request). scripts/build-icon-sprite.mjs sammelt jeden in src/ geschriebenen Namen ein und baut daraus public/icons/sprite.svg – ein neues Icon braucht nur den Namen im Template oder in den Daten, danach npm run icons (läuft bei dev und build automatisch mit). Namen suchen, auch über die englischen Schlagworte: node scripts/build-icon-sprite.mjs --find gear.

Schreibweise: arrow-right (regular) oder arrow-right@bold – thin light regular bold. Lucide zeichnet jedes Motiv als Linie auf 24×24; die Stärke ist deshalb ein stroke-width (1 / 1,5 / 2 / 2,5), gefüllte oder zweifarbige Varianten gibt es nicht. Funktionsicons bleiben neutral und erben currentColor: ui.icon(name). Illustrative Icons dürfen die Bereichsfarbe tragen: illu.draw(name), mit lucide: davor kommen sie aus Lucide (Standardstärke thin).

Funktionsicons im Sprite (44)
Strichstärken: thin, light, regular, bold
Illustrative Icons in Bereichsfarbe – nur Lucide, kein Eigenbau (Eintrag 302) – illu.draw('lucide:factory')

Badge

Filter-Chips und Pagination sind am 2026-09-22 entfallen. Die Meldungsübersicht hat keine Rubriken mehr und lädt über „Weitere Meldungen“ nach (Styleguide Sektionen, news-list).

Wheel Assembly MachinesIndustrial Plant SolutionsAgrar-, Nutz- und Sonderfahrzeuge

Stream-Navigation

Blättern in einem Stream (Eintrag 128): ‹ vorheriger Eintrag, × zur Übersicht, › nächster Eintrag. Erster Ort: Meldung im Detail, rechts auf der Zeile der Bereichs-Tags. Gedacht auch für Referenzen und Events. Ohne sichtbare Beschriftung (Eintrag 129), den Namen trägt das aria-label mit Ziel. Fehlt ein Nachbar, bleibt der Knopf blass an seinem Platz. Makro streamNav.draw(stream).

Pfadangabe

Seit dem 2026-09-18 steht sie im Kopf des Fußes, nicht mehr im Hero – deshalb zeigt die Demo sie auf Tiefanthrazit, ihrem einzigen Grund. Der Pfad wird aus der Adresse und der Navigation abgeleitet, keine Seite pflegt ihn von Hand (Filter crumbs, in Craft entry.getAncestors()). Jede Stufe ist ein Link, auch die aktuelle Seite – sie trägt zusätzlich aria-current="page" und steht in Weiß und 700.

Karten und Kacheln

Ein Bauteil: card. data-division setzt die feste Farbe des Bereichs, ohne das Attribut gilt die Farbe der aktuellen Site. Die Meldungskarte (card--news, erste Reihe) ist dieselbe Karte mit Kennzeichnung des Absenders und einer Metazeile aus Datum und Rubrik; die Teaser-Kachel (zweite Reihe) trägt stattdessen eine Einordnung. Keine Karte trägt einen Kasten. Hover und Tastaturfokus lösen den Vorschub aus: Motiv schwenkt nach rechts, Pfeil rückt vor.

Radmontagelinie mit Reifenzuführung und Portalrahmen in der Montagehalle

Wheel Assembly Machines

Jede Radgröße von 15 bis 58 Zoll, ohne umzurüsten. Abgenommen mit Ihren eigenen Rädern.

Pharmaindustrie

Anlagen und Maschinen, ausgelegt auf die Hygiene- und Dokumentationsanforderungen der Pharmaproduktion.

Chemische Industrie

Tanklager, Prepolymer- und Dosieranlagen für Polyurethane, Klebstoffe, Farben und Lacke. Fachbetrieb nach WHG.

Karte mit Bild

Für Branchen- und Produktübersichten. Ohne data-division trägt der Riegel die Farbe der aktuellen Site.

Kennzahl, Argument, Kundenstimme

  • Seit 2000

    Engineering, das gebaut wird

  • 85+

    Mitarbeitende

  • Rüstfreiheit als Konstruktionsprinzip

    Größenwechsel ohne Rüstaufwand, Module, die im Werk aufgebaut und abgenommen werden. Anlagen, die sich mit Ihrem Geschäft weiterentwickeln.

  • NEXUS: jede Anlage kommt vernetzt

    Live-OEE, Frühwarnung, Predictive Maintenance, Ersatzteilanbindung und ISO-zertifizierter VPN-Fernzugriff. Für alle 3defacto-Anlagen ab Baujahr 2018.

Ein Ansprechpartner von der ersten Skizze bis zur Inbetriebnahme. Das hat uns den Rücken freigehalten.
ProjektleiterBaustoffindustrie

Team, Ansprechpartner, Download

Vorname Nachname
Geschäftsführung
Vorname Nachname
Vertrieb

Akkordeon, Schritte, Tabelle

Offener Eintrag
Inhalt des Eintrags. Basis ist das native details-Element, JS ergänzt nur „einer offen“.
Geschlossener Eintrag
Inhalt.
  1. 01
    Analyse bestehender Prozesse

    Wir sehen uns Prozess, Stoffe, Durchsatz und Platz an und beraten unabhängig, bevor ein Fließbild entsteht.

  2. 02
    Engineering und Konzept

    Fließbild, Auslegung und Konstruktion im eigenen Haus. Jedes Konzept baut auf Modulen auf, mit möglichst geringem Personal- und Energiebedarf.

  3. 03
    Anlagenbau und Integration

    Jedes Modul wird in unserem Werk aufgebaut, verdrahtet, getestet und in Betrieb genommen. Bei Ihnen werden die Module nur noch verbunden und in kurzer Zeit hochgefahren.

  4. 04
    Optimierung im Betrieb

    Schulung, Service und NEXUS halten die Anlage im Blick. Retrofit und After Sales kommen aus derselben Hand.

KennzahlAltNeu
Takt50 Räder/h60 Räder/h
Umrüstzeit35 min8 min

Formular

Felder, Auswahl, Textbereich, Checkbox, Fehlerzustand. In Craft mit Formie oder Freeform nachbauen, Klassen übernehmen.

Bitte eine gültige E-Mail-Adresse eingeben.

Hinweistext unter dem Feld.

* Pflichtfeld

Slider

CSS Scroll-Snap, JS ergänzt Buttons und Position. Slide-Breite über --slide-width, helle Variante slider--light. Mehrspaltig zählt die Anzeige Folien, nicht Seiten – deshalb hier die Ziffernanzeige. Der Maßstrich (slider__measure) setzt eine Folie je Blick voraus (slider--single) und steht bei den Kundenstimmen.

Logoreihen

  • Partner 1
  • Partner 2
  • Partner 3
  • Partner 4