diff --git a/server/public/home.html b/server/public/home.html index d349bdd..fa740f9 100644 --- a/server/public/home.html +++ b/server/public/home.html @@ -670,6 +670,14 @@ .att-vid.buffering .att-vid-spin{opacity:1;animation:ptrspin .8s linear infinite;} /* Dim the frame while buffering so the centre spinner reads instantly against a bright poster. */ .att-vid.buffering .att-vid-v{filter:brightness(.72);} + /* Download progress chip. The native save path fetches the bytes itself, so there is no browser download + UI to lean on — this mirrors the upload bar's bar + %, so a download reads the same as an upload. */ + .dl-prog{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 84px);z-index:120;background:rgba(17,24,39,.94);color:#fff;border-radius:12px;padding:.55rem .75rem;width:min(320px,84vw);box-shadow:0 6px 24px rgba(0,0,0,.38);font-size:.82rem;display:grid;gap:.4rem;} + .dl-prog .dp-top{display:flex;align-items:center;gap:.45rem;} + .dl-prog .dp-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} + .dl-prog .dp-pct{font-weight:700;flex:0 0 auto;font-variant-numeric:tabular-nums;} + .dl-prog .dp-bar{height:4px;border-radius:3px;background:rgba(255,255,255,.22);overflow:hidden;} + .dl-prog .dp-fill{display:block;height:100%;width:0;background:#fff;transition:width .15s linear;} .bubble.mine .att-file{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.3);} .att-file .att-sz{opacity:.65;font-size:.75rem;flex:0 0 auto;} /* groups */ @@ -1167,7 +1175,7 @@
-