Add Role Switcher component to styleguide with detailed usage instructions
- Introduced RoleSwitcher component to the styleguide, allowing users to switch between different roles (individual, educator, company). - Enhanced the styleguide with a live example, design features, and component usage instructions for better clarity and usability. - Updated layout to include a new section for the Role Switcher, improving overall navigation and user experience.
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { AlertCircle, CheckCircle } from 'lucide-vue-next'
|
import { AlertCircle, CheckCircle } from 'lucide-vue-next'
|
||||||
|
import RoleSwitcher from '@/components/navigation/RoleSwitcher.vue'
|
||||||
|
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
layout: 'styleguide',
|
layout: 'styleguide',
|
||||||
@@ -727,7 +728,7 @@ const copyCode = async (code: string) => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Product Detail Demo Link -->
|
<!-- Product Detail Demo Link -->
|
||||||
<div class="card-glass">
|
<div class="card-glass mb-8">
|
||||||
<h3 class="text-2xl font-semibold mb-4 text-white">Product Detail Page</h3>
|
<h3 class="text-2xl font-semibold mb-4 text-white">Product Detail Page</h3>
|
||||||
<p class="text-white/90 mb-6">
|
<p class="text-white/90 mb-6">
|
||||||
Vollständige Produktdetailseite für Jahreskarten mit Hero-Image, Preis- und Verfügbarkeitsanzeige,
|
Vollständige Produktdetailseite für Jahreskarten mit Hero-Image, Preis- und Verfügbarkeitsanzeige,
|
||||||
@@ -739,6 +740,76 @@ const copyCode = async (code: string) => {
|
|||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Role Switcher Dropdown -->
|
||||||
|
<div class="card-glass">
|
||||||
|
<h3 class="text-2xl font-semibold mb-4 text-white">Role Switcher Dropdown</h3>
|
||||||
|
<p class="text-white/90 mb-6">
|
||||||
|
Rollen-Auswahl-Dropdown für Benutzer. Ermöglicht das Wechseln zwischen verschiedenen Benutzerrollen
|
||||||
|
(Privatperson, Pädagoge, Firma). Der Button zeigt die aktuelle Rolle und öffnet ein Dropdown-Menü mit allen verfügbaren Optionen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Live Example -->
|
||||||
|
<div class="mb-6 p-6 bg-purple-darker/50 rounded-xl border border-white/10">
|
||||||
|
<p class="text-sm text-white/70 mb-4">Live-Beispiel (interaktiv):</p>
|
||||||
|
<div class="flex justify-center">
|
||||||
|
<RoleSwitcher />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Design Features -->
|
||||||
|
<div class="bg-white/5 p-6 rounded-lg mb-6">
|
||||||
|
<h4 class="text-lg font-semibold text-white mb-4">Design Features</h4>
|
||||||
|
<ul class="space-y-2 text-white/90 text-sm">
|
||||||
|
<li class="flex items-start gap-2">
|
||||||
|
<span class="mt-1 text-experimenta-accent">✓</span>
|
||||||
|
<span><strong>Button-Style:</strong> Transparenter Hintergrund mit weißem Border, Glassmorphism-Effekt</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex items-start gap-2">
|
||||||
|
<span class="mt-1 text-experimenta-accent">✓</span>
|
||||||
|
<span><strong>Kontext-Label:</strong> "Du kaufst als:" (nur Desktop, versteckt auf Mobile)</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex items-start gap-2">
|
||||||
|
<span class="mt-1 text-experimenta-accent">✓</span>
|
||||||
|
<span><strong>Rolle mit Icon:</strong> Zeigt aktuelle Rolle mit passendem Icon (User, GraduationCap, Building2)</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex items-start gap-2">
|
||||||
|
<span class="mt-1 text-experimenta-accent">✓</span>
|
||||||
|
<span><strong>Dropdown-Breite:</strong> Fixe Breite von 312px für konsistentes Layout</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex items-start gap-2">
|
||||||
|
<span class="mt-1 text-experimenta-accent">✓</span>
|
||||||
|
<span><strong>Menü-Items:</strong> Große, klickbare Items (py-3) mit Icon, Titel und Beschreibung</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex items-start gap-2">
|
||||||
|
<span class="mt-1 text-experimenta-accent">✓</span>
|
||||||
|
<span><strong>Aktive Rolle:</strong> Markiert mit grünem Check-Icon und lila Hintergrund</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex items-start gap-2">
|
||||||
|
<span class="mt-1 text-experimenta-accent">✓</span>
|
||||||
|
<span><strong>Deaktivierte Rollen:</strong> Opacity 60%, "Demnächst" Badge, cursor-not-allowed</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex items-start gap-2">
|
||||||
|
<span class="mt-1 text-experimenta-accent">✓</span>
|
||||||
|
<span><strong>Footer-Hinweis:</strong> Informationstext mit Emoji am Ende des Dropdowns</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Component Usage -->
|
||||||
|
<details class="bg-white/5 p-4 rounded-lg">
|
||||||
|
<summary class="cursor-pointer text-white/90 font-semibold">Show Component Code</summary>
|
||||||
|
<pre class="mt-4 text-sm text-white/80 overflow-x-auto"><code><!-- Import component -->
|
||||||
|
<script setup>
|
||||||
|
import RoleSwitcher from '@/components/navigation/RoleSwitcher.vue'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- Use in template -->
|
||||||
|
<template>
|
||||||
|
<RoleSwitcher />
|
||||||
|
</template></code></pre>
|
||||||
|
</details>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
|
|||||||
Reference in New Issue
Block a user