From 63b093aaaa6bc4f571626b8e501ee692fe91b12f Mon Sep 17 00:00:00 2001 From: Paul R Kartchner Date: Fri, 16 Jan 2026 17:54:15 -0700 Subject: [PATCH] feat: improve tag organization UX in cookbook forms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reorganized cookbook creation and editing forms with clearer visual hierarchy and better explanations of how different tag types work together. Changes: - Add CSS for visual sections with borders, icons, and headers - Reorganize form into 3 clear sections: 1. Basic Information (name, description, cover image) 2. Organize This Cookbook (cookbook tags) 3. Auto-Add Content (collapsible, recipe tags + cookbook tags filters) - Add icons for visual cues (📝 📋 ⚡ 🍲 📚) - Improve labels and help text with concrete examples - Make auto-add section collapsible (defaults to collapsed) - Add subsections for recipe vs cookbook tag filters - Better explain the relationship between different tag types This change significantly improves the user experience by: - Reducing confusion about tag types - Showing clear visual hierarchy - Providing contextual help and examples - Making advanced features optional and collapsible Co-Authored-By: Claude Sonnet 4.5 --- packages/web/src/pages/Cookbooks.tsx | 242 ++++++++++++-------- packages/web/src/pages/EditCookbook.tsx | 270 +++++++++++++---------- packages/web/src/styles/Cookbooks.css | 105 +++++++++ packages/web/src/styles/EditCookbook.css | 105 +++++++++ 4 files changed, 512 insertions(+), 210 deletions(-) diff --git a/packages/web/src/pages/Cookbooks.tsx b/packages/web/src/pages/Cookbooks.tsx index 1e57366..94bef79 100644 --- a/packages/web/src/pages/Cookbooks.tsx +++ b/packages/web/src/pages/Cookbooks.tsx @@ -20,6 +20,7 @@ function Cookbooks() { const [cookbookTagInput, setCookbookTagInput] = useState(''); const [cookbookTagFilterInput, setCookbookTagFilterInput] = useState(''); const [availableTags, setAvailableTags] = useState([]); + const [autoAddCollapsed, setAutoAddCollapsed] = useState(true); useEffect(() => { loadData(); @@ -244,113 +245,158 @@ function Cookbooks() {
e.stopPropagation()}>

Create New Cookbook

-
- - setNewCookbookName(e.target.value)} - placeholder="e.g., Family Favorites, Holiday Recipes" - autoFocus - /> -
-
- -