Beim Design der wien.gv.at Pattern-Library haben wir stark auf die Prinzipien
"Content-First"
und
"Progressive-Enhancement"
gesetzt. JavaScript ist, bis auf wenige Ausnahmen, keine Voraussetzung für die Darstellung von Inhalten. Es dient
lediglich zur Erweiterung der Kernfunktionalität.
Das lässt sich sehr gut anhand des Patterns
"Anker"
zeigen: Die Basis ist eine einfache Überschrift.
<h2>Trinkbrunnen</h2>
Um die Funktionalität der Überschrift zu erweitern, können Sie sie in dem
wm-anchor-Element schachteln.
<wm-anchor><h2>Trinkbrunnen</h2></wm-anchor>
Dabei passieren 2 grundlegende Dinge:
Aus dem Text der Überschrift wird eine maschinenlesbare ID erzeugt und als
id-Attribut an das Element gehängt.
In das Shadow-DOM des Elements wird ein Link hinzugefügt, der zu dem Anker führt und bei Click automatisch die URL
kopiert.
Der im Browser interpretierte Code sieht dann so aus:
Sollte JavaScript deaktiviert sein oder aus einem sonstigen Grund nicht funktionieren, wird trotzdem immer noch die
Überschrift angezeigt.
Pattern-Dokumentation
Jedes Pattern kommt mit einer eigenen Seite, auf der es in den meisten Fällen eine Beschreibung, Anwendungsbeispiele
mit Vorschau und Code-Ansicht und Spezifikation gibt. Diese sind in folgende Reiter aufgeteilt (Beispiel
"Akkordeon"
):
Reiter "Varianten"
Der Varianten-Tab zeigt gängige Variationen und Best Practices des Patterns. Er bietet eine Code-Ansicht, die die
Implementierung der jeweiligen Variante verdeutlicht. Zusätzlich können Sie hier verschiedene Kombinationen und
Einsatzmöglichkeiten der Patterns sehen.
Beispiel Akkordeon:
Ein bestimmtes Element ist geöffnet
Vorschau
Einzelförderung
Einreichtermine:
1. bis 30. April: für Vorhaben mit Beginn zwischen Juli und Dezember des laufenden Jahres
<wm-accordionopen="2"> <wm-accordion-heading> <h3data-nav="false">Einzelförderung</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: <ul> <li>1. bis 30. April: für Vorhaben mit Beginn zwischen Juli und Dezember des laufenden Jahres</li> <li>1. bis 31. Oktober: für Vorhaben im Folgejahr</li> </ul> </li> <li>Richtlinien: <ahref="#">Bildende Kunst und Medienkunst - Förderrichtlinien</a> </li> <li>Antrag: <ahref="#">Einzel- und Gesamtförderung im Bereich Bildende Kunst und Medienkunst - Antrag</a> </li> </ul> </wm-list> </wm-accordion-content> <wm-accordion-heading> <h3data-nav="false">Gesamtförderung</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: <ul> <li>1. bis 31. Oktober: für Vorhaben im Folgejahr</li> </ul> </li> <li>Richtlinien: <ahref="#">Bildende Kunst und Medienkunst - Förderrichtlinien</a> </li> <li>Antrag: <ahref="#">Einzel- und Gesamtförderung im Bereich Bildende Kunst und Medienkunst - Antrag</a> </li> </ul> </wm-list> </wm-accordion-content> <wm-accordion-heading> <h3data-nav="false">Kunstankauf</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: 1. bis 31. Jänner</li> <li>Richtlinien: <ahref="#">Kunstankauf - Richtlinien</a> </li> <li>Antrag: <ahref="#">Ankauf von Kunstwerken - Förderantrag</a> </li> </ul> </wm-list> </wm-accordion-content> <wm-accordion-heading> <h3data-nav="false">Arbeitsstipendium</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: 1. bis 30. Juni</li> <li>Richtlinien: <ahref="#">Arbeitsstipendium Bildende Kunst und Medienkunst - Richtlinien</a> </li> <li>Antrag: <ahref="#">Arbeitsstipendium Bildende Kunst und Medienkunst - Förderantrag</a> </li> </ul> </wm-list> </wm-accordion-content> <wm-accordion-heading> <h3data-nav="false">Start-Atelier</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: Derzeit sind keine Einreichungen möglich.</li> <li>Richtlinien: <ahref="#">Bewerbung um ein START-Atelier - Richtlinien</a> </li> <li>Antrag: <ahref="#">Bewerbung um ein START-Atelier - Förderantrag</a> </li> <li>Abrechnung: Keine Abrechnung erforderlich</li> </ul> </wm-list> </wm-accordion-content> </wm-accordion>
Reiter "Dev"
Der Dev-Reiter bietet zusätzliche Beispiele, die besonders für Entwickler*innen relevant sind. Hier werden Anwendungen
von Attributen, Kombinationen mit anderen Patterns sowie der Einsatz von Events und Methoden demonstriert.
Viele Patterns bieten innerhalb dieses Reiters eine interaktive Demo, in der Sie die wichtigsten Attribute ausprobieren
und deren Auswirkungen direkt sehen können.
Beispiel Akkordeon:
Events
Vorschau
Einzelförderung
Einreichtermine:
1. bis 30. April: für Vorhaben mit Beginn zwischen Juli und Dezember des laufenden Jahres
<wm-accordionclass="events"> <wm-accordion-heading> <h3data-nav="false">Einzelförderung</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: <ul> <li>1. bis 30. April: für Vorhaben mit Beginn zwischen Juli und Dezember des laufenden Jahres</li> <li>1. bis 31. Oktober: für Vorhaben im Folgejahr</li> </ul> </li> <li>Richtlinien: <ahref="#">Bildende Kunst und Medienkunst - Förderrichtlinien</a> </li> <li>Antrag: <ahref="#">Einzel- und Gesamtförderung im Bereich Bildende Kunst und Medienkunst - Antrag</a> </li> </ul> </wm-list> </wm-accordion-content> <wm-accordion-heading> <h3data-nav="false">Gesamtförderung</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: <ul> <li>1. bis 31. Oktober: für Vorhaben im Folgejahr</li> </ul> </li> <li>Richtlinien: <ahref="#">Bildende Kunst und Medienkunst - Förderrichtlinien</a> </li> <li>Antrag: <ahref="#">Einzel- und Gesamtförderung im Bereich Bildende Kunst und Medienkunst - Antrag</a> </li> </ul> </wm-list> </wm-accordion-content> <wm-accordion-heading> <h3data-nav="false">Kunstankauf</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: 1. bis 31. Jänner</li> <li>Richtlinien: <ahref="#">Kunstankauf - Richtlinien</a> </li> <li>Antrag: <ahref="#">Ankauf von Kunstwerken - Förderantrag</a> </li> </ul> </wm-list> </wm-accordion-content> <wm-accordion-heading> <h3data-nav="false">Arbeitsstipendium</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: 1. bis 30. Juni</li> <li>Richtlinien: <ahref="#">Arbeitsstipendium Bildende Kunst und Medienkunst - Richtlinien</a> </li> <li>Antrag: <ahref="#">Arbeitsstipendium Bildende Kunst und Medienkunst - Förderantrag</a> </li> </ul> </wm-list> </wm-accordion-content> <wm-accordion-heading> <h3data-nav="false">Start-Atelier</h3> </wm-accordion-heading> <wm-accordion-content> <wm-listgap="xxs"> <ul> <li>Einreichtermine: Derzeit sind keine Einreichungen möglich.</li> <li>Richtlinien: <ahref="#">Bewerbung um ein START-Atelier - Richtlinien</a> </li> <li>Antrag: <ahref="#">Bewerbung um ein START-Atelier - Förderantrag</a> </li> <li>Abrechnung: Keine Abrechnung erforderlich</li> </ul> </wm-list> </wm-accordion-content> </wm-accordion> <divclass="events-output"role="status"></div> <script> const events = document.querySelector(".events"); const output = document.querySelector(".events-output"); events.addEventListener("wm-collapsed",(e)=>{ output.innerText =`Event: ${ e.type } ID: ${ e.detail.id } Index: ${ e.detail.index }`; }); events.addEventListener("wm-expanded",(e)=>{ output.innerText =`Event: ${ e.type } ID: ${ e.detail.id } Index: ${ e.detail.index }`; }); </script>
Reiter "API"
Je nach Komplexität des Patterns verfügt es über mehr oder weniger Möglichkeiten, angepasst zu werden. Im Reiter "API"
sind diese dokumentiert und wie folgt aufgeteilt:
Eigenschaften
Hier werden alle Attribute inklusive Kurzbeschreibung, Typ und Default-Wert der Web-Component aufgelistet.
Beispiel Akkordeon:
Eigenschaften
Eigenschaft
Beschreibung
Werte
Default
open
Nummer des zu öffnenden Panels angeben, beginnend bei eins (1). Es kann nur ein Wert übergeben werden.
Number
leer
single
Attribut angeben, damit immer nur ein Panel gleichzeitig geöffnet wird (übertrumpft expanded).
Boolean
false
expanded
Alle geöffnet anzeigen.
Boolean
false
Die Eigenschaft
open
erwartet einen numerischen Wert und die Eigenschaft
single
gar keinen, weil es ein boolsches Attribut ist.
<wm-accordionsingleopen="1">
…
</wm-accordion>
Slots
Mehr Infos Für das Pattern "Akkordeon" gibt es einen Slot, mit dem Inhalte übergeben werden.
Beispiel Akkordeon:
Name
Beschreibung
default
Nimmt Paare von wm-accordion-heading und wm-accordion-content Elementen auf
<wm-accordionsingleopen="1"><wm-accordion-heading><h3>
Ist eine Mitgliedschaft beim Vorteilsclub der Stadt Wien mit Kosten verbunden?
</h3></wm-accordion-heading><wm-accordion-content><p>Nein. Die Mitgliedschaft im Vorteilsclub der Stadt Wien ist absolut kostenlos und ohne Bindung.</p></wm-accordion-content></wm-accordion>
Ein Pattern kann auch über mehrere benannte Slots verfügen. Beispiel
wm-card:
<wm-cardsize="m"blocklink><h3slot="heading">
Überschrift
</h3><divslot="precontent"><wm-chipcolor="flieder"size="s">Kategorie</wm-chip></div><imgslot="media"src="/images/pattern/modal/modal1.jpg"alt="Gebäude mit Wasseroberfläche im Vordergrund"/><divslot="content"><p>
Beispiel: Card mit mehreren benannten Slots
</p></div><divslot="postcontent"class="wm-u-tar"><wm-cta><ahref="#">Link</a></wm-cta></div></wm-card>
Unter Methoden sind alle öffentlichen JavaScript-Methoden für das Pattern dokumentiert.
Die
expand-Methode öffnet ein Panel. Sie nimmt einen Wert, der entweder ein Index, eine ID oder ein DOM-Element ist.
Beispiel Akkordeon:
Eigenschaft
Optionen
Argumente
expand
Panel öffnen
index
(number)
collapse
Panel schließen
index
(number)
<buttonclass="expandButtonNameId">Zweites Element öffnen</button><buttonclass="collapseButtonNameId">Zweites Element schließen</button><wm-accordionid="accodionNameId"><wm-accordion-heading><h3data-nav="false">
Wer kann Mitglied im Vorteilsclub der Stadt Wien werden?
</h3></wm-accordion-heading><wm-accordion-content><p>Jede natürliche Person mit Wohnsitz in Österreich, die das 16. Lebensjahr vollendet hat.</p></wm-accordion-content><wm-accordion-heading><h3data-nav="false">
Wie erhalte ich meine Vorteilsclub der Stadt Wien-Karte?
</h3></wm-accordion-heading><wm-accordion-content><p>Einfach Profil vervollständigen. Sobald wir alle nötigen Informationen erhalten haben, wird deine digitale und
personalisierte Vorteilsclub der Stadt Wien-Karte in deinem Profil angezeigt. Die digitale Mitgliedskarte ist sofort
einsatzbereit.</p></wm-accordion-content><wm-accordion-heading><h3data-nav="false">
Was passiert mit meinen Daten?
</h3></wm-accordion-heading><wm-accordion-content><p>Um die Angebote des Vorteilsclubs der Stadt Wien rundum nutzen zu können, benötigen wir ein paar aktuelle
Informationen zu deiner Person. Der Schutz deiner persönlichen Daten hat für uns dabei oberste Priorität! Detaillierte
Informationen zum Thema Datenschutz findest du hier.</p><p>Sollten sich deine Daten ändern, etwa durch einen Umzug, kannst du diese jederzeit selbst in deinem Profil anpassen.</p></wm-accordion-content></wm-accordion><script>const accodionNameId = document.querySelector('.accodionNameId');const expandButtonNameId = document.querySelector('.expandButtonNameId');const collapseButtonNameId = document.querySelector('.collapseButtonNameId');
expandButtonNameId.addEventListener("click",(e)=>{
accodionNameId.expand(2)});
collapseButtonNameId.addEventListener("click",(e)=>{
accodionNameId.collapse(2)});</script>
Wer kann Mitglied im Vorteilsclub der Stadt Wien werden?
Jede natürliche Person mit Wohnsitz in Österreich, die das 16. Lebensjahr vollendet hat.
Wie erhalte ich meine Vorteilsclub der Stadt Wien-Karte?
Einfach Profil vervollständigen. Sobald wir alle nötigen Informationen erhalten haben, wird deine digitale und
personalisierte Vorteilsclub der Stadt Wien-Karte in deinem Profil angezeigt. Die digitale Mitgliedskarte ist sofort
einsatzbereit.
Was passiert mit meinen Daten?
Um die Angebote des Vorteilsclubs der Stadt Wien rundum nutzen zu können, benötigen wir ein paar aktuelle
Informationen zu deiner Person. Der Schutz deiner persönlichen Daten hat für uns dabei oberste Priorität! Detaillierte
Informationen zum Thema Datenschutz findest du hier.
Sollten sich deine Daten ändern, etwa durch einen Umzug, kannst du diese jederzeit selbst in deinem Profil anpassen.
Events
Manche Patterns verfügen auch über Events, die Sie über Event Listener ansprechen können.
Wer kann Mitglied im Vorteilsclub der Stadt Wien werden?
Jede natürliche Person mit Wohnsitz in Österreich, die das 16. Lebensjahr vollendet hat.
Wie erhalte ich meine Vorteilsclub der Stadt Wien-Karte?
Einfach Profil vervollständigen. Sobald wir alle nötigen Informationen erhalten haben, wird deine digitale und
personalisierte Vorteilsclub der Stadt Wien-Karte in deinem Profil angezeigt. Die digitale Mitgliedskarte ist sofort
einsatzbereit.
Was passiert mit meinen Daten?
Um die Angebote des Vorteilsclubs der Stadt Wien rundum nutzen zu können, benötigen wir ein paar aktuelle
Informationen zu deiner Person. Der Schutz deiner persönlichen Daten hat für uns dabei oberste Priorität! Detaillierte
Informationen zum Thema Datenschutz findest du hier.
Sollten sich deine Daten ändern, etwa durch einen Umzug, kannst du diese jederzeit selbst in deinem Profil anpassen.
Wer kann Mitglied im Vorteilsclub der Stadt Wien werden?
Jede natürliche Person mit Wohnsitz in Österreich, die das 16. Lebensjahr vollendet hat.
Wie erhalte ich meine Vorteilsclub der Stadt Wien-Karte?
Einfach Profil vervollständigen. Sobald wir alle nötigen Informationen erhalten haben, wird deine digitale und
personalisierte Vorteilsclub der Stadt Wien-Karte in deinem Profil angezeigt. Die digitale Mitgliedskarte ist sofort
einsatzbereit.
Was passiert mit meinen Daten?
Um die Angebote des Vorteilsclubs der Stadt Wien rundum nutzen zu können, benötigen wir ein paar aktuelle
Informationen zu deiner Person. Der Schutz deiner persönlichen Daten hat für uns dabei oberste Priorität! Detaillierte
Informationen zum Thema Datenschutz findest du hier.
Sollten sich deine Daten ändern, etwa durch einen Umzug, kannst du diese jederzeit selbst in deinem Profil anpassen.
Individuelle Anpassungen
CD-konforme Designs und das Wiener-Melange-Theme sind für alle wien.gv.at-Seiten und Anwendungen verbindlich.
Anpassungen – sei es bei Farben, Komponenten oder anderen Designaspekten – dürfen nur in Ausnahmefällen erfolgen, etwa
für spezielle Anwendungen (zum Beispiel Debugging-Tools oder White-Label-Lösungen), die zusätzliche Anpassungen benötigen.
Wer eigene Anpassungen vornimmt, trägt die Verantwortung dafür, dass sie barrierefrei, funktional und sinnvoll
gestaltet sind.
Individuelle Änderungen dürfen nicht vorgenommen werden, nur weil das standardisierte Design nicht gefällt.
Wenn Sie weitere Farbvariationen benötigen und mit dem Wiener-Melange-Theme arbeiten, wenden Sie sich bitte an
handbuch@ma53.wien.gv.at.