{"id":1211,"date":"2025-10-21T22:39:25","date_gmt":"2025-10-22T05:39:25","guid":{"rendered":"https:\/\/brianbaker.net\/blog\/?p=1211"},"modified":"2025-10-21T22:39:26","modified_gmt":"2025-10-22T05:39:26","slug":"classic-homemade-bread","status":"publish","type":"post","link":"https:\/\/brianbaker.net\/blog\/2025\/10\/21\/classic-homemade-bread\/","title":{"rendered":"Classic Homemade Bread"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Classic Homemade Bread<\/title>\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n        \n        body {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            background: #faf9f6;\n            color: #333;\n            line-height: 1.6;\n        }\n        \n        .hero {\n            background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), url('data:image\/svg+xml,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1200 600\"><rect fill=\"%23d4a574\" width=\"1200\" height=\"600\"\/><ellipse cx=\"600\" cy=\"300\" rx=\"300\" ry=\"200\" fill=\"%23c89350\"\/><ellipse cx=\"600\" cy=\"320\" rx=\"280\" ry=\"180\" fill=\"%23b5823d\"\/><\/svg>');\n            background-size: cover;\n            background-position: center;\n            height: 500px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            text-align: center;\n            color: white;\n        }\n        \n        .hero-content h1 {\n            font-size: 3.5rem;\n            margin-bottom: 1rem;\n            text-shadow: 2px 2px 4px rgba(0,0,0,0.5);\n        }\n        \n        .badges {\n            display: flex;\n            gap: 1rem;\n            justify-content: center;\n            flex-wrap: wrap;\n            margin-top: 1.5rem;\n        }\n        \n        .badge {\n            background: rgba(255,255,255,0.95);\n            color: #333;\n            padding: 0.75rem 1.5rem;\n            border-radius: 25px;\n            font-weight: 600;\n            box-shadow: 0 2px 10px rgba(0,0,0,0.2);\n        }\n        \n        .container {\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: 2rem;\n            display: grid;\n            grid-template-columns: 1fr 350px;\n            gap: 2rem;\n        }\n        \n        .main-content {\n            background: white;\n            padding: 2.5rem;\n            border-radius: 12px;\n            box-shadow: 0 2px 20px rgba(0,0,0,0.1);\n        }\n        \n        .quick-info {\n            background: white;\n            padding: 1.5rem;\n            border-radius: 12px;\n            box-shadow: 0 2px 20px rgba(0,0,0,0.1);\n            position: sticky;\n            top: 2rem;\n            height: fit-content;\n        }\n        \n        .quick-info h3 {\n            margin-bottom: 1rem;\n            color: #b5823d;\n            border-bottom: 2px solid #b5823d;\n            padding-bottom: 0.5rem;\n        }\n        \n        .dietary-tags {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 0.5rem;\n            margin: 1rem 0;\n        }\n        \n        .tag {\n            background: #f0e6d2;\n            padding: 0.4rem 0.8rem;\n            border-radius: 15px;\n            font-size: 0.85rem;\n        }\n        \n        .section {\n            margin: 2rem 0;\n        }\n        \n        .section h2 {\n            color: #b5823d;\n            margin-bottom: 1rem;\n            font-size: 1.8rem;\n            border-left: 4px solid #b5823d;\n            padding-left: 1rem;\n        }\n        \n        .ingredients-list {\n            list-style: none;\n        }\n        \n        .ingredients-list li {\n            padding: 0.75rem;\n            border-bottom: 1px solid #eee;\n            display: flex;\n            align-items: center;\n            transition: background 0.3s;\n        }\n        \n        .ingredients-list li:hover {\n            background: #f9f9f9;\n        }\n        \n        .ingredients-list input[type=\"checkbox\"] {\n            margin-right: 1rem;\n            width: 20px;\n            height: 20px;\n            cursor: pointer;\n        }\n        \n        .ingredients-list li input:checked + span {\n            text-decoration: line-through;\n            color: #999;\n        }\n        \n        .unit-toggle {\n            background: #b5823d;\n            color: white;\n            border: none;\n            padding: 0.5rem 1rem;\n            border-radius: 5px;\n            cursor: pointer;\n            margin-bottom: 1rem;\n            font-weight: 600;\n        }\n        \n        .unit-toggle:hover {\n            background: #a0722f;\n        }\n        \n        .steps {\n            counter-reset: step-counter;\n        }\n        \n        .step {\n            margin: 1.5rem 0;\n            padding: 1.5rem;\n            background: #f9f9f9;\n            border-radius: 8px;\n            border-left: 4px solid #b5823d;\n            position: relative;\n            padding-left: 4rem;\n        }\n        \n        .step::before {\n            counter-increment: step-counter;\n            content: counter(step-counter);\n            position: absolute;\n            left: 1rem;\n            top: 1.5rem;\n            background: #b5823d;\n            color: white;\n            width: 35px;\n            height: 35px;\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-weight: bold;\n        }\n        \n        .tip {\n            background: #fff8e1;\n            padding: 0.75rem;\n            margin-top: 0.75rem;\n            border-radius: 5px;\n            font-size: 0.9rem;\n            border-left: 3px solid #ffc107;\n        }\n        \n        .tip::before {\n            content: \"\ud83d\udca1 Tip: \";\n            font-weight: bold;\n            color: #f57c00;\n        }\n        \n        .chef-tip {\n            background: #e8f5e9;\n            padding: 1.5rem;\n            border-radius: 8px;\n            border-left: 4px solid #4caf50;\n            margin: 2rem 0;\n        }\n        \n        .chef-tip h3 {\n            color: #2e7d32;\n            margin-bottom: 0.5rem;\n        }\n        \n        .nutrition-table {\n            width: 100%;\n            border-collapse: collapse;\n            margin: 1rem 0;\n        }\n        \n        .nutrition-table th,\n        .nutrition-table td {\n            padding: 0.75rem;\n            text-align: left;\n            border-bottom: 1px solid #ddd;\n        }\n        \n        .nutrition-table th {\n            background: #f5f5f5;\n            font-weight: 600;\n            color: #b5823d;\n        }\n        \n        .nutrition-table tr:hover {\n            background: #f9f9f9;\n        }\n        \n        .tabs {\n            display: flex;\n            gap: 0.5rem;\n            margin-bottom: 1rem;\n            border-bottom: 2px solid #eee;\n        }\n        \n        .tab {\n            padding: 0.75rem 1.5rem;\n            background: none;\n            border: none;\n            cursor: pointer;\n            font-size: 1rem;\n            color: #666;\n            border-bottom: 3px solid transparent;\n            transition: all 0.3s;\n        }\n        \n        .tab:hover {\n            color: #b5823d;\n        }\n        \n        .tab.active {\n            color: #b5823d;\n            border-bottom-color: #b5823d;\n            font-weight: 600;\n        }\n        \n        .tab-content {\n            display: none;\n            padding: 1rem;\n            background: #f9f9f9;\n            border-radius: 8px;\n        }\n        \n        .tab-content.active {\n            display: block;\n        }\n        \n        .tools {\n            display: flex;\n            gap: 1rem;\n            margin: 2rem 0;\n            flex-wrap: wrap;\n        }\n        \n        .tool-button {\n            background: #b5823d;\n            color: white;\n            border: none;\n            padding: 0.75rem 1.5rem;\n            border-radius: 5px;\n            cursor: pointer;\n            font-size: 1rem;\n            font-weight: 600;\n            transition: background 0.3s;\n        }\n        \n        .tool-button:hover {\n            background: #a0722f;\n        }\n        \n        .serving-adjuster {\n            display: flex;\n            align-items: center;\n            gap: 1rem;\n            background: #f5f5f5;\n            padding: 1rem;\n            border-radius: 8px;\n        }\n        \n        .serving-adjuster button {\n            background: #b5823d;\n            color: white;\n            border: none;\n            width: 35px;\n            height: 35px;\n            border-radius: 50%;\n            cursor: pointer;\n            font-size: 1.2rem;\n            font-weight: bold;\n        }\n        \n        .serving-adjuster button:hover {\n            background: #a0722f;\n        }\n        \n        .serving-count {\n            font-size: 1.5rem;\n            font-weight: bold;\n            color: #b5823d;\n            min-width: 30px;\n            text-align: center;\n        }\n        \n        .progress-bar {\n            height: 8px;\n            background: #eee;\n            border-radius: 10px;\n            margin: 2rem 0;\n            overflow: hidden;\n        }\n        \n        .progress-fill {\n            height: 100%;\n            background: linear-gradient(90deg, #b5823d, #d4a574);\n            width: 0%;\n            transition: width 0.3s;\n            border-radius: 10px;\n        }\n        \n        .related-recipes {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n            gap: 1rem;\n            margin: 1rem 0;\n        }\n        \n        .recipe-card {\n            background: #f9f9f9;\n            padding: 1rem;\n            border-radius: 8px;\n            text-align: center;\n            cursor: pointer;\n            transition: transform 0.3s;\n        }\n        \n        .recipe-card:hover {\n            transform: translateY(-5px);\n            box-shadow: 0 5px 15px rgba(0,0,0,0.1);\n        }\n        \n        @media (max-width: 968px) {\n            .container {\n                grid-template-columns: 1fr;\n            }\n            \n            .quick-info {\n                position: relative;\n                top: 0;\n            }\n            \n            .hero-content h1 {\n                font-size: 2rem;\n            }\n        }\n        \n        @media print {\n            .tools, .tab, .unit-toggle, .quick-info {\n                display: none;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"hero\">\n        <div class=\"hero-content\">\n            <h1>\ud83c\udf5e Classic Homemade Bread<\/h1>\n            <div class=\"badges\">\n                <span class=\"badge\">\u23f1\ufe0f Prep: 20 min<\/span>\n                <span class=\"badge\">\ud83d\udd25 Cook: 35 min<\/span>\n                <span class=\"badge\">\u23f3 Rise: 2 hrs<\/span>\n                <span class=\"badge\">\ud83d\udc68\u200d\ud83c\udf73 Medium<\/span>\n                <span class=\"badge\">\ud83c\udf7d\ufe0f 1 Loaf (12 slices)<\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n    <div class=\"container\">\n        <div class=\"main-content\">\n            <div class=\"tools\">\n                <div class=\"serving-adjuster\">\n                    <span>Servings:<\/span>\n                    <button onclick=\"adjustServings(-1)\">&#8211;<\/button>\n                    <span class=\"serving-count\" id=\"servingCount\">1<\/span>\n                    <button onclick=\"adjustServings(1)\">+<\/button>\n                    <span>(loaves)<\/span>\n                <\/div>\n                <button class=\"tool-button\" onclick=\"addToShoppingList()\">\ud83d\udccb Add to Shopping List<\/button>\n                <button class=\"tool-button\" onclick=\"window.print()\">\ud83d\udda8\ufe0f Print Recipe<\/button>\n            <\/div>\n            \n            <div class=\"progress-bar\">\n                <div class=\"progress-fill\" id=\"progressBar\"><\/div>\n            <\/div>\n            \n            <section class=\"section\">\n                <h2>Ingredients<\/h2>\n                <button class=\"unit-toggle\" onclick=\"toggleUnits()\">Switch to Metric<\/button>\n                <ul class=\"ingredients-list\" id=\"ingredientsList\">\n                    <li>\n                        <input type=\"checkbox\" onchange=\"updateProgress()\">\n                        <span><span class=\"amount\" data-original=\"3.5\">3.5<\/span> <span class=\"unit\" data-metric=\"525g\">cups<\/span> all-purpose flour<\/span>\n                    <\/li>\n                    <li>\n                        <input type=\"checkbox\" onchange=\"updateProgress()\">\n                        <span><span class=\"amount\" data-original=\"2.25\">2.25<\/span> <span class=\"unit\" data-metric=\"g\">tsp<\/span> active dry yeast (1 packet)<\/span>\n                    <\/li>\n                    <li>\n                        <input type=\"checkbox\" onchange=\"updateProgress()\">\n                        <span><span class=\"amount\" data-original=\"2\">2<\/span> <span class=\"unit\" data-metric=\"g\">tbsp<\/span> sugar<\/span>\n                    <\/li>\n                    <li>\n                        <input type=\"checkbox\" onchange=\"updateProgress()\">\n                        <span><span class=\"amount\" data-original=\"2\">2<\/span> <span class=\"unit\" data-metric=\"g\">tsp<\/span> salt<\/span>\n                    <\/li>\n                    <li>\n                        <input type=\"checkbox\" onchange=\"updateProgress()\">\n                        <span><span class=\"amount\" data-original=\"1.25\">1.25<\/span> <span class=\"unit\" data-metric=\"300ml\">cups<\/span> warm water (110\u00b0F\/43\u00b0C)<\/span>\n                    <\/li>\n                    <li>\n                        <input type=\"checkbox\" onchange=\"updateProgress()\">\n                        <span><span class=\"amount\" data-original=\"2\">2<\/span> <span class=\"unit\" data-metric=\"g\">tbsp<\/span> butter, softened<\/span>\n                    <\/li>\n                <\/ul>\n            <\/section>\n            \n            <section class=\"section\">\n                <h2>Instructions<\/h2>\n                <div class=\"steps\">\n                    <div class=\"step\">\n                        <strong>Activate the Yeast<\/strong><br>\n                        In a large bowl, combine warm water, sugar, and yeast. Let it sit for 5-10 minutes until foamy and bubbly.\n                        <div class=\"tip\">The water should feel warm to the touch, like a comfortable bath. Too hot will kill the yeast!<\/div>\n                    <\/div>\n                    \n                    <div class=\"step\">\n                        <strong>Mix the Dough<\/strong><br>\n                        Add flour, salt, and softened butter to the yeast mixture. Stir with a wooden spoon until a shaggy dough forms.\n                        <div class=\"tip\">Don&#8217;t worry if it looks messy at this stage. It will come together during kneading.<\/div>\n                    <\/div>\n                    \n                    <div class=\"step\">\n                        <strong>Knead the Dough<\/strong><br>\n                        Turn the dough onto a floured surface and knead for 8-10 minutes until smooth and elastic. The dough should bounce back when poked.\n                        <div class=\"tip\">Use the heel of your hand to push the dough away, then fold it back. Rotate and repeat!<\/div>\n                    <\/div>\n                    \n                    <div class=\"step\">\n                        <strong>First Rise<\/strong><br>\n                        Place the dough in a greased bowl, cover with a damp towel, and let rise in a warm place for 1-1.5 hours until doubled in size.\n                        <div class=\"tip\">Preheat your oven to 200\u00b0F, turn it off, then place the bowl inside for the perfect rising environment.<\/div>\n                    <\/div>\n                    \n                    <div class=\"step\">\n                        <strong>Shape the Loaf<\/strong><br>\n                        Punch down the dough to release air bubbles. Shape into a loaf and place in a greased 9&#215;5 inch loaf pan.\n                    <\/div>\n                    \n                    <div class=\"step\">\n                        <strong>Second Rise<\/strong><br>\n                        Cover and let rise for another 30-45 minutes until the dough rises about 1 inch above the pan rim.\n                    <\/div>\n                    \n                    <div class=\"step\">\n                        <strong>Bake<\/strong><br>\n                        Preheat oven to 375\u00b0F (190\u00b0C). Bake for 30-35 minutes until golden brown and the loaf sounds hollow when tapped.\n                        <div class=\"tip\">For a softer crust, brush the top with melted butter immediately after removing from oven.<\/div>\n                    <\/div>\n                    \n                    <div class=\"step\">\n                        <strong>Cool and Enjoy<\/strong><br>\n                        Remove from pan and cool on a wire rack for at least 15 minutes before slicing. Enjoy your homemade bread!\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <div class=\"chef-tip\">\n                <h3>\ud83d\udc68\u200d\ud83c\udf73 Chef&#8217;s Pro Tip<\/h3>\n                <p>For an extra crispy crust, place a shallow pan of water on the bottom rack of your oven while baking. The steam creates a beautiful artisan-style crust. Also, resist the urge to slice the bread while it&#8217;s still hot\u2014letting it cool allows the interior structure to set properly!<\/p>\n            <\/div>\n            \n            <section class=\"section\">\n                <h2>Nutrition Facts (per slice)<\/h2>\n                <table class=\"nutrition-table\">\n                    <tr>\n                        <th>Nutrient<\/th>\n                        <th>Amount<\/th>\n                        <th>% Daily Value<\/th>\n                    <\/tr>\n                    <tr>\n                        <td>Calories<\/td>\n                        <td>150<\/td>\n                        <td>8%<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Protein<\/td>\n                        <td>4g<\/td>\n                        <td>8%<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Carbohydrates<\/td>\n                        <td>28g<\/td>\n                        <td>9%<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Fat<\/td>\n                        <td>2g<\/td>\n                        <td>3%<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Fiber<\/td>\n                        <td>1g<\/td>\n                        <td>4%<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Sodium<\/td>\n                        <td>390mg<\/td>\n                        <td>17%<\/td>\n                    <\/tr>\n                <\/table>\n            <\/section>\n            \n            <section class=\"section\">\n                <h2>Recipe Variations<\/h2>\n                <div class=\"tabs\">\n                    <button class=\"tab active\" onclick=\"showTab(0)\">Whole Wheat<\/button>\n                    <button class=\"tab\" onclick=\"showTab(1)\">Gluten-Free<\/button>\n                    <button class=\"tab\" onclick=\"showTab(2)\">Herb &#038; Garlic<\/button>\n                <\/div>\n                <div class=\"tab-content active\" id=\"tab0\">\n                    <strong>Whole Wheat Version:<\/strong>\n                    <p>Replace 2 cups of all-purpose flour with whole wheat flour. Add 2 tbsp honey and increase water by 2 tbsp. The bread will be denser and more nutritious with a nuttier flavor.<\/p>\n                <\/div>\n                <div class=\"tab-content\" id=\"tab1\">\n                    <strong>\ud83c\udf3e Gluten-Free Version:<\/strong>\n                    <p>Use a 1:1 gluten-free flour blend with xanthan gum. Add 1 tsp apple cider vinegar to help with texture. The rise time may be slightly shorter. Texture will be more delicate.<\/p>\n                <\/div>\n                <div class=\"tab-content\" id=\"tab2\">\n                    <strong>Herb &#038; Garlic Version:<\/strong>\n                    <p>Add 2 tbsp dried Italian herbs, 2 tsp garlic powder, and 2 tbsp grated Parmesan cheese to the dough. Perfect for serving with pasta dishes or as garlic toast!<\/p>\n                <\/div>\n            <\/section>\n            \n            <section class=\"section\">\n                <h2>Storage &#038; Leftovers<\/h2>\n                <p><strong>Room Temperature:<\/strong> Store in an airtight bag or container for up to 3 days.<\/p>\n                <p><strong>Refrigerator:<\/strong> Not recommended, as it dries out the bread faster.<\/p>\n                <p><strong>Freezer:<\/strong> Wrap tightly in plastic wrap, then aluminum foil. Freeze for up to 3 months. Thaw at room temperature.<\/p>\n                <p><strong>Revive Stale Bread:<\/strong> Sprinkle with water and warm in a 300\u00b0F oven for 5-10 minutes.<\/p>\n            <\/section>\n            \n            <section class=\"section\">\n                <h2>Related Recipes<\/h2>\n                <div class=\"related-recipes\">\n                    <div class=\"recipe-card\">\n                        <h4>\ud83e\udd56 French Baguette<\/h4>\n                        <p>Crispy crust, airy inside<\/p>\n                    <\/div>\n                    <div class=\"recipe-card\">\n                        <h4>\ud83e\udd50 Butter Rolls<\/h4>\n                        <p>Soft and buttery<\/p>\n                    <\/div>\n                    <div class=\"recipe-card\">\n                        <h4>\ud83c\udf55 Pizza Dough<\/h4>\n                        <p>Perfect for homemade pizza<\/p>\n                    <\/div>\n                <\/div>\n            <\/section>\n            \n            <section class=\"section\">\n                <h2>Perfect Pairings<\/h2>\n                <p>\ud83c\udf77 <strong>Beverage:<\/strong> This bread pairs beautifully with a full-bodied red wine, fresh apple cider, or a warm cup of soup.<\/p>\n                <p>\ud83e\uddc8 <strong>Toppings:<\/strong> Try with homemade butter, olive oil &#038; balsamic, avocado toast, or your favorite jam!<\/p>\n            <\/section>\n        <\/div>\n        \n        <aside class=\"quick-info\">\n            <h3>Quick Info<\/h3>\n            <div style=\"margin: 1rem 0;\">\n                <strong>\ud83d\udcca Per Serving:<\/strong><br>\n                150 calories\n            <\/div>\n            \n            <div class=\"dietary-tags\">\n                <span class=\"tag\">\ud83e\udd5a Vegetarian<\/span>\n                <span class=\"tag\">\ud83e\udd5b Contains Dairy<\/span>\n            <\/div>\n            \n            <h4 style=\"margin-top: 1.5rem; margin-bottom: 0.5rem;\">Equipment Needed:<\/h4>\n            <ul style=\"padding-left: 1.5rem; line-height: 2;\">\n                <li>Large mixing bowl<\/li>\n                <li>Wooden spoon<\/li>\n                <li>9&#215;5 inch loaf pan<\/li>\n                <li>Kitchen towel<\/li>\n                <li>Wire cooling rack<\/li>\n                <li>Measuring cups &#038; spoons<\/li>\n            <\/ul>\n            \n            <h4 style=\"margin-top: 1.5rem; margin-bottom: 0.5rem;\">Difficulty Breakdown:<\/h4>\n            <div style=\"background: #f5f5f5; padding: 1rem; border-radius: 8px; margin-top: 0.5rem;\">\n                <div style=\"margin-bottom: 0.5rem;\">\n                    <strong>Technique:<\/strong> \u2b50\u2b50\u2b50\u2606\u2606\n                <\/div>\n                <div style=\"margin-bottom: 0.5rem;\">\n                    <strong>Time:<\/strong> \u2b50\u2b50\u2b50\u2b50\u2606\n                <\/div>\n                <div>\n                    <strong>Ingredients:<\/strong> \u2b50\u2b50\u2606\u2606\u2606\n                <\/div>\n            <\/div>\n        <\/aside>\n    <\/div>\n    \n    <script>\n        let isMetric = false;\n        let currentServings = 1;\n        const baseServings = 1;\n        \n        function toggleUnits() {\n            isMetric = !isMetric;\n            const button = document.querySelector('.unit-toggle');\n            button.textContent = isMetric ? 'Switch to US' : 'Switch to Metric';\n            \n            const units = document.querySelectorAll('.unit');\n            units.forEach(unit => {\n                if (isMetric && unit.dataset.metric) {\n                    unit.textContent = unit.dataset.metric;\n                } else {\n                    unit.textContent = unit.getAttribute('data-metric') ? unit.textContent.replace(unit.dataset.metric, unit.parentElement.textContent.includes('cups') ? 'cups' : unit.parentElement.textContent.includes('tsp') ? 'tsp' : 'tbsp') : unit.textContent;\n                }\n            });\n        }\n        \n        function adjustServings(change) {\n            currentServings = Math.max(1, currentServings + change);\n            document.getElementById('servingCount').textContent = currentServings;\n            \n            const amounts = document.querySelectorAll('.amount');\n            amounts.forEach(amount => {\n                const original = parseFloat(amount.dataset.original);\n                const newAmount = (original * currentServings \/ baseServings).toFixed(2);\n                amount.textContent = newAmount % 1 === 0 ? parseInt(newAmount) : newAmount;\n            });\n        }\n        \n        function updateProgress() {\n            const checkboxes = document.querySelectorAll('#ingredientsList input[type=\"checkbox\"]');\n            const checked = document.querySelectorAll('#ingredientsList input[type=\"checkbox\"]:checked').length;\n            const progress = (checked \/ checkboxes.length) * 100;\n            document.getElementById('progressBar').style.width = progress + '%';\n        }\n        \n        function addToShoppingList() {\n            const ingredients = [];\n            document.querySelectorAll('#ingredientsList span span').forEach(item => {\n                if (item.parentElement.tagName === 'SPAN') {\n                    ingredients.push(item.parentElement.textContent.trim());\n                }\n            });\n            \n            alert('Shopping List:\\n\\n' + ingredients.join('\\n') + '\\n\\nCopy this list to your notes app!');\n        }\n        \n        function showTab(index) {\n            document.querySelectorAll('.tab').forEach((tab, i) => {\n                tab.classList.toggle('active', i === index);\n            });\n            document.querySelectorAll('.tab-content').forEach((content, i) => {\n                content.classList.toggle('active', i === index);\n            });\n        }\n    <\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>Classic Homemade Bread \ud83c\udf5e Classic Homemade Bread \u23f1\ufe0f Prep: 20 min \ud83d\udd25 Cook: 35 min \u23f3 Rise: 2 hrs \ud83d\udc68\u200d\ud83c\udf73 Medium \ud83c\udf7d\ufe0f 1 Loaf (12 slices) Servings: &#8211; 1 + (loaves) \ud83d\udccb Add to Shopping List \ud83d\udda8\ufe0f Print Recipe Ingredients Switch to Metric 3.5 cups all-purpose flour 2.25 tsp active dry yeast (1 packet) 2 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1211","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/posts\/1211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/comments?post=1211"}],"version-history":[{"count":1,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/posts\/1211\/revisions"}],"predecessor-version":[{"id":1212,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/posts\/1211\/revisions\/1212"}],"wp:attachment":[{"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/media?parent=1211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/categories?post=1211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/brianbaker.net\/blog\/wp-json\/wp\/v2\/tags?post=1211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}