Sie befinden sich hier: start » de » Interne Dokumentation » DokuWiki-Erweiterungen (WvdS) » FluentUI (Design-System-Bibliothek) » FluentUI: Bereichs-Shells » FluentUI: Wiki Layout (Doku-Shell, vertieft)

FluentUI: Wiki Layout (Doku-Shell, vertieft)

Zurück: FluentUI (Design-System-Bibliothek)


Status: Tier 1 — beschreibt tatsächlich umgesetzten Code. Erstkonsument ist das Template wkbizway (inc/wiki-shell.php plus css/wiki-layout.css, css/area-wiki.css, css/dokuwiki-overrides.css, js/wiki-area.js), aktiv auf allen Seiten mit Area-Profil wiki ({lang}:wiki:*). Quelle der Wahrheit für Implementierungsdetails: wiki-area-shell_inc_wiki-shellphp — diese Seite hier ist die bereichsbezogene Design-System-Referenz: Muster, Verträge und Übernahme-Leitfaden für künftige Konsumenten, keine Implementierungs-Doku.

Referenzvorbild: Doku-Seiten von Google Developers (developers.google.com/style, devsite-Shell) und Microsoft Learn — Inhalt als „Blatt Papier auf einer Mat„, flankiert von Navigations- und Werkzeugspalten.

Zweck und Konzept

Eine Dokumentations-Shell für Lese-Seiten: maximal fünf Spalten ab 1024px, die nach außen hin immer „leichter“ werden — innen der Inhalt, daneben Navigation (Doc-Sidebar) und Orientierung (Seiten-TOC), ganz außen zwei schmale Icon-Rails (Werkzeuge/Umschalter). Unterhalb 1024px kollabiert die Shell progressiv (Drawer statt Spalten), unterhalb 768px zur Einspaltigkeit. Kopf- und Fußzeile sind bewusst identisch zur Site-Hülle des jeweiligen Templates (eine Marke, zwei Profile).

Klassennamen berichtigt am 2026-08-23. Die Regionstabelle und der Abstands-Kontrakt nannten bis dahin den Stand vor der Paketumbenennung vom 3. August 2026 — premium-navy-ivory und premiumnavyivory-* statt wkbizway und wkbizway-*. Der Code trägt die neuen Namen seit dem Umbenennungsdatum durchgängig, nachgeprüft in inc/wiki-shell.php und den CSS-Dateien der Vorlage; nur diese Seite war der Umbenennung nicht gefolgt.

Regionen

Skizze mit maßstäblichen Fugen (6px:10px = live 12px:20px):

1 Topbar (Logo + Suche + Avatar)
8 Breadcrumb-Leiste (nur Inhaltsseiten)
2 Action
Rail
3 Doc-Sidebar
wkacmenu-Baum
4 Hauptinhalt
Seiteninhalt
5 Seiten-TOC
Inhaltsverzeichnis
6 TOC-
Rail
7 Footer (identisch zur Site-Hülle)

Region Live-Klasse (wkbizway) wk-shell-*-Analog Sichtbarkeit
Topbar (Logo, Suche, Avatar) .wkbizway-topbar .wk-shell-titlebar (geerbt, kein Neubau) immer
Breadcrumb-Leiste (Pfadnavigation, volle Breite direkt unter der Topbar — Banner-POSITION, aber bewusst nicht .wk-shell-banner, die bleibt der schließbaren Hinweisleiste vorbehalten; Details: layout → Breadcrumbs) .wkbizway-wiki-crumbbar — (WvdS-Ergänzung, keine ADS-Part) nur Inhaltsseiten (auf Admin-Screens ausgeblendet)
Action Rail (links, Seiten-Werkzeuge; auf Admin-Screens Aktivitätsleiste, s. FluentUI: Admin-Bereich (vertieft)) .wkbizway-action-rail .wk-shell-rail (geerbt) immer (ab 768px Spalte, darunter horizontale Icon-Leiste)
Doc-Sidebar (Namespace-Navigation) .wkbizway-doc-sidebar .wk-shell-sidebar ab 1024px Spalte, darunter Drawer
Inhalt = graue Mat + weiße Karte .wkbizway-wiki-main + .wkbizway-wiki-card .wk-shell-content immer
Seiten-TOC („On this page„) .wkbizway-page-toc–desktop / –mobile .wk-shell-auxbar-Rolle ab 1024px Spalte, darunter Inline-Panel
TOC-Rail (rechts, spiegelbildlich) .wkbizway-action-rail–right .wk-shell-rail–right nur ab 1024px; Umschalter fällt darunter in die linke Rail zurück
Footer .wkbizway-footer immer

