// foundation.jsx — design system foundation artboards (colors, type, atoms)
// Refactored to Tailwind utilities (tokens map to CSS vars in styles.css).
function ColorSwatches() {
const groups = [
{title: 'Brand', colors: [
{name: 'Orange / Primary', value: '#F18E00', token: '--brand-orange', text: 'white'},
{name: 'Orange / Dark', value: '#C57400', token: '--brand-orange-dark', text: 'white'},
{name: 'Orange / Soft', value: '#FFA033', token: '--brand-orange-soft', text: 'var(--gray-900)'},
{name: 'Orange / Tint', value: '#FFF1DE', token: '--brand-orange-tint', text: 'var(--gray-900)'},
{name: 'Signature', value: '#FF5D29', token: '--brand-orange-signature', text: 'white'},
]},
{title: 'Neutrals · Tailwind gray', colors: [
{name: 'Gray 900', value: '#111827', token: 'gray-900', text: 'white'},
{name: 'Gray 800', value: '#1F2937', token: 'gray-800', text: 'white'},
{name: 'Gray 700', value: '#374151', token: 'gray-700', text: 'white'},
{name: 'Gray 600', value: '#4B5563', token: 'gray-600', text: 'white'},
{name: 'Gray 500', value: '#6B7280', token: 'gray-500', text: 'white'},
{name: 'Gray 400', value: '#9CA3AF', token: 'gray-400', text: 'var(--gray-900)'},
{name: 'Gray 300', value: '#D1D5DB', token: 'gray-300', text: 'var(--gray-900)'},
{name: 'Gray 200', value: '#E5E7EB', token: 'gray-200', text: 'var(--gray-900)'},
{name: 'Gray 100', value: '#F3F4F6', token: 'gray-100', text: 'var(--gray-900)'},
{name: 'White', value: '#FFFFFF', token: '--surface', text: 'var(--gray-900)'},
]},
{title: 'Semantic · Tailwind', colors: [
{name: 'Success', value: '#16A34A', token: 'green-600', text: 'white'},
{name: 'Info', value: '#2563EB', token: 'blue-600', text: 'white'},
{name: 'Warning', value: '#D97706', token: 'amber-600', text: 'white'},
{name: 'Danger', value: '#DC2626', token: 'red-600', text: 'white'},
]},
];
return (
Color palette
{groups.map(g => (
))}
);
}
function TypeSpecimen() {
const weights = [
{w: 300, name: 'Light'},
{w: 400, name: 'Regular'},
{w: 500, name: 'Medium'},
{w: 600, name: 'Demi'},
{w: 700, name: 'Bold'},
{w: 800, name: 'ExtraBold'},
];
return (
Typography
Typeface · Corporate S Pro
Unterwegs mitAuto AG Uri
Weights — Light → ExtraBold
{weights.map(wt => (
Bewegt im Kanton Uri
{wt.name} · {wt.w}
))}
Italics
);
}
function Spec({label, size, weight, text, display, style = {}}) {
return (
);
}
function ButtonsAndBadges() {
return (
Buttons
Buttons
Fahrplan suchen
Alle Jobs
Hinzufügen
Alle Linien
Sekundär
Auf dunkel
Klein
Primär (auf dunkel)
Links
);
}
function LogoArtboard() {
return (
Logo lockup
logo-nav-invert.svg · footer
Die drei Bedeutungen
{[
{n: '1', t: 'Hin und Zurück', d: 'Fahrgäste in alle Richtungen — von Altdorf nach Flüelen, Göschenen, Seedorf, Bürglen, Linthal, Andermatt …'},
{n: '2', t: 'Streckennetz', d: 'Vielseitig — geradlinig und kurvig, durch Täler und über Pässe.'},
{n: '3', t: 'Bewegt', d: 'Die AUTO AG URI bewegt Fahrgäste — das Tagline-Wort BEWEGT bleibt Teil des Lockups.'},
].map(it => (
{it.n} · {it.t}
{it.d}
))}
);
}
function LineColors() {
const lines = [
{nr: '401', color: 'var(--line-401)', name: 'Flüelen – Göschenen', label: 'rot'},
{nr: '402', color: 'var(--line-402)', name: 'Attinghausen – Bürglen', label: 'dunkelblau'},
{nr: '403', color: 'var(--line-403)', name: 'Seedorf – Bürglen', label: 'hellgrün'},
{nr: '405', color: 'var(--line-405)', name: 'Schattdorf – Isenthal', label: 'dunkellila'},
{nr: '407', color: 'var(--line-407)', name: 'Amsteg – Bristen', label: 'violett'},
{nr: '408', color: 'var(--line-408)', name: 'Attinghausen – Linthal', label: 'hellblau'},
{nr: '411', color: 'var(--line-411)', name: 'Göschenen – Göscheneralp', label: 'Meeresgrün'},
{nr: '412', color: 'var(--line-412)', name: 'Altdorf – Amsteg', label: 'orange'},
{nr: '413', color: 'var(--line-413)', name: 'Flüelen – Altdorf', label: 'magenta'},
{nr: '493', color: 'var(--line-493)', name: 'Altdorf – Luzern (Tellbus)', label: 'schwarz'},
{nr: 'PA', color: 'var(--line-postauto)', name: 'PostAuto-Linien', label: 'gelb', ink: 'var(--gray-900)'},
];
return (
Linienfarben
Jede Buslinie der AUTO AG URI besitzt eine offizielle Linienfarbe gemäss CD Mai 2024. Sie wird im Liniennetzplan, in der App und auf der Webseite konsistent verwendet.
{lines.map(l => (
{l.nr}
{l.name}
{l.label}
))}
);
}
Object.assign(window, { ColorSwatches, TypeSpecimen, ButtonsAndBadges, LogoArtboard, LineColors });