Polish mobile glass navigation and signal icons
This commit is contained in:
+72
-39
@@ -540,6 +540,11 @@ body.page-dashboard .content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-bottom: 0;
|
||||
border: 1px solid rgba(143, 191, 255, 0.22);
|
||||
background:
|
||||
linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.025)),
|
||||
rgba(6, 17, 30, 0.18);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 18px 54px rgba(0, 0, 0, 0.14);
|
||||
touch-action: pan-y;
|
||||
transform: translate3d(var(--day-slider-offset, 0), 0, 0) scale(var(--day-slider-scale, 1));
|
||||
transition: transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
||||
@@ -4722,32 +4727,33 @@ input[type="range"] {
|
||||
|
||||
.ios-tabbar {
|
||||
position: fixed;
|
||||
left: 0.75rem;
|
||||
right: 0.75rem;
|
||||
bottom: max(0.65rem, env(safe-area-inset-bottom));
|
||||
left: 0.65rem;
|
||||
right: 0.65rem;
|
||||
bottom: max(0.55rem, env(safe-area-inset-bottom));
|
||||
z-index: 120;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||
gap: 0.25rem;
|
||||
min-height: 4.8rem;
|
||||
padding: 0.48rem;
|
||||
border: 1px solid rgba(255, 255, 255, 0.28);
|
||||
border-radius: 2rem;
|
||||
gap: 0.18rem;
|
||||
min-height: 5rem;
|
||||
padding: 0.42rem;
|
||||
border: 1px solid rgba(255, 255, 255, 0.34);
|
||||
border-radius: 2.15rem;
|
||||
background:
|
||||
linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.08)),
|
||||
rgba(16, 25, 38, 0.58);
|
||||
box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.22);
|
||||
backdrop-filter: blur(32px) saturate(1.6);
|
||||
-webkit-backdrop-filter: blur(32px) saturate(1.6);
|
||||
radial-gradient(circle at 18% 0%, rgba(255, 255, 255, 0.34), transparent 38%),
|
||||
linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.07)),
|
||||
rgba(13, 22, 35, 0.5);
|
||||
box-shadow: 0 26px 80px rgba(0, 0, 0, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.28), inset 0 -1px 0 rgba(255, 255, 255, 0.08);
|
||||
backdrop-filter: blur(38px) saturate(1.8) contrast(1.06);
|
||||
-webkit-backdrop-filter: blur(38px) saturate(1.8) contrast(1.06);
|
||||
}
|
||||
|
||||
.ios-tabbar a {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
align-content: center;
|
||||
gap: 0.24rem;
|
||||
gap: 0.22rem;
|
||||
min-height: 3.55rem;
|
||||
border-radius: 1.35rem;
|
||||
border-radius: 1.45rem;
|
||||
color: rgba(239, 247, 255, 0.68);
|
||||
font-size: 0.72rem;
|
||||
font-weight: 650;
|
||||
@@ -4756,24 +4762,34 @@ input[type="range"] {
|
||||
}
|
||||
|
||||
.ios-tabbar a.active {
|
||||
background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.1));
|
||||
background:
|
||||
radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.3), transparent 52%),
|
||||
linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.08));
|
||||
color: #fff;
|
||||
transform: translateY(-1px);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), 0 8px 24px rgba(0, 0, 0, 0.16);
|
||||
}
|
||||
|
||||
.ios-tabbar__icon {
|
||||
width: 1.35rem;
|
||||
height: 1.35rem;
|
||||
border-radius: 0.45rem;
|
||||
border: 2px solid currentColor;
|
||||
opacity: 0.9;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 1.48rem;
|
||||
height: 1.48rem;
|
||||
border-radius: 0.72rem;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
opacity: 0.96;
|
||||
}
|
||||
|
||||
.ios-tabbar a:nth-child(1) .ios-tabbar__icon { border-radius: 50%; }
|
||||
.ios-tabbar a:nth-child(2) .ios-tabbar__icon { border-radius: 0.35rem; box-shadow: inset 0 -0.35rem 0 currentColor; }
|
||||
.ios-tabbar a:nth-child(3) .ios-tabbar__icon { border-radius: 0.3rem; box-shadow: inset 0 0 0 0.22rem rgba(255, 255, 255, 0.18); }
|
||||
.ios-tabbar a:nth-child(4) .ios-tabbar__icon { border-radius: 50%; box-shadow: inset 0 0 0 0.28rem currentColor; }
|
||||
.ios-tabbar__icon img {
|
||||
width: 1.04rem;
|
||||
height: 1.04rem;
|
||||
filter: brightness(0) invert(1);
|
||||
opacity: 0.92;
|
||||
}
|
||||
|
||||
.ios-tabbar a.active .ios-tabbar__icon {
|
||||
background: rgba(255, 255, 255, 0.18);
|
||||
}
|
||||
|
||||
body.is-authenticated .content,
|
||||
body.page-dashboard.is-authenticated .content,
|
||||
@@ -4813,6 +4829,8 @@ input[type="range"] {
|
||||
}
|
||||
|
||||
.timeline-card__body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
@@ -4848,28 +4866,32 @@ input[type="range"] {
|
||||
position: static;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
margin-top: 1rem;
|
||||
order: -1;
|
||||
gap: 0.45rem;
|
||||
margin: 0 0 0.85rem;
|
||||
}
|
||||
|
||||
.timeline-card .signal-pill {
|
||||
width: auto;
|
||||
min-width: 0;
|
||||
height: auto;
|
||||
width: 2.55rem;
|
||||
min-width: 2.55rem;
|
||||
height: 2.55rem;
|
||||
min-height: 2.55rem;
|
||||
padding: 0.42rem 0.72rem;
|
||||
padding: 0;
|
||||
justify-content: center;
|
||||
border-radius: 999px;
|
||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.26);
|
||||
}
|
||||
|
||||
.timeline-card .signal-pill strong,
|
||||
.timeline-card .signal-pill span {
|
||||
display: inline;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.timeline-card .signal-pill__icon {
|
||||
display: block;
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
width: 1.12rem;
|
||||
height: 1.12rem;
|
||||
filter: brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0, 0, 0, 0.55));
|
||||
}
|
||||
|
||||
.timeline-card__time-chip {
|
||||
@@ -4929,9 +4951,10 @@ input[type="range"] {
|
||||
.ios-tabbar {
|
||||
border-color: rgba(120, 146, 172, 0.22);
|
||||
background:
|
||||
linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.56)),
|
||||
rgba(248, 251, 255, 0.7);
|
||||
box-shadow: 0 24px 64px rgba(78, 105, 130, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.8);
|
||||
radial-gradient(circle at 18% 0%, rgba(255, 255, 255, 0.95), transparent 42%),
|
||||
linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.48)),
|
||||
rgba(248, 251, 255, 0.68);
|
||||
box-shadow: 0 24px 64px rgba(78, 105, 130, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.86);
|
||||
}
|
||||
|
||||
.ios-tabbar a {
|
||||
@@ -4939,10 +4962,20 @@ input[type="range"] {
|
||||
}
|
||||
|
||||
.ios-tabbar a.active {
|
||||
background: rgba(20, 148, 222, 0.12);
|
||||
background:
|
||||
radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.92), transparent 55%),
|
||||
rgba(20, 148, 222, 0.12);
|
||||
color: #12304b;
|
||||
}
|
||||
|
||||
.ios-tabbar__icon {
|
||||
background: rgba(18, 48, 75, 0.06);
|
||||
}
|
||||
|
||||
.ios-tabbar__icon img {
|
||||
filter: none;
|
||||
}
|
||||
|
||||
.sleep-phase-legend__item {
|
||||
color: rgba(18, 48, 75, 0.9);
|
||||
}
|
||||
|
||||
@@ -128,19 +128,19 @@ $jsVersion = is_file(base_path('assets/js/app.js')) ? (string) filemtime(base_pa
|
||||
<?php if ($authUser !== null): ?>
|
||||
<nav class="ios-tabbar" aria-label="Mobile Navigation">
|
||||
<a class="<?= $page === 'dashboard' && ($dashboardView ?? 'day') === 'day' ? 'active' : '' ?>" href="/?view=day&date=<?= e(rawurlencode(today())) ?>">
|
||||
<span class="ios-tabbar__icon" aria-hidden="true"></span>
|
||||
<span class="ios-tabbar__icon" aria-hidden="true"><img src="<?= e(icon_path('dashboard')) ?>" alt=""></span>
|
||||
<span>Heute</span>
|
||||
</a>
|
||||
<a class="<?= $page === 'dashboard' && ($dashboardView ?? '') === 'week' ? 'active' : '' ?>" href="/?view=week&date=<?= e(rawurlencode(today())) ?>">
|
||||
<span class="ios-tabbar__icon" aria-hidden="true"></span>
|
||||
<span class="ios-tabbar__icon" aria-hidden="true"><img src="<?= e(icon_path('archive')) ?>" alt=""></span>
|
||||
<span>Woche</span>
|
||||
</a>
|
||||
<a class="<?= $page === 'dashboard' && ($dashboardView ?? '') === 'month' ? 'active' : '' ?>" href="/?view=month&date=<?= e(rawurlencode(today())) ?>">
|
||||
<span class="ios-tabbar__icon" aria-hidden="true"></span>
|
||||
<span class="ios-tabbar__icon" aria-hidden="true"><img src="<?= e(icon_path('track')) ?>" alt=""></span>
|
||||
<span>Monat</span>
|
||||
</a>
|
||||
<a class="<?= $page === 'options' ? 'active' : '' ?>" href="/options">
|
||||
<span class="ios-tabbar__icon" aria-hidden="true"></span>
|
||||
<span class="ios-tabbar__icon" aria-hidden="true"><img src="<?= e(icon_path('options')) ?>" alt=""></span>
|
||||
<span>Optionen</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
Reference in New Issue
Block a user