<section class="section docs-section" id="tables">
<h2 class="section-title">Tables</h2>
<p class="docs-section-description">Таблицы используют базовый класс .table, semantic table markup и дополнительные элементы: .table-caption, .table-head, .table-body, .table-foot.</p>
<div class="block">
<h3 class="block-title">Basic table</h3>
<table class="table">
<caption class="table-caption">Projects list</caption>
<thead class="table-head">
<tr class="table-row">
<th scope="col">Project</th>
<th scope="col">Status</th>
<th scope="col">Owner</th>
<th scope="col">Updated</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody class="table-body">
<tr class="table-row">
<td>Website Redesign</td>
<td><span class="badge badge-success">Online</span></td>
<td><code class="code">@design</code></td>
<td>2 min ago</td>
<td>
<button class="btn btn-secondary btn-small" type="button">Open</button>
<button class="btn btn-accent btn-small" type="button">Toggle</button>
</td>
</tr>
<tr class="table-row">
<td>Billing API</td>
<td><span class="badge badge-warning">Degraded</span></td>
<td><code class="code">@backend</code></td>
<td>1 hour ago</td>
<td>
<button class="btn btn-secondary btn-small" type="button">Open</button>
<button class="btn btn-danger btn-small" type="button">Restart</button>
</td>
</tr>
<tr class="table-row table-row-muted">
<td>Archive Import</td>
<td><span class="badge badge-error">Offline</span></td>
<td><code class="code">@ops</code></td>
<td>Yesterday</td>
<td>
<button class="btn btn-secondary btn-small" type="button" disabled>Open</button>
<button class="btn btn-accent btn-small" type="button" disabled>Toggle</button>
</td>
</tr>
</tbody>
<tfoot class="table-foot">
<tr class="table-row">
<td colspan="5"><span class="table-meta">Total: 3 projects</span></td>
</tr>
</tfoot>
</table>
</div>
<div class="block mt-6">
<h3 class="block-title">Compact table</h3>
<GnTable :columns="[{ key: 'job', label: 'Job' }, { key: 'state', label: 'State' }, { key: 'runtime', label: 'Runtime' }, { key: 'runId', label: 'Run ID' }, { key: 'actions', label: 'Actions' }]" :rows="[{ job: 'Sync catalog', state: 'Done', runtime: '18s', runId: 'run_1048' }, { job: 'Import archive', state: 'Running', runtime: '2m 14s', runId: 'run_1047' }, { job: 'Export report', state: 'Failed', runtime: '4s', runId: 'run_1046' }]" caption="Recent jobs" class="table-compact">
<template #cell-state="{ value }"><GnBadge :variant="value === 'Done' ? 'success' : value === 'Running' ? 'warning' : 'error'">{{ value }}</GnBadge></template>
<template #cell-runId="{ value }"><code class="code">{{ value }}</code></template>
<template #cell-actions="{ row }">
<GnButton variant="secondary" size="sm">{{ row.state === 'Running' ? 'Stop' : 'Logs' }}</GnButton>
<GnButton :variant="row.state === 'Failed' ? 'accent' : 'danger'" size="sm">{{ row.state === 'Failed' ? 'Retry' : 'Stop' }}</GnButton>
</template>
</GnTable>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Tables 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"><table class="table">
<caption class="table-caption">Projects list</caption>
<thead class="table-head">
<tr class="table-row">
<th scope="col">Project</th>
<th scope="col">Status</th>
</tr>
</thead>
<tbody class="table-body">
<tr class="table-row">
<td>Website Redesign</td>
<td><span class="badge badge-success">Online</span></td>
</tr>
</tbody>
</table></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Compact Table 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"><table class="table table-compact">
<caption class="table-caption">Recent jobs</caption>
<thead class="table-head">
<tr class="table-row">
<th scope="col">Job</th>
<th scope="col">State</th>
<th scope="col">Run ID</th>
</tr>
</thead>
<tbody class="table-body">
<tr class="table-row">
<td>Sync catalog</td>
<td><span class="badge badge-success">Done</span></td>
<td class="table-cell-mono">run_1048</td>
</tr>
</tbody>
</table></code></pre>
</div>
</section>