# Miragon Corporate Identity: alle Regeln > AUTOMATISCH GENERIERT aus brand/marke.yaml, brand/regeln.yaml, brand/vokabular.yaml, brand/slop.yaml. Nicht von Hand ändern: Quelle bearbeiten und npm run brand:build ausführen. Quelle: https://corporate-identity.netlify.app ## Miragon Markenfundament Warum, wie und was Miragon tut, die Werte, Zielgruppen, der Ton nach Anlass, das Vokabular und die Anti-Slop-Regeln für Text. Das ist die verbindliche Faktenbasis für jeden Text. Die SKILL.md fasst zusammen, diese Datei ist vollständig. ### Warum, wie, was **Warum:** Wir beschleunigen die Automatisierung deiner Prozesse. **Wie:** Indem wir das Wissen in eurem Team aufbauen, anstatt dich von uns abhängig zu machen. **Was:** - Solution-Architektur und soziotechnische Analyse im Kontext der Prozessautomatisierung. - AI-gestützte Prozessautomatisierung, die technologieoffen ist. - Platform- und Site-Reliability-Engineering für Prozess-Engines und individuelle Automatisierungslösungen. - Eigenes Tooling, das unsere Beratung verstärkt und die Umsetzung beschleunigt. ### So arbeiten wir | Prinzip | So arbeiten wir | |---|---| | **Bottom-up** | Wir steigen beim konkreten Problem ein. Erst wenn wir es durchdrungen haben, entsteht eine Strategie, die trägt. | | **Soziotechnisch** | Wir verändern Organisation, Prozesse und Technologie mit den Menschen, die damit arbeiten. Zusammen, nicht nacheinander. | | **Collaborative Modelling** | Das Wissen steckt in deinem Team, nur verteilt. Wir machen es sichtbar, bauen daraus ein gemeinsames Modell und einen Plan, wie ihr es umsetzt. | | **Gemeinsam automatisieren** | Wir arbeiten mit deinem Team. So entsteht schneller eine passende Lösung, und durch die gemeinsame Arbeit und unser Enablement entwickelst du sie selbst weiter. | | **Technologieoffen** | Wir empfehlen das, was zu dir passt. Auch wenn die Antwort lautet, dass du diese Technologie nicht brauchst. | | **AI gezielt einsetzen** | Wir schaffen mit deinem Team die Grundlagen, damit AI sinnvoll ins Vorgehen integriert werden kann. | | **Eigenes Tooling** | Wir entwickeln Werkzeuge, die unsere Beratung verstärken und die Umsetzung bei dir beschleunigen. So bleibt unsere Expertise nutzbar, auch wenn wir nicht da sind. | ### Bottom-up: warum wir mitreden > Wer Teams schneidet, schneidet Software. Wir steigen beim konkreten Problem ein und nehmen von dort Einfluss auf die Entscheidungen, die sonst oben fallen: Teamschnitt, Verantwortlichkeiten, Plattform- und Produktteams. Organisation und Software sind ein soziotechnisches System. Wie Teams geschnitten sind, wer wofür verantwortlich ist und wie sie miteinander reden, landet direkt in der Architektur (Conway's Law). Teamschnitt und Betriebsmodell dürfen deshalb nicht allein im Management entschieden werden. Ohne Blick auf Architektur, Code und Betrieb baut sich die Organisation ihre nächste Blockade selbst. So nehmen wir Einfluss: - Wir arbeiten mit den Teams am konkreten Prozess und machen sichtbar, wo Organisation und Architektur nicht zusammenpassen. - Wir bringen dem Management Optionen für Teamschnitt, Verantwortlichkeiten und Plattform, jeweils mit ihren Folgen für Architektur und Betrieb. - Wir entscheiden Organisation und Architektur gemeinsam. Wo Strategie, Governance und Change im Vordergrund stehen, arbeiten wir mit Partnern, die von oben kommen, und treffen uns auf der Ebene von Architektur, Teams und Produkt. ### Der rote Faden So erzählt Miragon, von unten nach oben. Jede und jeder steigt dort ein, wo das Problem gerade liegt. | Schritt | Kernaussage | Inhalte | |---|---|---| | **1. Beim Problem einsteigen** | „Wir fangen dort an, wo es gerade hakt." | Ein Prozess, eine Blockade, eine anstehende Architekturentscheidung. Quickcheck, Architecture Clinic, Engpassanalyse. | | **2. Gemeinsam verstehen** | „Das Wissen steckt in deinem Team. Wir machen es sichtbar." | Collaborative Modelling (Event Storming, Domain Storytelling, BPMN), Wardley Mapping, Architekturvarianten mit ihren Trade-offs. | | **3. Gemeinsam umsetzen** | „Wir bauen mit deinem Team, bis ihr es allein könnt." | Prototyp bis produktiv, Pair Programming, AI-gestützte Umsetzung, Trainings am echten Fall. | | **4. Organisation mitgestalten** | „Wer Teams schneidet, schneidet Software." | Teamschnitt mit Team Topologies, Plattform- und Produktteams, Betriebsmodell, Platform Engineering, messbar über DORA. | ### Was wir tun #### Soziotechnische Analyse und Solution-Architektur Wir schaffen ein gemeinsames Verständnis davon, wie Prozesse, Technologien, Organisation und Zusammenarbeit ineinandergreifen. Gemeinsam mit deinem Team machen wir verteiltes Wissen sichtbar, grenzen Domänen voneinander ab, etablieren Verantwortlichkeiten, reduzieren Abhängigkeiten und entwickeln eine tragfähige Architektur. - Business Process Management mit den Standards BPMN und DMN - Collaborative Modelling mit Event Storming, Domain Storytelling oder t.BPM - Domain-driven Design - Team Topologies - Wardley Mapping - Technologieauswahl und Lösungsarchitektur, insbesondere für Orchestrierung und Choreographie von Prozessen #### AI-gestützte Prozessautomatisierung Wir bringen Automatisierungsideen schnell in die Praxis und entwickeln sie gemeinsam mit deinem Team zu wart- und erweiterbaren Lösungen weiter. Dabei verbinden wir klassische Softwareentwicklung mit AI und schaffen die Grundlagen, damit dein Team die entstandenen Lösungen selbst betreiben und weiterentwickeln kann. - Prototyping und MVP-Entwicklung - Gemeinsame Implementierung mit deinem Team - AI-driven Process Automation, von unterstützenden AI-Funktionen bis zu teilautonomen Prozessschritten - Integration von Workflow-Engines, Automatisierungsplattformen und AI-Modellen - Polishing und Produktivsetzung von PoCs und MVPs #### Platform Engineering und Site Reliability Engineering Wir schaffen die Grundlage, damit Anwendungen sicher, zuverlässig und skalierbar betrieben werden können. Gemeinsam mit den verantwortlichen Produkt- und Plattformteams entwickeln wir Werkzeuge und Betriebsmodelle, die sie selbstständig nutzen und weiterentwickeln können. - Einführung neuer Entwicklungsplattformen und Entwicklungswerkzeuge - Automatisierte Bereitstellung und Skalierung von Software - Betrieb, Observability und Zuverlässigkeit von Anwendungen - Enablement der bestehenden Produkt- und Plattformteams #### Eigenes Tooling Wir entwickeln Werkzeuge, die zu unserer Ausrichtung und unseren Leistungen passen. Sie beschleunigen die gemeinsame Umsetzung, machen unsere Expertise praktisch nutzbar und unterstützen dein Team auch über einzelne Projekte hinaus. Das Tooling gehört zur Beratung und verstärkt sie. - Modellierungswerkzeuge für Collaborative Modelling, darunter BPMN, Wardley Mapping und Event Storming - AI-Integrationswerkzeuge rund um Miragon AI - Skills und Solution Templates, die die Entwicklung beschleunigen ### Werte | Wert | Was das heißt | Im Ton | Rolle im Ton | |---|---|---|---| | **Verantwortungsvoll** | Wenn wir eine Aufgabe übernehmen, können sich alle darauf verlassen. Wir halten Zusagen ein und handeln nie auf Kosten anderer. | erfahren, verlässlich | Anker. Belegt, nicht behauptet. Schafft das Vertrauen, das Direktheit erst erlaubt. | | **Mutig und aufgeschlossen** | Wir sprechen Probleme an, geben ehrliches Feedback und probieren Neues aus, statt uns zu beschweren. | unerschrocken und frisch | Haltung und Energie. Unbequeme Wahrheiten aussprechen, Position beziehen, neue Wege gehen. | | **Wohlwollend** | Wir fragen nach, statt zu urteilen, und teilen unser Wissen offen. Jede und jeder gibt sein Bestes, und wir bauen das Umfeld, in dem das geht. | Augenhöhe und Wärme | Korrektiv. Macht Direktheit zum Freundschaftsdienst und hält sie von Überheblichkeit fern. | ### Markenarchitektur Es gibt eine Marke: Miragon. Beratung, Trainings und Werkzeuge treten unter diesem Namen auf. Das Tooling gehört zur Beratung und verstärkt sie, deshalb bekommt es keine eigene Marke, sondern einen beschreibenden Namen nach „Miragon". | Name | Wofür | Adresse | Schreibweise | |---|---|---|---| | **Miragon** | Die Marke. Beratung, gemeinsame Umsetzung und Trainings rund um Prozessautomatisierung. | `miragon.io` | Miragon, im Text nie in Versalien. | | **Miragon AI** | AI-Werkzeuge rund um Prozessbetrieb und Modellierung, etwa das AI Operations Cockpit für Camunda 7, CIB seven und Operaton. | `miragon.ai` | Im Text „Miragon AI", die Adresse „miragon.ai" nur als Link. | | **Miragon Modeler** | Die Open-Source-Modeler für BPMN, DMN, Wertschöpfungsketten, Wardley Maps, Team Topologies, Event Storming und Context Maps. | `modeler.miragon.io` | Alle heißen „Miragon Modeler". Wo die Notation zählt, dahinter nennen, etwa „Miragon Modeler für Wardley Maps". | Regeln: - Neue Werkzeuge heißen „Miragon" plus Funktion. Keine Fantasienamen. - Produkte bekommen kein eigenes Logo. Sie zeigen die Wortmarke oder ihr App-Icon und schreiben ihren Namen in Geist daneben. - App-Icon und Favicon stehen auf derselben blauen Kachel und tragen eins von zwei Zeichen. Der Komet steht für Miragon, die Plattform und jede Software, die kein Modeler ist. Jeder Miragon Modeler trägt sein Modeler-Icon aus dem gemeinsamen Set, auch als Datei-Icon. Ein Modeler-Icon ist ein Werkzeugzeichen und kein Logo: Es macht den Modeler in Tab, Dock und Explorer erkennbar, die Marke bleibt Miragon. Im Empty State der Modeler steht der Komet. - Jedes Produkt zeigt sichtbar, dass es von Miragon kommt. - Alle Produkte folgen derselben CI, gebaute Oberflächen dem Design-System aus der modeler-tool-design Skill. - Die Corporate Identity liegt unter ci.miragon.io (Umzug geplant, bis dahin corporate-identity.netlify.app). ### Über Miragon (Textbausteine) #### Kurz > Miragon beschleunigt die Automatisierung von Prozessen und baut dabei das Wissen im Team seiner Kunden auf. #### Mittel > Miragon ist eine 2019 gegründete IT-Beratung für Prozessautomatisierung mit Sitz in Augsburg. Das Team steigt beim konkreten Problem ein, modelliert Prozesse gemeinsam mit den Fachbereichen und setzt Lösungen mit den Entwicklungsteams der Kunden um, von der Architektur über AI-gestützte Automatisierung bis zum stabilen Betrieb. Das Ziel ist, dass die Teams danach ohne Miragon weiterkommen. #### Lang > Miragon ist eine 2019 gegründete IT-Beratung für Prozessautomatisierung mit Sitz in Augsburg. Das Team kommt aus der Softwareentwicklung und arbeitet mit Unternehmen, die eigene Entwicklungsteams haben: Versicherungen, Banken, Energieversorger, Handel und öffentliche Verwaltung. Miragon steigt beim konkreten Problem ein, macht verteiltes Wissen mit Collaborative Modelling sichtbar und setzt Lösungen gemeinsam mit den Teams der Kunden um, mit Workflow-Engines wie Camunda, CIB seven und Operaton, mit AI dort, wo sie etwas bringt, und mit Platform Engineering für den Betrieb. Dazu entwickelt Miragon eigene Open-Source-Werkzeuge, etwa Modeler für BPMN, Wardley Maps und Team Topologies, sowie Miragon AI für den Prozessbetrieb. #### So setzt du sie ein - Kurz für Signaturen, Profile und Fußzeilen. Mittel für Vorträge, Partnerseiten und LinkedIn. Lang für Presse und Ausschreibungen. - Im eigenen Kanal (Website, Posts) sprechen wir mit „wir" und „du". Die Bausteine stehen in der dritten Person, weil andere sie übernehmen. - Keine Zahlen zu Mitarbeitenden oder Kunden, keine Kundennamen. Die veralten oder brauchen eine Freigabe. ### Claim > Schneller automatisieren. Mit deinem Team. Veraltet, nicht mehr verwenden: „Prozesse analysieren, transformieren und mit AI schneller umsetzen.", „Prozesse analysieren, transformieren und mit KI schneller umsetzen.", „Wir beschleunigen die Transformation deiner Prozesse." Sublines für Banner und Hero: - „AI im Prozess. Wissen im Team." - „Vom Prozess bis zum Teamschnitt." - „Prozessautomatisierung mit Open-Source-DNA." ### Zielgruppen Wir sprechen bottom-up die Menschen an, die das Problem täglich haben: Entwicklerinnen und Entwickler, Architektinnen und Architekten, Product Owner und Automation Leads. Management erreichen wir über sie und über belastbare Referenzen. Passend sind Firmen mit eigenem Entwicklungsteam, in denen Prozesse schon ein echtes Thema sind. | Rolle | Worum es gerade geht | Sinnvoller Einstieg | Womit wir sie verlieren | Botschaft | |---|---|---|---|---| | **Architekt** | Eine Architekturentscheidung steht an, etwa wegen Migration, Legacy, Herstellerabhängigkeit oder AI. | Die echten Optionen am System vergleichen und die wichtigste Annahme mit einem kleinen Versuch prüfen. | Allgemeiner Methodik und fertigen Zielbildern ohne Entscheidung am konkreten System, Aussagen ohne Code und Trade-offs. | „Wir vergleichen reale Architekturvarianten mit ihren Trade-offs und machen die nächste Entscheidung umsetzbar." | | **Product Owner** | Das Projekt liefert zu langsam, Legacy blockiert oder ein AI-Auftrag braucht einen brauchbaren Anwendungsfall. | Ein Problem auswählen, den heutigen Aufwand beziffern und einen begrenzten Pilot daran messen. | Abstrakter Strategie, zusätzlicher Abstimmung und großen Versprechen ohne belastbaren nächsten Schritt. | „Wir beseitigen mit deinem Team die konkreten Engpässe, die gerade den Durchsatz begrenzen." | | **Automation Lead** | Nachfrage, Warteliste und Betriebsaufwand wachsen schneller als das Team. | Mit der echten Warteliste klären, was zentral bleibt, was Teams selbst übernehmen und was eingekauft wird. | Einzelprozess-Projekten ohne übertragbares Vorgehen und zusätzlicher Governance oder Bürokratie. | „Du skalierst Wirkung und Delivery, ohne jede Initiative selbst steuern zu müssen." | | **Lead Developer** | Eine Migration, Integration oder hartnäckige technische Blockade hält das Team auf. | Gemeinsam am echten Code arbeiten, bis die Blockade gelöst oder sauber eingegrenzt ist. | Aussagen ohne Code. | „Wir prüfen die Architektur an eurem konkreten Code und machen den nächsten Schritt umsetzbar." | | **Platform- und SRE-Lead** | Eine Plattform oder Engine muss stabil laufen, obwohl Erfahrung, Runbooks oder klare Zuständigkeiten fehlen. | Den Weg bis Produktion durchgehen und die wichtigsten Risiken für die nächsten 30 Tage beheben. | Strategiefragen, die das konkrete Betriebsproblem nicht lösen. | „Wir stabilisieren den Betrieb und bauen gleichzeitig das nötige Wissen im Team auf." | | **IT-Leitung** | Fähigkeiten und Kapazität fehlen, ein Projekt kippt oder von oben kommt ein Termin für Modernisierung oder AI. | Eine knappe Entscheidungsgrundlage mit Kosten, Risiken, Verantwortlichkeiten und einem ersten überschaubaren Schritt. | Technischen Details ohne Aussage zu Risiko, Kosten und Eigenständigkeit des Teams. | „Dein Team liefert schneller und sicherer, ohne dauerhaft mehr externe Unterstützung zu brauchen." | Nicht unsere Zielgruppe: - Firmen ohne eigenes Entwicklungsteam. Dort gibt es niemanden, den wir fit machen können. - Firmen, die weder automatisieren noch ihre Prozesse je aufgeschrieben haben. - Reine Strategieberatung ohne Umsetzung. Anderes Geschäft, andere Wettbewerber. ### Ton nach Anlass Die Zutaten bleiben gleich (souverän-kompetent als Anker, unerschrocken-pointiert, frisch-energetisch, grundiert von wohlwollend). Welche führt, hängt davon ab, was der Text erreichen soll. | Wenn du … | Was führt | Beispiel | |---|---|---| | Aufmerksamkeit willst (Opener, Hook) | unerschrocken und frisch | „Kein PowerPoint, sondern ein funktionierender Prototyp." | | Kompetenz zeigst (Leistung, Angebot) | Kompetenz | „Prozesse verstehen, bevor wir sie verändern." | | erklärst oder schulst (Training, Doku) | sachlich und präzise | „BPMN sicher modellieren. DMN sauber integrieren." | | Nähe schaffst (Kontakt, CTA) | wohlwollend, Augenhöhe | „Lass uns deinen größten Hebel finden." | ### Vokabular | Sag so | Statt | |---|---| | du, dein Team | Sie, man | | dein größter Hebel | Optimierungspotenzial | | Erstgespräch | unverbindliches Beratungsgespräch | | ehrliche Einschätzung | individuelles Angebot | | ein funktionierender Prototyp | umfassende Ergebnispräsentation | | Prozesse verstehen, bevor wir sie verändern | ganzheitlicher Beratungsansatz | | Wir bauen mit deinem Team | Wir liefern Ihnen eine Lösung | | technologieoffen | technologieneutral, herstellerunabhängig | Wörter, die wir meiden: innovative Lösungen, digitale Zukunft, Synergien, ganzheitlich, in der heutigen schnelllebigen Welt, unverbindliches Beratungsgespräch, individuelles Angebot, Optimierungspotenzial, Mehrwert, nahtlos, maßgeschneidert, Game Changer, auf das nächste Level, Lass uns eintauchen, spannende Reise, Es ist wichtig zu beachten, State of the Art, zukunftssicher, revolutionieren. | Schreibweise | Nicht | Hinweis | |---|---|---| | AI | KI | Miragon schreibt durchgehend AI, auch in Zusammensetzungen (AI-Agent, AI-gestützt). „die AI". | | Miragon AI | Miragon.ai, Miragon-AI | Produktname im Text. „miragon.ai" nur als Adresse. | | Miragon | MIRAGON | Großbuchstaben gibt es nur in der Wortmarke, im Text heißt es Miragon. | | CIB seven | CIB Seven, CIB SEVEN | | | Camunda 8 | Camunda8 | | | Camunda 7 | Camunda7 | | | technologieoffen | technologieneutral, Technologieneutral | Neue Positionierung (Why How What, September 2026). | | die Skill | – | Skill ist bei Miragon feminin. „die Skill", „eine Skill", „mit der Skill". | ### Gendern Wir sprechen Menschen direkt an. Mit du und dein Team lösen sich die meisten Fälle von selbst. 1. Direkt ansprechen, etwa du, dein Team, ihr. 2. Neutral formulieren, wo es natürlich klingt, etwa Mitarbeitende, Teilnehmende, das Team, Entwicklungsteams. 3. Sonst die Paarform, etwa Entwicklerinnen und Entwickler, Architektinnen und Architekten. Nicht: - Generisches Maskulinum im Fließtext, etwa die Entwickler, wenn alle gemeint sind. - Kurzformen mit Zeichen, etwa Doppelpunkt, Sternchen, Unterstrich oder Binnen-I (Entwickler:innen, Entwickler*innen, Entwickler_innen, EntwicklerInnen). Ausnahmen: - Rollen als Etikett in Tabellen, Personas und Jobtiteln bleiben kurz, etwa Architekt, Product Owner, Automation Lead. - Zitate echter Menschen bleiben, wie sie sind. - Kunden im Sinne von Unternehmen. ### Klingt nach Mensch (Anti-Slop für Text) | ID | Muster | Klingt so | Stattdessen | Prüfung | |---|---|---|---|---| | S1 | **Antithesen-Reflex**: „kein X, sondern Y" und „X, nicht Y." als Dauerrhythmus | Es ist kein Korsett, sondern eine Abkürzung. | Die Aussage direkt machen. Eine Antithese pro Text ist eine Pointe, fünf sind eine Masche. Regeln dürfen weiter „X, nicht Y" sagen, das ist dort die klarste Form. | automatisch (Hinweis) | | S2 | **Fett-Stichwort-Listen**: Aufzählungen, deren Punkte alle mit einem fetten Stichwort beginnen | „- **Klarheit.** Wir schaffen Klarheit …" | Fließtext, eine Tabelle oder eine schlichte Liste. Fett nur für das eine Wort, das wirklich zählt. | automatisch (Hinweis) | | S3 | **Dreierketten**: Drei Adjektive oder Nomen als Reflex | schnell, einfach und effizient | Eine Eigenschaft nennen und belegen. | im Review | | S4 | **Doppelpunkt-Pointe und Schlussformel**: „Das Ergebnis: …", „Kurz gesagt: …", „Fazit: …" | Das Ergebnis: weniger Aufwand, mehr Wirkung. | Aufhören, wenn es gesagt ist. Das Ergebnis konkret benennen. | automatisch (Hinweis) | | S5 | **Rhetorische Einstiegsfrage**: Ein Text, der mit einer Frage an die Leserin beginnt | Kennst du das? Dein Prozess hängt schon wieder. | Mit der Zahl, dem Fall oder der Behauptung anfangen. | automatisch (Hinweis) | | S6 | **Leere Verstärker**: „wirklich", „absolut", „extrem", „unglaublich", „enorm" als Dauerbetonung | Das ist wirklich extrem wichtig. | Das Wort streichen oder durch einen Beleg ersetzen. | automatisch (Hinweis) | | S7 | **Adjektiv-Paare ohne Beleg**: Zwei Eigenschaften, die klingen, aber nichts zeigen | klar und direkt, modern und effizient | Ein Beispiel oder eine Zahl. | im Review | | S8 | **Zusammenfassung am Ende**: Ein Schlussabsatz, der das Gesagte noch einmal aufzählt | Zusammengefasst bieten wir Strategie, Umsetzung und Betrieb. | Mit dem nächsten Schritt enden oder einfach aufhören. | im Review | ## Regelkatalog der Miragon Corporate Identity Die prüfbaren Regeln, geordnet nach Bereich. Jede Regel hat ein klares Kriterium. Exakte Werte stehen in `../corporate-design/assets/tokens.json` und `../corporate-design/assets/contrast.json`. Regeln mit Prüfung „automatisch" findet auch brand-lint; die Ergebnisse von brand-lint sind verlässlich und müssen nicht erneut beurteilt werden. #### Text | ID | Regel | Verstoß, wenn | Schwere | Prüfung | |---|---|---|---|---| | A1 | **du-Ansprache, klein** | „Sie", „Ihnen", „Ihr" als Höflichkeitsform oder unpersönliches „man" in kundenorientiertem Text. „ihr/euer" ist okay, wenn ein ganzes Team gemeint ist. | hart | automatisch + Review | | A2 | **Kein Em-Dash als Verbinder** | Geviertstrich „—" oder Halbgeviertstrich mit Leerzeichen „ – " als dramatische Pause oder Verbinder. Bindestriche in Komposita (Open-Source, BPMN-Training) und Bereiche ohne Leerzeichen (1–2) sind okay. | hart | automatisch | | A3 | **Korrekte Umlaute** | ae, oe, ue oder ss als Ersatz für ä, ö, ü, ß. Ausnahmen sind URL-Slugs, Dateinamen, Pfade und Token-Namen (gruen, weiss). | hart | automatisch | | A4 | **Aktiv statt passiv** | Vermeidbares Passiv, wo eine aktive Formulierung geht. | weich | im Review | | A5 | **Konkret statt Floskel** | Floskeln und Buzzwords ohne Substanz, etwa „innovative Lösungen", „digitale Zukunft", „Synergien", „ganzheitlich". Die vollständige Liste steht im Vokabular. | weich | automatisch + Review | | A6 | **Belegen statt behaupten** | Selbstlob ohne Beleg („Wir sind die Besten") oder behauptete Frische („jung und frisch"). | weich | im Review | | A7 | **Aktueller Claim** | Der veraltete Claim wird verwendet, auch abgewandelt (etwa in Sie-Form oder ohne „Wir"). | hart | automatisch | | A8 | **Klingt nach Mensch** | Typische AI-Muster aus dem Anti-Slop-Kanon (Regeln S1 bis S8): Antithesen-Reflex, Fett-Stichwort-Listen, Dreierketten, Doppelpunkt-Pointen, rhetorische Einstiegsfragen, leere Verstärker. | weich | automatisch + Review | | A9 | **Unerschrocken, aber wohlwollend** | Direktheit, die überheblich statt hilfreich klingt. | weich | im Review | | A10 | **Schreibweisen** | Abweichung von den verbindlichen Schreibweisen im Vokabular (AI statt KI, Miragon statt MIRAGON im Text, CIB seven, Camunda 8, technologieoffen, „die Skill"). | weich | automatisch + Review | | A11 | **Gendern** | Kurzformen mit Doppelpunkt, Sternchen, Unterstrich oder Binnen-I (Entwickler:innen, Entwickler*innen, Entwickler_innen, EntwicklerInnen) oder generisches Maskulinum im Fließtext, wenn alle gemeint sind. Richtig ist direkte Ansprache, eine neutrale Form oder die Paarform. | weich | automatisch + Review | #### Visual und Design | ID | Regel | Verstoß, wenn | Schwere | Prüfung | |---|---|---|---|---| | B1 | **Exakte Palettenfarben** | Eine Farbe, die nicht in brand/tokens.json steht, oder ein „ungefähres" Blau oder Grün, als Hex, rgb(), hsl() oder oklch(). Erlaubt sind die Markenfarben, die Statusfarben (nur für Zustände), die UI-Ebene (linie, kontur, text-leise) und im Dark Mode die dunklen Neutralen (nur über die Rollen --cd-ui-*). | hart | automatisch + Review | | B2 | **Blau führt, Grün akzentuiert** | Grün großflächig als Basis statt sparsamer Akzent, oder mehr als ein, zwei grüne Akzente pro Motiv. | weich | im Review | | B3 | **Grün nicht als Fließtext auf Weiß** | Grüner Fließtext auf Weiß (Kontrast 1,67:1). Grün nur groß und fett, als Fläche oder Grafik-Akzent. | hart | im Review | | B4 | **Kontrast AA in beiden Modi** | Text-Hintergrund-Kombination unter WCAG AA (normal mindestens 4,5:1, groß und fett mindestens 3:1) oder ein bedeutungstragendes Nicht-Text-Element (Rahmen, Icon, Fokus) unter 3:1, im hellen oder im dunklen Modus. Die geprüften Paare beider Modi stehen in contrast.json. | weich | im Review | | B5 | **Logo unverändert** | Logo verzerrt, gedreht, umgefärbt (außer den definierten Varianten) oder mit Schatten, Outline oder Glow. | hart | im Review | | B6 | **Richtige Logo-Variante** | Falsche Variante für den Grund. Hell bekommt Grün (alternativ Blau), dunkel, Markenfarbe und Foto Weiß (alternativ Grün), der Dark Mode einer App oder Webseite ebenso, monochrom Schwarz. | weich | im Review | | B7 | **Schutzraum und Mindestgröße** | Weniger Schutzraum als die Höhe des „M" oder kleiner als die Mindestgröße (Wortmarke 96 px bzw. 20 mm, Komet 24 px bzw. 8 mm). | weich | im Review | | B8 | **Schrift Geist** | Eine andere Schrift als Geist (für Code Geist Mono). | weich | im Review | | B9 | **Funktionsicons aus Lucide** | Ein Funktionsicon (in Buttons, Menüs, Listen, Navigation oder Material) stammt nicht aus Lucide, oder Icon-Stile sind gemischt. Komet und Modeler-Icons sind Zeichen und keine Funktionsicons, für sie gelten B5 und B12. | weich | im Review | | B10 | **Social-Formate** | Das Pixelmaß passt nicht zur Plattform (siehe tokens.json, social). | weich | im Review | | B11 | **Kein AI-Einheitslook** | Gestaltungsmuster aus dem Anti-Slop-Kanon (Regeln U1 bis U10): Template-Hero, Icon-Kachel-Raster, Glas auf Verlauf, Sparkles als AI-Symbol, Verlaufstext, Effekte als Hierarchie, erfundene Belege, Emoji als Gestaltung, Violett-Default, Navy-Dark-Default. | weich | automatisch + Review | | B12 | **Modeler-Icon aus dem Set, unverändert** | Ein Modeler-Icon ist verändert (Form, Farbe, Kachel, Strich) oder stammt nicht aus dem Set, ein Produkt trägt ein selbst gezeichnetes Zeichen, oder ein Modeler-Icon steht, wo der Komet hingehört (Empty State, Splash, Software, die kein Modeler ist). Neue Modeler-Icons entstehen nur per PR in Miragon/corporate-identity. | hart | im Review | #### Code und UI | ID | Regel | Verstoß, wenn | Schwere | Prüfung | |---|---|---|---|---| | C1 | **Tokens statt Hex** | Rohe Marken-Hex oder rgb() im Code, wo ein Token (--cd-*) verfügbar ist. Für die dunklen Neutralen ist das die Rolle, die den Wert im Dark Mode trägt. | weich | automatisch | | C2 | **8-Punkt-Raster** | Abstände außerhalb der Skala 4, 8, 16, 24, 32, 48, 64, 96. | weich | im Review | | C3 | **Fokus und Bewegung** | Kein sichtbarer Fokus-Zustand oder Animation ohne Rücksicht auf prefers-reduced-motion. Der Fokusrahmen ist 2px in --cd-ui-fokus mit 2px Abstand, hell blau-link, im Dark Mode blau-hell. | weich | im Review | | C4 | **Alt-Texte** | Fehlender oder falscher Alt-Text. Dekorativ bleibt leer, inhaltstragend wird beschrieben, ein eingebrannter Claim gehört in den Alt-Text. | weich | im Review | | C5 | **UI-Texte auf Deutsch** | Miragon-eigene Produkt-Oberflächen mit englischen UI-Texten oder gesiezten Meldungen. | weich | im Review | | C6 | **Dark Mode aus den Rollen** | Ein Dark Mode in einer App oder auf einer Webseite, der nicht aus den Rollen --cd-ui-* kommt: eine dunkle Fläche in Dunkelblau, Navy oder einem bläulichen Grauton (auch Tailwind gray, slate, zinc, neutral, stone, bg-black, prose-invert), eine Farbe mit Deckkraft oder color-mix auf dunklem Grund (erlaubt sind Schwarz für Backdrop und Schatten und die Deckkraft schwebender Karten über --cd-ui-chrome-deckkraft, dunkel 100 %), -soft auf Dunkel, Blau, blau-link oder die festen Werte --cd-info und --cd-danger als Text auf Dunkel, ein Status als Text außerhalb der Statustext-Tabelle, ui.linie oder ui.text-leise auf Dunkel, Grün als Button-Fläche, Host-Farben wie --vscode-editor-background, invert() oder brightness() statt Rollen. Dunkle Flächen sind Schwarz oder eine neutrale Stufe, Links Grün, Buttons Blau mit weißer Schrift, Status als Text nur über die Status-Rollen (--cd-ui-success bis --cd-ui-info) und nur, wo contrast.json ihn erlaubt. | hart | automatisch + Review | ### Schwere - **Hart** (immer FAIL): A1, A2, A3, A7, B1, B3, B5, B12, C6. - **Weich** (FAIL, aber kontextabhängig): alle anderen. Im Zweifel als Kann-Fix melden. ### Claim (Regel A7) > Schneller automatisieren. Mit deinem Team. Veraltet, nicht mehr verwenden: „Prozesse analysieren, transformieren und mit AI schneller umsetzen.", „Prozesse analysieren, transformieren und mit KI schneller umsetzen.", „Wir beschleunigen die Transformation deiner Prozesse." Sublines für Banner und Hero: - „AI im Prozess. Wissen im Team." - „Vom Prozess bis zum Teamschnitt." - „Prozessautomatisierung mit Open-Source-DNA." Auch abgewandelte Formen verstoßen gegen A7: Sie-Form („Transformation Ihrer Prozesse"), ohne „Wir" oder nur der Kern („die Transformation deiner Prozesse beschleunigen"). ## Anti-Slop für Oberflächen | ID | Muster | Stattdessen | Prüfung | |---|---|---|---| | U1 | **Template-Hero**: Riesen-Headline, Untertitel und zwei Pill-Buttons, zentriert oder zweispaltig mit großem Icon | Mit dem echten Artefakt einsteigen (Modell, Code, Screenshot, Zahl). Layout aus dem 12er-Raster, gern asymmetrisch (8/4). | im Review | | U2 | **Icon-Kachel-Raster**: Drei oder sechs gleich große Karten mit Icon-Kachel, Titel und Zweizeiler | Inhalte nach Gewicht ordnen. Ist es eine Aufzählung, dann als Liste oder Tabelle. Ein Icon nur, wo es Bedeutung trägt. | im Review | | U3 | **Glas auf Verlauf**: Halbtransparente Karten mit Blur auf Blob- oder Mesh-Verlauf | Blau als ruhige Fläche. Der Mesh-Verlauf ist ein einzelner Markenmoment (Hero der Startseite) und kein Hintergrund für alles. | im Review | | U4 | **AI-Symbolik**: Sparkles, Zauberstab, Roboterkopf oder Gehirn für alles, was mit AI zu tun hat | Das Lucide-Icon für die konkrete Funktion, etwa Suchen, Prüfen oder Erzeugen. | im Review | | U5 | **Verlaufstext**: Headlines mit Farbverlauf in der Schrift | Geist 700 in Schwarz oder Weiß. Höchstens ein Wort in Grün (auf dunklem Grund) oder Blau. | automatisch (Hinweis) | | U6 | **Effekte als Hierarchie**: Glow, Textschatten, Neon-Ränder, überall große Radien und Schatten | Hierarchie über Größe, Gewicht und Weißraum. Radius und Schatten aus den Tokens, sparsam. | im Review | | U7 | **Erfundene Belege**: Fake-Kennzahlen („10x schneller"), Stock-Avatare, Platzhalter-Logos, erfundene Testimonials | Echte Zahlen mit Quelle, echte Artefakte, oder weglassen. | im Review | | U8 | **Emoji als Gestaltung**: Emoji als Aufzählungszeichen, Überschriften-Deko oder Icon-Ersatz | Lucide-Icons oder eine schlichte Liste. | im Review | | U9 | **Violett-Default**: Lila und Violett als Tech-Standardlook, Blau-Lila-Verläufe | Die Palette. Blau führt, Grün akzentuiert. | im Review | | U10 | **Navy-Dark-Default**: Dunkelblauer oder bläulich-grauer Dark Mode: Navy als Grund, Tailwind slate-900 oder gray-900 als Fläche, dark:bg-blue-950, Blau oder Grün mit Deckkraft auf dunklem Grund | Schwarz als Grund und darüber die neutralen Stufen aus den Rollen (--cd-ui-*). Dunkelblau nur im Verlauf. | automatisch über C6 | ## Miragon Corporate Design Manual (Quelle der Wahrheit) Dieses Dokument ist die ausführliche Grundlage für jedes Miragon-Visual. Die `SKILL.md` ist die Kurzfassung davon. Wenn beide sich widersprechen, gewinnt dieses Dokument, und die `SKILL.md` wird nachgezogen. Grundlage: Miragon CD Manual 2022, dazu der Dark Mode für Webseiten aus dem Oktober 2026 (Abschnitt 8). ### 1. Farben Die Palette ist verbindlich. Werte exakt übernehmen, niemals annähern oder ein anderes Blau/Grün „nach Gefühl" wählen. | Farbe | HEX | RGB | Pantone (uncoated / coated) | |---|---|---|---| | Grün | `#00E676` | 0 230 118 | 3285 / 7479 C | | Blau | `#335DE5` | 51 93 229 | 2725 / 2986 C | | Grau | `#F9F7F7` | 249 247 247 | – | | Schwarz | `#1D1D1D` | 29 29 29 | – | | Weiß | `#FFFFFF` | 255 255 255 | – | **Rollen und Hierarchie:** - **Blau `#335DE5`** ist die führende Markenfarbe: Flächen, Hintergründe, Primär-Akzente, Buttons und auf Hell auch Links. Buttons bleiben in beiden Modi Blau mit weißer Schrift. - **Grün `#00E676`** ist die Energie- und Akzentfarbe: das Key Visual, ein hervorgehobenes Wort, ein Pfeil, ein Highlight. Bewusst und sparsam. Nicht großflächig als Hintergrund für lange Texte. Auf Schwarz und im Dark Mode trägt Grün die Links. Eine Button-Fläche ist Grün nie. - **Grau `#F9F7F7`** ist die ruhige, neutrale Hintergrundfläche (z. B. helle Sektionen, Karten). - **Schwarz** für Text auf Hell, als eine der Logo-Farbvarianten und als Grund im Dark Mode. Schwarz ist die einzige dunkle Farbe der Palette. Dunkle Stufen darüber sind Weiß in Schwarz gemischt (Abschnitt 8.2), Dunkelblau gibt es nur im Verlauf. - **Weiß** für Text auf Farbe/Foto, für Text im Dark Mode und als Fläche. **Kontrast (wichtig):** - Grün `#00E676` auf Weiß erreicht keinen ausreichenden Textkontrast (unter WCAG AA für normalen Text). Grün deshalb nur für große, fette Elemente, Flächen oder Grafik-Akzente verwenden, nicht für Fließtext auf Weiß. - Blau `#335DE5` auf Weiß erreicht rund 5,5:1 und ist damit AA-tauglich für Text und Links. - Auf Blau gilt: Text Weiß, Akzent Grün. Auf Schwarz und im Dark Mode: Text Weiß, Links und Akzente Grün (10,10:1), Buttons Blau mit weißer Schrift, Fokus `blau-hell #6B8AFF`. Blau ist auf Schwarz nie Text (3,08:1). ### 2. Logo Zwei Bausteine bilden die Bildmarke: **a) Wortmarke „MIRAGON".** Dynamische, nach vorn geneigte (kursiv anmutende) Grotesk-Wortmarke. Vier Farbvarianten: - Grün `#00E676` (Standard-Wortmarke, einfach grün; auch auf hellem Grund, z. B. Navigation oben links) - Blau `#335DE5` (Alternative auf hellem Grund, z. B. Web/UI) - Schwarz `#1D1D1D` (monochrom, Dokumente, Fax/SW) - Weiß (negativ) auf Farbe/Foto und im Dark Mode einer Webseite oder App (Grün bleibt dort erlaubt). **b) Key Visual.** Der grüne Komet/Swoosh als eigenständiges Element. Wiedererkennungszeichen für Flächen, Hintergründe, Übergänge und Akzente. Kann einzeln stehen. **Logo-Regeln:** - Nicht verzerren, stauchen, drehen, mit Schlagschatten/Outline/Glow versehen. - Keine anderen Farben als die definierten Varianten. - **Schutzraum:** rundum mind. die Höhe des „M" (etwa eine Wortmarkenhöhe) freihalten, nicht an Kanten oder Bildmotive „kleben". - **Mindestgröße:** Wortmarke min. 96 px / 20 mm breit, Komet min. 24 px / 8 mm. (Vorschlagswerte, vom Marketing bestätigen lassen.) - Auf Fotos nur platzieren, wenn der Kontrast stimmt (ruhiger oder abgedunkelter Bereich), Logo dann meist in Weiß. **Dateien (offizielle Vektoren, mit dieser Skill gebündelt unter `assets/logo/`):** - `miragon-logo-blau.svg`, `miragon-logo-gruen.svg`, `miragon-logo-schwarz.svg`, `miragon-logo-weiss.svg` (Wortmarke in vier Farben) - `miragon-komet-gruen.svg` (Key Visual / Komet einzeln), `miragon-komet-blau.svg` (Komet auf blauem Badge, das App-Icon von Miragon und der Plattform) Immer diese Dateien einsetzen, nie das Logo nachzeichnen oder umfärben. Exakte Farb-, Größen- und Formatwerte stehen maschinenlesbar in `assets/tokens.json`, die berechneten Kontraste in `assets/contrast.json`. ### 3. Typografie - **Schriftfamilie: Geist** von Vercel. Serifenlose, geometrisch-humanistische Grotesk. - **Überschriften: Geist halbfett bis fett (600/700).** - **Fließtext: Geist Regular (400).** - **Zitate: Geist kursiv.** Die großen Aussagen auf den Social-Media-Kacheln sind Zitate und stehen kursiv, auch in Versalien. Überschriften stehen aufrecht. - **Code/Monospace: Geist Mono.** - Geist steht unter der SIL Open Font License, ist quelloffen und wird selbst gehostet (kein externer Request, DSGVO-konform). Variable Fonts decken alle Gewichte ab. Fallback: System-Sans-Stack. - Klare Hierarchie über Größe und Gewicht, nicht über viele Schriften. Eine Familie reicht. **Type-Scale (verbindlich).** Die Hierarchie folgt diesen Stufen. Werte exakt übernehmen, nicht „nach Gefühl" skalieren. Die Doku rendert genau diese Skala über die `TypeScale`-Komponente. | Stufe | Größe | Gewicht | Zeilenhöhe | Einsatz | |---|---|---|---|---| | H1 | 40 px | 700 | 1.1 | Seitentitel | | H2 | 28 px | 700 | 1.2 | Abschnitt | | H3 | 21 px | 600 | 1.3 | Unterpunkt | | Lead | 20 px | 400 | 1.5 | Einstieg, Intro | | Body | 16 px | 400 | 1.6 | Fließtext (Minimum für gute Lesbarkeit) | | Klein | 13 px | 400 | 1.5 | Bildunterschrift, Hinweis | ### 4. Grafischer Stil & Bildwelt **Grafischer Stil:** - Freigestellte Personen (Cutout) vor Farbflächen oder Verläufen, oft mit Geste (zeigen, Daumen hoch). - Dezente, moderne 3D-Illustrationen (Beispiel aus dem Manual: Laptop mit herauswachsender Pflanze) für Themen wie Wachstum/Transformation. **Bildstil:** - Professionelle, authentische Fotos (Team, Meeting, Arbeit), gern mit echten Menschen statt steriler Stockware. - Fotos werden mit Markenelementen kombiniert: blau-grüne Verläufe, das grüne Key Visual, weiße/grüne Typo. **Komposition:** - Foto + Farbverlauf + kurzer Text (ein Wort in Grün hervorgehoben). - Grafik + Key Visual + Text. - Foto + „Chatbox" + Key Visual. - Fachliche Diagramme, vor allem **BPMN-Prozessmodelle**, sind ausdrücklich Teil der Bildwelt und transportieren die Prozess-Automatisierungs-Kompetenz. Auf Blau gesetzt, mit weißer/grüner Typo und grünem Pfeil („swipe"). ### 5. Social Media Miragon postet nur auf LinkedIn. **LinkedIn-Formate:** - Quadrat 1:1: **1200 × 1200 px** - Hochformat 4:5: **1200 × 1500 px**, auch für Karussells (PDF-Dokument) **Post-Typen (aus den Manual-Beispielen):** - Foto mit Farbverlauf und Text. - Grafik mit Text und Key Visual. - Foto mit „Chatbox" und Key Visual. - Karussell/Slides mit BPMN-Grafiken („swipe"-Pfeil in Grün). **Aufbau:** - Wortmarke gut sichtbar (oft oben links oder unten). - Ein klarer Claim oder eine Kernaussage, ein Wort in Grün hervorgehoben. - Key Visual als Akzent, nicht als Lärm. - Strikt Palettenfarben, viel Weißraum, klare Hierarchie. ### 6. Icons Miragon nutzt drei Zeichenarten. Jede hat ihren Platz, keine ersetzt eine andere. | Zeichenart | Was | Wo | |---|---|---| | **Komet** | Das Zeichen von Miragon (Key Visual, Abschnitt 2), als App-Icon auf der blauen Kachel (`miragon-komet-blau.svg`) | Miragon, Miragon AI, die Plattform und jede Miragon-Software außer den Modelern. In den Modelern im Empty State und im Splash. | | **Modeler-Icons** | Ein Werkzeugzeichen je Miragon Modeler: Outline der Notation plus genau eine Akzentfläche, auf der blauen Kachel mit dem Radius des Komet-Icons | App-Icon, Favicon, Datei- und Tab-Icon des jeweiligen Modelers | | **Lucide** | Funktionsicons aus [Lucide](https://lucide.dev), einem quelloffenen Outline-Set | Bedienelemente in Oberflächen, Doku, Präsentationen und Marketing | **Modeler-Icons.** Das Set und alle Dateien stehen auf der Seite [Modeler-Icons](https://corporate-identity.netlify.app/corporate-design/modeler-icons). Wie du ein Modeler-Icon einbaust oder ein neues entwirfst und welche Regeln dabei gelten, beschreibt die Skill `icon-design`. Die Dateien übernimmst du unverändert, nie nachzeichnen oder umfärben. Neue Modeler-Icons entstehen nur per PR in Miragon/corporate-identity, andere Produkte bekommen kein eigenes Zeichen. **Lucide:** - **Stil:** Outline, Strich 2,5 im 24er-Raster (in dichten Leisten 2), runde Enden. Das ist kräftiger als der Lucide-Standard 2, damit Lucide-Icons neben den Modeler-Icons gleich schwer wirken. Der Strich zählt in Einheiten des Rasters und wächst mit der Größe: bei 24 px sind es 2,5 px, bei 16 px 1,67 px. Kein `absoluteStrokeWidth`. Innerhalb eines Projekts bei Lucide bleiben, nicht mischen. Fehlt ein Icon, ergänzt du es im selben Stil (Skill `icon-design`). - **Größen:** 16 / 20 / 24 px (24 als Standard). - **Farbe:** Markenfarben Blau, Schwarz, Grün und Weiß. Auf Hell Blau oder Schwarz, auf Dunkel oder Farbe Weiß. Grün sparsam: In einer Reihe neutraler Icons trägt höchstens eins Grün, in einer Gruppe von Feature-Kacheln wechseln die Farben ab (auf Dunkel Weiß und Grün, auf Hell Blau und Grün). Nie ganze Sets grün. Auf Webseiten und in Oberflächen laufen die Farben über Rollen: Standard `--cd-ui-text`, Akzent `--cd-ui-icon-akzent` (hell Blau, dunkel Grün). Blau als Icon auf Schwarz fiele unter 3:1. Diese Farbregel gilt für Lucide. Die Farben der Modeler-Icons legt das Set fest. - **Einsatz:** solo (im Text/Button, ohne Hintergrund, in Textfarbe) ODER in einer Feature-Kachel: abgerundet (etwa 64 bis 80 px, großer Radius), ruhiger Hintergrund, Outline-Icon in Markenfarbe (Feature-/Hero-Akzent, wie auf miragon.io). Die Fläche der Kachel hängt vom Grund ab: - **Auf festen Bühnen** (Blau, Marken-Verlauf, Mesh) ist sie transluzent, Weiß mit niedriger Deckkraft (etwa 12 %), in beiden Modi gleich. Die Icons tragen Weiß und Grün. - **Auf der Seite** (Weiß, Grau, schwarze Sektion und im Dark Mode) ist sie deckend `--cd-ui-hover` (hell Blau-soft `#EEF1FD`, dunkel `#383838`), das Icon `--cd-ui-text` oder `--cd-ui-icon-akzent`. Weiß, Blau oder Grün mit Deckkraft ergäbe dort im Dunkeln einen Ton außerhalb der Stufen. Diese Feature-Kachel ist etwas anderes als die opake blaue App-Kachel von Komet und Modeler-Icons. - **Icon vs. Key Visual:** der grüne Komet ist der Akzent der Marke, kein Funktionsicon. Lucide-Icons bleiben neutral. - **Emojis:** in lockeren Marketing-Kontexten okay, nicht in Produkt-UI oder Doku. (Werte für Lucide: Vorschlagswerte, vom Marketing bestätigen lassen.) ### 7. Layout & Abstände - **Abstands-Skala (8-Punkt-Raster):** 4, 8, 16, 24, 32, 48, 64, 96 px. Als CSS-Tokens `--cd-space-1` bis `--cd-space-8` im Theme. - **Weißraum:** zwischen Sektionen 64 bis 96 px, zwischen Elementen einer Gruppe 16 bis 24 px, innerhalb eines Elements 8 bis 16 px. Im Zweifel mehr. - **Raster:** 12 Spalten, Inhaltsbreite rund 1152 px, Gutter 24 px; auf kleinen Schirmen 4 bis 6 Spalten. - **Logo-Schutzraum:** rundum mind. die Höhe des „M" (siehe Logo, Abschnitt 2). (8-Punkt-Skala gesetzt, Rasterwerte Vorschlag.) ### 8. Dark Mode Miragon-Oberflächen gibt es hell und dunkel. Das gilt für Apps und Modeler (Skill `modeler-tool-design`) und für Webseiten wie miragon.io, Landingpages und die Doku (dieser Abschnitt). Beide nutzen dieselbe Token-Datei, dieselben Rollen `--cd-ui-*` und dasselbe Attribut `data-cd-theme`. Eine Webseite liegt hell auf Weiß, hat Sektionen, Bilder und fremde Widgets, und den Modus wählt die Person selbst. #### 8.1 Grundsätze 1. **Schwarz ist der Grund.** Dunkel ist `#1D1D1D` der Seitengrund. Nichts ist dunkler, keine Fläche ist blau, grün oder statusfarben getönt. Dunkelblau gibt es nur im Verlauf. 2. **Höher heißt heller, und zwar neutral.** Jede dunkle Stufe ist Weiß in Schwarz gemischt, Kanal = round(29 + 226 × Anteil), also R = G = B. 3. **Rollen lösen den Kontrast.** Text Weiß, Links und Akzenttext Grün, Buttons Blau mit weißer Schrift, Fokus `blau-hell`, Status als Rand, Icon und Punkt in den `-hell`-Werten. `-soft` steht nie auf Dunkel. 4. **Nur die Rollen schalten um.** Palette, Statusfarben und UI-Ebene bleiben fest. Feste Bühnen (Blau, Verlauf, schwarze Sektion) sehen in beiden Modi gleich aus. 5. **Keine Farbe mit Deckkraft über Dunkel.** Blau 12 % über Schwarz ergibt `#202535`, also Dunkelblau. Dunkle Flächen sind deckend und neutral. 6. **Opt-in.** Erst `data-cd-theme` am `` schaltet den Dark Mode ein. Ohne das Attribut bleibt eine Webseite mit der neuen Token-Datei hell. 7. **Material ohne Bildschirm hat keinen Modus.** E-Mail, Druck, PDF, Social-Kacheln, `og:image` und Brand-Kit bleiben, wie sie sind (8.12). #### 8.2 Werte Die dunklen Neutralen haben keine eigene CSS-Variable, du erreichst sie nur über die Rollen. | Wert | Weiß in Schwarz | Rolle im Dark Mode | |---|---|---| | `#282828` | 5 % | `abschnitt`, `flaeche`, alle `*-flaeche` | | `#2F2F2F` | 8 % | `flaeche-hoch` (Dropdown, Dialog, Karte in grauer Sektion) | | `#383838` | 12 % | `hover` (Icon-Kachel, Tag, Hover) | | `#464646` | 18 % | `linie` (dekorativ) | | `#BBBBBB` | 70 % | `text-leise` | Die Rollen, die eine Webseite braucht (die vollständige Liste steht in `assets/tokens.json` unter `rolle`): | Rolle | Hell | Dunkel | Einsatz auf Webseiten | |---|---|---|---| | `--cd-ui-seite` | `#FFFFFF` | `#1D1D1D` | Seitengrund (`html`, `body`), weiße Sektion, Formularfeld | | `--cd-ui-abschnitt` | `#F9F7F7` | `#282828` | graue Sektion, Codeblock, Tabellenkopf, Zitat | | `--cd-ui-flaeche` | `#FFFFFF` | `#282828` | Karte auf der Seite, helle Fläche für Grafiken | | `--cd-ui-flaeche-hoch` | `#FFFFFF` | `#2F2F2F` | Karte in grauer Sektion, Dropdown, mobiles Menü, Dialog, Tooltip | | `--cd-ui-hover` | `#EEF1FD` | `#383838` | Icon-Kachel, Tag ohne Status, Hover in Listen, gewählter Eintrag | | `--cd-ui-linie` | `#E6E2E2` | `#464646` | Rahmen, Trennlinien, Kante dunkler Bühnen | | `--cd-ui-kontur` | `#8F8A8A` | `#8F8A8A` | Rand von Formularfeld und Checkbox | | `--cd-ui-text` | `#1D1D1D` | `#FFFFFF` | Text, Überschriften, Standard-Icons | | `--cd-ui-text-leise` | `#6B6666` | `#BBBBBB` | leiser Text, Platzhalter | | `--cd-ui-link` | `#2B50D4` | `#00E676` | Links | | `--cd-ui-icon-akzent` | `#335DE5` | `#00E676` | Icon mit Akzent, Rand von Zitaten | | `--cd-ui-fokus` | `#2B50D4` | `#6B8AFF` | Fokusrahmen | | `--cd-ui-interaktion` | `#335DE5` | `#6B8AFF` | aktive Navigation, angehakte Checkbox, Hover-Rand | | `--cd-ui-` | Statusfarbe | `-hell`-Wert | Rand, Icon und Punkt von Meldungen und Badges | | `--cd-ui--flaeche` | `-soft` | `#282828` | Fläche von Formular-Meldung und getöntem Badge | | `--cd-ui-wortmarke` | `#00E676` | `#FFFFFF` | Wortmarke im Header | | `--cd-ui-backdrop` | Schwarz 42 % | Schwarz 60 % | Backdrop von Dialog und mobilem Menü, immer mit `backdrop-filter: blur(3px) grayscale(1)` | Statusfarbe als Text: hell nur `danger` und `info`, dunkel alle vier, außer `danger` auf `hover` und `info` auf `flaeche-hoch` und `hover`. Wo das nicht erlaubt ist, steht der Text in `--cd-ui-text` und die Farbe trägt Icon, Rand oder Punkt. Alle Paare beider Modi stehen in `assets/contrast.json` (Felder `id`, `gruppe`, `modus`, `anspruch`). #### 8.3 Einbau - Vendore `assets/cd-tokens.generated.css` aus dieser Skill unverändert ins Repo der Webseite und überschreib die Datei bei jedem Update. Es ist dieselbe Datei wie in der Skill `modeler-tool-design`. - `cd-tokens.generated.json` und `cd-canvas.css` braucht eine Webseite nur, wenn sie einen Modeler live einbettet. Dann gilt die Skill `modeler-tool-design`. - `data-cd-theme="system"` am `` schaltet den Dark Mode ein. - In Komponenten nur Rollen. Feste Werte (`--cd-blau`, `--cd-weiss`, `--cd-schwarz`) nimmst du nur für Buttons, Badges und feste Bühnen. | Webseite | Technik | Modus | |---|---|---| | Doku (VitePress) | Doku-Variante der Token-CSS mit `html.dark` | Umschalter von VitePress, startet mit System | | miragon.io (Astro, Tailwind 4) | `cd-tokens.generated.css` mit `data-cd-theme` | Umschalter aus 8.4 | | weitere Webseiten, Landingpages | wie miragon.io | wie miragon.io | #### 8.4 Moduswahl - **Standard System.** `data-cd-theme="system"` steht fest im HTML. Ohne JavaScript folgt die Seite über die Media Query der Token-Datei dem System. - **Umschalter im Header**, rechts vor dem Call-to-Action: drei Icon-Buttons System, Hell, Dunkel (Lucide `monitor`, `sun`, `moon`) als Radiogruppe. `role="radiogroup"` mit `aria-label="Darstellung"`, je Button `role="radio"`, `aria-checked` und `aria-label`, dazu ein Tooltip mit dem Namen. Der gewählte Button bekommt `--cd-ui-hover` und einen Ring in `--cd-ui-interaktion`. Mobil steht der Umschalter mit Text im Menü. Ohne JavaScript bleibt er ausgeblendet (`hidden`, das Skript entfernt es). - **Speichern** in `localStorage` unter `miragon.darstellung`, Werte `light` oder `dark`. „System" löscht den Eintrag. - **Inline-Skript im ``**, nach den Meta-Tags und vor dem ersten Stylesheet. Es setzt das Attribut vor dem ersten Paint, darum flackert nichts: ```html ``` - **`color-scheme`:** Die Meta-Angabe wirkt, bis das CSS geladen ist. Danach setzt die Token-Datei `color-scheme` je Modus, Formularfelder, Scrollbars und Datumswähler gehen mit. - **`theme-color`:** zwei Meta-Tags mit `media`, dunkel `#1D1D1D`, hell der bisherige Wert der Seite (miragon.io `#FFFFFF`, die Doku `#335DE5`). Bei fester Wahl setzt das Skript beide auf den Wert des Modus. - **Wechsel im Umschalter:** Attribut und Meta-Tags setzen wie im Skript, einen Frame lang `transition: none`, Wahl speichern. Bei „System" geht `data-cd-theme` auf `system`, `color-scheme` auf `light dark` und beide `theme-color` zurück auf ihre Werte. Bei `prefers-reduced-motion` ohne Übergang. - **Seitenwechsel ohne Neuladen** (Astro `ClientRouter`, View Transitions): Astro übernimmt die Attribute des neuen ``, `data-cd-theme` stünde wieder auf `system`. Darum läuft das Skript auch bei `astro:after-swap`. #### 8.5 Flächen und Sektionen | Element | Hell | Dunkel | Regel | |---|---|---|---| | Seitengrund, weiße Sektion | Weiß | Schwarz | `--cd-ui-seite` | | Graue Sektion | Grau | 5 % | `--cd-ui-abschnitt`. Der Wechsel Weiß und Grau wird Schwarz und 5 %. Stoßen zwei gleiche Sektionen aneinander, trennt sie 1px `--cd-ui-linie` | | Karte auf der Seite | Grau, oder Weiß mit Rand | 5 % | `--cd-ui-abschnitt` bzw. `--cd-ui-flaeche`, Rand 1px `--cd-ui-linie`, dunkel Pflicht | | Karte in grauer Sektion | Weiß | 8 % | `--cd-ui-flaeche-hoch`, Rand 1px `--cd-ui-linie`. Dunkel liegt eine Karte immer heller als ihr Band | | Dropdown, mobiles Menü, Dialog, Tooltip | Weiß | 8 % | `--cd-ui-flaeche-hoch` | | Kachel hinter Icon, Tag, Hover in Listen | Blau-soft | 12 % | `--cd-ui-hover`, Icon `--cd-ui-text` oder `--cd-ui-icon-akzent` (höchstens eins je Reihe). Ersetzt Blau oder Grün mit Deckkraft. Auf festen Bühnen gilt Abschnitt 6 | | Sektion oder Karte auf Blau, Marken-Verlauf, Mesh-Hero | fest | wie hell | feste farbige Bühne, siehe unten | | Schwarze Sektion, Footer, schwarze Karte | Schwarz | Schwarz | `data-cd-theme="dark"` an der Bühne, darin gelten die dunklen Rollen. Die Fläche ist `--cd-ui-seite`, nie fest `--cd-schwarz` mit Rollen-Text: Gedruckt gelten die hellen Rollen, Fläche und Text kippen dann gemeinsam. Kante 1px `--cd-ui-linie`, sonst verschmilzt die Bühne mit der dunklen Seite | **Feste farbige Bühnen** (Blau, Marken-Verlauf, Mesh-Hero) sehen in beiden Modi gleich aus. Sie nehmen feste Werte, weil die dunklen Rollen auf Blau durchfallen: Grün als Link 3,28:1, leiser Text `#BBBBBB` 2,85:1, Fokus `blau-hell` 1,75:1. - Text, Links und Icons Weiß (5,47:1), Links unterstrichen. Grün nur als großer Akzent ab 24px oder 19px fett, nie für Link-Hover. - Fokus Weiß. Auf Verlauf und Mesh, wo Grün unter dem Element liegen kann, ein Doppelring: innen 2px Schwarz, außen 2px Weiß. Einer der beiden Ringe hält auf jedem Grund mindestens 4,1:1. - Buttons auf Blau sind hell: Weiß oder Grau mit schwarzer Schrift. Primär-Blau verschwände auf Blau. - Eine weiße Karte auf Blau ist eine helle Bühne mit `data-cd-theme="light"`. - Liegt der Header transparent über dem Hero, gelten dort für Links, Logo und Umschalter die Werte der Bühne. Das mobile Menü folgt dem Modus. #### 8.6 Text, Links, Buttons, Formulare, Fokus | Element | Regel, in beiden Modi über Rollen | |---|---| | Text, Überschriften | `--cd-ui-text`, leiser Text `--cd-ui-text-leise`. Keine Deckkraft an Text: Schwarz 70 % oder Weiß 70 % wird `text-leise` | | Links | `--cd-ui-link` (hell `blau-link`, dunkel Grün), im Fließtext unterstrichen, Hover mit dickerem Unterstrich. Links in Listen und Navigation: Text `--cd-ui-text`, Hover `--cd-ui-link` | | Button primär | Fläche `--cd-blau`, Schrift Weiß (5,47:1), Hover `--cd-blau-link` (6,56:1). Grün ist nie Button-Fläche, auch nicht im Hover | | Button sekundär | Fläche `--cd-ui-flaeche-hoch`, Rand `--cd-ui-linie`, Text `--cd-ui-text`. Hover: Rand `--cd-ui-interaktion`, Fläche `--cd-ui-hover`, Text `--cd-ui-link` | | Formularfeld | Fläche `--cd-ui-seite`, Rand `--cd-ui-kontur` (hell 3,40:1, dunkel 4,95:1), Text `--cd-ui-text`, Platzhalter `--cd-ui-text-leise`. Fokus mit Rand `--cd-ui-interaktion` und Fokusrahmen, ohne Ring in Blau-soft oder Rot-soft. Fehler mit Rand und Meldung in `--cd-ui-danger`, dazu `aria-invalid` | | Checkbox, Radio | Rand `--cd-ui-kontur`, angehakt Rand und Haken in `--cd-ui-interaktion`, keine blaue Füllung | | Formular-Meldung | Status-Kasten: Fläche `--cd-ui--flaeche`, Rand deckend `--cd-ui-`, Text `--cd-ui-text` | | Fokus | `outline: 2px solid var(--cd-ui-fokus); outline-offset: 2px;`, auf festen farbigen Bühnen wie in 8.5. Der Sprunglink „Zum Inhalt springen" ist ein Primär-Button und bleibt Blau mit Weiß | | Deaktiviert | deckend und neutral: Fläche `--cd-ui-hover`, Text `--cd-ui-text-leise`. Nie über `opacity`, Blau 50 % über Schwarz ergäbe Dunkelblau | | Hochkontrast | Das Skript aus 8.4 setzt bei `prefers-contrast: more` `data-cd-kontrast="hoch"`. Die Token-Datei macht dann `--cd-ui-linie` zu `kontur` und leisen Text zur Textfarbe. In Komponenten: Fokusrahmen 3px, keine Schatten, jede Fläche mit Rand in `--cd-ui-linie` (dann `kontur`) | | Erzwungene Farben | Unter `forced-colors: active` (Windows-Kontrastdesigns) gehen die Rollen auf Systemfarben (`Canvas`, `CanvasText`, `LinkText`, `Highlight`), nur mit gesetztem `data-cd-theme`. Nichts darf allein über Hintergrundfarbe oder Schatten sichtbar sein | #### 8.7 Navigation, Footer, Tabellen, Code, Zitate, Badges | Element | Regel | |---|---| | Navigation | Leiste auf `--cd-ui-seite`, Einträge `--cd-ui-text`, Hover `--cd-ui-link`. Aktive Seite mit `aria-current="page"` und 2px-Balken in `--cd-ui-interaktion`, Farbe allein reicht nicht | | Dropdown | `--cd-ui-flaeche-hoch`, Rand `--cd-ui-linie`, Hover `--cd-ui-hover`, Gruppenlabel `--cd-ui-text-leise` | | Header über dem Hero | feste Bühne (8.5): Links und Icons Weiß, Hover mit Unterstrich, Fokus mit Doppelring. Das mobile Menü ist eine Karte auf `--cd-ui-flaeche-hoch` | | Footer | schwarze Bühne mit `data-cd-theme="dark"` auf `--cd-ui-seite`, in beiden Modi gleich. Links Weiß, Hover Grün (`--cd-ui-link`), leiser Text `--cd-ui-text-leise`, Felder wie 8.6. Oben 1px `--cd-ui-linie` als Kante zur dunklen Seite | | Tabellen | Kopf `--cd-ui-abschnitt`, Rahmen und Zeilenlinien `--cd-ui-linie`, Text `--cd-ui-text`. Zebra mit `--cd-ui-abschnitt`, Zeilen-Hover `--cd-ui-hover` | | Codeblock | Fläche `--cd-ui-abschnitt`, Rand `--cd-ui-linie`. Shiki mit `github-light-high-contrast` und `github-dark-default`: Jede Token-Farbe hält dort 4,5:1, hell ab 4,72:1, dunkel ab 4,79:1 (Kommentar). `github-light` fällt auf Grau mit Variablen, Keywords und Strings durch (3,27 bis 4,33:1). Nie auf `flaeche-hoch` (dunkel 4,35:1) | | Inline-Code | Fläche `--cd-ui-abschnitt`, in Status-Kästen `--cd-ui-flaeche-hoch`, Text `--cd-ui-text` | | Zitat | Fläche `--cd-ui-abschnitt`, links 4px in `--cd-ui-icon-akzent` (hell Blau, dunkel Grün), Text `--cd-ui-text` | | Badge | volles Badge in der Statusfarbe, in beiden Modi gleich (Schwarz auf Grün und Amber, Weiß auf Rot und Blau). Getöntes Badge auf `--cd-ui--flaeche` mit deckendem Rand. Tags ohne Status („Neu", „Kostenlos") nehmen `--cd-ui-hover` mit Text `--cd-ui-text` | Shiki färbt über zwei Variablen je Token. `light-dark()` folgt dem `color-scheme`, das die Token-Datei je Modus setzt, auch unter System, darum braucht es keinen eigenen Dunkel-Block: ```css /* Shiki mit themes { light: 'github-light-high-contrast', dark: 'github-dark-default' } und defaultColor: false */ .shiki { background-color: var(--cd-ui-abschnitt); border: 1px solid var(--cd-ui-linie); } .shiki, .shiki span { color: light-dark(var(--shiki-light), var(--shiki-dark)); } ``` #### 8.8 Logo, Komet, Favicon - **Wortmarke im Header:** hell Grün, dunkel Weiß über `--cd-ui-wortmarke`. Am einfachsten als Inline-SVG mit `fill: var(--cd-ui-wortmarke)`, dann braucht es keinen Tausch. Als Datei zwei `` mit `cd-nur-hell` (`miragon-logo-gruen.svg`) und `cd-nur-dunkel` (`miragon-logo-weiss.svg`), siehe 8.9. - **Über Blau, Verlauf und Mesh:** fest Weiß, alternativ Grün, in beiden Modi gleich. **Im Footer:** Weiß. - **Komet:** Grün in beiden Modi (10,10:1 auf Schwarz), auf Blau unverändert. - **Favicon und App-Icon:** bleiben. Die blaue Kachel trägt in hellen und dunklen Browser-Tabs. #### 8.9 Bilder und Grafiken | Bildart | Regel | |---|---| | Fotos, Videos, Vorschaubilder | unverändert, ohne Filter und ohne Abdunkeln | | Freigestellte Personen, 3D-Illustrationen auf transparentem Grund | unverändert, solange am Rand nichts Dunkles steht. Sichtprüfung im Dunkeln | | Grafiken mit schwarzen Linien oder schwarzem Text auf transparentem Grund | Variante für Dunkel (Datei `-dunkel`, Linien und Text Weiß) oder eine helle Fläche: Bühne `data-cd-theme="light"`, Fläche `--cd-ui-flaeche`, Radius md, Innenabstand 16px | | Grafiken mit weißem Grund | auf dieselbe helle Fläche, damit das weiße Rechteck gewollt wirkt | | Screenshots heller Apps | bleiben hell, Rahmen 1px `--cd-ui-linie`, Radius md. Gibt es die App dunkel (Miragon Modeler), zeigst du dunkel den dunklen Screenshot | | Diagramme (BPMN, Wardley, Event Storming) | Exporte sind hell und bleiben es, auf der hellen Fläche wie Papier auf dunklem Tisch. Ein live eingebetteter Modeler folgt dem Modus (Skill `modeler-tool-design`) | | Kunden- und Partnerlogos | Negativ-Variante der Fremdmarke, wenn es sie gibt, sonst auf der hellen Fläche. Nie umfärben oder invertieren | | Inline-SVG (Icons, Charts) | Farben über Rollen (`currentColor`, `var(--cd-ui-*)`), dann schaltet die Grafik mit | Zwei Dateien je Modus: - Folgt die Seite nur dem System, ohne Umschalter, reicht ``: ```html … ``` - Mit Umschalter folgt `` weiter dem System und zeigt bei der Wahl „Hell" auf dunklem System die dunkle Datei. Dann nimmst du zwei Bilder mit den Hilfsklassen der Token-Datei, beide mit `loading="lazy"`, damit der Browser nur das sichtbare lädt: ```html … … ``` Die Klassen richten sich nach `data-cd-theme` am ``, auch unter System, und zeigen beim Drucken die helle Datei. - SVG-Dateien, die sich per eingebetteter Media Query selbst umfärben, nimmst du nicht. Ob sie dem Umschalter folgen, hängt vom Browser ab. - Verboten an Bildern und iframes: `filter: invert()`, `hue-rotate()`, `brightness()` und `mix-blend-mode`. Invertieren macht aus Blau einen Ockerton und kippt Fotos und Fremdmarken. #### 8.10 Eingebettete Fremd-Widgets | Lage | Regel | |---|---| | Widget hat einen Dark Mode mit neutralen Flächen | Übergib den aufgelösten Modus der Seite, `light` oder `dark`, nie `auto`: `auto` folgt dem System und überhört den Umschalter. Beispiel Cloudflare Turnstile, Option `theme`. Nach einem Wechsel neu rendern | | Widget hat keinen Dark Mode, oder sein Dunkel ist getönt (bläuliche Kartenstile, Navy-Kalender) | bleibt hell, auf einer hellen Karte: `data-cd-theme="light"`, Fläche `--cd-ui-flaeche`, Radius md, Innenabstand. Die Karte setzt `color-scheme: light`, so passen iframe und Umgebung zusammen | | Widget lässt Farben setzen (Terminbuchung per Parameter, Formular-Builder) | nur CI-Werte und nur, wenn jedes Paar die Ansprüche aus `assets/contrast.json` hält. Sonst bleibt es hell | | Videos (YouTube, Vimeo) | unverändert, Player und Vorschaubild bleiben, wie sie sind | | Karten (OpenStreetMap, Google Maps) | hell. Die dunklen Kartenstile der Anbieter sind meist bläulich | | Consent-Banner | im Werkzeug des Anbieters auf CI-Werte stellen. Ohne neutralen Dunkel-Stil bleibt es hell | Den aufgelösten Modus liest ein Skript aus der Token-Datei: `getComputedStyle(element).colorScheme` ergibt `dark` oder `light`, auch unter System. `normal` heißt: kein Attribut, also hell. Wechsel meldet ein `MutationObserver` auf `data-cd-theme` zusammen mit `matchMedia('(prefers-color-scheme: dark)')`. #### 8.11 Tailwind und Astro - **`dark:` an das Attribut koppeln.** Ohne diese Zeilen nimmt Tailwind `prefers-color-scheme` und überhört den Umschalter. Helle Inseln (`data-cd-theme="light"` für Fremd-Widgets, Grafiken, weiße Karten auf Blau) nimmt die Variante aus, dort bleibt `dark:` still wie die Rollen. Tailwind 4: ```css @custom-variant dark { @media screen { &:where([data-cd-theme="dark"], [data-cd-theme="dark"] *):not(:where([data-cd-theme="dark"] [data-cd-theme="light"], [data-cd-theme="dark"] [data-cd-theme="light"] *)) { @slot; } } @media screen and (prefers-color-scheme: dark) { &:where([data-cd-theme="system"], [data-cd-theme="system"] *):not(:where([data-cd-theme="system"] [data-cd-theme="light"], [data-cd-theme="system"] [data-cd-theme="light"] *)) { @slot; } } } ``` Tailwind 3 nimmt dieselben Selektoren über `darkMode: ['variant', [...]]`. Eine dunkle Bühne innerhalb einer hellen Insel färbst du nur über Rollen, dort greift `dark:` nicht. - **`dark:` brauchst du selten.** Farben laufen über Rollen, Bilder und Logos über die Hilfsklassen. `dark:` bleibt für Fälle ohne Rolle. - **Theme-Farben auf Rollen**, mit `@theme inline`. Dann nutzt jede Utility die Variable direkt und löst in Containern mit eigenem `data-cd-theme` neu auf. Die Tailwind-Palette schaltest du ab: ```css @theme { --color-*: initial; } @theme inline { --color-seite: var(--cd-ui-seite); --color-abschnitt: var(--cd-ui-abschnitt); --color-flaeche: var(--cd-ui-flaeche); --color-flaeche-hoch: var(--cd-ui-flaeche-hoch); --color-hover: var(--cd-ui-hover); --color-linie: var(--cd-ui-linie); --color-kontur: var(--cd-ui-kontur); --color-text: var(--cd-ui-text); --color-text-leise: var(--cd-ui-text-leise); --color-link: var(--cd-ui-link); --color-icon-akzent: var(--cd-ui-icon-akzent); --color-fokus: var(--cd-ui-fokus); --color-interaktion: var(--cd-ui-interaktion); --color-wortmarke: var(--cd-ui-wortmarke); --color-success: var(--cd-ui-success); --color-warning: var(--cd-ui-warning); --color-danger: var(--cd-ui-danger); --color-info: var(--cd-ui-info); --color-success-flaeche: var(--cd-ui-success-flaeche); --color-warning-flaeche: var(--cd-ui-warning-flaeche); --color-danger-flaeche: var(--cd-ui-danger-flaeche); --color-info-flaeche: var(--cd-ui-info-flaeche); --color-blau: var(--cd-blau); /* fest: Primär-Button */ --color-gruen: var(--cd-gruen); /* fest: Komet, großer Akzent auf Blau */ --color-weiss: var(--cd-weiss); /* fest: Bühnen auf Blau */ --color-schwarz: var(--cd-schwarz); /* fest: Schrift auf vollen Badges in Grün und Amber */ } ``` Die Status-Farben (`text-danger`, `border-success`) sind Rollen und schalten um. Als Text gilt die Statustext-Regel aus 8.2. Volle Badges sind in beiden Modi gleich und nehmen die festen Werte, etwa `bg-[var(--cd-danger)] text-weiss`. - **Verboten:** Tailwind-Grautöne (`gray-*`, `slate-*`, `zinc-*`, `neutral-*`, `stone-*`), `bg-black`, `dark:bg-blue-950`, `dark:bg-slate-900` und jede andere Palettenfarbe als dunkle Fläche, Deckkraft-Modifikatoren an Farben auf dunklem Grund (`bg-tertiary/10`, `text-text-dark/70`, `border-white/10`), `dark:prose-invert`. - **Typography-Plugin:** Die Variablen `--tw-prose-*` (Text, Überschriften, Links, Code, `pre`-Grund, Linien, Zitat-Rand) zeigen auf Rollen. `prose-invert` bringt die Grautöne der Tailwind-Palette mit. - **Forms-Plugin:** `@tailwindcss/forms` setzt `gray-500` und `blue-600`. Rand, Platzhalter, Fokus und Checkbox kommen aus den Rollen (8.6). - **Astro:** Das Skript aus 8.4 steht mit `is:inline` direkt im `` des Basis-Layouts. Ohne `is:inline` bündelt Astro es als Modul, es liefe erst nach dem ersten Paint. Mit `ClientRouter` ruft es sich bei `astro:after-swap` erneut auf. React-Inseln (`client:*`) lesen den Modus wie Fremd-Widgets (8.10), Farben kommen aus dem CSS. #### 8.12 Nicht betroffen - **E-Mails** (Newsletter, Bestätigungen, Antworten auf Formulare) bleiben hell und bekommen keinen eigenen Dark Mode. - **Druck** ist immer hell. Die Dunkel-Blöcke der Token-Datei stehen unter `@media screen`, beim Drucken gelten die hellen Rollen, und `cd-nur-hell` zeigt die helle Datei. - **PDF, Social-Kacheln, `og:image` und Brand-Kit-Formate** (Logos, Farbfelder, Vorlagen) bleiben unverändert, sie haben keinen Modus. Die dunklen Neutralen im Brand-Kit sind für Oberflächen gedacht. - **Favicon und App-Icon** bleiben (8.8). #### 8.13 Abnahme je Webseite - Jede Seitenvorlage in Hell, Dunkel und System gesehen, mit und ohne JavaScript. - Kein Flackern beim Laden und beim Seitenwechsel, die Wahl bleibt nach dem Neuladen. - Bilder auf transparentem Grund, Logos, Screenshots und Fremd-Widgets im Dunkeln geprüft. - Keine getönte Fläche im Dunkeln: Jede dunkle Fläche ist Schwarz oder eine neutrale Stufe, kein Tailwind-Grau. - Blau, Verlauf und schwarze Sektionen in beiden Modi gleich. - Hochkontrast (`prefers-contrast: more`) und erzwungene Farben (Windows-Kontrastdesigns) angesehen: Rahmen sichtbar, keine Schatten, Fokus 3px, nichts verschwindet. - Druckvorschau hell, auch schwarze Sektionen und der Footer, brand-lint ohne Befunde. ### 9. Quick-Reference (Copy-Paste) ``` Blau #335DE5 rgb(51,93,229) -> Primärfarbe, Flächen, Buttons, Links auf Hell Grün #00E676 rgb(0,230,118) -> Akzent, Key Visual, Highlights, Links im Dark Mode Grau #F9F7F7 rgb(249,247,247) -> neutrale Fläche Schwarz #1D1D1D -> Text, Logo-SW, Grund im Dark Mode Weiß #FFFFFF -> Text auf Farbe und im Dark Mode, Flächen Dark Mode (nur über die Rollen --cd-ui-*): Grund #1D1D1D | Fläche #282828 | schwebend #2F2F2F | Hover #383838 | Linie #464646 leiser Text #BBBBBB | Links #00E676 | Fokus #6B8AFF | Buttons #335DE5 mit Weiß Schrift: Geist (Headlines: 600/700, Body: 400), Code: Geist Mono. Quelloffen (SIL OFL), selbst gehostet. Social: LinkedIn 1200x1200 (1:1) | 1200x1500 (4:5, auch Karussell) ``` ## Modeler-Icons Jeder Miragon Modeler trägt als App-Icon, Favicon und Datei-Icon sein Zeichen aus dem Set der Modeler-Icons: die Outline der Notation plus genau eine Akzentfläche, auf der blauen Kachel mit dem Radius des Komet-Icons. Der Komet bleibt das Zeichen von Miragon und der Plattform, auch im Empty State der Modeler. Nutze die Dateien unverändert, neue Modeler-Icons entstehen nur über einen Pull Request in Miragon/corporate-identity. Seite: https://corporate-identity.netlify.app/corporate-design/modeler-icons ### Regeln des Sets - 24er-Raster wie Lucide, Strich 2 mit runden Enden und Ecken (die Lucide-Icons tragen 2,5, die Akzentfläche gleicht das Gewicht aus), Live-Bereich 2 bis 22. Mit Strich bleibt jedes Icon zwischen 1 und 23. Die längere Achse misst 18 bis 21 Einheiten (mit Strich 20 bis 22), der Mittelpunkt liegt höchstens 1 Einheit neben der Mitte. - Waagerechte und senkrechte Strich-Mittellinien liegen auf ganzen Zahlen, die nicht durch 3 teilbar sind. Dann bleibt ein Strich auch bei 16 px eine volle Pixelzeile. - Genau ein Akzent, immer als Fläche, an der schmaleren Seite mindestens 3,5 Einheiten und mit mindestens 2 Einheiten Luft zur Outline. Der Akzent ist eine Form der Notation, nie ein Pfeil, Plus oder Haken. - Gewicht, gemessen am hellen Glyph: Tinte 23 bis 30 % der Fläche, Akzent 7 bis 11 %, Anteil des Akzents an der Tinte 25 bis 40 %, Schwerpunkt je Achse höchstens 0,75 Einheiten neben der Mitte. So wirkt keins der Icons schwerer als die anderen. - Bei 16 px bleibt jedes Paar unterscheidbar: Die weichgezeichneten Glyphen erreichen paarweise höchstens den Kosinus 0,93. Am ähnlichsten sind heute BPMN und DMN mit 0,909. - Läuft ein Icon bei 16 px zu, bekommt es eine vereinfachte Klein-Fassung bis 20 px (heute DMN). Auch das Favicon nutzt die Klein-Fassung. - Jede Grundform gehört genau einem Modeler: Raute (BPMN), Tabelle (DMN), Chevron (Wertschöpfungsketten), Pille (Team Topologies), L-Achse (Wardley Maps), überlappende Kontexte (Context Maps), gekippter Zettel (Event Storming), Person (Domain Storytelling). - Die Kachel misst 512 × 512, ist Blau (`blau`, #335DE5) und hat den Radius 112 des Komet-Icons. Das Favicon ist eine Kachel im 24er-Raster mit Radius 5,25. Das Glyph liegt dort 1:1 im Raster, damit die Rasterregel greift: Jeder Strich deckt bei 32 und 16 px eine volle Pixelzeile. - Farben nur aus den Tokens, je Variante: - App-Kachel und Favicon: Outline Weiß (`weiss`, #FFFFFF), Akzent Grün (`gruen`, #00E676). Auf der Kachel erreicht die Outline 5,47:1 und der Akzent 3,28:1. - Hell, für helle Oberflächen: Outline Schwarz (`schwarz`, #1D1D1D), Akzent Blau (`blau`, #335DE5). Auf Weiß erreicht die Outline 16,86:1 und der Akzent 5,47:1. - Dunkel, für dunkle Oberflächen: Outline Weiß (`weiss`, #FFFFFF), Akzent Grün (`gruen`, #00E676). Auf Schwarz erreicht die Outline 16,86:1 und der Akzent 10,10:1. - Mono, inline neben einem Label: erbt die Textfarbe (`currentColor`) und trägt die Strichattribute an der Wurzel wie Lucide. - Grün steht nie auf Weiß, dort erreicht es nur 1,67:1. Im hellen Theme trägt deshalb Blau den Akzent. ### Das Set | Modeler | Was das Icon zeigt | Akzent | Eingebaut | |---|---|---|---| | **BPMN** (`bpmn`) | Ein Stück BPMN-Ablauf: Task und Sequenzfluss, der unter das Gateway läuft. | das Gateway, an dem der Prozess entscheidet, wie es weitergeht | [Miragon/bpmn-modeler#1630](https://github.com/Miragon/bpmn-modeler/pull/1630) | | **DMN** (`dmn`) | Die Entscheidungstabelle: Input-Spalten, Kopfzeile und Hit-Policy-Eckzelle. | die Output-Spalte, also das Ergebnis der Entscheidung | [Miragon/bpmn-modeler#1630](https://github.com/Miragon/bpmn-modeler/pull/1630) | | **Wertschöpfungsketten** (`value-chain`) | Zwei Glieder einer ARIS-Wertschöpfungskette mit gleich tiefer Kerbe und Spitze. | das nächste Glied, an dem der Wert entsteht | [Miragon/value-chain-modeler#20](https://github.com/Miragon/value-chain-modeler/pull/20) | | **Team Topologies** (`team-topologies`) | Drei Teamtypen wie im Buch: Stream-aligned, Enabling und Platform als Basis. | das Stream-aligned Team als Pille, das am Fluss der Änderung arbeitet | [Miragon/team-topologies-modeler#101](https://github.com/Miragon/team-topologies-modeler/pull/101) | | **Wardley Maps** (`wardley-maps`) | Die Karte mit Wertkette und Evolutionsachse, darin eine Komponente als Ring. | dieselbe Komponente nach ihrer Evolution | [Miragon/wardley-maps-modeler#128](https://github.com/Miragon/wardley-maps-modeler/pull/128) | | **Context Maps** (`context-maps`) | Zwei überlappende Bounded Contexts mit Shared Kernel, wie im DDD-Lehrbuch. | der geteilte Kern | [Miragon/context-maps-modeler#55](https://github.com/Miragon/context-maps-modeler/pull/55) | | **Event Storming** (`event-storming`) | Zettel an der Wand: ein gekippter Zettel, vorn darauf das Domain Event. | das Domain Event | [Miragon/event-storming-modeler#32](https://github.com/Miragon/event-storming-modeler/pull/32) | | **Domain Storytelling** (`domain-storytelling`) | Der Domain-Story-Satz: Akteur und Arbeitsgegenstand wie die egon-Starter-Icons. | das Dokument, das in der Geschichte zwischen den Akteuren wandert | Offen: Markenfrage ungeklärt, egon.io ist eine Marke von WPS. Bis über Icon und Produktnamen entschieden ist, baut niemand ein (Issue Miragon/corporate-identity#26). | ### Dateien IDs: bpmn, dmn, value-chain, team-topologies, wardley-maps, context-maps, event-storming, domain-storytelling. Eine Klein-Fassung bis 20 px gibt es für dmn. | Datei | Wofür | |---|---| | https://corporate-identity.netlify.app/modeler-icons/app/.svg | App-Kachel 512 × 512: App-Icon, Marketplace, Launcher | | https://corporate-identity.netlify.app/modeler-icons/favicon/.svg | Browser-Tab und Favicon (16 und 32 px) | | https://corporate-identity.netlify.app/modeler-icons/glyph/-hell.svg | Datei-Icon auf hellen Oberflächen (Explorer und Editor-Tab in VS Code und IntelliJ) | | https://corporate-identity.netlify.app/modeler-icons/glyph/-dunkel.svg | Datei-Icon auf dunklen Oberflächen (Explorer und Editor-Tab in VS Code und IntelliJ) | | https://corporate-identity.netlify.app/modeler-icons/glyph/-mono.svg | Tab, Menü und Label im eigenen Chrome eines Modelers (Web, Standalone), erbt die Textfarbe | | https://corporate-identity.netlify.app/modeler-icons/glyph/-klein-hell.svg, -klein-dunkel.svg, -klein-mono.svg | Klein-Fassung bis 20 px, wo es sie gibt | | https://corporate-identity.netlify.app/modeler-icons/png/-.png | PNG mit 16, 32, 48, 180, 256, 512, 1024 px. 16 und 32 aus dem Favicon, 180 opak für apple-touch-icon | | https://corporate-identity.netlify.app/modeler-icons/ico/.ico | ICO mit 16, 32, 48, 256 px | | https://corporate-identity.netlify.app/modeler-icons/intellij//pluginIcon.svg | IntelliJ: Plugin-Icon 40 × 40 mit Rand | | https://corporate-identity.netlify.app/modeler-icons/intellij//.svg, _dark.svg | IntelliJ: Datei- und Action-Icons 16 × 16, hell und dunkel | ## Dark Mode (Apps und Webseiten) Apps (Modeler als Web-App, VS-Code-Webview, IntelliJ, Standalone) und Webseiten (miragon.io, Landingpages, diese Doku) haben einen Dark Mode aus derselben Quelle: einen zweiten Satz Rollen (--cd-ui-*) über der unveränderten Palette. Die Werte stehen unter „Tokens" in den Tabellen „Dunkle Neutrale" und „Rollen für Hell und Dunkel". Seite: https://corporate-identity.netlify.app/corporate-design/dark-mode ### Grundsätze - Schwarz (`#1D1D1D`) ist der Grund. Nichts ist dunkler, keine Fläche ist blau, grün oder statusfarben getönt. Dunkelblau gibt es nur im Verlauf. - Höher heißt heller, und zwar neutral: Jede dunkle Stufe ist Weiß in Schwarz gemischt, Kanal = round(29 + 226 × Anteil), also R = G = B. Es gibt fünf Stufen: 5 %, 8 %, 12 %, 18 % und 70 %. - Keine Farbe mit Deckkraft und kein color-mix auf dunklem Grund, beides ergibt getönte Flächen. Schwebende Flächen sind deckend. Erlaubt sind Schwarz mit Deckkraft für Backdrop und Schatten, der Backdrop immer mit `backdrop-filter: blur(3px) grayscale(1)`, und die Deckkraft schwebender Karten über `--cd-ui-chrome-deckkraft` (dunkel 100 %). - Text Weiß, leiser Text `#BBBBBB`, Links und Akzenttext Grün, im Fließtext unterstrichen. Buttons bleiben Blau mit weißer Schrift, Grün ist nie Button-Fläche. Fokus und Auswahl `blau-hell`, der Fokusrahmen 2px mit 2px Abstand. - Status steht als Rand, Icon und Punkt in den -hell-Werten. -soft steht nie auf Dunkel, Status-Kästen liegen dunkel auf einer neutralen Fläche. Wo ein Status Text sein darf, zeigt die Tabelle „Statustext". - Blau, blau-link und die festen Werte --cd-info und --cd-danger sind auf Dunkel nie Text. Status als Text nur über die Status-Rollen (`--cd-ui-success` bis `--cd-ui-info`) und nur, wo die Tabelle „Statustext" es erlaubt. ui.linie und ui.text-leise bleiben für helle Bühnen, im Dark Mode gelten die Rollen. - In Komponenten nur Rollen (--cd-ui-*). Palette und Statusfarben direkt nur für Buttons, Badges und feste Bühnen. Host-Farben wie --vscode-editor-background übernimmst du nicht, vom Host kommt nur der Modus. - Exporte (SVG, PNG, Zwischenablage) und der Druck sind immer hell, ebenso E-Mails, PDF, Social-Kacheln, og:image und das Brand-Kit. ### Einschalten - Übernimm `cd-tokens.generated.css` unverändert und überschreib sie bei jedem Update: https://corporate-identity.netlify.app/brand/cd-tokens.generated.css, im Plugin miragon-brand als Asset der Skills corporate-design (Webseiten) und modeler-tool-design (Apps). Modeler brauchen dazu `cd-tokens.generated.json` und `cd-canvas.css` aus modeler-tool-design. - Opt-in: Erst `data-cd-theme` am `` oder an einem Container schaltet den Dark Mode ein, mit `light`, `dark` oder `system` (folgt `prefers-color-scheme`). Ohne das Attribut bleibt alles hell. `data-cd-kontrast="hoch"` auf demselben Element schaltet Hochkontrast ein. - Apps folgen dem Host: System, VS Code (`activeColorTheme.kind`), IntelliJ (`JBColor.isBright()`). Die Web-App startet mit System, im App-Menü wählst du System, Hell oder Dunkel. - Webseiten starten mit System. Der Umschalter sitzt im Header als Radiogruppe System, Hell, Dunkel, die Wahl liegt in `localStorage` unter `miragon.darstellung`. Ein Inline-Skript im `` setzt das Attribut vor dem ersten Stylesheet, dazu `` und zwei `theme-color` mit `media`, dunkel `#1D1D1D`. Mit dem Astro ClientRouter steht das Skript mit `is:inline` im Layout und läuft erneut bei `astro:after-swap`. ### Webseiten - Seitengrund und weiße Sektion `--cd-ui-seite`, graue Sektion, Codeblock und Tabellenkopf `--cd-ui-abschnitt`. Karten, Dropdowns und Dialoge wie in Apps, jede Fläche mit 1px `--cd-ui-linie`. - Blau, Marken-Verlauf und Mesh-Hero sind feste Bühnen und in beiden Modi gleich: Text, Links und Fokus Weiß. Schwarze Sektionen und der Footer tragen `data-cd-theme="dark"`, die Fläche `--cd-ui-seite` (nie fest `--cd-schwarz` mit Rollen-Text, sonst steht gedruckt Schwarz auf Schwarz) und eine Kante in `--cd-ui-linie`, helle Inseln `data-cd-theme="light"`. - Fotos bleiben unverändert. Grafiken mit schwarzen Linien bekommen eine Variante `-dunkel` oder eine helle Fläche. Mit Umschalter tauschst du Bilder über die Klassen `cd-nur-hell` und `cd-nur-dunkel`, `` nur, wenn die Seite allein dem System folgt. Nie `invert()`, `hue-rotate()`, `brightness()` oder `mix-blend-mode` an Bildern und iframes. - Fremd-Widgets bekommen den aufgelösten Modus (`light` oder `dark`, nie `auto`). Ohne neutralen Dark Mode bleiben sie hell auf einer Karte mit `data-cd-theme="light"`. - Code mit Shiki in `github-light-high-contrast` und `github-dark-default`, beide halten auf `--cd-ui-abschnitt` mit jeder Token-Farbe 4,5:1. - Tailwind: `dark:` an `data-cd-theme` koppeln (`@custom-variant dark`), Theme-Farben mit `@theme inline` auf die Rollen. Verboten sind die Tailwind-Grautöne (gray, slate, zinc, neutral, stone), `bg-black`, `dark:bg-blue-950`, Deckkraft-Modifikatoren an Farben und `prose-invert`. ### Statustext | Status | CSS-Variable | Hell als Text | Dunkel als Text | |---|---|---|---| | `success` | `--cd-ui-success` | nie Text, nur Rand, Icon und Punkt neben Text | auf allen Flächen | | `warning` | `--cd-ui-warning` | nie Text, nur Rand, Icon und Punkt neben Text | auf allen Flächen | | `danger` | `--cd-ui-danger` | auf allen Flächen | nur auf `grund`, `flaeche`, `flaeche-hoch`, `seite` und `abschnitt` | | `info` | `--cd-ui-info` | auf allen Flächen | nur auf `grund`, `flaeche`, `seite` und `abschnitt` | brand-lint prüft den Dark Mode als Regel C6 (hart) in CSS, Vue, Astro, HTML und in Tailwind-Klassen. ## Tokens Exakte Werte, maschinenlesbar unter /brand/tokens.json. ### Markenfarben | Token | Wert | CSS | Rolle | |---|---|---|---| | blau | `#335DE5` | --cd-blau | Primärfarbe: Flächen, Buttons, Links, Hintergründe. | | gruen | `#00E676` | --cd-gruen | Akzent: Key Visual, Highlights, ein hervorgehobenes Wort. Nicht als Fließtext auf Weiß (unter WCAG AA). | | grau | `#F9F7F7` | --cd-grau | Ruhige, neutrale Hintergrundfläche. | | schwarz | `#1D1D1D` | --cd-schwarz | Text auf Hell, monochrome Logo-Variante und die einzige dunkle Farbe: Grund im Dark Mode und hinter dem Mesh-Hero, dunkle Abschnitte, Overlays und Dialog-Backdrops (mit Deckkraft). Höhere dunkle Stufen sind Weiß in Schwarz gemischt (neutral.*). Kein reines Schwarz, kein Dunkelblau. | | weiss | `#FFFFFF` | --cd-weiss | Text auf Farbe, Flächen. | | blau-link | `#2B50D4` | --cd-blau-link | Etwas tieferes Blau für Links, Akzenttext und Fokus auf Weiß, erreicht sicheren WCAG-AA-Kontrast. Abgeleitet aus blau. Nur auf Hell, auf Schwarz 2,57:1. Im Dark Mode sind Links Grün (rolle.link). | | blau-hell | `#6B8AFF` | --cd-blau-hell | Aufgehelltes Blau für Fokus und Auswahl auf dunklem Grund und im Dark Mode (rolle.fokus, rolle.interaktion): Fokusrahmen, Auswahl, aktiver Indikator, Flow-Kante. Nie Fläche. Links und Akzenttext auf dunklem Grund und im Dark Mode sind Grün. | ### Statusfarben (nur für Zustände) | Token | Wert | CSS | Rolle | |---|---|---|---| | success | `#00E676` | --cd-success | Erfolg, Bestätigung: das Marken-Grün. Fläche, Rand, Icon und Statuspunkt, Schrift darauf Schwarz. Auf Weiß nur 1,67:1, also nie Text auf hellem Grund und nie Farbe allein. | | success-soft | `#DAFBEB` | --cd-success-soft | Tönung für Hinweis-Kästen und Badges auf hellem Grund. Text darauf Schwarz, Rand und Icon in der Statusfarbe. | | success-hell | `#00E676` | --cd-success-hell | Text, Icon und Rand für Erfolg auf Schwarz und im Dark Mode, gleich dem Marken-Grün. | | warning | `#FFB000` | --cd-warning | Warnung, Achtung: Amber, so hell wie das Marken-Grün. Fläche, Rand, Icon und Statuspunkt, Schrift darauf Schwarz. Auf Weiß nur 1,83:1, also nie Text auf hellem Grund und nie Farbe allein. | | warning-soft | `#FFF1D2` | --cd-warning-soft | Tönung für Hinweis-Kästen und Badges auf hellem Grund. Text darauf Schwarz, Rand und Icon in der Statusfarbe. | | warning-hell | `#FFB000` | --cd-warning-hell | Text, Icon und Rand für Warnung auf Schwarz und im Dark Mode, gleich der Statusfarbe. | | danger | `#CD1839` | --cd-danger | Fehler, Gefahr, destruktive Aktion: ein kräftiges, leicht kühles Rot, so tief wie das Marken-Blau. Fläche mit weißer Schrift, Rand und Icon. Als Text auf Weiß AA, etwa für eine Fehlermeldung unter einem Feld. | | danger-soft | `#FBEEF0` | --cd-danger-soft | Tönung für Hinweis-Kästen und Badges auf hellem Grund. Text darauf Schwarz, Rand und Icon in der Statusfarbe. | | danger-hell | `#FB6D73` | --cd-danger-hell | Text, Icon und Rand für Fehler auf Schwarz und im Dark Mode. | | info | `#335DE5` | --cd-info | Hinweis, neutrale Information: das Marken-Blau. Fläche mit weißer Schrift, Rand und Icon. Als Text auf Weiß AA. | | info-soft | `#EEF1FD` | --cd-info-soft | Tönung für Hinweis-Kästen und Badges auf hellem Grund. Text darauf Schwarz, Rand und Icon in der Statusfarbe. | | info-hell | `#6B8AFF` | --cd-info-hell | Text, Icon und Rand für Hinweise auf Schwarz und im Dark Mode, gleich blau-hell. | ### UI-Ebene (Neutrale und Flächen) | Token | Wert | CSS | Rolle | |---|---|---|---| | linie | `#E6E2E2` | --cd-linie | Trennlinien und dekorative Rahmen. Kein Kontrastanspruch, nie für Text oder bedeutungstragende Kanten. | | kontur | `#8F8A8A` | --cd-kontur | Nicht-Text-Elemente, die erkennbar sein müssen (Eingabe-Rahmen, Kanten, Abhängigkeitslinien). Mindestens 3:1 auf Weiß und Grau. | | text-leise | `#6B6666` | --cd-text-leise | Sekundärer Text (Hinweise, Metadaten). Mindestens 4,5:1 auf Weiß und Grau. | ### Dunkle Neutrale (nur über die Rollen) | Token | Wert | Einsatz | |---|---|---| | `neutral.05` | `#282828` | 5 % Weiß: Fläche (Panel, Karte, Seitenleiste, graue Sektion) und dunkle Status-Fläche. | | `neutral.08` | `#2F2F2F` | 8 % Weiß: schwebende Fläche (Menü, Dialog, Palette, Toast, Tooltip). | | `neutral.12` | `#383838` | 12 % Weiß: Hover, gewählter Eintrag und Icon-Kachel. | | `neutral.18` | `#464646` | 18 % Weiß: Linie, dekorativ. Trenner und Rand jeder dunklen Fläche. | | `neutral.70` | `#BBBBBB` | 70 % Weiß: leiser Text, mindestens 4,5:1 auf allen dunklen Stufen. | ### Rollen für Hell und Dunkel (--cd-ui-*) | Rolle | CSS-Variable | Hell | Dunkel | Einsatz | |---|---|---|---|---| | `grund` | `--cd-ui-grund` | `#F9F7F7` (`color.grau`) | `#1D1D1D` (`color.schwarz`) | App-Grund, Canvas-Umgebung mit Punktraster, eingelassene Eingabefelder. Dunkel Schwarz, nichts ist dunkler. | | `flaeche` | `--cd-ui-flaeche` | `#FFFFFF` (`color.weiss`) | `#282828` (`neutral.05`) | Angedocktes Panel, Seitenleiste, Karte. Jede Fläche über dem Grund hat 1px Rand in rolle.linie. | | `flaeche-hoch` | `--cd-ui-flaeche-hoch` | `#FFFFFF` (`color.weiss`) | `#2F2F2F` (`neutral.08`) | Schwebende Fläche: Menü, Palette, Context-Pad, Eigenschaften, Popover, Dialog, Toast, Tooltip. | | `hover` | `--cd-ui-hover` | `#EEF1FD` (`functional.info-soft`) | `#383838` (`neutral.12`) | Hover, gedrückter und gewählter Eintrag, aktives Werkzeug, Drop-Zone. Hell Blau-soft wie bisher, dunkel neutral. | | `plot` | `--cd-ui-plot` | `#FFFFFF` (`color.weiss`) | `#1D1D1D` (`color.schwarz`) | Zeichenfläche: Plot, Standardfüllung der Elemente, Label-Halo. Dunkel Schwarz wie die Umgebung, Exporte bleiben hell. | | `seite` | `--cd-ui-seite` | `#FFFFFF` (`color.weiss`) | `#1D1D1D` (`color.schwarz`) | Seitenrolle für Webseiten und die Doku: Seitengrund (html, body), weiße Sektion, Navigation, Eingabefeld auf Webseiten. Dunkel Schwarz wie rolle.grund. | | `abschnitt` | `--cd-ui-abschnitt` | `#F9F7F7` (`color.grau`) | `#282828` (`neutral.05`) | Seitenrolle für Webseiten und die Doku: graue Sektion, Codeblock, Tabellenkopf, Zitat, Seitenleiste der Doku. Dunkel 5 % wie rolle.flaeche, nie rolle.flaeche-hoch unter Code. | | `linie` | `--cd-ui-linie` | `#E6E2E2` (`ui.linie`) | `#464646` (`neutral.18`) | Trennlinien, Rahmen schwebender Flächen, Plotrand, Hilfslinien, Punktraster. Dekorativ, trägt dunkel die Höhe. | | `kontur` | `--cd-ui-kontur` | `#8F8A8A` (`ui.kontur`) | `#8F8A8A` (`ui.kontur`) | Eingaberahmen, Checkbox, Achsen, Kanten, Abhängigkeiten, Unterleger unter schwachen Fremdstrichen. In beiden Modi gleich. | | `text` | `--cd-ui-text` | `#1D1D1D` (`color.schwarz`) | `#FFFFFF` (`color.weiss`) | Text, Standard-Icons (currentColor), Elementkontur und Beschriftung auf dem Canvas. | | `text-leise` | `--cd-ui-text-leise` | `#6B6666` (`ui.text-leise`) | `#BBBBBB` (`neutral.70`) | Sekundärer Text, Platzhalter, Tastenkürzel, Achsentext, deaktivierte Elemente. | | `link` | `--cd-ui-link` | `#2B50D4` (`color.blau-link`) | `#00E676` (`color.gruen`) | Links und Akzenttext, im Fließtext unterstrichen. Dunkel Grün. | | `icon-akzent` | `--cd-ui-icon-akzent` | `#335DE5` (`color.blau`) | `#00E676` (`color.gruen`) | Lucide-Icon mit Akzent, höchstens eins je Reihe. Dunkel Grün. | | `fokus` | `--cd-ui-fokus` | `#2B50D4` (`color.blau-link`) | `#6B8AFF` (`color.blau-hell`) | Fokusrahmen 2px mit 2px Abstand an jedem interaktiven Element. | | `interaktion` | `--cd-ui-interaktion` | `#335DE5` (`color.blau`) | `#6B8AFF` (`color.blau-hell`) | Auswahl, Hover-Kontur, aktiver Indikator, Haken der Checkbox, Lasso- und Griffrand, Flow-Kante. Nie Fläche, dunkel nie Text. | | `success` | `--cd-ui-success` | `#00E676` (`functional.success`) | `#00E676` (`functional.success-hell`) | Rand, Icon und Statuspunkt für Erfolg, dunkel auch Text. Hell nie Text und nie allein. | | `warning` | `--cd-ui-warning` | `#FFB000` (`functional.warning`) | `#FFB000` (`functional.warning-hell`) | Rand, Icon und Statuspunkt für Warnung, dunkel auch Text. Hell nie Text und nie allein. | | `danger` | `--cd-ui-danger` | `#CD1839` (`functional.danger`) | `#FB6D73` (`functional.danger-hell`) | Rand, Icon, Statuspunkt und Fehlertext, Movement auf dem Canvas. Dunkel nicht als Text auf rolle.hover. | | `info` | `--cd-ui-info` | `#335DE5` (`functional.info`) | `#6B8AFF` (`functional.info-hell`) | Rand, Icon, Statuspunkt und Hinweistext. Dunkel als Text nur auf rolle.grund, rolle.flaeche und den Seitenrollen, nicht auf rolle.flaeche-hoch und rolle.hover. | | `success-flaeche` | `--cd-ui-success-flaeche` | `#DAFBEB` (`functional.success-soft`) | `#282828` (`neutral.05`) | Fläche von Status-Kasten und getöntem Badge für Erfolg. Dunkel ohne Tönung, den Status tragen Rand und Icon. | | `warning-flaeche` | `--cd-ui-warning-flaeche` | `#FFF1D2` (`functional.warning-soft`) | `#282828` (`neutral.05`) | Wie success-flaeche, für Warnung. | | `danger-flaeche` | `--cd-ui-danger-flaeche` | `#FBEEF0` (`functional.danger-soft`) | `#282828` (`neutral.05`) | Wie success-flaeche, für Fehler. | | `info-flaeche` | `--cd-ui-info-flaeche` | `#EEF1FD` (`functional.info-soft`) | `#282828` (`neutral.05`) | Wie success-flaeche, für Hinweise. | | `wortmarke` | `--cd-ui-wortmarke` | `#00E676` (`color.gruen`) | `#FFFFFF` (`color.weiss`) | Wortmarke als Inline-SVG. Dunkel Weiß, Grün bleibt erlaubte Alternative. | | `backdrop` | `--cd-ui-backdrop` | `rgba(29, 29, 29, 0.42)` | `rgba(29, 29, 29, 0.6)` | Dialog-Backdrop, immer Schwarz mit Deckkraft und backdrop-filter: blur(3px) grayscale(1). Hell 42 %, dunkel 60 %. | | `chrome-deckkraft` | `--cd-ui-chrome-deckkraft` | `84%` | `100%` | Deckkraft schwebender Karten über dem Canvas: hell Glas, dunkel und im Hochkontrast deckend. | Hochkontrast (`data-cd-kontrast="hoch"` auf demselben Element wie `data-cd-theme`): `linie` nimmt den Wert von `kontur`, `kontur` nimmt den Wert von `text`, `text-leise` nimmt den Wert von `text` und `chrome-deckkraft` wird 100 %, jeweils im selben Modus. ### Verläufe | Token | Wert | Einsatz | |---|---|---| | brand | `linear-gradient(120deg, #335DE5 30%, #00E676)` | Marken-Verlauf: Hero, große Flächen, Markenmomente. | | format | `linear-gradient(135deg, #335DE5 0%, #00E676 140%)` | Format-Verlauf: Social-Kacheln, Format-Platzhalter. | | mesh-hero | `#335DE5, #1D1D1D, #00E676, #335DE5, #1D1D1D, #00E676` | Animierter MeshGradient-Hintergrund der Startseite (Paper Design meshGradient). Nur Palettenfarben: Blau, Schwarz und Grün. Die Bewegung (Shader-Werte) folgt dem Hero von miragon.io. Nur für diesen Shader (HomePage.vue), nirgends sonst verwenden. | ### Type-Scale (Geist) | Stufe | Größe | Gewicht | Zeilenhöhe | |---|---|---|---| | h1 | 40px | 700 | 1.1 | | h2 | 28px | 700 | 1.2 | | h3 | 21px | 600 | 1.3 | | lead | 20px | 400 | 1.5 | | body | 16px | 400 | 1.6 | | klein | 13px | 400 | 1.5 | ### Abstände, Radius, Schatten, Bewegung | Gruppe | Werte | |---|---| | space | 1: 4px; 2: 8px; 3: 16px; 4: 24px; 5: 32px; 6: 48px; 7: 64px; 8: 96px | | radius | sm: 6px; md: 12px; lg: 16px; pill: 999px | | shadow | 1: 0 1px 2px rgba(29, 29, 29, 0.06), 0 1px 3px rgba(29, 29, 29, 0.10); 2: 0 4px 12px rgba(29, 29, 29, 0.10); 3: 0 12px 32px rgba(29, 29, 29, 0.16) | | motion | fast: 150ms; base: 250ms; slow: 400ms; ease: cubic-bezier(0.4, 0, 0.2, 1); ease-out: cubic-bezier(0, 0, 0.2, 1) | ### Social-Formate | Plattform | Format | Pixel | |---|---|---| | linkedin | square | 1200 × 1200 | | linkedin | portrait | 1200 × 1500 | ### Logo-Dateien - https://corporate-identity.netlify.app/logo/miragon-komet-blau.svg - https://corporate-identity.netlify.app/logo/miragon-komet-gruen.svg - https://corporate-identity.netlify.app/logo/miragon-logo-blau.svg - https://corporate-identity.netlify.app/logo/miragon-logo-gruen.svg - https://corporate-identity.netlify.app/logo/miragon-logo-schwarz.svg - https://corporate-identity.netlify.app/logo/miragon-logo-weiss.svg