From a4ccf5993e9f8bcb7bab29cddb78efbf72154950 Mon Sep 17 00:00:00 2001 From: kobold-ai Date: Sun, 25 Oct 2026 17:52:06 +0100 Subject: [PATCH] Replace Kochmodus slider with direct toggle button in recipe header & fix Apple keep-awake --- app/static/cookbook.css | 270 ++++++++++++++------------ app/static/media/cookmode_nosleep.mp4 | Bin 0 -> 3753 bytes app/templates/recipe_detail.html | 220 ++++++++++++--------- 3 files changed, 277 insertions(+), 213 deletions(-) create mode 100644 app/static/media/cookmode_nosleep.mp4 diff --git a/app/static/cookbook.css b/app/static/cookbook.css index d6566d0..ecbc44c 100755 --- a/app/static/cookbook.css +++ b/app/static/cookbook.css @@ -2342,48 +2342,160 @@ body.cook-mode-on .recipe-page { transition: border 0.25s ease, box-shadow 0.25s ease; } -body.cook-mode-on .recipe-page::before { - content: "👨‍🍳 Kochmodus aktiv 💡"; +/* Kochmodus Toggle Button oben rechts im Rezept */ +.cookmode-toggle-btn { position: absolute; top: 14px; right: 18px; - background: var(--tannengruen); - color: var(--creme); - font-family: var(--font-hand); - font-size: 1.15rem; - font-weight: 700; - padding: 3px 14px; + display: inline-flex; + align-items: center; + gap: 7px; + padding: 5px 14px; border-radius: 20px; - border: 2px solid var(--creme); - box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25); - z-index: 15; - pointer-events: none; - animation: cookmode-badge-pop 0.3s cubic-bezier(0.16, 1, 0.3, 1); + background: rgba(255, 255, 255, 0.95); + border: 1.5px solid rgba(30, 77, 59, 0.35); + color: var(--tannengruen); + font-family: var(--font-hand); + font-size: 1.05rem; + font-weight: 700; + cursor: pointer; + z-index: 25; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); + transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); + user-select: none; + -webkit-tap-highlight-color: transparent; + line-height: 1; } -@keyframes cookmode-badge-pop { - 0% { transform: scale(0.85); opacity: 0; } - 100% { transform: scale(1); opacity: 1; } +.cookmode-toggle-btn:hover { + background: #FFFFFF; + border-color: var(--tannengruen); + transform: translateY(-1px); + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12); +} + +.cookmode-toggle-btn:active { + transform: translateY(1px); +} + +.cookmode-btn-icon { + font-size: 1.2rem; + line-height: 1; +} + +.cookmode-btn-title { + font-size: 1.05rem; +} + +.cookmode-btn-badge { + font-size: 0.72rem; + font-weight: 700; + padding: 2px 7px; + border-radius: 10px; + background: rgba(30, 77, 59, 0.08); + color: #555; + text-transform: uppercase; + letter-spacing: 0.5px; + transition: all 0.2s ease; +} + +.cookmode-btn-bulb { + font-size: 1.05rem; + filter: grayscale(100%); + opacity: 0.45; + transition: all 0.25s ease; +} + +/* Active State des Toggle Buttons */ +.cookmode-toggle-btn.is-active, +body.cook-mode-on .cookmode-toggle-btn { + background: var(--tannengruen); + color: var(--creme); + border: 2px solid var(--gold); + box-shadow: 0 4px 14px rgba(30, 77, 59, 0.4), 0 0 10px rgba(212, 160, 23, 0.4); +} + +.cookmode-toggle-btn.is-active .cookmode-btn-badge, +body.cook-mode-on .cookmode-toggle-btn .cookmode-btn-badge { + background: rgba(255, 255, 255, 0.22); + color: var(--creme); +} + +.cookmode-toggle-btn.is-active .cookmode-btn-bulb, +body.cook-mode-on .cookmode-toggle-btn .cookmode-btn-bulb { + filter: grayscale(0%); + opacity: 1; + animation: cookmode-bulb-pulse 1.4s ease-in-out infinite alternate; +} + +@keyframes cookmode-bulb-pulse { + 0% { transform: scale(1); filter: drop-shadow(0 0 1px #FFD700); } + 100% { transform: scale(1.2); filter: drop-shadow(0 0 6px #FFA500); } } @media screen and (max-width: 600px) { - body.cook-mode-on .recipe-page::before { + .cookmode-toggle-btn { top: 10px; right: 10px; - font-size: 0.95rem; - padding: 2px 10px; + font-size: 0.92rem; + padding: 4px 10px; + gap: 5px; } + .cookmode-btn-icon { + font-size: 1.05rem; + } + .cookmode-btn-title { + font-size: 0.95rem; + } +} + +/* Badge Pill für Desktop & Mobile Menü */ +.cb-badge-pill { + font-size: 0.72rem; + font-weight: 700; + padding: 2px 7px; + border-radius: 10px; + background: rgba(0, 0, 0, 0.08); + color: #555; + transition: all 0.2s ease; + white-space: nowrap; +} + +/* Desktop Navigation Button */ +.cb-nav-cookmode-btn { + display: inline-flex; + align-items: center; + gap: 6px; + cursor: pointer; + transition: all 0.2s ease; +} + +.cb-nav-cookmode-btn.is-active, +body.cook-mode-on .cb-nav-cookmode-btn { + background: var(--tannengruen); + color: var(--creme); + border-color: var(--gold); + box-shadow: 0 0 8px rgba(212, 160, 23, 0.4); +} + +.cb-nav-cookmode-btn.is-active .cb-badge-pill, +body.cook-mode-on .cb-nav-cookmode-btn .cb-badge-pill { + background: var(--gold); + color: var(--schwarz); } /* Mobile Kebab Kochmodus Row */ .cb-mobile-cookmode-item { + width: 100%; + border: none; + background: rgba(30, 77, 59, 0.05); + border-bottom: 1.5px solid rgba(0, 0, 0, 0.08); display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 10px 16px !important; - background: rgba(30, 77, 59, 0.05); - border-bottom: 1.5px solid rgba(0, 0, 0, 0.08); cursor: pointer; + text-align: left; user-select: none; transition: background 0.15s ease; } @@ -2393,11 +2505,18 @@ body.cook-mode-on .recipe-page::before { background: rgba(30, 77, 59, 0.12); } +.cb-mobile-cookmode-item.is-active, body.cook-mode-on .cb-mobile-cookmode-item { background: #FFFDF0; border-bottom-color: #d4c165; } +.cb-mobile-cookmode-item.is-active .cb-badge-pill, +body.cook-mode-on .cb-mobile-cookmode-item .cb-badge-pill { + background: var(--tannengruen); + color: var(--creme); +} + .cookmode-item-left { display: flex; align-items: center; @@ -2416,7 +2535,7 @@ body.cook-mode-on .cb-mobile-cookmode-item { .cookmode-text-box .cookmode-title { font-family: var(--font-hand); - font-size: 1.2rem; + font-size: 1.15rem; font-weight: 700; color: var(--tannengruen); line-height: 1.1; @@ -2432,106 +2551,6 @@ body.cook-mode-on .cookmode-text-box .cookmode-status-text { font-weight: 600; } -/* Custom Schieberegler (Slider Switch) */ -.cb-switch { - position: relative; - display: inline-block; - width: 52px; - height: 28px; - flex-shrink: 0; - cursor: pointer; -} - -.cb-switch input { - opacity: 0; - width: 0; - height: 0; - position: absolute; -} - -.cb-slider { - position: absolute; - cursor: pointer; - inset: 0; - background-color: #d0c9be; - transition: .25s ease; - border-radius: 28px; - box-shadow: inset 0 1px 3px rgba(0,0,0,0.2); -} - -.cb-slider:before { - position: absolute; - content: ""; - height: 22px; - width: 22px; - left: 3px; - bottom: 3px; - background-color: white; - transition: .25s ease; - border-radius: 50%; - box-shadow: 0 2px 4px rgba(0,0,0,0.25); -} - -.cb-switch input:checked + .cb-slider { - background-color: var(--tannengruen); -} - -.cb-switch input:checked + .cb-slider:before { - transform: translateX(24px); -} - -.cb-switch:focus-within .cb-slider { - outline: 2px solid var(--tannengruen); - outline-offset: 2px; -} - -.cb-switch-sm { - width: 44px; - height: 24px; -} - -.cb-switch-sm .cb-slider:before { - height: 18px; - width: 18px; - left: 3px; - bottom: 3px; -} - -.cb-switch-sm input:checked + .cb-slider:before { - transform: translateX(20px); -} - -.cookmode-badge { - font-size: 0.8rem; - font-weight: 700; - padding: 3px 9px; - border-radius: 12px; - background: rgba(34, 34, 34, 0.08); - color: #666; - transition: all 0.25s ease; - white-space: nowrap; -} - -body.cook-mode-on .cookmode-badge { - background: var(--tannengruen); - color: #FFFFFF; - box-shadow: 0 0 10px rgba(30, 77, 59, 0.35); -} - -/* Compact switch for desktop nav */ -.cb-nav-cookmode-toggle { - display: inline-flex; - align-items: center; - gap: 8px; - background: rgba(255, 255, 255, 0.15); - padding: 4px 10px; - border-radius: 20px; - border: 1px solid rgba(255, 255, 255, 0.3); - color: var(--creme); - font-size: 0.85rem; - font-weight: 600; -} - /* Interactive ingredient checkoffs */ .ingredients-list li.ingredient-item { cursor: pointer; @@ -2718,11 +2737,10 @@ body.cook-mode-on .cookmode-badge { border: none !important; box-shadow: none !important; } - body.cook-mode-on .recipe-page::before { - display: none !important; - } + .cookmode-toggle-btn, + .cb-nav-cookmode-btn, + .cb-mobile-cookmode-item, .recipe-cookmode-banner, - .cb-nav-cookmode-toggle, .step-done-check, .no-print { display: none !important; diff --git a/app/static/media/cookmode_nosleep.mp4 b/app/static/media/cookmode_nosleep.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..5689d4a3c99916415a367854f05f28fcd4a0b54f GIT binary patch literal 3753 zcmds4UuYaf7@ypqw6<1TO>JvaothLMY%Y6uNty;0uPwC^trgow5bJercP_VN_ja?p zmt5-0i6RC2P%MVo`#$h;31PvIQv-L0a(-RuR#M_?z9k&E!mrAo}2t z-_AF`@0)LCzL{?(M+j*z`V-Ffo*_y|j2ND60U0)?r3oPmi!SGcw63sp=3hw=Vj6`a zV;W7TGW~>XCWmMuL$;ykJFUr?nYX^&dhLU6E)TwUc>N`Mx#Nc)tC_wY+C??nBq5?CsO~^?tB}DQLU5KfZNaR}bAZv;}55*Pz&9I};`^`ZS{`*{+O|7CuV8?+kQz zkB^V1#tfa?CM&0Gceq;&kt+F?2^-t-4ZG|OP>mIsrYh9sMKw!xUNCKKL`@GU0}5qj zW=?oqRjO!L)9Ey|xLV>>>QxGmHc-c#P}Aa@cXc(LQqTz>Y8h3o=Y>bnBk!{EFjv!k zR4ci*#q#KyroPKf)9@hmSNnC%#}u?t3tycxeV<+CY9_rNBNmzG=N)gva9~<@FzV#( zV$tKi+LfVx$wd!O?W3k`kFXLN`39G!o@r>9OM_5o*$u|f42$_<9!A;cuE}5ozF<~d zHj&qC%VEKc5F+1YMj0+(=rUnbbeY9HNaNfXF8L0m5k3L6n(1wbdCMrHNj;61xmNMj z9z~4gG7%M*dnI&owR|*Vp?5V^bBoj}AT(lTXsDTNN};1-KB|)HgXjpyLCvaa-$oFg z&mFagjupo87OT2qRU7*HgLa`(^o)I6%_`UwxDy8OgCH<7U&5A^5ocO7Op}YK7!I}y z#{xTv>9A3p07waH0$zu*W!qy|i)oFObktIbUnL~5fwU0u zH(Ta3KsU8>vzGHoaYEt>?wb)PpY}(BF~LQp?k#>TVj4ozIP;Es3dRS64xL>0JxJ}` z^!&ODc&Pgge8t|dbb~=hExmc|6@`$>W4q4=J-bS}>DGM^@p3g}Q4fiiY><_8+*N4C zcH$x|LTDSa0;lq{JM~c4uH&{9ol%7T){1M=P>$W{`2`d5+n(<=HbmH*sK4hBo0kse z6qY@RT0j(e)R1ZZuAG?x)djCxS~gEDnfZz=A4YvScJ{kOj*#DTWZ+2r+@hCTNV0U{ z`3n@r?Ujn5kCbxP^PM}+y}$9b)t|*Xeg-efO3x4CEo3qHJ@r_(VHsi{L=n6|J2*`c zC=ISrAAoLOs0zNq&+U*F*Rcroe}(;?ui3#Yg7uJxFqdKAS>OopF7Pq%HSjBP@vIKofH_4Y+I6vg+ zY-tg}3?e(r{iU6gb%fj?UlN^In-ltqPv1CS&eRAwpPMgVJiAhshuVp@KASJ`m+JYl z)C=>aVf#07CBCDcE5l8>@}%YTu)3ol7J(ciOGPcFijw7?9vsYgtya4a|2HR4x8;^6 zPhTR7Ps3oz`6QUwvV*OtT11?wbjC$HgS|l|q7%!Z+9jRq)gd25PE0}A3kX@t2uJu^Yf! z5`PhR75EVN9QZyAOQIchH}D96`zV3?GI1C<37i8i0l(n>z#b<%fCqsm0OVovIp8>O z3b+Vd1^y5}4>5M3qWcW>Qx*?uh-9t&_96dW<~ZVcib|IeKCtUf`nI?%*WhQSa3VI3 RJj%w3y}hYyHkDSCKLO>qqxS#+ literal 0 HcmV?d00001 diff --git a/app/templates/recipe_detail.html b/app/templates/recipe_detail.html index c895f1c..90929ba 100755 --- a/app/templates/recipe_detail.html +++ b/app/templates/recipe_detail.html @@ -18,13 +18,11 @@ + +
@@ -534,7 +532,19 @@ - + + + +