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 withbi-card-textand 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-plugin3.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:
Explore all 28 Bootstrap 6 component families, variants, and interactive JS widgets.
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):
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, andinline codetokens. - Keyboard shortcuts: ⌘ + K, /, and Esc.
- Automatic heading permalinks (
#) onh2throughh4headings:- First ordered item
- Second ordered item with nested bullets:
- Sub-item A (
--color-brand-primary) - Sub-item B (
--color-brand-content)
- Sub-item A (
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,.prosetypography, andlight-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.