ux: migrate demo cards to ui-card primitives

This commit is contained in:
Marco Allegretti 2026-01-30 09:59:48 +01:00
parent cafcce8c90
commit ba659eef80
2 changed files with 24 additions and 40 deletions

View file

@ -469,6 +469,14 @@
padding: 1.1rem; padding: 1.1rem;
} }
.ui-card-pad-lg {
padding: 1.5rem;
}
.ui-card-pad-xl {
padding: 2rem;
}
.ui-card-interactive { .ui-card-interactive {
transition: transform 140ms ease, border-color 140ms ease, background 140ms ease; transition: transform 140ms ease, border-color 140ms ease, background 140ms ease;
} }

View file

@ -56,7 +56,7 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
</p> </p>
<div class="community-cards" id="community-cards"> <div class="community-cards" id="community-cards">
<div class="community-card"> <div class="community-card ui-card ui-card-pad-lg ui-card-interactive">
<div class="card-header"> <div class="card-header">
<h3>Aurora Framework</h3> <h3>Aurora Framework</h3>
<span class="card-tag">Open Source Project</span> <span class="card-tag">Open Source Project</span>
@ -72,7 +72,7 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
<a href="/demo?enter=1&next=/communities/aurora" class="card-link">Explore Aurora →</a> <a href="/demo?enter=1&next=/communities/aurora" class="card-link">Explore Aurora →</a>
</div> </div>
<div class="community-card"> <div class="community-card ui-card ui-card-pad-lg ui-card-interactive">
<div class="card-header"> <div class="card-header">
<h3>Civic Commons Network</h3> <h3>Civic Commons Network</h3>
<span class="card-tag">Political Movement</span> <span class="card-tag">Political Movement</span>
@ -88,7 +88,7 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
<a href="/demo?enter=1&next=/communities/civic-commons" class="card-link">Explore Civic Commons →</a> <a href="/demo?enter=1&next=/communities/civic-commons" class="card-link">Explore Civic Commons →</a>
</div> </div>
<div class="community-card"> <div class="community-card ui-card ui-card-pad-lg ui-card-interactive">
<div class="card-header"> <div class="card-header">
<h3>Regional Makers Collective</h3> <h3>Regional Makers Collective</h3>
<span class="card-tag">Federation</span> <span class="card-tag">Federation</span>
@ -110,7 +110,7 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
<h2>How to Explore</h2> <h2>How to Explore</h2>
<div class="access-modes"> <div class="access-modes">
<div class="access-mode"> <div class="access-mode ui-card ui-card-pad-xl">
<div class="mode-icon">👁️</div> <div class="mode-icon">👁️</div>
<h4>Browse Freely</h4> <h4>Browse Freely</h4>
<p> <p>
@ -120,7 +120,7 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
<a href="/demo?enter=1&next=/communities" class="mode-link">Browse Communities →</a> <a href="/demo?enter=1&next=/communities" class="mode-link">Browse Communities →</a>
</div> </div>
<div class="access-mode"> <div class="access-mode ui-card ui-card-pad-xl">
<div class="mode-icon">🧪</div> <div class="mode-icon">🧪</div>
<h4>Demo Accounts</h4> <h4>Demo Accounts</h4>
<p> <p>
@ -128,21 +128,21 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
vote on proposals, create delegations, and see the member experience firsthand. vote on proposals, create delegations, and see the member experience firsthand.
</p> </p>
<div class="demo-accounts"> <div class="demo-accounts">
<button class="demo-login-btn" data-username="contributor"> <button class="demo-login-btn ui-card ui-card-soft" data-username="contributor">
<div class="btn-icon">👤</div> <div class="btn-icon">👤</div>
<div class="btn-info"> <div class="btn-info">
<strong>Contributor</strong> <strong>Contributor</strong>
<span>Standard member - can vote and participate</span> <span>Standard member - can vote and participate</span>
</div> </div>
</button> </button>
<button class="demo-login-btn" data-username="moderator"> <button class="demo-login-btn ui-card ui-card-soft" data-username="moderator">
<div class="btn-icon">🛡️</div> <div class="btn-icon">🛡️</div>
<div class="btn-info"> <div class="btn-info">
<strong>Moderator</strong> <strong>Moderator</strong>
<span>Can moderate content and view logs</span> <span>Can moderate content and view logs</span>
</div> </div>
</button> </button>
<button class="demo-login-btn" data-username="observer"> <button class="demo-login-btn ui-card ui-card-soft" data-username="observer">
<div class="btn-icon">👁️</div> <div class="btn-icon">👁️</div>
<div class="btn-info"> <div class="btn-info">
<strong>Observer</strong> <strong>Observer</strong>
@ -168,35 +168,35 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
<h2>Suggested Exploration Path</h2> <h2>Suggested Exploration Path</h2>
<div class="journey-steps"> <div class="journey-steps">
<div class="journey-step"> <div class="journey-step ui-card ui-card-pad-lg">
<div class="step-number">1</div> <div class="step-number">1</div>
<div class="step-content"> <div class="step-content">
<h4>Browse a Community</h4> <h4>Browse a Community</h4>
<p>Start with Aurora Framework. See the community overview, active members, and governance structure.</p> <p>Start with Aurora Framework. See the community overview, active members, and governance structure.</p>
</div> </div>
</div> </div>
<div class="journey-step"> <div class="journey-step ui-card ui-card-pad-lg">
<div class="step-number">2</div> <div class="step-number">2</div>
<div class="step-content"> <div class="step-content">
<h4>Read a Completed Decision</h4> <h4>Read a Completed Decision</h4>
<p>Find a closed proposal. See the deliberation history, voting results, and how the outcome was reached.</p> <p>Find a closed proposal. See the deliberation history, voting results, and how the outcome was reached.</p>
</div> </div>
</div> </div>
<div class="journey-step"> <div class="journey-step ui-card ui-card-pad-lg">
<div class="step-number">3</div> <div class="step-number">3</div>
<div class="step-content"> <div class="step-content">
<h4>Explore Delegations</h4> <h4>Explore Delegations</h4>
<p>View the delegation network. See who trusts whom on which topics and how votes flow.</p> <p>View the delegation network. See who trusts whom on which topics and how votes flow.</p>
</div> </div>
</div> </div>
<div class="journey-step"> <div class="journey-step ui-card ui-card-pad-lg">
<div class="step-number">4</div> <div class="step-number">4</div>
<div class="step-content"> <div class="step-content">
<h4>Check the Moderation Log</h4> <h4>Check the Moderation Log</h4>
<p>See transparent moderation in action. Every action has a reason, a rule reference, and accountability.</p> <p>See transparent moderation in action. Every action has a reason, a rule reference, and accountability.</p>
</div> </div>
</div> </div>
<div class="journey-step"> <div class="journey-step ui-card ui-card-pad-lg">
<div class="step-number">5</div> <div class="step-number">5</div>
<div class="step-content"> <div class="step-content">
<h4>Cast a Vote</h4> <h4>Cast a Vote</h4>
@ -221,15 +221,15 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
<section class="demo-next"> <section class="demo-next">
<h2>What's Next?</h2> <h2>What's Next?</h2>
<div class="next-options"> <div class="next-options">
<a href="/about" class="next-card"> <a href="/about" class="next-card ui-card ui-card-pad-lg ui-card-interactive">
<h4>Learn More</h4> <h4>Learn More</h4>
<p>Understand what Likwid is, who it's for, and how it works.</p> <p>Understand what Likwid is, who it's for, and how it works.</p>
</a> </a>
<a href="/manifesto" class="next-card"> <a href="/manifesto" class="next-card ui-card ui-card-pad-lg ui-card-interactive">
<h4>Read the Manifesto</h4> <h4>Read the Manifesto</h4>
<p>Explore the technical and political vision behind Likwid.</p> <p>Explore the technical and political vision behind Likwid.</p>
</a> </a>
<a href="/docs" class="next-card"> <a href="/docs" class="next-card ui-card ui-card-pad-lg ui-card-interactive">
<h4>Documentation</h4> <h4>Documentation</h4>
<p>Technical guides for deployment, configuration, and development.</p> <p>Technical guides for deployment, configuration, and development.</p>
</a> </a>
@ -347,16 +347,10 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
} }
.community-card { .community-card {
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
padding: 1.5rem;
transition: all var(--motion-normal) var(--easing-standard); transition: all var(--motion-normal) var(--easing-standard);
} }
.community-card:hover { .community-card:hover {
border-color: var(--color-border-hover);
transform: translateY(-2px);
box-shadow: var(--shadow-md); box-shadow: var(--shadow-md);
} }
@ -424,13 +418,6 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
} }
} }
.access-mode {
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
padding: 2rem;
}
.mode-icon { .mode-icon {
font-size: 2rem; font-size: 2rem;
margin-bottom: 1rem; margin-bottom: 1rem;
@ -464,9 +451,6 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
gap: 1rem; gap: 1rem;
width: 100%; width: 100%;
padding: 1rem 1.25rem; padding: 1rem 1.25rem;
background: var(--color-bg-alt);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
cursor: pointer; cursor: pointer;
transition: all var(--motion-fast) var(--easing-standard); transition: all var(--motion-fast) var(--easing-standard);
text-align: left; text-align: left;
@ -566,10 +550,6 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
display: flex; display: flex;
gap: 1.5rem; gap: 1.5rem;
align-items: flex-start; align-items: flex-start;
padding: 1.5rem;
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
} }
.step-number { .step-number {
@ -647,10 +627,6 @@ const nextQuery = nextParam ? `&next=${encodeURIComponent(nextParam)}` : '';
.next-card { .next-card {
display: block; display: block;
padding: 1.5rem;
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
text-decoration: none; text-decoration: none;
transition: all var(--motion-fast) var(--easing-standard); transition: all var(--motion-fast) var(--easing-standard);
} }