Einleitung
Grundprinzipien
Mobile First!
Alle Applikationen werden mit einem klaren und prioritären Fokus auf mobile Endgeräte entwickelt. Mobile Anwender dürfen nicht um Features und Funktionen beraubt werden, die Desktop Anwendern zur Verfügung stehen. Weiters sollen Webseiten schlank und kompakt bleiben, um auch bei schlechtem Mobilfunk-Empfang schnell zu laden. Statische Assets wie Icons, CSS und Bilder müssen clientseitig gecached werden können.
Gracefull Degradation
Der ÖAMTC Style
soll 95% des aktuellen Browsermarktes zu bedienen. Ältere Browser werden nicht aktiv ausgeschlossen, doch kriegen
sie nicht dieselbe User-Experience wie auf modernen Browsern. Rein optische Spielereien wie position:sticky bleiben modernen Browsern vorbehalten.
Für notwendigen Layout-Befehle wie display:grid müssen Polyfills verwendet werden.
Komposition an Stelle von Vererbung
Komposition an Stelle von Vererbung (engl. composition over inheritance oder composite reuse principle) ist eine Technik im Softwareentwurf. Durch dieses Prinzip werden Klassen entkoppelt, was zu flexibleren und stabileren Entwürfen führt. So ist es möglich, zur Laufzeit das Verhalten einer Klasse zu verändern.
Visualisierung von Interaktivität
"Wenn man es klicken kann, soll man das sehen". Interaktive und klickbare Elemente müssen mit entsprechenden Hover-Stati versehen sein um dem Nutzer klar zu visualisieren, dass es sich um ein interaktives Seiten-Element handelt.
Accessibility
Auch Menschen mit körperlichen und geistigen Beeinträchtigungen sollen die Seiten des ÖAMTC barrierefrei bedienen können. Dazu ist es nötig die Regeln der WAI einzuhalten. Die verwending von Aria-Tags und Schema.org-Auszeichnungen für komplexe interaktive Controls müssen verwendet werden.
Los geht's
Verwendung
Der ÖAMTC Style kann über einen globalen Pfad eingebunden werden
<link rel="https://assets.oeamtc.at/css/main-latest.min.css">
Die letzten 3 Versionen stehen ebenfalls weiterhin zur Verfügung
<link rel="https://assets.oeamtc.at/css/main-3-2-1.min.css">
Responsive meta tag
Der ÖAMTC Style basiert auf dem Prinzip "mobile first". Nach diesem Prinzip werden Seiten zuerst für mobile Endgeräte entwickelt,
und anschließend für größere Bildschirme hochskaliert. Dabei kommen CSS Media Querys für bestimmte Endgerät-agnostische Breakpoints
zum Einsatz. Um diesen Anspruch zu erfüllen, ist es notwendig ein responsives viewport-meta-Tag in den <head>
der Seite zu setzen.
<meta name="viewport" content="
width=device-width,
initial-scale=1,
shrink-to-fit=no" />
HTML5 doctype
ÖAMTC Style setzt einen HTML5 doctype voraus. Ohne diesen kann es zu optischen Inkosistenzen und Layout-brüchen kommen
<!doctype html>
<html lang="en">
...
</html>
Responsive meta tag
ÖAMTC Style basiert auf dem Prinzip "mobile first". Nach diesem Prinzip werden Seiten zuerst für mobile Endgeräte entwickelt,
und anschließend für größere Bildschirme hochskaliert. Dabei kommen CSS Media Querys für bestimmte Endgerät-agnostische Breakpoints
zum Einsatz. Um diesen Anspruch zu erfüllen, ist es notwendig ein responsives viewport-meta-Tag in den <head>
der Seite zu setzen.
<meta name="viewport" content="
width=device-width,
initial-scale=1,
shrink-to-fit=no" />
Box-sizing
Zur einfacheren Handhabe von Größen und Abständen wird das globale box-sizing-Modell von "content-box" auf "border-box" gesetzt. Dadurch wird sichergestellt, dass gesetzte paddings nicht die Gesamtbreite eines Elementes beeinflussen.
Falls doch einmal das alte Box-Modell benötigt wird, kann es für bestimmte Klassen bewusst überschrieben werden:
.oeamtc-box__element--modifier {
box-sizing: content-box;
};
Responsive breakpoints
Da der ÖAMTC Style für "mobile first"-Anwendungen konzipiert ist, greift es auf eine Handvoll Media-Querys für kritische Breakpoints zurück. Diese Breakpoints basieren auf den minimum viewport widths gängiger Endgeräte
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }
// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { ... }
// Large devices (desktops, 992px and up)
@media (min-width: 992px) { ... }
// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }
Abmessungen
Alle absoluten Höhen, Breiten, und Abstände werden in der Einheit "rem" angegeben. REM beziegt sich auf die Font-Größe des :root-Elements, in diesem Fall 16px. Alle Maße sind somit ein Vielfaches von 16. Will man beispielsweise einen Abstand von 20 Pixel setzen, so ist ein Wert von 1.25rem zu verwenden.
.oeamtc-box__padding { padding: 1.25rem }
CSS BEM
BEM steht für "Block - Element - Modifier", und ist eine Naming-Convention für lesbaren und modularen CSS-Code. Über BEM
Block
Ein Block kapselt eine alleinstehende Entität, die für sich selbst bedeutend ist (z.B. einen Button). Blöcke können geschachtelt und kombiniert werden.
<button class="button" />
Element
Teile eines Blockes ohne eigenständige Bedeutung werden in Elemente eines Blocks gruppiert. (z.B. das Icon eines Buttons) Element-Klassen enthalten den Namen des Eltern-Blockes, sowie den Namen des Elementes durch doppelte Unterstriche "__" voneinander abgetrennt.
<span class="button__icon"><span>
Modifier
Modifier werden als Flags, Attribute oder Eigenschaften an Blöcke oder Elemente angehängt. (z.B. ein roter Button). Modifier werden durch doppelte Bindestriche "--" von Blöcken oder Elementen abgetrennt.
<button class="button button--red" />
Globaler Namespace
Um nicht mit anderen CSS Frameworks oder injizierten Klassen zu konfliktieren, verwendet der ÖAMTC Style zusätzlich einen globalen Namespace. Alle Block-Elemente werden dabei zusätzlich mit dem Prefic "oamtc-" ausgestattet:
<button class="oeamtc-button" />
Umsetzung
Farben
ÖAMTC-Gelb
HEX: #FFDC00
RGB: 255,220,0
HSB: 52,100,100
ÖAMTC-Grün
HEX: #62B339
RGB: 98,179,57
HSB: 100,68,70
ÖAMTC-Rot
HEX: #DA2032
RGB: 218,32,50
HSB: 354,85,85
ÖAMTC-Blau
HEX: #0071BB
RGB: 0,113,187
HSB: 204,100,73
Hellgrau
HEX: #F6F6F6
RGB: 246,246,246
HSB: 0,0,96
Grau
HEX: #C8BFC7
RGB: 200,191,199
HSB: 307,4,78
Grau2
HEX: #8D99AE
RGB: 141,153,174
HSB: 218,17,62
Dunkelgrau
HEX: #2B2D42
RGB: 43,45,66
HSB: 235,21,21
Typografie
Font-Stack
Der ÖAMTC Style verwendet einen Font-Stack für
alle Fließtexte. Grundsätzlich kommt auf allen Geräten, die @font-face unterstützen die ÖAMTC CI-Schrift Franklin Gothic URW
zum Einsatz. iOS-Geräte verwenden als Fallback die Apple-Systemfont, Android-Geräte Roboto, und Desktop-Systeme Helvetica, Arial, sans-serif.
Die allgemeine Schriftgröße ist auf 16px mit einem Zeilenabstand von 1.5 festgelegt. Gestalterische Breiten, Höhen und Abstände werden in root-relativen
Werten angegeben (Einheit: REM). Der Font-Stack wird zentral über das Body-Tag einer Seite festgelet, und an alle Kindelemente vererbt. Er sollte nur in
Ausnahmesituationen überschrieben werden (Beispiel: Code-Blöcke)
@font-face {
font-family: "FranklinGothic";
src:
local("FranklinGothicURWDem"),
url("../fonts/FranklinGothicURW-Dem.woff") format("woff"),
url("../fonts/FranklinGothicURW-Dem.woff2") format("woff2");
font-weight: bold;
font-display: swap;
unicode-range: U+000-5FF; /* Latin-1 */
}
@font-face {
font-family: "FranklinGothic";
src:
local("FranklinGothicURWBoo"),
url("../fonts/FranklinGothicURW-Boo.woff2") format("woff2"),
url("../fonts/FranklinGothicURW-Boo.woff") format("woff");
font-weight: normal;
font-display: swap;
unicode-range: U+000-5FF; /* Latin-1 */
}
.oeamtc {
font-family:
FranklinGothic,
-apple-system,
BlinkMacSystemFont,
Roboto,
Arial,
Helvetica,
sans-serif;
}
Franklin Gothic URW
Die Hausschrift des ÖAMTC ist Franklin Gothic URW. Sie kommt auch im Web zum Einsatz.
Franklin Gothic URW Book (Lauftext)
The Quick Brown Fox Jumps Over The Lazy DogFranklin Gothic URW Medium (Buttons)
The Quick Brown Fox Jumps Over The Lazy DogFranklin Gothic URW Demi (Headlines)
The Quick Brown Fox Jumps Over The Lazy DogSeitenlayout
Alle ÖAMTC Seiten werden in einem dynamischen Seitenraster entworfen, dessen zentrales Element der Content-Bereich ist.
Header
Der ÖAMTC Header beherbergt das zur Startseite verlinkte ÖAMTC Logo (Wortmarke), die Haupt-Navigation, die Suche, den Login-Bereich sowie einen Link "Zurück zum Seitenanfang". Abhängig von der Größe des Browserfensters, der Scrolltiefe des Users oder der Art der Applikation das Logo wahlweise groß überhalb der Navigation, oder klein Links von der Navigation angezeigt. Die Navigation ist abhängig von der Größe des Browserfensters entweder horizontal offen, oder vertikal hinter einem Burger-Button aufrufbar. Im Horizontalen bietet die Navigation als zusätzliche Informationsebene Flyouts an.
Mittiges Layout
Mittige Layouts kommen auf Seiten zum Einsatz, welche für sich als Werbung für ein Produkt oder einen Service stehen. (z.B. "Mitgliedschaft", oer "Reisen"). Zweck des Mittigen Layouts ist es, den Fokus des Nutzers zu zentrieren, um Abschlüsse zu generieren
<main class="oeamtc-main oeamtc-main--center">
<section class="oeamtc-main__content oeamtc-main__content--up">
...
</section>
</main>
Artikel Layout
Artikel-Layouts werden, wie der Name schon sagt, zur Darstellung von redaktionellem Content verwendet. Der Content-Bereich hängt leicht Links, um rechts platz für 300 Pixel breite Werbeformen zu gewähren.
<main class="oeamtc-main">
<section class="oeamtc-main__content oeamtc-section">
<div class="oeamtc-section__label">
<a name="section1" class="oeamtc-section__target">></a>Section Label
<div>
<div>...</div>
<div class="oeamtc-banner"></div>
</section>
</main>
Seiten-Navigation Layout
Layouts mit Seitennavigation kommen bei Applikationen wie dem Routenplaner oder Mein ÖAMTC zum Einsatz
<main class="oeamtc-main oeamtc-main--leftnav">
<nav class="oeamtc-sidenav">...<nav>
<div class="oeamtc-main__content">...<div>
</main>
Bildmarke und Wortbildmarke
Wortmarke
Die Wortmarke des ÖAMTC kann als Inline-Quelltext oder Image-Tag in einer Mindestgröße von 35 x 10 Pixel gesetzt werden. Alle vielfachen Multiplikatoren (70x20,140x40,350x100...) haben pixelbündige Kanten. Folgende Farbvarianten sind legitim:
<svg viewBox="0 0 35 10" height="80">
<use href="#oeamtc-wortmarke" />
</svg>
Marken- und Produktname
Die Wortmarke kann in Kombination mit einem Produktnamen in Franklin Gothic Demi verwendet werden.
<p class="oeamtc-brand oeamtc-paragraph">
<svg class="oeamtc-brand__wortmarke" viewBox="0 0 35 10">
<use href="#oeamtc-wortmarke" />
</svg>
<span class="oeamtc-brand__name oeamtc-color--green">Clubkarte
</p>
Auch eine Kombination aus Bildmarke, Wortmarke und Produktname ist möglich.
<p class="oeamtc-brand oeamtc-paragraph" style="font-size: 5vmin">
<svg class="oeamtc-brand__bildmarke" viewBox="0 0 40 40">
<rect stroke="black"
stroke-width=".5"
fill="transparent"
x="1" y="1" rx="5"
width="38" height="38"
/>
<use href="#oeamtc-bildmarke" />
</svg>
<svg class="oeamtc-brand__wortmarke"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 35 10"
height="1em">
<use href="#oeamtc-wortmarke" />
</svg>
<span class="oeamtc-brand__name">Produktname</span>
</p>
Bildmarke
Die Bildmarke des ÖAMTC kommt immer dann zum Einsatz, wenn der verfügbare Platz quadratisch ist, und die Wortmarke dadurch schlecht lesbar wäre. Beispielweise als (Fav-)Icon. Die Bildmarke besteht aus einer Fläche mit abgerundeten Ecken, einem Wappen und optional einer Trennlinie. Die Bildmarke ist für die Darstellung auf Bildschirmen in einer Mindestgröße von 40 x 40 Pixel optimiert. Im Gegensatz zur Print-Variante werden weniger Linien im Brustwappen des Adlers verwendet, um Moiré- und Unschärfe-Effekte zu vermeiden.
Hat der Hintergrund dieselbe Farbe, wie die Bildmarke, ist eine Trennlinie in der Farbe des Wappens zu verwenden. Die Trennlinie hat dieselbe Dicke wie der Kreis um das Adler-Wappen (1,875% der Seitenlänge, bei 160px Seitenbreite = 3px), und wird vom Außenrand nach Innen abgezogen. Ausnahme: Auf gelbem Grund ist eine weiße Trennlinie zu setzen:
<svg viewBox="0 0 40 40" width="160">
<rect fill="#FFDC00" x="1" y="1" rx="5" width="38" height="38" />
<use href="#oeamtc-bildmarke" />
</svg>
Icons
Zentrale SVG-Map
Icons werden im ÖAMTC Style unter einer zentralen Ressource bereit gestellt. Dabei handelt es sich um eine SVG-Map
mit Symbolen, welche über das SVG-Element <use href="..." /> mit ihrer eindeutigen ID
referenziert werden können. Alle Icons sind auf 16 x 16 Pixel optimiert, und werden auf hochauflösenden Bildschirmen
automatisch schärfer aufgelöst. Das Icon oeamtc-icon__heart kann beispielsweise wie folgt eingebunden werden:
<svg>
<use href="{path-to}icons.svg#oeamtc-icon__heart"/>
</svg>
Über das use-tag können Icons auch skaliert und eingefärbt werden. Eine vollständige Liste aller Icons kann unter folgendem Link eingesehen werden:
Icon-Variationen
Listen und Tabellen
3-Spaltige Liste
- Listen Eintrag
- Verlinkter Listen Eintrag
- Listen Eintrag
- Listen Eintrag
- Listen Eintrag
- Lorem ipsum dolor sit amet, consetetur sadipscing elitr
<li class="oeamtc-list__item">Listen Eintrag</li>
Liste mit check-bullets
- Listen Eintrag
- Listen Eintrag
- Listen Eintrag
<li class="oeamtc-list__item oeamtc-list__item--check">Listen Eintrag</li>
4-Spaltige Tabelle
| Spalte 1 | Spalte 2 | Spalte 3 | Spalte 4 |
|---|---|---|---|
| In einem wundervollen Land | vor gar nicht allzulanger Zeit | war eine Biene sehr bekannt | von der sprach alles Weit und Breit |
| und diese Biene | die ich meine | nennt sich Maja | kleine, freche schaue |
| Biene Maja | Maja fliegt durch ihre Welt | Zeigt uns das was ihr gefällt |
<div class="oeamtc-table">
<div class="oeamtc-table__row">
<a class="oeamtc-table__cell oeamtc-table__cell--header oeamtc-table__cell--sort">Spalte 1</a>
<a class="oeamtc-table__cell oeamtc-table__cell--header oeamtc-table__cell--sort">Spalte 2</a>
<a class="oeamtc-table__cell oeamtc-table__cell--header">Spalte 3</a>
<a class="oeamtc-table__cell oeamtc-table__cell--header">Spalte 4</a>
</div>
<div class="oeamtc-table__row oeamtc-table__row--body">
<div class="oeamtc-table__cell">In einem wundervollen Land</div>
<div class="oeamtc-table__cell">vor gar nicht allzulanger Zeit</div>
<div class="oeamtc-table__cell">war eine Biene sehr bekannt</div>
<div class="oeamtc-table__cell">von der sprach alles Weit und Breit</div>
</div>
</div>
Formular-Elemente
Bilder
© 2020 ÖAMTC
© 2020 ÖAMTC
<figure>-Tag mit Captions und Copyright-Tags ausgestattet werden.
Über die Suffixe --left und --right können
Bilder im Fließlext links- respektive rechtsbündig ausgerichtet werden.
© 2020 ÖAMTC
<figure class="oeamtc-image">
<div class="oeamtc-image__frame">
<img
width="100% "
src="https://picsum.photos/600/390?random=4"
alt="Lamborghini"
/>
<span class="oeamtc-image__copyright">© 2020 ÖAMTC</span>
</div>
<figcaption class="oeamtc-image__caption">Bild-Caption</figcaption>