Browse Source
- Create /internal/styleguide route with protected layout - Add styleguide.vue layout with auth protection - Configure internal pages auth credentials in .env.example - Update nuxt.config for internal routes handlingmain
4 changed files with 627 additions and 1 deletions
@ -0,0 +1,10 @@ |
|||
<script setup lang="ts"> |
|||
// Styleguide layout - minimal, no header/footer |
|||
// Used for internal styleguide page |
|||
</script> |
|||
|
|||
<template> |
|||
<div class="min-h-screen"> |
|||
<slot /> |
|||
</div> |
|||
</template> |
|||
@ -0,0 +1,605 @@ |
|||
<script setup lang="ts"> |
|||
/** |
|||
* experimenta Design System Styleguide |
|||
* Internal page showing all design tokens and components |
|||
* Protected by Basic Auth via server/middleware/internal-auth.ts |
|||
*/ |
|||
|
|||
definePageMeta({ |
|||
layout: 'styleguide', |
|||
}) |
|||
|
|||
// Sample button click handler for interactive examples |
|||
const handleClick = () => { |
|||
console.log('Button clicked!') |
|||
} |
|||
|
|||
// Copy code snippet to clipboard |
|||
const copyCode = async (code: string) => { |
|||
try { |
|||
await navigator.clipboard.writeText(code) |
|||
alert('Code copied to clipboard!') |
|||
} catch (err) { |
|||
console.error('Failed to copy:', err) |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<template> |
|||
<div class="min-h-screen py-12 px-4 sm:px-6 lg:px-8"> |
|||
<div class="max-w-7xl mx-auto"> |
|||
<!-- Header --> |
|||
<header class="mb-12"> |
|||
<h1 class="text-5xl font-bold mb-4 text-experimenta-primary">my.experimenta Design System</h1> |
|||
<p class="text-xl text-white/90 mb-6"> |
|||
Component library and design tokens for my.experimenta.science |
|||
</p> |
|||
<div class="flex gap-4"> |
|||
<a href="/" class="link-accent">← Back to Homepage</a> |
|||
</div> |
|||
</header> |
|||
|
|||
<!-- Table of Contents --> |
|||
<nav class="card-glass mb-12"> |
|||
<h2 class="text-2xl font-semibold mb-4">Contents</h2> |
|||
<ul class="grid grid-cols-2 md:grid-cols-4 gap-4 text-white/90"> |
|||
<li><a href="#overview" class="link-primary">Overview</a></li> |
|||
<li><a href="#colors" class="link-primary">Colors</a></li> |
|||
<li><a href="#typography" class="link-primary">Typography</a></li> |
|||
<li><a href="#buttons" class="link-primary">Buttons</a></li> |
|||
<li><a href="#cards" class="link-primary">Cards</a></li> |
|||
<li><a href="#forms" class="link-primary">Forms</a></li> |
|||
<li><a href="#links" class="link-primary">Links</a></li> |
|||
<li><a href="#status" class="link-primary">Status Messages</a></li> |
|||
<li><a href="#progress" class="link-primary">Progress Bars</a></li> |
|||
<li><a href="#components" class="link-primary">Components</a></li> |
|||
</ul> |
|||
</nav> |
|||
|
|||
<!-- Overview Section --> |
|||
<section id="overview" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Overview</h2> |
|||
<div class="card-info card-accent-border"> |
|||
<h3 class="text-xl font-semibold mb-4">Design Principles</h3> |
|||
<ul class="list-disc list-inside space-y-2 text-white/90"> |
|||
<li><strong>Mobile-First:</strong> All components optimized for mobile, then scaled up</li> |
|||
<li><strong>Accessibility:</strong> WCAG 2.1 AA compliance, keyboard navigation</li> |
|||
<li><strong>Brand Consistency:</strong> experimenta color palette and typography</li> |
|||
<li><strong>8px Grid:</strong> Spacing system based on 8px increments</li> |
|||
<li><strong>Dark Theme:</strong> Purple gradient background with high contrast text</li> |
|||
</ul> |
|||
</div> |
|||
</section> |
|||
|
|||
<!-- Colors Section --> |
|||
<section id="colors" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Colors</h2> |
|||
|
|||
<!-- Primary Colors --> |
|||
<div class="card-glass mb-8"> |
|||
<h3 class="text-2xl font-semibold mb-4 text-white">Primary Colors</h3> |
|||
<div class="grid grid-cols-2 md:grid-cols-4 gap-4"> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-experimenta-primary mb-2"></div> |
|||
<p class="font-mono text-sm text-white/90">#e6007e</p> |
|||
<p class="text-sm text-white/70">experimenta-primary</p> |
|||
</div> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-experimenta-accent mb-2"></div> |
|||
<p class="font-mono text-sm text-white/90">#f59d24</p> |
|||
<p class="text-sm text-white/70">experimenta-accent</p> |
|||
</div> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-experimenta-red mb-2"></div> |
|||
<p class="font-mono text-sm text-white/90">#e40521</p> |
|||
<p class="text-sm text-white/70">experimenta-red</p> |
|||
</div> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-white mb-2"></div> |
|||
<p class="font-mono text-sm text-black">#ffffff</p> |
|||
<p class="text-sm text-white/70">white</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- Background Colors --> |
|||
<div class="card-glass mb-8"> |
|||
<h3 class="text-2xl font-semibold mb-4 text-white">Background Colors (Purple Gradient)</h3> |
|||
<div class="grid grid-cols-2 md:grid-cols-3 gap-4"> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-purple-950 mb-2 border border-white/20"></div> |
|||
<p class="font-mono text-sm text-white/90">#2e1065</p> |
|||
<p class="text-sm text-white/70">purple-950</p> |
|||
</div> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-purple-975 mb-2 border border-white/20"></div> |
|||
<p class="font-mono text-sm text-white/90">#1a0a3a</p> |
|||
<p class="text-sm text-white/70">purple-975</p> |
|||
</div> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-purple-990 mb-2 border border-white/20"></div> |
|||
<p class="font-mono text-sm text-white/90">#0f051d</p> |
|||
<p class="text-sm text-white/70">purple-990</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- Semantic Colors --> |
|||
<div class="card-glass"> |
|||
<h3 class="text-2xl font-semibold mb-4 text-white">Semantic Colors</h3> |
|||
<div class="grid grid-cols-2 md:grid-cols-4 gap-4"> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-success mb-2"></div> |
|||
<p class="font-mono text-sm text-white/90">#10b981</p> |
|||
<p class="text-sm text-white/70">success</p> |
|||
</div> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-warning mb-2"></div> |
|||
<p class="font-mono text-sm text-white/90">#f59e0b</p> |
|||
<p class="text-sm text-white/70">warning</p> |
|||
</div> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-error mb-2"></div> |
|||
<p class="font-mono text-sm text-white/90">#ef4444</p> |
|||
<p class="text-sm text-white/70">error</p> |
|||
</div> |
|||
<div> |
|||
<div class="h-24 rounded-lg bg-info mb-2"></div> |
|||
<p class="font-mono text-sm text-white/90">#3b82f6</p> |
|||
<p class="text-sm text-white/70">info</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<!-- Typography Section --> |
|||
<section id="typography" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Typography</h2> |
|||
|
|||
<div class="card-glass mb-8"> |
|||
<h3 class="text-2xl font-semibold mb-4 text-white">Font Family</h3> |
|||
<p class="text-lg text-white/90 mb-2"> |
|||
<strong>Roboto Variable Font</strong> - Locally hosted, weights 100-900 |
|||
</p> |
|||
<p class="text-white/70"> |
|||
Loaded from <code class="font-mono bg-white/10 px-2 py-1 rounded">/public/fonts/roboto/</code> |
|||
</p> |
|||
</div> |
|||
|
|||
<div class="card-glass mb-8"> |
|||
<h3 class="text-2xl font-semibold mb-4 text-white">Headings</h3> |
|||
<div class="space-y-4"> |
|||
<div> |
|||
<h1 class="text-4xl font-bold">Heading 1 - 4xl Bold</h1> |
|||
<code class="text-sm text-white/70">text-4xl font-bold</code> |
|||
</div> |
|||
<div> |
|||
<h2 class="text-3xl font-bold">Heading 2 - 3xl Bold</h2> |
|||
<code class="text-sm text-white/70">text-3xl font-bold</code> |
|||
</div> |
|||
<div> |
|||
<h3 class="text-2xl font-semibold">Heading 3 - 2xl Semibold</h3> |
|||
<code class="text-sm text-white/70">text-2xl font-semibold</code> |
|||
</div> |
|||
<div> |
|||
<h4 class="text-xl font-semibold">Heading 4 - xl Semibold</h4> |
|||
<code class="text-sm text-white/70">text-xl font-semibold</code> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card-glass"> |
|||
<h3 class="text-2xl font-semibold mb-4 text-white">Body Text</h3> |
|||
<div class="space-y-4"> |
|||
<div> |
|||
<p class="text-lg">Body Large - text-lg (1.125rem / 18px)</p> |
|||
<code class="text-sm text-white/70">text-lg</code> |
|||
</div> |
|||
<div> |
|||
<p class="text-base">Body Regular - text-base (1rem / 16px)</p> |
|||
<code class="text-sm text-white/70">text-base</code> |
|||
</div> |
|||
<div> |
|||
<p class="text-sm">Body Small - text-sm (0.875rem / 14px)</p> |
|||
<code class="text-sm text-white/70">text-sm</code> |
|||
</div> |
|||
<div> |
|||
<p class="text-xs">Body Extra Small - text-xs (0.75rem / 12px)</p> |
|||
<code class="text-sm text-white/70">text-xs</code> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<!-- Buttons Section --> |
|||
<section id="buttons" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Buttons</h2> |
|||
|
|||
<!-- experimenta Button --> |
|||
<div class="card-glass mb-8"> |
|||
<h3 class="text-2xl font-semibold mb-4 text-white">experimenta Button (Official)</h3> |
|||
<p class="mb-6 text-white/90"> |
|||
The official experimenta button with animated gradient effect (pink to red on hover). |
|||
</p> |
|||
|
|||
<div class="flex flex-wrap gap-4 items-center mb-6"> |
|||
<UiButton variant="experimenta" size="experimenta" @click="handleClick"> |
|||
experimenta Button |
|||
</UiButton> |
|||
|
|||
<UiButton variant="experimenta" size="experimenta" as="a" href="https://www.experimenta.science/"> |
|||
As Link |
|||
</UiButton> |
|||
</div> |
|||
|
|||
<details class="bg-white/5 p-4 rounded-lg"> |
|||
<summary class="cursor-pointer text-white/90 font-semibold">Show Code</summary> |
|||
<pre class="mt-4 text-sm text-white/80 overflow-x-auto"><code><UiButton variant="experimenta" size="experimenta" @click="handleClick"> |
|||
experimenta Button |
|||
</UiButton></code></pre> |
|||
</details> |
|||
</div> |
|||
|
|||
<!-- shadcn-nuxt Button Variants --> |
|||
<div class="card-glass"> |
|||
<h3 class="text-2xl font-semibold mb-4 text-white">shadcn-nuxt Button Variants</h3> |
|||
<p class="mb-6 text-white/90">All button variants from shadcn-nuxt component library:</p> |
|||
|
|||
<div class="flex flex-wrap gap-4 mb-6"> |
|||
<UiButton variant="default" @click="handleClick">Default</UiButton> |
|||
<UiButton variant="destructive" @click="handleClick">Destructive</UiButton> |
|||
<UiButton variant="outline" @click="handleClick">Outline</UiButton> |
|||
<UiButton variant="secondary" @click="handleClick">Secondary</UiButton> |
|||
<UiButton variant="ghost" @click="handleClick">Ghost</UiButton> |
|||
<UiButton variant="link" @click="handleClick">Link</UiButton> |
|||
</div> |
|||
|
|||
<details class="bg-white/5 p-4 rounded-lg"> |
|||
<summary class="cursor-pointer text-white/90 font-semibold">Show Code</summary> |
|||
<pre class="mt-4 text-sm text-white/80 overflow-x-auto"><code><UiButton variant="default">Default</UiButton> |
|||
<UiButton variant="destructive">Destructive</UiButton> |
|||
<UiButton variant="outline">Outline</UiButton> |
|||
<UiButton variant="secondary">Secondary</UiButton> |
|||
<UiButton variant="ghost">Ghost</UiButton> |
|||
<UiButton variant="link">Link</UiButton></code></pre> |
|||
</details> |
|||
</div> |
|||
</section> |
|||
|
|||
<!-- Cards Section --> |
|||
<section id="cards" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Cards</h2> |
|||
|
|||
<!-- Glass Card --> |
|||
<div class="card-glass mb-8"> |
|||
<h3 class="text-2xl font-semibold mb-4 text-white">Glass Card (.card-glass)</h3> |
|||
<p class="text-white/90"> |
|||
Semi-transparent card with glassmorphism effect. Perfect for content containers. |
|||
</p> |
|||
</div> |
|||
|
|||
<!-- Info Card --> |
|||
<div class="card-info card-accent-border mb-8"> |
|||
<h3 class="text-xl font-semibold mb-2 text-experimenta-accent">Info Card (.card-info .card-accent-border)</h3> |
|||
<p>Info section with Safrangold left border accent. Used for notices and information blocks.</p> |
|||
</div> |
|||
|
|||
<!-- Progress Card --> |
|||
<div class="card-progress card-accent-border mb-8"> |
|||
<div class="progress-header"> |
|||
<h3 class="progress-title">Progress Card (.card-progress)</h3> |
|||
<div class="progress-stats">2963 / 4931</div> |
|||
</div> |
|||
<div class="progress-bar-wrapper"> |
|||
<div class="progress-bar" style="width: 60.1%"></div> |
|||
<div class="progress-percentage">60.1%</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- White Info Cards (like experimenta.science) --> |
|||
<div class="mb-8"> |
|||
<h3 class="text-2xl font-semibold mb-6 text-white">White Info Cards (.card-white)</h3> |
|||
<p class="text-white/90 mb-6"> |
|||
White content cards like on experimenta.science homepage. With pink links that have chevron arrows and hover |
|||
to orange. |
|||
</p> |
|||
|
|||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6"> |
|||
<div class="card-white"> |
|||
<h3>Öffnungszeiten</h3> |
|||
<p> |
|||
Du möchtest nur in unsere Ausstellung, den Science Dome oder in die Sonderausstellung? |
|||
Oder doch lieber alles erleben? Weisst aber nicht wann? Hier findest du eine Übersicht |
|||
über unsere Öffnungszeiten. |
|||
</p> |
|||
<a href="#">Unsere Öffnungszeiten</a> |
|||
</div> |
|||
|
|||
<div class="card-white"> |
|||
<h3>Preise</h3> |
|||
<p> |
|||
Hier findest du einen Überblick über alle unsere Tickets, Preise und Ermäßigungen. |
|||
Wir haben verschiedene Angebote für dich – je nach dem, wie oft du zu uns kommen und |
|||
was du erleben möchtest. |
|||
</p> |
|||
<a href="#">Zur Preisübersicht</a> |
|||
</div> |
|||
|
|||
<div class="card-white"> |
|||
<h3>Ticketshop</h3> |
|||
<p> |
|||
Du hast dich für ein Ticket entschieden? Dann kannst du es hier buchen. |
|||
Wir freuen uns auf deinen Besuch! |
|||
</p> |
|||
<a href="#">Jetzt Ticket kaufen</a> |
|||
</div> |
|||
|
|||
<div class="card-white"> |
|||
<h3>Anfahrt</h3> |
|||
<p> |
|||
Ob mit dem Auto, dem Zug, dem Reisebus oder der Stadtbahn: Es gibt viele Möglichkeiten |
|||
zu uns zu kommen. Hier haben wir für dich alle Informationen zur Anreise zusammengestellt. |
|||
</p> |
|||
<a href="#">Zur Anreise</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<details class="bg-white/5 p-4 rounded-lg card-glass"> |
|||
<summary class="cursor-pointer text-white/90 font-semibold">Show Code</summary> |
|||
<pre class="mt-4 text-sm text-white/80 overflow-x-auto"><code><!-- Glass Card --> |
|||
<div class="card-glass"> |
|||
<h3>Title</h3> |
|||
<p>Content</p> |
|||
</div> |
|||
|
|||
<!-- Info Card with Accent Border --> |
|||
<div class="card-info card-accent-border"> |
|||
<h3>Title</h3> |
|||
<p>Content</p> |
|||
</div> |
|||
|
|||
<!-- Progress Card --> |
|||
<div class="card-progress card-accent-border"> |
|||
<div class="progress-header"> |
|||
<h3 class="progress-title">Title</h3> |
|||
<div class="progress-stats">2963 / 4931</div> |
|||
</div> |
|||
<div class="progress-bar-wrapper"> |
|||
<div class="progress-bar" style="width: 60.1%"></div> |
|||
<div class="progress-percentage">60.1%</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- White Info Card --> |
|||
<div class="card-white"> |
|||
<h3>Card Title</h3> |
|||
<p> |
|||
Card description text goes here. Links automatically get |
|||
pink color with chevron arrow and hover to orange. |
|||
</p> |
|||
<a href="#">Link Text</a> |
|||
</div></code></pre> |
|||
</details> |
|||
</section> |
|||
|
|||
<!-- Forms Section --> |
|||
<section id="forms" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Forms</h2> |
|||
|
|||
<div class="card-glass"> |
|||
<h3 class="text-2xl font-semibold mb-6 text-white">Form Elements</h3> |
|||
|
|||
<div class="space-y-6"> |
|||
<!-- Text Input --> |
|||
<div> |
|||
<label class="form-label">Text Input (.form-input)</label> |
|||
<input type="text" class="form-input" placeholder="Enter text..." /> |
|||
</div> |
|||
|
|||
<!-- Email Input --> |
|||
<div> |
|||
<label class="form-label">Email Input</label> |
|||
<input type="email" class="form-input" placeholder="email@example.com" /> |
|||
</div> |
|||
|
|||
<!-- Textarea --> |
|||
<div> |
|||
<label class="form-label">Textarea</label> |
|||
<textarea class="form-input" rows="4" placeholder="Enter message..."></textarea> |
|||
</div> |
|||
|
|||
<!-- Checkbox --> |
|||
<div> |
|||
<label class="flex items-center gap-3"> |
|||
<input type="checkbox" class="form-checkbox" checked /> |
|||
<span class="text-white/90">Checkbox (.form-checkbox)</span> |
|||
</label> |
|||
</div> |
|||
|
|||
<!-- Radio Buttons --> |
|||
<div> |
|||
<label class="form-label">Radio Buttons</label> |
|||
<div class="flex gap-4"> |
|||
<label class="flex items-center gap-2"> |
|||
<input type="radio" name="demo" class="form-checkbox" checked /> |
|||
<span class="text-white/90">Option 1</span> |
|||
</label> |
|||
<label class="flex items-center gap-2"> |
|||
<input type="radio" name="demo" class="form-checkbox" /> |
|||
<span class="text-white/90">Option 2</span> |
|||
</label> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<details class="bg-white/5 p-4 rounded-lg mt-6"> |
|||
<summary class="cursor-pointer text-white/90 font-semibold">Show Code</summary> |
|||
<pre class="mt-4 text-sm text-white/80 overflow-x-auto"><code><label class="form-label">Text Input</label> |
|||
<input type="text" class="form-input" placeholder="Enter text..." /> |
|||
|
|||
<label class="flex items-center gap-3"> |
|||
<input type="checkbox" class="form-checkbox" /> |
|||
<span>Checkbox Label</span> |
|||
</label></code></pre> |
|||
</details> |
|||
</div> |
|||
</section> |
|||
|
|||
<!-- Links Section --> |
|||
<section id="links" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Links</h2> |
|||
|
|||
<div class="card-glass"> |
|||
<h3 class="text-2xl font-semibold mb-6 text-white">Link Styles</h3> |
|||
|
|||
<div class="space-y-4"> |
|||
<div> |
|||
<a href="#" class="link-primary">Primary Link (.link-primary)</a> |
|||
<p class="text-sm text-white/70 mt-1">Orange color, used for general navigation (WCAG AA compliant, 4.62:1 |
|||
contrast)</p> |
|||
</div> |
|||
|
|||
<div> |
|||
<a href="#" class="link-accent">Accent Link (.link-accent)</a> |
|||
<p class="text-sm text-white/70 mt-1">Orange color, used for emphasis</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<details class="bg-white/5 p-4 rounded-lg mt-6"> |
|||
<summary class="cursor-pointer text-white/90 font-semibold">Show Code</summary> |
|||
<pre class="mt-4 text-sm text-white/80 overflow-x-auto"><code><a href="#" class="link-primary">Primary Link</a> |
|||
<a href="#" class="link-accent">Accent Link</a></code></pre> |
|||
</details> |
|||
</div> |
|||
</section> |
|||
|
|||
<!-- Status Messages Section --> |
|||
<section id="status" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Status Messages</h2> |
|||
|
|||
<div class="card-glass"> |
|||
<h3 class="text-2xl font-semibold mb-6 text-white">Status Indicators</h3> |
|||
|
|||
<div class="space-y-4"> |
|||
<div class="status-message status-success"> |
|||
<span class="status-icon">✓</span> |
|||
<span>Success message</span> |
|||
</div> |
|||
|
|||
<div class="status-message status-warning"> |
|||
<span class="status-icon">⚠</span> |
|||
<span>Warning message</span> |
|||
</div> |
|||
|
|||
<div class="status-message status-error"> |
|||
<span class="status-icon">✕</span> |
|||
<span>Error message</span> |
|||
</div> |
|||
|
|||
<div class="status-message status-info"> |
|||
<span class="status-icon">ⓘ</span> |
|||
<span>Info message</span> |
|||
</div> |
|||
</div> |
|||
|
|||
<details class="bg-white/5 p-4 rounded-lg mt-6"> |
|||
<summary class="cursor-pointer text-white/90 font-semibold">Show Code</summary> |
|||
<pre class="mt-4 text-sm text-white/80 overflow-x-auto"><code><div class="status-message status-success"> |
|||
<span class="status-icon">✓</span> |
|||
<span>Success message</span> |
|||
</div></code></pre> |
|||
</details> |
|||
</div> |
|||
</section> |
|||
|
|||
<!-- Progress Bars Section --> |
|||
<section id="progress" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Progress Bars</h2> |
|||
|
|||
<div class="card-glass"> |
|||
<h3 class="text-2xl font-semibold mb-6 text-white">Progress Indicators</h3> |
|||
|
|||
<div class="space-y-6"> |
|||
<div> |
|||
<p class="text-sm text-white/90 mb-2">25% Progress</p> |
|||
<div class="progress-bar-wrapper"> |
|||
<div class="progress-bar" style="width: 25%"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div> |
|||
<p class="text-sm text-white/90 mb-2">50% Progress</p> |
|||
<div class="progress-bar-wrapper"> |
|||
<div class="progress-bar" style="width: 50%"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div> |
|||
<p class="text-sm text-white/90 mb-2">75% Progress</p> |
|||
<div class="progress-bar-wrapper"> |
|||
<div class="progress-bar" style="width: 75%"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div> |
|||
<p class="text-sm text-white/90 mb-2">100% Progress</p> |
|||
<div class="progress-bar-wrapper"> |
|||
<div class="progress-bar" style="width: 100%"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<details class="bg-white/5 p-4 rounded-lg mt-6"> |
|||
<summary class="cursor-pointer text-white/90 font-semibold">Show Code</summary> |
|||
<pre class="mt-4 text-sm text-white/80 overflow-x-auto"><code><div class="progress-bar-wrapper"> |
|||
<div class="progress-bar" style="width: 60%"></div> |
|||
</div></code></pre> |
|||
</details> |
|||
</div> |
|||
</section> |
|||
|
|||
<!-- Components Section --> |
|||
<section id="components" class="mb-16"> |
|||
<h2 class="text-4xl font-bold mb-6 text-experimenta-accent">Components</h2> |
|||
|
|||
<div class="card-info card-accent-border"> |
|||
<h3 class="text-xl font-semibold mb-2 text-experimenta-accent">Available Components</h3> |
|||
<ul class="list-disc list-inside space-y-2 text-white/90"> |
|||
<li><strong>CommonHeader</strong> - Main navigation header with experimenta logo</li> |
|||
<li><strong>CommonFooter</strong> - Footer with 4-column grid (links, contact, legal, social)</li> |
|||
<li><strong>UiButton</strong> - shadcn-nuxt Button component with 7 variants</li> |
|||
</ul> |
|||
<p class="mt-4 text-sm text-white/70"> |
|||
See individual component files in <code |
|||
class="font-mono bg-white/10 px-2 py-1 rounded">/app/components/</code> |
|||
</p> |
|||
</div> |
|||
</section> |
|||
|
|||
<!-- Footer --> |
|||
<footer class="mt-16 pt-8 border-t border-white/20 text-center text-white/70"> |
|||
<p>my.experimenta Design System © 2025</p> |
|||
<p class="text-sm mt-2"> |
|||
For questions or updates, see |
|||
<a href="/docs/DESIGN_SYSTEM.md" class="link-primary" target="_blank">DESIGN_SYSTEM.md</a> |
|||
</p> |
|||
</footer> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<style scoped> |
|||
/* Additional scoped styles for styleguide page */ |
|||
details summary { |
|||
transition: opacity 0.2s; |
|||
} |
|||
|
|||
details summary:hover { |
|||
opacity: 0.8; |
|||
} |
|||
|
|||
details[open] summary { |
|||
margin-bottom: 1rem; |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue