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