ÖAMTC Digital Styleguide

Ein Leitfaden für Designer, Entwickler und Content-Schaffende zum korrekten Einsatz des ÖAMTC CD im digitalen Umfeld

ÖAMTC - Wir sind bereit!
© ÖAMTC

Einleitung

Grundprinzipien

Die Heterogenität der Applikations-Landschaft des ÖAMTC macht eine einheitliche und zentral standardisierte Herangehensweise an Layout und Gestaltung unabdingbar. Inspiriert durch modulare Frontend-Bibliotheken wie Bootstrap hat der ÖAMTC sein eigenes CSS-Framework geschaffen, um Entwicklern und Dienstleistern ein flexibles und einfaches Werkzeug zur Hand zu geben, mit dem Sie neue ÖAMTC Applikationen gestalten können.

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 Dog

Franklin Gothic URW Medium (Buttons)

The Quick Brown Fox Jumps Over The Lazy Dog

Franklin Gothic URW Demi (Headlines)

The Quick Brown Fox Jumps Over The Lazy Dog

Seitenlayout

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

Seiten-Überschrift
<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.

Seiten-Überschrift Label Section Headline Label Section Headline
<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

Seiten-Überschrift Section Headline
<main class="oeamtc-main oeamtc-main--leftnav">
	<nav class="oeamtc-sidenav">...<nav>
	<div class="oeamtc-main__content">...<div>
</main>

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.

Reisen

Shop

Clubkarte

<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.

Produktname

<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:

Zum Icon-Cheatsheet

Icon-Variationen

  Inline-Icon

  Rundes Icon

  Eckiges Icon

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

<input class="oeamtc-form__input" type="text" />
<select class="oeamtc-form__input oeamtc-form__input--select">
	<option value selected disabled>---</option>
	<optgroup label="Kategorie">
		<option value="1">Unterategorie 1</option>
		<option value="2">Unterategorie 2</option>
		<option value="3">Unterategorie 3</option>
	</optgroup>
	<option value="5">Kategorie 2</option>
	<option value="6">Kategorie 3</option>
	<option value="7">Kategorie 4</option>
	<option value="41">Sonstige</option>
</select>
%
<div class="oeamtc-form__value">
	<input class="oeamtc-form__input" />
	<span class="oeamtc-form__unit">%</span>
</div>
<input class="oeamtc-form__input" type="tel" />
<div class="oeamtc-flex">
	<input class="oeamtc-flex__item oeamtc-form__input" type="text" />
	<input class="oeamtc-flex__item oeamtc-form__input" type="text" />
</div>
<input class="oeamtc-form__input" type="tel" disabled />
<textarea	class="oeamtc-form__input"><textarea>
<input class="oeamtc-form__choice oeamtc-form__choice--check"
	type="checkbox"
	checked />
<label><span>Text associated with the checkbox</span></label>
<input type="radio" class="oeamtc-form__choice oeamtc-form__choice--radio" />
<label><span>Text associated with the radiobutton</span></label>
<input class="oeamtc-form__choice oeamtc-form__choice--switch"
	type="checkbox" />
<label for="switch">Text associated with the switch</label>
<button class="oeamtc-btn oeamtc-btn--red">Löschen</button>
<button class="oeamtc-btn oeamtc-btn--green">Speichern</button>

Bilder

Lamborghini © 2020 ÖAMTC
Bild-Caption die über mehr als eine Zeile reicht
Ferrari © 2020 ÖAMTC
Bild-Caption
Bilder können mittels <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.
Maserati © 2020 ÖAMTC
Bild-Caption
<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>

Modalboxen

Zeilen-Teaser

Tab-Reiter

Bild-Teaser