diff --git a/CLAUDE.md b/CLAUDE.md
index 431f5dc..4c9a16b 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -79,6 +79,88 @@ The site is **public by default**. Authentication is optional and unlocks additi
@endauth
```
+## Form Component Standards
+
+**Raw HTML form elements are forbidden in Blade templates.** Every form control must use the corresponding Blade component so visual changes can be made in one place.
+
+### Available components
+
+| Element | Component | Notes |
+|---|---|---|
+| `` | `` | Accepts all input attributes; `type` prop defaults to `'text'` |
+| `` + label | `` | Wraps input in a label — pass text in the slot |
+| `` + label | `` | Wraps input in a label — pass text in the slot |
+| `