diff --git a/index.html b/index.html index a5835cb..d3d0c35 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@ Recipe App - Modular - + @@ -278,20 +278,45 @@ pointer-events: none; } #recipe-search-shell { - min-height: 2.75rem; - border-radius: 1.5rem; - background: #3a3b38 !important; - border: 1px solid rgba(79, 81, 76, 0.95) !important; + min-height: 3rem; + width: min(calc(100% - 0.5rem), 22.4rem); + margin-inline: auto; + position: relative; + z-index: 0; + isolation: isolate; + border-radius: 999px; + background: #393937 !important; + border: 1px solid #41423f !important; box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.045), - 0 0 0 1px rgba(255, 255, 255, 0.015) !important; + 0 5px 10px rgba(0, 0, 0, 0.16), + 0 14px 22px rgba(0, 0, 0, 0.24), + 0 22px 34px rgba(0, 0, 0, 0.18), + inset 0 1px 0 rgba(255, 255, 255, 0.04) !important; + backdrop-filter: blur(24px); + -webkit-backdrop-filter: blur(24px); + } + #recipe-search-shell::after { + content: ''; + position: absolute; + left: 11%; + right: 11%; + bottom: -0.72rem; + height: 1.05rem; + border-radius: 999px; + background: rgba(0, 0, 0, 0.36); + filter: blur(12px); + opacity: 0.9; + z-index: -1; + pointer-events: none; } #recipe-search-shell:focus-within { - background: #3a3b38 !important; - border: 1px solid rgba(92, 94, 88, 0.98) !important; + background: #393937 !important; + border: 1px solid #4a4b47 !important; box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.05), - 0 0 0 1px rgba(255, 255, 255, 0.02) !important; + 0 6px 12px rgba(0, 0, 0, 0.18), + 0 16px 24px rgba(0, 0, 0, 0.24), + 0 24px 36px rgba(0, 0, 0, 0.18), + inset 0 1px 0 rgba(255, 255, 255, 0.05) !important; } #recipe-search-input { appearance: none; @@ -346,6 +371,128 @@ backdrop-filter: blur(10px); } + /* Bottom dock */ + #app-bottom-nav { + position: absolute; + inset-inline: 0; + bottom: 0; + z-index: 30; + display: flex; + justify-content: center; + padding: 0 0.85rem calc(1.12rem + env(safe-area-inset-bottom)); + pointer-events: none; + } + #app-bottom-nav .bottom-dock { + position: relative; + z-index: 0; + isolation: isolate; + width: min(calc(100% - 2rem), 22.4rem); + min-height: 3.7rem; + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + align-items: center; + gap: 0.1rem; + padding: 0.35rem 0.45rem; + border-radius: 999px; + background: #393937; + border: 1px solid #41423f; + box-shadow: + 0 5px 10px rgba(0, 0, 0, 0.16), + 0 14px 22px rgba(0, 0, 0, 0.24), + 0 22px 34px rgba(0, 0, 0, 0.18), + inset 0 1px 0 rgba(255, 255, 255, 0.04); + backdrop-filter: blur(24px); + -webkit-backdrop-filter: blur(24px); + pointer-events: auto; + } + #app-bottom-nav .bottom-dock::after { + content: ''; + position: absolute; + left: 11%; + right: 11%; + bottom: -0.72rem; + height: 1.05rem; + border-radius: 999px; + background: rgba(0, 0, 0, 0.36); + filter: blur(12px); + opacity: 0.9; + z-index: -1; + pointer-events: none; + } + #app-bottom-nav .nav-tab, + #app-bottom-nav .nav-action { + appearance: none; + -webkit-appearance: none; + border: 0; + background: transparent !important; + box-shadow: none !important; + width: 2.55rem; + height: 2.55rem; + margin: 0; + padding: 0; + border-radius: 999px; + display: inline-flex; + align-items: center; + justify-content: center; + justify-self: center; + color: #ece8e0; + cursor: pointer; + transition: + transform 160ms ease, + color 160ms ease, + background-color 160ms ease, + box-shadow 180ms ease; + } + #app-bottom-nav .nav-tab i, + #app-bottom-nav .nav-action i { + font-size: 0.95rem; + line-height: 1; + } + #app-bottom-nav .nav-tab:hover, + #app-bottom-nav .nav-action:hover { + transform: translateY(-1px); + color: #ffffff; + background: rgba(255, 255, 255, 0.04) !important; + } + #app-bottom-nav .nav-tab.is-active { + width: 2.95rem; + height: 2.95rem; + color: #fff; + background: #2d2e2b !important; + box-shadow: + inset 0 1px 0 rgba(255, 255, 255, 0.04), + 0 10px 20px rgba(0, 0, 0, 0.24) !important; + } + #app-bottom-nav .nav-tab:active, + #app-bottom-nav .nav-action:active { + transform: scale(0.97); + } + #app-bottom-nav button:focus-visible { + outline: none; + box-shadow: + 0 0 0 3px rgba(255, 255, 255, 0.08), + 0 0 0 6px rgba(var(--accent-rgb), 0.26) !important; + } + @media (max-width: 380px) { + #app-bottom-nav { + padding-inline: 0.7rem; + } + #app-bottom-nav .bottom-dock { + width: min(calc(100% - 1.4rem), 21.6rem); + min-height: 3.45rem; + padding-inline: 0.35rem; + } + #app-bottom-nav .nav-tab, + #app-bottom-nav .nav-action { + width: 2.35rem; + height: 2.35rem; + } + #app-bottom-nav .nav-tab.is-active { + width: 2.75rem; + height: 2.75rem; + } + } + /* Planner and common interactive surfaces */ #planner-open-ingredients, .planner-pick-recipe, @@ -381,7 +528,7 @@