Die wk-shell-*-Spalte ordnet die Regionen dem generischen Vokabular aus FluentUI: Basic Layout (vertieft) zu: Topbar/Rails sind dort als „geerbt“ markiert — ein künftiges generisches Shell-Modul baut sie nicht neu, sondern übernimmt diese Umsetzung.

Abstands-Kontrakt

Zwei Extension-Tokens (wkbizway-eigen, definiert in css/tokens.cssnicht Teil des cross-template Styles-Contract):

Token Wert Gilt für
--wk-wiki-gap 1.25rem/20px (1024–1279px: 1rem/16px) Lesabstand Inhalt↔Doc-Sidebar und Inhalt↔Seiten-TOC
--wk-wiki-gap-rail 0.75rem/12px (breakpoint-unabhängig) Fugen an den Rail-Kanten (Rail↔Sidebar, TOC↔TOC-Rail)

Dazu: Außenkanten ab 1024px bündig (horizontales Shell-Padding 0 — Rails liegen wie die VS-Code-/Azure-Data-Studio-Activity-Bar direkt an der Viewport-Kante); darunter 1em bzw. 16px (<768px) Randabstand.

Mechanik in zwei Sätzen: Die Abstände liegen nicht auf der Grid-gap-Property (die reserviert ihren Wert auch neben Spalten, die zur Laufzeit auf 0px kollabieren), sondern als Margins der beiden kollabierbaren Spalten („Margin-Ownership„); klappt eine Spalte ein, übernimmt der Inhalt genau den einen Rail-Gap an der frei gewordenen Kante. Vollständige Begründung im Code-Kommentar des @media (min-width: 1024px)-Blocks von css/wiki-layout.css.

Papier-Metapher (Mat + Karte)

Der Inhalt liegt als weiße Karte (max-width: 21cm = DIN-A4-Breite, Token --wk-wiki-content-max-width) mit Schatten auf einer grauen Mat. Beide Flächen sind bewusst eckig (border-radius: 0 an allen Breakpoints): Papier ist rechteckig; die Referenz-CSS von developers.google.com nutzt 2px/0 — praktisch nicht wahrnehmbar, also ist 0 konsistent mit der Referenz. Popover, Buttons und WRAP-Boxen behalten ihre Radien — sie sind nicht Teil der Papier-Fläche.

Seiten-TOC-Verhalten

  • Schriftgröße fest 13px (Font-Familie über --wk-wiki-font-body).
  • Level-1-Flattening (Google-Developers-Muster): Hat der TOC genau einen Level-1-Eintrag, ist das bei toptoclevel=1 immer ein Duplikat des daneben sichtbaren H1-Seitentitels — seine Titelzeile wird versteckt, die Kindliste beginnt ohne Einzug. Zwei Schutzbedingungen: :only-child (Mehr-H1-Seiten bleiben unberührt) und :not(.mode_admin) (Admin-TOCs haben echte Labels statt Titel-Duplikaten, z. B. „Datenbank:“ der sqlite-Datenbankliste). Es wird nur die Titelzeile versteckt, nie eine Kindliste.
  • Leerer TOC (Seite ohne Überschriften) blendet die ganze Spalte aus statt sie leer zu zeigen.

Breakpoints

