<section class="section docs-section" id="cards">
<h2 class="section-title">Cards</h2>
<p class="docs-section-description">Card подходит для компактных виджетов и контентных блоков. Цветовые состояния карточек задаются модификаторами `card-success`, `card-warning`, `card-error`, `card-info`.</p>
<div class="cards">
<div class="card">
<h3 class="card-title">Card title</h3>
<div class="card-content">
<img src="/assets/imgs/gnexus-mark.svg" alt="" class="card-thumb">
<p>Карточка для контента, виджетов, статусов.</p>
</div>
<div class="card-footer">
<button class="btn btn-accent" type="button">Action</button>
</div>
</div>
</div>
<div class="block mt-6">
<div class="row g-4">
<div class="card status-card card-success">
<span class="card-title">Status title</span>
<div class="card-content">
<div class="status-icon-container">
<div class="status-icon">
<i class="ph ph-check-circle"></i> OK
</div>
</div>
<p class="status-name">Primary status card with a short description.</p>
</div>
</div>
<div class="card status-card card-primary">
<span class="card-title">Default</span>
<div class="card-content">
<div class="status-icon-container">
<div class="status-icon">
<i class="ph ph-stack"></i>
</div>
</div>
<p class="status-name">Neutral card for a module, widget, or section.</p>
</div>
</div>
<div class="card status-card card-warning">
<span class="card-title">Pending</span>
<div class="card-content">
<div class="status-icon-container">
<div class="status-icon">
<i class="ph ph-warning"></i>
</div>
</div>
<p class="status-name">Warning state for items that need attention.</p>
</div>
</div>
<div class="card status-card card-error">
<span class="card-title">Failed</span>
<div class="card-content">
<div class="status-icon-container">
<div class="status-icon">
<i class="ph ph-warning-octagon"></i>
</div>
</div>
<p class="status-name">Error state for failed actions or blocked flows.</p>
</div>
</div>
<div class="card status-card card-info">
<span class="card-title">Info</span>
<div class="card-content">
<div class="status-icon-container">
<div class="status-icon">
<i class="ph ph-info"></i>
</div>
</div>
<p class="status-name">Informational card for contextual metadata.</p>
</div>
</div>
<div class="card status-card card-secondary">
<span class="card-title">Queued</span>
<div class="card-content">
<div class="status-icon-container">
<div class="status-icon">
<i class="ph ph-clock"></i>
</div>
</div>
<p class="status-name">Secondary state for queued or background work.</p>
</div>
</div>
</div>
</div>
<div class="block mt-6">
<GnMetricCard label="Monthly usage" value="84.2%" icon="ph-chart-line-up" delta="+12.8%" meta="vs previous period" />
</div>
<div class="block mt-6">
<GnActionCard kicker="Quick action" title="Create workflow" text="Use action cards for primary next steps, onboarding prompts, and compact empty state actions.">
<template #actions>
<GnButton variant="secondary" size="sm">Preview</GnButton>
<GnButton variant="accent" size="sm">Create</GnButton>
</template>
</GnActionCard>
</div>
<div class="block mt-6">
<h3 class="block-title">Horizontal Card</h3>
<GnHorizontalCard image="/assets/imgs/gnexus-mark.svg" title="Project Alpha" title-href="#">
<p>Compact horizontal layout for content listings, search results, and entity rows.</p>
<template #footer>
<span>Updated 2h ago</span>
<GnBadge variant="success">Active</GnBadge>
</template>
</GnHorizontalCard>
</div>
<div class="block mt-6">
<h3 class="block-title">Login Card</h3>
<GnLoginCard title="Sign in" username-label="Username" password-label="Password" submit-text="Sign in" forgot-href="#" signup-href="#" @submit="showToast('success', { title: 'Login', text: 'Form submitted' })" />
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Cards HTML</span>
<button class="btn-icon btn-icon-sm" type="button" aria-label="Copy"><i class="ph ph-copy"></i></button>
</div>
<pre><code class="language-html"><div class="card status-card card-success">
<span class="card-title">Status title</span>
<div class="card-content">
<div class="status-icon-container">
<div class="status-icon">
<i class="ph ph-check-circle"></i>
OK
</div>
</div>
<p class="status-name">Primary status card.</p>
</div>
</div></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Metric Card HTML</span>
<button class="btn-icon btn-icon-sm" type="button" aria-label="Copy"><i class="ph ph-copy"></i></button>
</div>
<pre><code class="language-html"><div class="card metric-card">
<div class="card-content">
<div class="metric-card-header">
<p class="metric-card-label">Monthly usage</p>
<span class="metric-card-icon"><i class="ph ph-chart-line-up"></i></span>
</div>
<p class="metric-card-value">84.2%</p>
<div class="metric-card-meta">
<span class="metric-card-delta">+12.8%</span>
<span>vs previous period</span>
</div>
</div>
</div></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Action Card HTML</span>
<button class="btn-icon btn-icon-sm" type="button" aria-label="Copy"><i class="ph ph-copy"></i></button>
</div>
<pre><code class="language-html"><div class="card action-card">
<div class="card-content">
<span class="action-card-kicker">Quick action</span>
<h3 class="action-card-title">Create workflow</h3>
<p class="action-card-text">
Use action cards for primary next steps and compact empty state actions.
</p>
<div class="action-card-actions">
<button class="btn btn-secondary btn-small">Preview</button>
<button class="btn btn-accent btn-small">Create</button>
</div>
</div>
</div></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Horizontal Card HTML</span>
<button class="btn-icon btn-icon-sm" type="button" aria-label="Copy"><i class="ph ph-copy"></i></button>
</div>
<pre><code class="language-html"><div class="card card-horizontal">
<div class="card-media">
<img src="/assets/imgs/cover.png" alt="">
</div>
<div class="card-body">
<h3 class="card-title">
<a href="/projects/alpha">Project Alpha</a>
</h3>
<div class="card-content">
<p>Description text.</p>
</div>
<div class="card-footer">
<span>Updated 2h ago</span>
<span class="badge badge-success">Active</span>
</div>
</div>
</div></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Vue: GnHorizontalCard</span>
<button class="btn-icon btn-icon-sm" type="button" aria-label="Copy"><i class="ph ph-copy"></i></button>
</div>
<pre><code class="language-html"><GnHorizontalCard
image="/assets/imgs/cover.png"
title="Project Alpha"
title-href="/projects/alpha"
icon="ph-arrow-right">
<p>Description text.</p>
<template #footer>
<span>Updated 2h ago</span>
<GnBadge variant="success">Active</GnBadge>
</template>
</GnHorizontalCard></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Vue: GnLoginCard</span>
<button class="btn-icon btn-icon-sm" type="button" aria-label="Copy"><i class="ph ph-copy"></i></button>
</div>
<pre><code class="language-html"><GnLoginCard
title="Sign in"
username-label="Username"
password-label="Password"
submit-text="Sign in"
remember-me
forgot-href="/forgot"
signup-href="/signup"
@submit="handleLogin"
/></code></pre>
</div>
<div class="block mt-6">
<h3 class="block-title">User Card — Compact</h3>
<GnUserCard
name="Eugene Sukhodolskiy"
email="goldmikki@gmail.com"
:avatar="{ src: 'https://auth.gnexus.space/storage/avatars/1/181513cf-3e1b-4b72-bc9d-a1825c736560/original.jpg', status: 'online' }"
href="https://auth.gnexus.space/account/profile"
compact
:actions="[
{ icon: 'ph-pencil-simple', label: 'Edit profile' },
{ icon: 'ph-sign-out', label: 'Logout' }
]"
/>
</div>
<div class="block mt-6">
<h3 class="block-title">User Card — Full</h3>
<GnUserCard
name="Eugene Sukhodolskiy"
email="goldmikki@gmail.com"
role="Lead Frontend Engineer"
:avatar="{ src: 'https://auth.gnexus.space/storage/avatars/1/181513cf-3e1b-4b72-bc9d-a1825c736560/original.jpg', status: 'online' }"
href="https://auth.gnexus.space/account/profile"
:actions="[
{ icon: 'ph-user', label: 'View profile', variant: 'primary' },
{ icon: 'ph-chat-circle', label: 'Message', variant: 'accent' }
]"
/>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">User Card Compact HTML</span>
<button class="btn-icon btn-icon-sm" type="button" aria-label="Copy"><i class="ph ph-copy"></i></button>
</div>
<pre><code class="language-html"><article class="card user-card user-card-compact">
<div class="user-card-body">
<a class="profile-identity" href="#">
<span class="identity">
<span class="avatar avatar-primary avatar-sm is-online">
<img src="..." alt="">
</span>
<span class="identity-content">
<span class="identity-title">Name</span>
<span class="identity-meta">email@example.com</span>
</span>
</span>
</a>
<div class="user-card-actions">
<button class="btn-icon" aria-label="Edit">
<i class="ph ph-pencil-simple"></i>
</button>
</div>
</div>
</article></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">User Card Full HTML</span>
<button class="btn-icon btn-icon-sm" type="button" aria-label="Copy"><i class="ph ph-copy"></i></button>
</div>
<pre><code class="language-html"><article class="card user-card">
<div class="user-card-body">
<span class="identity">
<span class="avatar avatar-primary is-online">
<img src="..." alt="">
</span>
<span class="identity-content">
<span class="identity-title">Name</span>
<span class="identity-meta">email@example.com</span>
</span>
</span>
<span class="user-card-role">Role</span>
<div class="user-card-actions">
<button class="btn btn-primary btn-small">View profile</button>
<button class="btn btn-accent btn-small">Message</button>
</div>
</div>
</article></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Vue: GnUserCard</span>
<button class="btn-icon btn-icon-sm" type="button" aria-label="Copy"><i class="ph ph-copy"></i></button>
</div>
<pre><code class="language-html"><GnUserCard
name="Eugene Sukhodolskiy"
email="goldmikki@gmail.com"
role="Lead Frontend Engineer"
:avatar="{ src: '...', status: 'online' }"
href="/profile"
:actions="[
{ icon: 'ph-user', label: 'View profile', variant: 'primary' },
{ icon: 'ph-chat-circle', label: 'Message', variant: 'accent' }
]"
/>
<GnUserCard
name="Eugene Sukhodolskiy"
email="goldmikki@gmail.com"
:avatar="{ src: '...', status: 'online' }"
href="/profile"
compact
:actions="[
{ icon: 'ph-pencil-simple', label: 'Edit profile' },
{ icon: 'ph-sign-out', label: 'Logout' }
]"
/></code></pre>
</div>
</section>