Ads Area

3 Quick Tools — Tube Weight · Square & Rectangle Diagonal

 


HTML Script

<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8" />

  <meta name="viewport" content="width=device-width,initial-scale=1" />

  <title>3 Quick Tools — Tube Weight · Square & Rectangle Diagonal</title>

  <style>

    :root{

      --bg:#0f1724; --card:#0b1220; --accent:#ff6b6b; --muted:#a9b3c2; --glass: rgba(255,255,255,0.03);

      --radius:14px; --pad:16px;

    }

    *{box-sizing:border-box;font-family:Inter,ui-sans-serif,system-ui,Arial}

    body{margin:0;background:linear-gradient(180deg,#071229 0%, #081427 60%);color:#e6eef8;min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:20px}

    .wrap{width:100%;max-width:980px}

    header{display:flex;align-items:center;gap:12px;margin-bottom:18px}

    header .logo{width:56px;height:56px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#ff9a6b);display:flex;align-items:center;justify-content:center;font-weight:700;color:#061124}

    h1{font-size:18px;margin:0}

    p.lead{margin:4px 0 0;color:var(--muted);font-size:13px}

    .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

    @media(max-width:900px){.grid{grid-template-columns:1fr}}


    .card{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));padding:var(--pad);border-radius:var(--radius);box-shadow:0 6px 18px rgba(2,6,23,0.6);border:1px solid rgba(255,255,255,0.03)}

    label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}

    input[type=text], input[type=number], select{width:100%;padding:10px;border-radius:10px;border:none;background:var(--glass);color:inherit;font-size:15px}

    .row{display:flex;gap:10px}

    .row .col{flex:1}

    .btn{display:inline-block;padding:10px 14px;border-radius:10px;border:none;background:var(--accent);color:#061124;font-weight:600;cursor:pointer}

    .mutebtn{background:transparent;border:1px solid rgba(255,255,255,0.06);color:var(--muted)}

    .result{margin-top:12px;padding:10px;border-radius:10px;background:rgba(255,255,255,0.02);font-weight:600}

    small.hint{color:#97a6b8}

    .footer{margin-top:18px;color:var(--muted);font-size:13px;text-align:center}

    .select-inline{display:flex;gap:8px;align-items:center}

    .unit{min-width:110px}

    .density-grid{display:flex;gap:8px;flex-wrap:wrap}

    .density-grid button{padding:8px 10px;border-radius:8px;border:1px solid rgba(255,255,255,0.03);background:transparent;color:var(--muted);cursor:pointer}

    .density-grid button.active{background:rgba(255,255,255,0.04);color:var(--accent);border-color:rgba(255,255,255,0.06)}

    .note{font-size:12px;color:var(--muted);margin-top:8px}

  </style>

</head>

<body>

  <div class="wrap">

    <header>

      <div class="logo">3T</div>

      <div>

        <h1>3 Quick Tools — Tube Weight · Square & Rectangle Diagonal</h1>

        <p class="lead">Mobile-friendly HTML/CSS/JS tools. Enter values, pick units — results update instantly.</p>

      </div>

    </header>


    <div class="grid">

      <!-- Tube Weight -->

      <div class="card" id="tubeCard">

        <h3>Tube Weight Calculator</h3>

        <p class="note">Hollow circular tube — provide Outer Diameter, Wall Thickness and Length. Pick material or set custom density (g/cm³).</p>


        <label>Outer Diameter (OD)</label>

        <div class="row">

          <div class="col"><input id="odVal" type="number" min="0" step="any" placeholder="e.g. 25.4"/></div>

          <div class="col unit">

            <select id="odUnit"><option value="mm">mm</option><option value="in">in</option></select>

          </div>

        </div>


        <label>Wall Thickness</label>

        <div class="row">

          <div class="col"><input id="thkVal" type="number" min="0" step="any" placeholder="e.g. 1.5"/></div>

          <div class="col unit">

            <select id="thkUnit"><option value="mm">mm</option><option value="in">in</option></select>

          </div>

        </div>


        <label>Length</label>

        <div class="row">

          <div class="col"><input id="lenVal" type="number" min="0" step="any" placeholder="e.g. 6100"/></div>

          <div class="col unit">

            <select id="lenUnit"><option value="mm">mm</option><option value="cm">cm</option><option value="m">m</option><option value="in">in</option><option value="ft">ft</option></select>

          </div>

        </div>


        <label>Material / Density</label>

        <div class="density-grid" id="densityBtns">

          <button data-density="7.93" class="active">Austenitic (SS304) — 7.93 g/cm³</button>

          <button data-density="7.70">Ferritic (SS430) — 7.70 g/cm³</button>

          <button data-density="7.75">Martensitic (SS410) — 7.75 g/cm³</button>

          <button data-density="0" id="customBtn">Custom</button>

        </div>

        <div style="margin-top:8px;display:flex;gap:8px;align-items:center">

          <input id="customDensity" type="number" step="any" placeholder="g/cm³ (e.g. 7.93)" style="flex:1;display:none" />

          <button id="calcTube" class="btn">Calculate Weight</button>

          <button id="resetTube" class="mutebtn">Reset</button>

        </div>


        <div class="result" id="tubeResult">Weight: —</div>

        <small class="hint">Note: Density values are approximate (g/cm³). 1 g/cm³ = 1000 kg/m³.</small>

      </div>


      <!-- Square Diagonal -->

      <div class="card" id="squareCard">

        <h3>Square — Diagonal</h3>

        <label>Side length</label>

        <div class="row">

          <div class="col"><input id="sqSide" type="number" min="0" step="any" placeholder="e.g. 100"/></div>

          <div class="col unit">

            <select id="sqUnit"><option value="mm">mm</option><option value="cm">cm</option><option value="m">m</option><option value="in">in</option></select>

          </div>

        </div>

        <div style="margin-top:10px;display:flex;gap:8px;align-items:center">

          <button id="calcSquare" class="btn">Get Diagonal</button>

          <button id="resetSquare" class="mutebtn">Reset</button>

        </div>

        <div class="result" id="squareResult">Diagonal: —</div>

      </div>


      <!-- Rectangle Diagonal -->

      <div class="card" id="rectCard">

        <h3>Rectangle — Diagonal</h3>

        <label>Width</label>

        <div class="row">

          <div class="col"><input id="rectW" type="number" min="0" step="any" placeholder="e.g. 120"/></div>

          <div class="col unit">

            <select id="rectUnit"><option value="mm">mm</option><option value="cm">cm</option><option value="m">m</option><option value="in">in</option></select>

          </div>

        </div>

        <label style="margin-top:8px">Height</label>

        <div class="row">

          <div class="col"><input id="rectH" type="number" min="0" step="any" placeholder="e.g. 80"/></div>

          <div class="col unit"></div>

        </div>

        <div style="margin-top:10px;display:flex;gap:8px;align-items:center">

          <button id="calcRect" class="btn">Get Diagonal</button>

          <button id="resetRect" class="mutebtn">Reset</button>

        </div>

        <div class="result" id="rectResult">Diagonal: —</div>

      </div>


    </div>


    <div class="footer">Copy Right 2025-2026 , Created By Syed Javed Akhter</div>

  </div>


<script>

  // Utility: convert unit values to millimeters

  function toMM(value, unit){

    value = Number(value);

    if(!isFinite(value)) return NaN;

    switch(unit){

      case 'mm': return value;

      case 'cm': return value*10;

      case 'm': return value*1000;

      case 'in': return value*25.4;

      case 'ft': return value*304.8;

      default: return value;

    }

  }


  // Tube calc

  const densityBtns = document.getElementById('densityBtns');

  const densityButtons = densityBtns.querySelectorAll('button');

  const customDensityInput = document.getElementById('customDensity');

  const customBtn = document.getElementById('customBtn');

  let selectedDensity = 7.93; // default g/cm3 (Austenitic SS304)


  densityButtons.forEach(b=>{

    b.addEventListener('click', ()=>{

      densityButtons.forEach(x=>x.classList.remove('active'));

      b.classList.add('active');

      if(b.dataset.density && Number(b.dataset.density)>0){

        selectedDensity = Number(b.dataset.density);

        customDensityInput.style.display='none';

        customDensityInput.value='';

      } else { // custom

        selectedDensity = null;

        customDensityInput.style.display='block';

        setTimeout(()=>customDensityInput.focus(),50);

      }

    });

  });


  document.getElementById('calcTube').addEventListener('click', ()=>{

    const od = Number(document.getElementById('odVal').value);

    const odUnit = document.getElementById('odUnit').value;

    const thk = Number(document.getElementById('thkVal').value);

    const thkUnit = document.getElementById('thkUnit').value;

    const len = Number(document.getElementById('lenVal').value);

    const lenUnit = document.getElementById('lenUnit').value;


    if(!od || !thk || !len){

      return showTube('Please enter OD, thickness and length.');

    }

    // convert to mm

    const od_mm = toMM(od, odUnit);

    const thk_mm = toMM(thk, thkUnit);

    const len_mm = toMM(len, lenUnit);


    const ro = od_mm/2;

    const ri = ro - thk_mm;

    if(ri<=0){ return showTube('Thickness too large — inner radius ≤ 0.'); }


    // select density

    let dens = selectedDensity;

    if(!dens){

      const cd = Number(customDensityInput.value);

      if(!cd || cd<=0) return showTube('Enter a valid custom density (g/cm³).');

      dens = cd;

    }


    // Area difference in mm^2

    const area_mm2 = Math.PI*(ro*ro - ri*ri);

    const vol_mm3 = area_mm2 * len_mm; // mm^3

    const vol_cm3 = vol_mm3 / 1000; // 1 cm^3 = 1000 mm^3

    const mass_g = vol_cm3 * dens; // grams

    const mass_kg = mass_g / 1000;


    // also show volume and mass in grams

    // show density conversion to kg/m3 for clarity

    const dens_kg_m3 = (dens * 1000).toFixed(0);

    showTube(`Weight: ${mass_kg.toFixed(4)} kg (${mass_g.toFixed(1)} g) — Volume: ${vol_cm3.toFixed(2)} cm³ — Density: ${dens} g/cm³ (${dens_kg_m3} kg/m³)`);

  });


  function showTube(text){ document.getElementById('tubeResult').textContent = text; }

  document.getElementById('resetTube').addEventListener('click', ()=>{

    ['odVal','thkVal','lenVal'].forEach(id=>document.getElementById(id).value='');

    customDensityInput.value=''; customDensityInput.style.display='none';

    densityButtons.forEach(x=>x.classList.remove('active'));

    densityButtons[0].classList.add('active'); selectedDensity=7.93;

    showTube('Weight: —');

  });


  // Square calc

  document.getElementById('calcSquare').addEventListener('click', ()=>{

    const side = Number(document.getElementById('sqSide').value);

    const unit = document.getElementById('sqUnit').value;

    if(!side) return document.getElementById('squareResult').textContent = 'Enter side length.';

    const side_mm = toMM(side, unit);

    const diag_mm = side_mm * Math.SQRT2;

    const display = formatWithUnit(diag_mm, unit);

    document.getElementById('squareResult').textContent = `Diagonal: ${display}`;

  });

  document.getElementById('resetSquare').addEventListener('click', ()=>{document.getElementById('sqSide').value='';document.getElementById('squareResult').textContent='Diagonal: —';});


  // Rectangle calc

  document.getElementById('calcRect').addEventListener('click', ()=>{

    const w = Number(document.getElementById('rectW').value);

    const h = Number(document.getElementById('rectH').value);

    const unit = document.getElementById('rectUnit').value;

    if(!w || !h) return document.getElementById('rectResult').textContent='Enter width and height.';

    const w_mm = toMM(w, unit);

    const h_mm = toMM(h, unit);

    const diag_mm = Math.sqrt(w_mm*w_mm + h_mm*h_mm);

    const display = formatWithUnit(diag_mm, unit);

    document.getElementById('rectResult').textContent = `Diagonal: ${display}`;

  });

  document.getElementById('resetRect').addEventListener('click', ()=>{document.getElementById('rectW').value='';document.getElementById('rectH').value='';document.getElementById('rectResult').textContent='Diagonal: —';});


  // Format mm back to chosen unit for display

  function formatWithUnit(value_mm, originalUnit){

    let val = value_mm;

    let unitLabel = 'mm';

    switch(originalUnit){

      case 'mm': val = value_mm; unitLabel='mm'; break;

      case 'cm': val = value_mm/10; unitLabel='cm'; break;

      case 'm': val = value_mm/1000; unitLabel='m'; break;

      case 'in': val = value_mm/25.4; unitLabel='in'; break;

    }

    if(Math.abs(val) >= 1000) return `${(val).toFixed(3)} ${unitLabel}`;

    if(Math.abs(val) >= 1) return `${(val).toFixed(2)} ${unitLabel}`;

    return `${(val).toFixed(4)} ${unitLabel}`;

  }


  // initialize

  densityButtons[0].classList.add('active');

</script>

</body>

</html>


Top Post Ad

Below Post Ad

Ads Area