feat(docker-watcher): phase 14 - frontend polish & modern UI
Design system with CSS custom properties (light/dark themes). 38 Lucide SVG icon components. Dark mode with system preference. EN/RU localization with i18n store. Skeleton loaders, empty states, toggle switches, micro-interactions. Responsive sidebar with mobile hamburger menu. All pages polished with consistent styling.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
<!--
|
||||
Task 8: Skeleton table placeholder for list views during loading.
|
||||
-->
|
||||
<script lang="ts">
|
||||
import Skeleton from './Skeleton.svelte';
|
||||
|
||||
interface Props {
|
||||
rows?: number;
|
||||
cols?: number;
|
||||
}
|
||||
|
||||
const { rows = 5, cols = 4 }: Props = $props();
|
||||
</script>
|
||||
|
||||
<div class="overflow-hidden rounded-xl border border-[var(--border-primary)] bg-[var(--surface-card)] shadow-[var(--shadow-sm)]">
|
||||
<div class="border-b border-[var(--border-primary)] bg-[var(--surface-card-hover)] px-6 py-3">
|
||||
<div class="flex gap-6">
|
||||
{#each Array(cols) as _, i}
|
||||
<Skeleton width={i === 0 ? '6rem' : '5rem'} height="0.75rem" />
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
{#each Array(rows) as _, i}
|
||||
<div class="flex gap-6 border-b border-[var(--border-secondary)] px-6 py-4 last:border-b-0">
|
||||
{#each Array(cols) as _, j}
|
||||
<Skeleton width={j === 0 ? '40%' : '20%'} height="0.875rem" />
|
||||
{/each}
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
Reference in New Issue
Block a user