Kitchen Sink Showcase

This page demonstrates all typography, Furo admonitions, syntax-highlighted code blocks, synchronized content tabs, responsive Doxia tables, Bootstrap 6 components, Bootstrap Icons, Mermaid diagrams, and KaTeX math provided by Supa Maven Skin.

Admonitions

All 12 Sphinx Furo admonition types are supported via GitHub-Flavored Markdown blockquote alerts (> [!TYPE]) and automatically transformed into .supa-admonition cards with Bootstrap Icons, tinted headers, colored left borders, custom title support, and nested callout support:

[!ADMONITION] Custom Admonition Title Generic titled admonition ([!ADMONITION]) styled with bi-card-text and the --supa-admonition-important-* semantic group, matching Sphinx's .. admonition:: directive.

[!ATTENTION] Demands immediate reader attention ([!ATTENTION], bi-exclamation-diamond).

[!CAUTION] Advises caution regarding subtle behavioral nuances or configuration side effects ([!CAUTION], bi-lightning-charge).

[!DANGER] Highlights high-risk operations that may cause data loss or production downtime ([!DANGER], bi-lightning-charge-fill).

[!ERROR] Documents failure modes, fatal exceptions, or invalid states ([!ERROR], bi-x-octagon).

[!HINT] Provides a helpful hint or troubleshooting pointer ([!HINT], bi-question-circle).

[!IMPORTANT] Key information users need to know to achieve their goal, such as requiring maven-site-plugin 3.21.0+ ([!IMPORTANT], bi-fire).

[!NOTE] Useful information that users should know, even when skimming content ([!NOTE], bi-info-circle).

[!WARNING] Nested Admonition Support Admonitions can also be nested inside other admonitions using nested Markdown blockquotes (> > [!WARNING]).

[!SEEALSO] Cross-references related documentation pages or external specifications ([!SEEALSO] or [!SEE-ALSO], bi-arrow-up-right-circle).

[!TIP] Pro Tip: Instant Keyboard Search Press / or ⌘K (Ctrl+K) anywhere on the page to open the native <dialog class="dialog"> search modal ([!TIP], bi-lightbulb).

[!TODO] Tracks planned documentation expansions or upcoming roadmap items ([!TODO], bi-check2-square).

[!WARNING] Urgent information that needs user attention to avoid configuration pitfalls ([!WARNING], bi-exclamation-triangle).

Syntax Highlighting & Copy Button

Code blocks display a subtle language badge (JAVA, TS, DIFF, XML) in the top-right corner that cross-fades into the Copy to clipboard button on hover.

Synchronized Content Tabs (sphinx-inline-tabs)

Switch between tabs below—active tab selection is automatically persisted and synchronized across tab groups:

package io.github.mepcotterell.skins;
import java.util.List;
public record SupaSkinConfig(
    String defaultTheme,
    boolean tocSidebar,
    int tocMaxDepth,
    List<String> languages
) {
    public static SupaSkinConfig defaults() {
        return new SupaSkinConfig("auto", true, 4, List.of("java", "kotlin", "xml", "ts"));
    }
}
package io.github.mepcotterell.skins
data class SupaSkinConfig(
    val defaultTheme: String = "auto",
    val tocSidebar: Boolean = true,
    val tocMaxDepth: Int = 4,
    val languages: List<String> = listOf("java", "kotlin", "xml", "ts")
)

TypeScript & Bootstrap 6 ESM Example

import Dialog from 'bootstrap/js/dist/dialog.js';
import Drawer from 'bootstrap/js/dist/drawer.js';
import ScrollSpy from 'bootstrap/js/dist/scrollspy.js';

export function openSearchModal(dialogEl: HTMLDialogElement): void {
  const modal = Dialog.getOrCreateInstance(dialogEl);
  modal.show();
}

Unified Diff Example

 <skin>
-  <groupId>org.apache.maven.skins</groupId>
-  <artifactId>maven-fluido-skin</artifactId>
-  <version>2.0.0-M11</version>
+  <groupId>io.github.mepcotterell</groupId>
+  <artifactId>supa-maven-skin</artifactId>
+  <version>0.2.0</version>
 </skin>

Responsive Doxia Tables

Standard Markdown and Doxia table.bodyTable elements are automatically normalized into responsive Bootstrap 6 tables:

Component Desktop (xl+ / 1280px+) Laptop (lg / 1024px–1279px) Tablet & Mobile (< 1024px)
Left Navigation Sidebar Sticky 256px column Sticky 256px column Off-canvas <dialog class="lg:drawer drawer-start">
Center Prose Article Centered 56rem (896px) max measure Centered 56rem (896px) max measure Centered 47.5rem (760px) max container
Right “On this page” TOC Sticky 224px ScrollSpy column Off-canvas <dialog class="xl:drawer drawer-end"> Off-canvas <dialog class="xl:drawer drawer-end">
Documentation Search <dialog class="dialog"> modal <dialog class="dialog"> modal <dialog class="dialog"> modal

