Styleguide
Spacing system
200px - $spacer * 12.5 - 13
160px - $spacer * 10 - 12
120px - $spacer * 7.5 - 11
80px - $spacer * 5 - 10
72px - $spacer * 4.5 - 9
64px - $spacer * 4 - 8
48px - $spacer * 3 - 7
40px - $spacer * 2.5 - 6
32px - $spacer * 2 - 5
24px - $spacer * 1.5 - 4
16px - $spacer - 3
12px - $spacer * 0.75 - standard
8px - $spacer * 0.5 - 2
4px - $spacer * 0.25 - 1
0px - $spacer * 0 - 0
Headings
heading-3xl
heading-xxl, h1
heading-xl, h2
heading-lg, h3
heading-md, h4
heading-sm, h5
heading-xs, h6
heading-xxs
heading-3xs
heading-4xs
heading-5xs
heading-6xs
Texts
body-xl
body-lg
body-md
body-sm
body-xs
Colors
Backgrounds
Buttons
Textlinks
Navigation
Animationen
| Name | Preview | Classes | Code |
|---|---|---|---|
| Hamburger Default |
|
navbar-toggler__icon navbar-toggler--hamburger-default
navbar-toggler__icon navbar-toggler--hamburger-default navbar-toggler--rounded
|
|
| Hamburger Left |
|
navbar-toggler__icon navbar-toggler--hamburger-left
navbar-toggler__icon navbar-toggler--hamburger-left navbar-toggler--rounded
|
|
| Hamburger Middle |
|
navbar-toggler__icon navbar-toggler--hamburger-middle
navbar-toggler__icon navbar-toggler--hamburger-middle navbar-toggler--rounded
|
|
| Hamburger Right |
|
navbar-toggler__icon navbar-toggler--hamburger-right
navbar-toggler__icon navbar-toggler--hamburger-right navbar-toggler--rounded
|
|
| Hamburger Back |
|
navbar-toggler__icon navbar-toggler--hamburger-back
navbar-toggler__icon navbar-toggler--hamburger-back navbar-toggler--rounded
|
|
| Hamburger Collapse |
|
navbar-toggler__icon navbar-toggler--hamburger-collapse
navbar-toggler__icon navbar-toggler--hamburger-collapse navbar-toggler--rounded
|
|
| Döner |
|
navbar-toggler__icon navbar-toggler--doner
navbar-toggler__icon navbar-toggler--doner navbar-toggler--rounded
|
|
| Bento Fadeout |
|
navbar-toggler__icon navbar-toggler--bento-fadeout
navbar-toggler__icon navbar-toggler--bento-fadeout navbar-toggler--rounded
|
|
| Bento Turn |
|
navbar-toggler__icon navbar-toggler--bento-turn
navbar-toggler__icon navbar-toggler--bento-turn navbar-toggler--rounded
|
|
| Kebab |
|
navbar-toggler__icon navbar-toggler--kebab
navbar-toggler__icon navbar-toggler--kebab navbar-toggler--rounded
|
|
| Meatball |
|
navbar-toggler__icon navbar-toggler--meatball
navbar-toggler__icon navbar-toggler--meatball navbar-toggler--rounded
|
|
| Vergrößert |
|
navbar-toggler__icon navbar-toggler--hamburger-default scale-4
navbar-toggler__icon navbar-toggler--hamburger-default navbar-toggler--rounded scale-4
|
|
Ratios
Inputs
Badges
Single-choice
Multi-choice
Icons
Google Material Icons
You can add google material icons to the nova material fonts by providing the corresponsing svg. Material Icons
nova Material
<span class="nm nm-arrow_back_ios"></span>
<span class="nm nm-arrow_drop_down"></span>
<span class="nm nm-arrow_left"></span>
<span class="nm nm-arrow_long_down"></span>
<span class="nm nm-arrow_right"></span>
<span class="nm nm-call"></span>
<span class="nm nm-cancel"></span>
<span class="nm nm-check"></span>
<span class="nm nm-check_circle-fill"></span>
<span class="nm nm-check_circle"></span>
<span class="nm nm-check_thick"></span>
<span class="nm nm-chevron_left"></span>
<span class="nm nm-chevron_right"></span>
<span class="nm nm-close"></span>
<span class="nm nm-dots"></span>
<span class="nm nm-download"></span>
<span class="nm nm-download_2-fill"></span>
<span class="nm nm-expand_less"></span>
<span class="nm nm-expand_more"></span>
<span class="nm nm-fax"></span>
<span class="nm nm-format_quote"></span>
<span class="nm nm-fullscreen"></span>
<span class="nm nm-fullscreen_exit"></span>
<span class="nm nm-home"></span>
<span class="nm nm-info"></span>
<span class="nm nm-key-fill"></span>
<span class="nm nm-keyboard_double_arrow_down"></span>
<span class="nm nm-keyboard_double_arrow_left"></span>
<span class="nm nm-keyboard_double_arrow_right"></span>
<span class="nm nm-keyboard_double_arrow_up"></span>
<span class="nm nm-language"></span>
<span class="nm nm-local_activity"></span>
<span class="nm nm-mail"></span>
<span class="nm nm-more_vert"></span>
<span class="nm nm-pause-fill"></span>
<span class="nm nm-picture_in_picture_center"></span>
<span class="nm nm-play_arrow-fill"></span>
<span class="nm nm-play_circle"></span>
<span class="nm nm-public"></span>
<span class="nm nm-refresh"></span>
<span class="nm nm-search"></span>
<span class="nm nm-slow_motion_video-fill"></span>
<span class="nm nm-star-fill"></span>
<span class="nm nm-star"></span>
<span class="nm nm-star_half"></span>
<span class="nm nm-volume_down-fill"></span>
<span class="nm nm-volume_off-fill"></span>
<span class="nm nm-volume_up-fill"></span>
<span class="nm nm-volume_up"></span>
<span class="nm nm-facebook"></span>
<span class="nm nm-instagram"></span>
<span class="nm nm-linkedin"></span>
<span class="nm nm-pinterest"></span>
<span class="nm nm-quote"></span>
<span class="nm nm-tiktok"></span>
<span class="nm nm-whatsapp"></span>
<span class="nm nm-x"></span>
<span class="nm nm-xing"></span>
<span class="nm nm-youtube"></span>
Alerts
Alert ohne Schließen-Button
<div class="alert alert-success" role="alert">
Text text text
</div>
Alert mit Schließen-Button
<div class="alert alert-success alert-dismissible fade show" role="alert">
Text text text
<button type="button" class="btn-reset alert-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
Alert mit Icon
<div class="alert alert-success d-flex align-items-center" role="alert">
<span class="nm nm-check_circle icon-align-top icon-size-lg me-2"></span>
Text text text
<button type="button" class="btn-reset alert-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
Alert mit Weiten-Einstellung
<div class="alert alert-info alert-dismissible w-75" role="alert">
Text text text
<button type="button" class="btn-reset alert-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
Cards
Referenz: Bootstrap 5.2 CardsCard title
Some quick example text to build on the card title and make up the bulk of the card's content.
Progress bar
<div class="progress"><div class="progress-bar rounded-end-2xl" role="progressbar" aria-label="label" style="width: 25%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">25%</div></div>
<div class="progress"><div class="progress-bar rounded-end-2xl" role="progressbar" aria-label="label" style="width: 75%;" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100">75%</div></div>
Tooltips
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Tooltip on top">
Tooltip on top</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Tooltip on bottom">
Tooltip on bottom</button>
Popovers
<button type="button" class="btn btn-secondary" data-bs-toggle="popover" data-bs-title="Popover title" data-bs-content="And heres some amazing content. Its very engaging. Right?">Click to toggle popover</button>
Checks-Radios
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="flexCheckChecked" checked>
<label class="form-check-label" for="flexCheckChecked">
Checked checkbox
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault2" checked>
<label class="form-check-label" for="flexRadioDefault2">
Default checked radio
</label>
</div>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="flexSwitchCheckDefault">
<label class="form-check-label" for="flexSwitchCheckDefault">Default switch checkbox input</label>
</div>
Slider
Slider Arrows
Slider Bullets
Pagination
Short
First
Last
Middle
Ajax Query Handler
Ajax Filter
^ array:12 [ "filters" => array:3 [ 0 => App\Ajax\Filters\PostCategoryFilter {#1327 +name: "category" +label: "Kategorien" +input: "select" +multiple: true #taxonomy: "category" #operator: "IN" #getTermsArgs: [] } 1 => App\Ajax\Filters\PostTagFilter {#1328 +name: "tag" +label: "Tags" +input: "checkbox" +multiple: true #taxonomy: "post_tag" #operator: "IN" #getTermsArgs: [] } 2 => App\Ajax\Filters\SearchFilter {#1329 +name: "search" +label: "Suchen" +input: "text" +multiple: false } ] "sort" => array:2 [ 0 => App\Ajax\SortOrder\TitleSortOrder {#1330 +name: "title-asc" +label: "Titel aufsteigend" +orderby: "title" +order: "ASC" } 1 => App\Ajax\SortOrder\TitleSortOrder {#1331 +name: "title-desc" +label: "Titel absteigend" +orderby: "title" +order: "DESC" } ] "pagination" => false "masonry" => false "layout" => "grid" "empty-message" => "Keine Einträge gefunden" "history" => true "loadOnScroll" => false "query-args" => null "template" => "ajax.items.post-card" "skeleton" => "ajax.skeleton.post-card" "query" => array:3 [ "post_status" => "publish" "post_type" => "post" "posts_per_page" => 2 ] ]
„GlassWorm“: Unsichtbare Malware infiziert Entwickler-Tools
Eine raffinierte Schadsoftware namens „GlassWorm“ verbreitet sich über Erweiterungen für den Code-Editor Visual Studio Code (VS Code) auf dem Open VSX-Marktplatz. Die Malware nutzt extensionpacks, um zunächst eigenständig wirkende Erweiterungen in späteren Updates umzuwandeln. Der Vorfall Sicherheitsforscher haben eine massive Kampagne identifiziert, bei der mindestens 72 bösartige Erweiterungen auf dem
Adobe-Patchday schließt kritische Schwachstellen
Auch Adobe hat im Januar-Patchday mehrere sicherheitskritische Schwachstellen in seinen Produkten behoben. Besonders problematisch ist eine kritische Sicherheitslücke in Adobe ColdFusion, die eine vollständige Systemübernahme ermöglichen kann. Kritische Schwachstelle in Adobe ColdFusion Die gravierendste Lücke betrifft Adobe ColdFusion und erlaubt eine sogenannte Remote Code Execution (RCE). Angreifer können dabei eigenen
Ajax Pagination
^ array:12 [ "filters" => array:1 [ 0 => App\Ajax\Filters\PostCategoryBadgeFilter {#1335 +name: "category" +label: "Kategorien" +input: "badge" +multiple: true #taxonomy: "category" #operator: "IN" #getTermsArgs: [] } ] "sort" => [] "pagination" => true "masonry" => false "layout" => "grid" "empty-message" => "Keine Einträge gefunden" "history" => true "loadOnScroll" => false "query-args" => null "template" => "ajax.items.post-card" "skeleton" => "ajax.skeleton.post-card" "query" => array:3 [ "post_status" => "publish" "post_type" => "post" "posts_per_page" => 2 ] ]
Das sind die Gefahren kostenloser Streams
Die Formel 1 Saison hat begonnen und die Fußball-Weltmeisterschaft steht vor der Tür. Damit einher gehen mehr Suchanfragen nach "kostenlosen Streams" – Sicherheitsforscher warnen vor den Gefahren und zeigen, dass vermeintlich kostenlose Streaming-Websites auch monetären Zwecken dienen. Einzelne Streams sind nur über Plattformen zu erreichen Sicherheitsexperten von Bitdefender haben populäre
Datenpanne bei Basic-Fit: Bankdaten von rund einer Million Mitglieder abgeflossen
Europas größte Fitnesskette Basic-Fit hat am 13. April 2026 offiziell bestätigt, dass Angreifer sich unbefugt Zugang zu einem internen System verschafft haben. Betroffen sind Mitgliederdaten aus sechs Ländern: Deutschland, Niederlande, Belgien, Luxemburg, Frankreich und Spanien. Die Gesamtzahl der betroffenen Mitglieder liegt bei rund einer Million, davon allein etwa 200.000 in
Ajax Masonry
^ array:12 [ "filters" => [] "sort" => [] "pagination" => false "masonry" => true "layout" => "grid" "empty-message" => "Keine Einträge gefunden" "history" => true "loadOnScroll" => 6 "query-args" => null "template" => "ajax.items.masonry-card" "skeleton" => "ajax.skeleton.post-card" "query" => array:3 [ "post_status" => "publish" "post_type" => "post" "posts_per_page" => 2 ] ]
Das sind die Gefahren kostenloser Streams
Die Formel 1 Saison hat begonnen und die Fußball-Weltmeisterschaft steht vor der Tür. Damit einher gehen mehr Suchanfragen nach "kostenlosen Streams" – Sicherheitsforscher warnen vor den Gefahren und zeigen, dass vermeintlich kostenlose Streaming-Websites auch monetären Zwecken dienen. Einzelne Streams sind nur über Plattformen zu erreichen Sicherheitsexperten von Bitdefender haben populäre
Datenpanne bei Basic-Fit: Bankdaten von rund einer Million Mitglieder abgeflossen
Europas größte Fitnesskette Basic-Fit hat am 13. April 2026 offiziell bestätigt, dass Angreifer sich unbefugt Zugang zu einem internen System verschafft haben. Betroffen sind Mitgliederdaten aus sechs Ländern: Deutschland, Niederlande, Belgien, Luxemburg, Frankreich und Spanien. Die Gesamtzahl der betroffenen Mitglieder liegt bei rund einer Million, davon allein etwa 200.000 in