Bereich Spaltenbestand Besonderheit
≥1280px Rail, Sidebar (17em), Inhalt, TOC (15em), TOC-Rail Vollausbau; Gaps 12/20/20/12, Kanten bündig
1024–1279px wie oben, schmaler (Sidebar 14em, TOC 12em) Lesabstand 16px statt 20px
768–1023px Rail + eine flexible Spalte Sidebar/TOC als Drawer bzw. Inline-Panel; einfaches gap statt Margin-Ownership; 1em Randabstand
<768px einspaltig Rail wird horizontale Icon-Leiste; 16px Randabstand

Zustands-Klassen (Referenz)

Analog zu VS Codes LayoutClasses (vgl. layout → Sichtbarkeits-Klassen), gesetzt auf .wkbizway-wiki-shell:

Klasse Quelle Wirkung
sidebar-collapsed / toc-collapsed Rail-Umschalter (JS) oder serverseitig (leerer TOC) kollabiert die Grid-Spalte auf 0; Inhalt übernimmt den Rail-Gap
rail-collapsed serverseitig auf Admin-Screens ohne Aktivitätsleiste linke Rail-Spalte entfällt
mode_admin u. a. DokuWiki-Core tpl_classes() Zustands-Hooks für CSS (z. B. TOC-Flattening-Ausnahme)
is-sticky Optionen wikiStickyHeader/wikiStickySidebars Kopfzeile/Spalten bleiben beim Scrollen stehen

JS-Verhalten und Accessibility

js/wiki-area.js (nur auf wiki-Profil-Seiten geladen): Drawer-Steuerung für Doc-Sidebar, Rail und TOC mit einem oder mehreren Trigger-Buttons pro Drawer (der TOC-Umschalter existiert als zwei DOM-Kopien — rechte Rail ab 1024px, linke Rail darunter; CSS zeigt nie beide gleichzeitig, aria-expanded wird auf allen Kopien synchron gehalten). Escape schließt und fokussiert die aktuell sichtbare Button-Kopie (offsetParent-Prüfung zur Laufzeit); Offen/Zu-Zustand optional in localStorage. Wichtig bei DOM-Duplikaten für Breakpoint-Fallbacks: immer eigene Modifier-Klassen je Kopie — eine geteilte Klasse lässt Sichtbarkeitsregeln der einen Kopie versehentlich auch die andere treffen.

Übernahme-Leitfaden für künftige Konsumenten

  1. Direkt wiederverwendbar: Regionsvokabular und Verhaltensverträge dieser Seite (Abstands-Kontrakt, Zustands-Klassen-Ansatz, Flattening-Muster) sowie die generischen .wk-shell-*-Primitives aus wkfluentui/style.css (Sektion WIDGETS).
  2. Template-spezifisch (nicht kopieren, sondern analog bauen): wkbizway-*- Klassen, --wk-wiki-*-Extension-Tokens und inc/wiki-shell.php-Markup.
  3. Vor eigenen Abstraktionen prüfen, ob die Helper-API (z. B. adminrail, nav, toolbar()) die Aufgabe bereits abdeckt.

Einschränkungen und Troubleshooting

  • tseed-Falle: Template-CSS-Änderungen rotieren den Cache-Buster nicht — nach jedem Edit conf/local.php touchen (Details: Verifikation).
  • CSS-Compiler-Fallen (sitewide fatal): kein */ im Kommentartext (beendet den Kommentar vorzeitig) und kein min()/calc() mit gemischten Einheiten.
  • ?t=<template> an css.php ist ein Template-Override, kein Cache-Buster.
  • Grid-Track ≠ Elementbreite: Spalten-Margins liegen innerhalb der fixen Tracks — Gap-Änderungen verbreitern das Spalten-Element, nicht die Inhaltsspalte.

Verwandte Themen

de/wiki/dwe/wkfluentui/area/wiki-layout.txt · Zuletzt geändert: von 0.0.0.0