Bootstrap 6 UI Components

Because Supa Maven Skin bundles all 28 Bootstrap 6.0.0-alpha.1 component families, 20 interactive JS plugins, and 2,000+ Bootstrap Icons, you can use Bootstrap 6 buttons, badges, avatars, chips, accordions, steppers, menus, dialogs, drawers, comboboxes, datepickers, cards, and icons directly in documentation pages:

Primary Badge Secondary Badge Success Info Warning Danger
Full Bootstrap 6 Component Catalog

Explore all 28 Bootstrap 6 component families, variants, and interactive JS widgets.

Explore All 28 Components →

Bootstrap Icons (Markdown Shortcodes, HTML & Velocity Macro)

All Bootstrap Icons are bundled offline in Supa Maven Skin (bootstrap-icons.woff2) and can be authored using Markdown shortcodes (:bi-<name>: or :bi-<name> <classes>:), Markdown + HTML (<i class="bi bi-..."></i>), or the Velocity macro (#bi in .md.vm templates):

:bi-rocket-takeoff text-primary fs-5: Launch :bi-check-circle-fill text-success fs-5: Verified :bi-lightning-charge-fill text-warning fs-5: Fast Vite Build GitHub Actions WCAG 2.2 AAA
Inline icons with optional utility classes:
:bi-rocket-takeoff: Launch
:bi-check-circle-fill text-success fs-5: Verified
:bi-lightning-charge-fill text-warning: Fast Vite Build
<i class="bi bi-rocket-takeoff text-primary fs-5" aria-hidden="true"></i> Launch
<i class="bi bi-check-circle-fill text-success fs-5" aria-hidden="true"></i> Verified
<i class="bi bi-github fs-5" aria-hidden="true"></i> GitHub Actions
#parse( "site-macros.vm" )
#bi( "rocket-takeoff" ) Launch
#bi( "check-circle-fill" "text-success fs-5" ) Verified
#bi( "universal-access-circle" "text-info fs-5" "Accessible" ) WCAG 2.2 AAA

Collapsible Details Disclosure

Click to expand build pipeline details

frontend-maven-plugin runs Vite and Dart Sass during the generate-resources phase, outputting css/supa-maven-skin.min.css, js/supa-maven-skin.min.js, and the on-demand js/supa-maven-skin-*.min.js widget chunks into target/classes/.

Diagrams & Mathematical Notation

Mermaid Architecture Diagram

When a page contains a mermaid code block, Supa Maven Skin lazily loads Mermaid from CDN and renders it with matching Light/Dark theme variables:

flowchart TD
    A["pom.xml & site.xml"] --> B["frontend-maven-plugin (Vite + SCSS + TS)"]
    B --> C["supa-maven-skin.jar"]
    C --> D["maven-site-plugin 3.21.0 (Doxia 2.0)"]
    D --> E["3-Column Furo HTML5 Site"]

KaTeX Math Rendering

Inline math like $E = mc^2$ and display equations are automatically rendered when <katex>auto</katex> detects math delimiters:

$$ \mathcal{L}(\theta) = \frac{1}{N} \sum_{i=1}^{N} \left( y_i - f_\theta(x_i) \right)^2 + \lambda |\theta|_2^2 $$

Typography & Prose Elements

Inline Formatting, Blockquotes & Lists

“Documentation should be effortless to read, navigate, and maintain—in both light and dark environments.”

  • Bold text, italicized text, strikethrough, and inline code tokens.
  • Keyboard shortcuts: ⌘ + K, /, and Esc.
  • Automatic heading permalinks (#) on h2 through h4 headings:
    1. First ordered item
    2. Second ordered item with nested bullets:
      • Sub-item A (--color-brand-primary)
      • Sub-item B (--color-brand-content)

Definition Lists

Doxia Sitetools 2.0
The Apache Maven site rendering engine that processes Velocity templates and Markdown/APT/XDoc content.
Bootstrap 6 (6.0.0-alpha.1)
Next-generation Bootstrap featuring native HTML5 <dialog> modals and drawers, .prose typography, and light-dark() CSS tokens.

Headings in Other Scripts

Heading anchors keep the letters and digits of every script. The German and Japanese headings below get the anchors #überblick and #概要, and a Markdown link names them as written: Überblick and 概要. Their # permalinks copy the percent-encoded form (#%C3%BCberblick), which browsers decode again.

Überblick

German for “overview”: the Ü stays in the anchor.

概要

Japanese for “overview”: an anchor made only of non-Latin letters.