← Commit history

toolbar: icon-only buttons (labels removed, too heavy) + beautiful 800ms hover tooltips on all controls

John Lauer ·aff757d297 ·3mo ago ·parent 27c291f
3 files changed +46−8
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "bq25792-charger",   "title": "BQ25792 Charger",   "type": "component",-  "version": "0.1.59",+  "version": "0.1.60",   "description": "BQ25792 Charger - buck-boost 1S-4S battery charger board by Adonis, with real 3D copper traces and measured stackup.",   "tags": [     "hardware"
page.json+10−3
@@ -4,9 +4,16 @@   "slug": "bq25792-charger",   "title": "BQ25792 Charger",   "brief": "Buck-boost 1S-4S battery charger board (TI BQ25792) with 14 Adom machine pins, by Adonis",-  "version": "0.1.59",+  "version": "0.1.60",   "tags": [-    "hardware"+    "adom",+    "adom-modular",+    "component",+    "charger",+    "battery",+    "bq25792",+    "power",+    "usb-c"   ],   "license": "proprietary",   "component": {@@ -49,7 +56,7 @@     "email": "[email protected]"   },   "visibility": "public",-  "description": "BQ25792 Charger - buck-boost 1S-4S battery charger board by Adonis, with real 3D copper traces and measured stackup.",+  "description": "BQ25792 Charger - a buck-boost 1S-4S battery charger board (Texas Instruments BQ25792) designed by Adonis in Fusion 360, with 14 Adom machine pins for the modular stack. Interactive colored 3D model, schematic and layout views.",   "dependencies": {},   "files": [     "README.md",
readme.html+35−4
@@ -37,9 +37,8 @@   #floaty { position:absolute; top:14px; left:14px; z-index:30; display:flex; gap:6px;     background:rgba(13,17,23,0.55); backdrop-filter:blur(8px); border:1px solid rgba(48,54,61,0.8);     border-radius:10px; padding:6px; }-  .fbtn { font-size:12.5px; padding:6px 11px; border-radius:7px; border:1px solid transparent;-    background:transparent; color:#c9d1d9; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }-  .fbtn svg { width:15px; height:15px; flex:none; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }+  .fbtn { padding:7px; border-radius:8px; border:1px solid transparent; background:transparent; color:#c9d1d9; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }+  .fbtn svg { width:16px; height:16px; flex:none; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }   .fbtn:hover { background:rgba(48,54,61,0.7); }   .fbtn.active { background:#0b3d33; border-color:#00b8b1; color:#5ff5e8; }   #vstatus { position:absolute; right:14px; bottom:10px; z-index:30; font-size:12px; color:#8b949e;@@ -59,6 +58,14 @@     width:46%; display:flex; align-items:center; gap:8px; background:rgba(13,17,23,0.55); backdrop-filter:blur(8px);     border:1px solid rgba(48,54,61,0.8); border-radius:10px; padding:7px 12px; }   #scrub { flex:1; accent-color:#00b8b1; }+  #tt { position:fixed; z-index:100; pointer-events:none; opacity:0; transform:translateY(4px);+    transition:opacity .14s ease, transform .14s ease; background:rgba(13,17,23,0.96);+    color:#e6edf3; font-size:11.5px; font-weight:500; letter-spacing:.2px; padding:5px 9px;+    border:1px solid rgba(0,184,177,0.35); border-radius:7px; white-space:nowrap;+    box-shadow:0 6px 20px rgba(0,0,0,0.5); }+  #tt.show { opacity:1; transform:translateY(0); }+  #tt::after { content:""; position:absolute; top:-5px; left:50%; transform:translateX(-50%);+    border:5px solid transparent; border-bottom-color:rgba(0,184,177,0.35); border-top:0; }   .lp-iso { width:16px; height:16px; padding:0; margin-right:2px; border:1px solid #30363d; border-radius:4px;     background:transparent; color:#6e7681; font-size:11px; line-height:1; cursor:pointer; flex:none; }   .lp-iso:hover { color:#5ff5e8; border-color:#00b8b1; }@@ -168,7 +175,8 @@ exported bodies + design rules.</p>     Object.keys(I).forEach(function(id){       const b=document.getElementById(id); if(!b) return;       const label=b.textContent.trim();-      b.innerHTML='<svg viewBox="0 0 16 16" aria-hidden="true">'+I[id]+'</svg><span>'+label+'</span>';+      b.setAttribute("data-tip",label); b.removeAttribute("title");+      b.innerHTML='<svg viewBox="0 0 16 16" aria-hidden="true">'+I[id]+'</svg>';     });   })();   const R="/blob/component/bq25792-charger/";@@ -542,6 +550,29 @@ exported bodies + design rules.</p>   makeDraggable(document.getElementById("floaty"));   makeDraggable(document.getElementById("layers-panel")); +  // Beautiful hover tooltips (800ms delay) for every control carrying data-tip.+  (function(){+    const tt=document.createElement("div"); tt.id="tt"; document.body.appendChild(tt);+    let timer=null;+    function place(el){+      const r=el.getBoundingClientRect();+      tt.style.left=(r.left+r.width/2-tt.offsetWidth/2)+"px";+      tt.style.top=(r.bottom+9)+"px";+    }+    function show(el){ const t=el.getAttribute("data-tip"); if(!t) return; tt.textContent=t; tt.style.left="-9999px"; tt.classList.add("show"); place(el); }+    function hide(){ tt.classList.remove("show"); }+    document.addEventListener("mouseover",function(e){+      const el=e.target.closest("[data-tip]"); if(!el) return;+      clearTimeout(timer); timer=setTimeout(function(){ show(el); },800);+    });+    document.addEventListener("mouseout",function(e){+      const el=e.target.closest("[data-tip]"); if(!el) return;+      clearTimeout(timer); hide();+    });+    document.addEventListener("click",hide,true);+    window.__ttReady=true;+  })();+   build().then(function(){     const sc=viewer.getScene();     let last=performance.now();