diff --git a/docs/plan-redesign.md b/docs/plan-redesign.md
index 02042d9..8fa10dd 100644
--- a/docs/plan-redesign.md
+++ b/docs/plan-redesign.md
@@ -306,10 +306,9 @@ src/routes/preview/tools/[id]/+page.svelte
`[data-theme='dark']` (таблица §2). Без утилитарных классов.
- [x] **[C5]** Примитивы batch 1: `AppShell`, `BlueprintGrid`, `CheckerCanvas`,
`MonoLabel`, `StatusDot`/`StatusLine`.
-- [ ] **[C6]** Примитивы batch 2: `Panel`, `PanelHeading`, `SettingGroup`,
+- [x] **[C6]** Примитивы batch 2: `Panel`, `PanelHeading`, `SettingGroup`,
`SettingsFooter`, `MetaRow`/`MetaList`, `Segmented`, `Badge`, `StepCard`,
- `ToolCard`, `ImageCard`/`PreviewTile`. _(при превышении 500 строк —
- разбить на C6a/C6b)_
+ `ToolCard`, `ImageCard`/`PreviewTile`.
- [ ] **[C7]** Контролы: `Icon`, `IconButton`, `Button`, `Field`, `SliderField`,
`ColorField`, `TextField`, `SelectField`, `CheckboxField`, `Toggle`,
`SegmentedControl`, `EmptyState`, `CodeBlock`, `DownloadButton`.
diff --git a/web/src/lib/components/kit/Badge.svelte b/web/src/lib/components/kit/Badge.svelte
new file mode 100644
index 0000000..dbcb752
--- /dev/null
+++ b/web/src/lib/components/kit/Badge.svelte
@@ -0,0 +1,43 @@
+
+
+
+ {#if children}{@render children()}{/if}
+
+
+
diff --git a/web/src/lib/components/kit/ImageCard.svelte b/web/src/lib/components/kit/ImageCard.svelte
new file mode 100644
index 0000000..d96fc56
--- /dev/null
+++ b/web/src/lib/components/kit/ImageCard.svelte
@@ -0,0 +1,32 @@
+
+
+
+ {label}
+ {@render children()}
+
+
+
diff --git a/web/src/lib/components/kit/MetaList.svelte b/web/src/lib/components/kit/MetaList.svelte
new file mode 100644
index 0000000..199a6b0
--- /dev/null
+++ b/web/src/lib/components/kit/MetaList.svelte
@@ -0,0 +1,22 @@
+
+
+
+ {#each items as item (item.caption)}
+
+ {/each}
+
+
+
diff --git a/web/src/lib/components/kit/MetaRow.svelte b/web/src/lib/components/kit/MetaRow.svelte
new file mode 100644
index 0000000..27d04f4
--- /dev/null
+++ b/web/src/lib/components/kit/MetaRow.svelte
@@ -0,0 +1,34 @@
+
+
+
+ {caption}
+ {value}
+
+
+
diff --git a/web/src/lib/components/kit/Panel.svelte b/web/src/lib/components/kit/Panel.svelte
new file mode 100644
index 0000000..1c96b14
--- /dev/null
+++ b/web/src/lib/components/kit/Panel.svelte
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/web/src/lib/components/kit/PanelHeading.svelte b/web/src/lib/components/kit/PanelHeading.svelte
new file mode 100644
index 0000000..2f421ad
--- /dev/null
+++ b/web/src/lib/components/kit/PanelHeading.svelte
@@ -0,0 +1,40 @@
+
+
+
+
+
diff --git a/web/src/lib/components/kit/PreviewTile.svelte b/web/src/lib/components/kit/PreviewTile.svelte
new file mode 100644
index 0000000..10575a2
--- /dev/null
+++ b/web/src/lib/components/kit/PreviewTile.svelte
@@ -0,0 +1,32 @@
+
+
+
+
{label}
+
{@render children()}
+
+
+
diff --git a/web/src/lib/components/kit/Segmented.svelte b/web/src/lib/components/kit/Segmented.svelte
new file mode 100644
index 0000000..241bc9e
--- /dev/null
+++ b/web/src/lib/components/kit/Segmented.svelte
@@ -0,0 +1,60 @@
+
+
+
+ {#each options as opt (opt.value)}
+
+ {/each}
+
+
+
diff --git a/web/src/lib/components/kit/SettingGroup.svelte b/web/src/lib/components/kit/SettingGroup.svelte
new file mode 100644
index 0000000..fb01942
--- /dev/null
+++ b/web/src/lib/components/kit/SettingGroup.svelte
@@ -0,0 +1,31 @@
+
+
+
+
{label}
+
{@render children()}
+
+
+
diff --git a/web/src/lib/components/kit/SettingsFooter.svelte b/web/src/lib/components/kit/SettingsFooter.svelte
new file mode 100644
index 0000000..be3bdac
--- /dev/null
+++ b/web/src/lib/components/kit/SettingsFooter.svelte
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/web/src/lib/components/kit/StepCard.svelte b/web/src/lib/components/kit/StepCard.svelte
new file mode 100644
index 0000000..899466a
--- /dev/null
+++ b/web/src/lib/components/kit/StepCard.svelte
@@ -0,0 +1,82 @@
+
+
+
+
+
+ {index.toString().padStart(2, "0")}
+ {#if type}{type}{/if}
+ {#if title}{title}{/if}
+
+
+ {#if children}
+
{@render children()}
+ {/if}
+
+
+
diff --git a/web/src/lib/components/kit/ToolCard.svelte b/web/src/lib/components/kit/ToolCard.svelte
new file mode 100644
index 0000000..2006a6f
--- /dev/null
+++ b/web/src/lib/components/kit/ToolCard.svelte
@@ -0,0 +1,72 @@
+
+
+
+
+ {#if icon}{@render icon()}{/if}
+
+ {index !== undefined ? index.toString().padStart(2, "0") : ""}
+
+
+ {title}
+ {#if description}{description}{/if}
+
+
+
+
+