diff --git a/frontend/src/styles/webapp.css b/frontend/src/styles/webapp.css index 84a8331..68f497a 100644 --- a/frontend/src/styles/webapp.css +++ b/frontend/src/styles/webapp.css @@ -337,6 +337,33 @@ a { cursor: pointer; } +.traffic-card-depleted { + border-color: var(--danger-border); + background: + linear-gradient( + 135deg, + color-mix(in srgb, var(--danger) 16%, var(--surface-sheen-soft)), + var(--surface-sheen-soft) + ), + var(--panel); +} + +.traffic-card-depleted .traffic-top span, +.traffic-card-depleted .traffic-top strong, +.traffic-card-depleted .traffic-meta, +.traffic-card-depleted .traffic-percent { + color: var(--danger-text); +} + +.traffic-card-depleted .progress { + background: color-mix(in srgb, var(--danger) 18%, transparent); +} + +.traffic-card-depleted .progress span { + background: linear-gradient(90deg, var(--danger), color-mix(in srgb, var(--danger) 68%, white)); + box-shadow: 0 0 18px color-mix(in srgb, var(--danger) 40%, transparent); +} + .card-click-target { position: absolute; z-index: 6; diff --git a/frontend/src/webapp/screens/HomeScreen.svelte b/frontend/src/webapp/screens/HomeScreen.svelte index 49a2888..f901ae1 100644 --- a/frontend/src/webapp/screens/HomeScreen.svelte +++ b/frontend/src/webapp/screens/HomeScreen.svelte @@ -51,6 +51,22 @@ function trafficResetLabel(sub) { return trafficResetLabelFn(sub, t); } + function regularTrafficDepleted(sub = subscription) { + const used = Number(sub?.traffic_used_bytes || 0); + const limit = Number(sub?.traffic_limit_bytes || 0); + return limit > 0 && used >= limit; + } + function regularTrafficCardClass(sub = subscription) { + return [ + regularTrafficTopupBarClickable ? "traffic-card-clickable" : "", + regularTrafficDepleted(sub) ? "traffic-card-depleted" : "", + ] + .filter(Boolean) + .join(" "); + } + function regularTrafficMetaLabel(sub = subscription) { + return regularTrafficDepleted(sub) ? t("wa_traffic_depleted") : trafficResetLabel(sub); + } function premiumTrafficPercent(sub) { return premiumTrafficPercentFn(sub); } @@ -140,7 +156,7 @@ {#if subscription.active} - + {#if regularTrafficTopupBarClickable}