diff --git a/app/assets/stylesheets/header.css b/app/assets/stylesheets/header.css index d8b5a2a43..3c3a09d12 100644 --- a/app/assets/stylesheets/header.css +++ b/app/assets/stylesheets/header.css @@ -13,7 +13,8 @@ "menu menu menu" "actions-start title actions-end"; max-inline-size: 100dvw; - padding: calc(var(--block-space-half) + env(safe-area-inset-top)) var(--main-padding); + padding-block: calc(var(--block-space-half) + env(safe-area-inset-top) + 44px) var(--block-space-half); + padding-inline: var(--main-padding); /* Change the grid size depending on how many buttons are present */ &:has(.header__actions > *:nth-child(1)) { --header-button-count: 1; } @@ -78,4 +79,16 @@ --left-offset: var(--inline-space); } } + + .header__logo { + color: var(--color-ink); + inline-size: auto; + margin-block-start: 0.1em; + + img { + block-size: auto; + inline-size: 1.15em; + margin-inline-end: 0.8ch; + } + } } diff --git a/app/assets/stylesheets/boxcar-menu.css b/app/assets/stylesheets/nav.css similarity index 73% rename from app/assets/stylesheets/boxcar-menu.css rename to app/assets/stylesheets/nav.css index e60a56bb9..8c50041b2 100644 --- a/app/assets/stylesheets/boxcar-menu.css +++ b/app/assets/stylesheets/nav.css @@ -1,21 +1,17 @@ @layer components { - .boxcar-header-logo { - color: var(--color-ink); - inline-size: auto; - margin-block-start: 0.1em; - - img { - block-size: auto; - inline-size: 1.15em; - margin-inline-end: 0.8ch; - } + .nav { + inset-block-start: calc(var(--block-space-half) + env(safe-area-inset-top)); + inset-inline-start: 50%; + position: fixed; + translate: -50%; } - .input:is(.boxcar-menu-trigger) { - --input-background: var(--color-canvas); + .nav__trigger { + --input-background: color-mix(in srgb, var(--color-canvas) 30%, transparent); --input-border-color: transparent; --input-padding: 0.3em 2em 0.3em 0.75em; + backdrop-filter: blur(20px); font-weight: 600; inline-size: auto; margin-block-start: 0.1em; @@ -58,9 +54,10 @@ } } - .boxcar-menu:is(.panel) { + .nav__menu.popup { --panel-border-color: var(--color-selected-dark); --panel-border-radius: 1.4em; + --panel-padding: var(--block-space) var(--block-space) 0 var(--block-space); --panel-size: 45ch; align-items: stretch; @@ -71,24 +68,15 @@ flex-direction: column; gap: 2px; scrollbar-gutter: stable both-edges; - - /* Safari doesn't position the sticky footer properly during the - * transition, so we need to delay the footer entrance. */ - .popup__footer { - animation: safari-sticky-footer-hack 0s; - animation-delay: var(--dialog-duration); - animation-fill-mode: both; - inset-inline: var(--block-space); - } } - .boxcar-menu__close { + .nav__close { @media (any-hover: hover) { display: none; } } - .boxcar-menu__hotkeys { + .nav__hotkeys { --gap: 8px; align-items: center; @@ -152,4 +140,28 @@ } } } + + /* Safari doesn't position the sticky footer properly during the + * transition, so we need to delay the footer entrance. */ + .nav__footer { + animation: safari-sticky-footer-hack 0s; + animation-delay: var(--dialog-duration); + animation-fill-mode: both; + background-color: var(--color-canvas); + border-block-start: 1px solid var(--color-ink-lighter); + font-size: var(--text-small); + inset: auto 0 0; + inset-inline: var(--block-space); + line-height: 1.6; + margin-block-start: var(--block-space-half); + padding: 1.5ch; + position: sticky; + text-align: center; + z-index: 1; + } + + @keyframes safari-sticky-footer-hack { + 0% { position: absolute; } + 100% { position: sticky; } + } } diff --git a/app/assets/stylesheets/popup.css b/app/assets/stylesheets/popup.css index 825414807..6d799d454 100644 --- a/app/assets/stylesheets/popup.css +++ b/app/assets/stylesheets/popup.css @@ -59,10 +59,6 @@ transform: translateX(0); } - &:has(.popup__footer) { - --panel-padding: var(--block-space) var(--block-space) 0 var(--block-space); - } - form { display: contents; } @@ -195,22 +191,4 @@ --btn-border-color: var(--color-ink); } } - - .popup__footer { - background-color: var(--color-canvas); - border-block-start: 1px solid var(--color-ink-lighter); - font-size: var(--text-small); - inset: auto 0 0; - line-height: 1.6; - margin-block-start: var(--block-space-half); - padding: 1.5ch; - position: sticky; - text-align: center; - z-index: 1; - } - - @keyframes safari-sticky-footer-hack { - 0% { position: absolute; } - 100% { position: sticky; } - } } diff --git a/app/assets/stylesheets/print.css b/app/assets/stylesheets/print.css index df7f8d3a8..890e27ac3 100644 --- a/app/assets/stylesheets/print.css +++ b/app/assets/stylesheets/print.css @@ -35,8 +35,8 @@ print-color-adjust: exact; } - .boxcar-menu, - .boxcar-menu-trigger, + .nav__menu, + .nav__trigger, .header__actions { display: none; } diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 31a162329..5a364182e 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -5,7 +5,7 @@