{"id":83,"date":"2025-09-20T00:45:54","date_gmt":"2025-09-20T00:45:54","guid":{"rendered":"https:\/\/tools.anyservspa.cl\/?page_id=83"},"modified":"2025-09-20T01:12:49","modified_gmt":"2025-09-20T01:12:49","slug":"conversor-unidades","status":"publish","type":"page","link":"https:\/\/tools.anyservspa.cl\/index.php\/conversor-unidades\/","title":{"rendered":"Conversor unidades"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <title>Conversores T\u00e9cnicos | Any-Serv SpA<\/title>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n  <style>\n    :root{\n      --salmon:#DE643F;\n      --panel-bg: rgba(255,255,255,.08);\n      --panel-bd: rgba(255,255,255,.22);\n      --txt:#E8F3FF;\n      --hint: rgba(232,243,255,.8);\n    }\n    html,body{\n      margin:0; padding:0;\n      font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif;\n      color: var(--txt);\n      background: transparent; \/* deja ver tu fondo *\/\n    }\n    .wrap{\n      max-width: 1100px;\n      margin: 32px auto;\n      padding: 0 16px 48px;\n    }\n    .title{\n      text-align:center;\n      margin: 10px 0 6px;\n      font-size: clamp(26px, 3.5vw, 42px);\n      font-weight: 800;\n      letter-spacing: .5px;\n      color: #fff;\n      text-shadow: 0 4px 14px rgba(0,0,0,.5);\n    }\n    .subtitle{\n      text-align:center;\n      margin: 0 auto 28px;\n      max-width: 820px;\n      font-size: clamp(14px, 2.2vw, 18px);\n      color: var(--hint);\n      text-shadow: 0 2px 8px rgba(0,0,0,.4);\n    }\n\n    .grid{\n      display: grid;\n      grid-template-columns: repeat(12, 1fr);\n      gap: 18px;\n    }\n    .card{\n      grid-column: span 12;\n      background: var(--panel-bg);\n      border: 1px solid var(--panel-bd);\n      border-radius: 16px;\n      padding: 18px;\n      backdrop-filter: blur(8px);\n      -webkit-backdrop-filter: blur(8px);\n      box-shadow: 0 10px 30px rgba(0,0,0,.25);\n    }\n    @media (min-width: 720px){\n      .card{ grid-column: span 6; }\n    }\n\n    .card h3{\n      margin: 4px 0 14px;\n      font-size: 22px;\n      color: var(--salmon);\n      font-weight: 800;\n      letter-spacing: .5px;\n      text-shadow: 0 4px 12px rgba(0,0,0,.45);\n    }\n    .row{\n      display:grid;\n      grid-template-columns: 1fr 1fr;\n      gap:12px;\n      align-items:end;\n      margin-bottom: 10px;\n    }\n    .field{\n      display:flex;\n      flex-direction:column;\n      gap:6px;\n    }\n    label{\n      font-size: 13px;\n      letter-spacing:.3px;\n      opacity:.9;\n    }\n    input{\n      background: rgba(0,0,0,.25);\n      color: #fff;\n      border:1px solid rgba(255,255,255,.18);\n      border-radius:10px;\n      padding: 12px 12px;\n      font-size:16px;\n      outline:none;\n      transition: border-color .2s ease, box-shadow .2s ease;\n      width: 100%;\n    }\n    input:focus{\n      border-color: rgba(222,100,63,.65);\n      box-shadow: 0 0 0 3px rgba(222,100,63,.25);\n    }\n    .note{\n      font-size: 12px;\n      color: rgba(232,243,255,.75);\n      margin-top: 6px;\n    }\n    .watermark{\n      text-align:right;\n      margin-top: 24px;\n      font-size: 12px;\n      color: rgba(222,100,63,.55);\n      transform: skewX(-6deg);\n    }\n  <\/style>\n<\/head>\n<body>\n  <div class=\"wrap\">\n    <h1 class=\"title\">Conversores T\u00e9cnicos<\/h1>\n    <p class=\"subtitle\">PSI \u2194 BAR \u00b7 Kg \u2194 Lb \u00b7 Litros \u2194 Gal (US) \u00b7 \u00b0C \u2194 \u00b0F \u2014 c\u00e1lculos r\u00e1pidos para terreno y oficina.<\/p>\n\n    <div class=\"grid\">\n      <!-- PSI \u2194 BAR -->\n      <section class=\"card\" id=\"card-press\">\n        <h3>PSI \u2194 BAR (Presi\u00f3n)<\/h3>\n        <div class=\"row\">\n          <div class=\"field\">\n            <label for=\"psi\">PSI<\/label>\n            <input id=\"psi\" type=\"number\" step=\"any\" placeholder=\"Ingrese PSI\">\n          <\/div>\n          <div class=\"field\">\n            <label for=\"bar\">BAR<\/label>\n            <input id=\"bar\" type=\"number\" step=\"any\" placeholder=\"Ingrese BAR\">\n          <\/div>\n        <\/div>\n        <div class=\"note\">Conversi\u00f3n usada: <strong>1 bar = 14.5037738 psi<\/strong><\/div>\n      <\/section>\n\n      <!-- Kg \u2194 Lb -->\n      <section class=\"card\" id=\"card-weight\">\n        <h3>Kg \u2194 Lb (Peso)<\/h3>\n        <div class=\"row\">\n          <div class=\"field\">\n            <label for=\"kg\">Kilogramos (kg)<\/label>\n            <input id=\"kg\" type=\"number\" step=\"any\" placeholder=\"Ingrese kg\">\n          <\/div>\n          <div class=\"field\">\n            <label for=\"lb\">Libras (lb)<\/label>\n            <input id=\"lb\" type=\"number\" step=\"any\" placeholder=\"Ingrese lb\">\n          <\/div>\n        <\/div>\n        <div class=\"note\">Conversi\u00f3n usada: <strong>1 kg = 2.20462262185 lb<\/strong><\/div>\n      <\/section>\n\n      <!-- Litros \u2194 Galones (US) -->\n      <section class=\"card\" id=\"card-volume\">\n        <h3>Litros \u2194 Galones (US) (Volumen)<\/h3>\n        <div class=\"row\">\n          <div class=\"field\">\n            <label for=\"liters\">Litros (L)<\/label>\n            <input id=\"liters\" type=\"number\" step=\"any\" placeholder=\"Ingrese L\">\n          <\/div>\n          <div class=\"field\">\n            <label for=\"gallons\">Galones (US gal)<\/label>\n            <input id=\"gallons\" type=\"number\" step=\"any\" placeholder=\"Ingrese gal (US)\">\n          <\/div>\n        <\/div>\n        <div class=\"note\">Conversi\u00f3n usada: <strong>1 L = 0.2641720524 gal (US)<\/strong> \u00b7 Nota: gal\u00f3n US l\u00edquido.<\/div>\n      <\/section>\n\n      <!-- \u00b0C \u2194 \u00b0F -->\n      <section class=\"card\" id=\"card-temp\">\n        <h3>\u00b0C \u2194 \u00b0F (Temperatura)<\/h3>\n        <div class=\"row\">\n          <div class=\"field\">\n            <label for=\"celsius\">Celsius (\u00b0C)<\/label>\n            <input id=\"celsius\" type=\"number\" step=\"any\" placeholder=\"Ingrese \u00b0C\">\n          <\/div>\n          <div class=\"field\">\n            <label for=\"fahrenheit\">Fahrenheit (\u00b0F)<\/label>\n            <input id=\"fahrenheit\" type=\"number\" step=\"any\" placeholder=\"Ingrese \u00b0F\">\n          <\/div>\n        <\/div>\n        <div class=\"note\">F\u00f3rmulas: <strong>\u00b0F = \u00b0C \u00d7 9\/5 + 32<\/strong> \u00b7 <strong>\u00b0C = (\u00b0F \u2212 32) \u00d7 5\/9<\/strong><\/div>\n      <\/section>\n    <\/div>\n\n    <div class=\"watermark\">Any-Serv SpA<\/div>\n  <\/div>\n\n  <script>\n    \/\/ Flags para evitar bucles cuando se actualiza el otro input\n    let lock = {\n      psi:false, bar:false, kg:false, lb:false, liters:false, gallons:false, c:false, f:false\n    };\n\n    \/\/ --- PSI \u2194 BAR ---\n    const PSI_PER_BAR = 14.5037738;\n\n    const elPSI = document.getElementById('psi');\n    const elBAR = document.getElementById('bar');\n\n    elPSI.addEventListener('input', () => {\n      if (lock.psi) return;\n      const v = parseFloat(elPSI.value);\n      if (isNaN(v)) { lock.bar=true; elBAR.value=''; lock.bar=false; return; }\n      const bar = v \/ PSI_PER_BAR;\n      lock.bar = true; elBAR.value = round(bar); lock.bar = false;\n    });\n\n    elBAR.addEventListener('input', () => {\n      if (lock.bar) return;\n      const v = parseFloat(elBAR.value);\n      if (isNaN(v)) { lock.psi=true; elPSI.value=''; lock.psi=false; return; }\n      const psi = v * PSI_PER_BAR;\n      lock.psi = true; elPSI.value = round(psi); lock.psi = false;\n    });\n\n    \/\/ --- Kg \u2194 Lb ---\n    const LB_PER_KG = 2.20462262185;\n\n    const elKG = document.getElementById('kg');\n    const elLB = document.getElementById('lb');\n\n    elKG.addEventListener('input', () => {\n      if (lock.kg) return;\n      const v = parseFloat(elKG.value);\n      if (isNaN(v)) { lock.lb=true; elLB.value=''; lock.lb=false; return; }\n      const lb = v * LB_PER_KG;\n      lock.lb = true; elLB.value = round(lb); lock.lb = false;\n    });\n\n    elLB.addEventListener('input', () => {\n      if (lock.lb) return;\n      const v = parseFloat(elLB.value);\n      if (isNaN(v)) { lock.kg=true; elKG.value=''; lock.kg=false; return; }\n      const kg = v \/ LB_PER_KG;\n      lock.kg = true; elKG.value = round(kg); lock.kg = false;\n    });\n\n    \/\/ --- Litros \u2194 Galones (US) ---\n    const GAL_PER_LITER_US = 0.2641720524;\n\n    const elL = document.getElementById('liters');\n    const elGAL = document.getElementById('gallons');\n\n    elL.addEventListener('input', () => {\n      if (lock.liters) return;\n      const v = parseFloat(elL.value);\n      if (isNaN(v)) { lock.gallons=true; elGAL.value=''; lock.gallons=false; return; }\n      const gal = v * GAL_PER_LITER_US;\n      lock.gallons = true; elGAL.value = round(gal); lock.gallons = false;\n    });\n\n    elGAL.addEventListener('input', () => {\n      if (lock.gallons) return;\n      const v = parseFloat(elGAL.value);\n      if (isNaN(v)) { lock.liters=true; elL.value=''; lock.liters=false; return; }\n      const liters = v \/ GAL_PER_LITER_US;\n      lock.liters = true; elL.value = round(liters); lock.liters = false;\n    });\n\n    \/\/ --- \u00b0C \u2194 \u00b0F ---\n    const elC = document.getElementById('celsius');\n    const elF = document.getElementById('fahrenheit');\n\n    elC.addEventListener('input', () => {\n      if (lock.c) return;\n      const v = parseFloat(elC.value);\n      if (isNaN(v)) { lock.f=true; elF.value=''; lock.f=false; return; }\n      const f = v * 9\/5 + 32;\n      lock.f = true; elF.value = round(f); lock.f = false;\n    });\n\n    elF.addEventListener('input', () => {\n      if (lock.f) return;\n      const v = parseFloat(elF.value);\n      if (isNaN(v)) { lock.c=true; elC.value=''; lock.c=false; return; }\n      const c = (v - 32) * 5\/9;\n      lock.c = true; elC.value = round(c); lock.c = false;\n    });\n\n    function round(n){\n      \/\/ Redondeo amable (hasta 6 decimales si hace falta)\n      return Number.isFinite(n) ? (Math.abs(n) >= 1 ? n.toFixed(3) : n.toFixed(6)) : '';\n    }\n  <\/script>\n<\/body>\n<\/html>\n\n\n\n\n<!-- Bot\u00f3n Volver (elegante con animaci\u00f3n) -->\r\n<div class=\"as-back-wrap\">\r\n  <button class=\"as-back-btn\" aria-label=\"Volver a la p\u00e1gina anterior\" title=\"Volver\">\r\n    <span class=\"as-icon\" aria-hidden=\"true\">\r\n      <!-- Flecha SVG -->\r\n      <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\">\r\n        <path d=\"M15 5l-7 7 7 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n      <\/svg>\r\n    <\/span>\r\n    <span class=\"as-text\">Volver<\/span>\r\n    <span class=\"as-glow\"><\/span>\r\n  <\/button>\r\n<\/div>\r\n\r\n<style>\r\n  .as-back-wrap{\r\n    position: fixed;\r\n    bottom: 22px; left: 22px; \/* c\u00e1mbialo a left si prefieres *\/\r\n    z-index: 9999;\r\n  }\r\n  .as-back-btn{\r\n    --bg: rgba(20,22,27,.75);\r\n    --bg2: rgba(20,22,27,.55);\r\n    --accent: #DE643F; \/* salm\u00f3n Any-Serv *\/\r\n    --txt: #f6f7fb;\r\n\r\n    display: inline-flex; align-items: center; gap: .6rem;\r\n    padding: .9rem 1.15rem;\r\n    color: var(--txt); background: linear-gradient(135deg,var(--bg),var(--bg2));\r\n    border: 1px solid rgba(255,255,255,.08);\r\n    border-radius: 14px;\r\n    backdrop-filter: blur(8px);\r\n    box-shadow: 0 10px 24px rgba(0,0,0,.18), inset 0 0 0 1px rgba(255,255,255,.04);\r\n    cursor: pointer;\r\n    transition: transform .18s ease, box-shadow .25s ease;\r\n    position: relative; overflow: hidden;\r\n  }\r\n  .as-icon{ display: inline-grid; place-items:center; }\r\n  .as-text{ font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, \"Helvetica Neue\", Arial, sans-serif; font-weight: 600; letter-spacing:.2px; }\r\n\r\n  \/* Microinteracciones *\/\r\n  .as-back-btn:hover{ transform: translateY(-2px); box-shadow: 0 16px 32px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.06); }\r\n  .as-back-btn:active{ transform: translateY(0); }\r\n\r\n  \/* \u201cRespiraci\u00f3n\u201d sutil *\/\r\n  .as-back-btn::after{\r\n    content:\"\"; position:absolute; inset:-1px; border-radius:inherit;\r\n    background: radial-gradient(120px 120px at var(--mx,50%) var(--my,50%), rgba(222,100,63,.18), transparent 55%);\r\n    transition: background .15s ease;\r\n    pointer-events:none;\r\n  }\r\n\r\n  \/* Glow lateral *\/\r\n  .as-glow{\r\n    position:absolute; inset:-2px; border-radius:inherit;\r\n    background: conic-gradient(from 180deg at 50% 50%, transparent 0 20%, rgba(222,100,63,.18) 20% 30%, transparent 30% 100%);\r\n    filter: blur(10px); opacity:.0; transition: opacity .25s ease;\r\n    pointer-events:none;\r\n  }\r\n  .as-back-btn:hover .as-glow{ opacity:.8; }\r\n\r\n  \/* Animaci\u00f3n de la flecha *\/\r\n  .as-back-btn:hover .as-icon svg{ transform: translateX(-2px); }\r\n  .as-icon svg{ transition: transform .18s ease; }\r\n\r\n  \/* Modo reducido en m\u00f3viles *\/\r\n  @media (max-width:480px){\r\n    .as-text{ display:none; }\r\n    .as-back-btn{ padding:.8rem; border-radius:12px; }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n  (function(){\r\n    const FALLBACK_URL = '\/'; \/\/ <-- Cambia aqu\u00ed si quieres otro destino por defecto\r\n    const btn = document.querySelector('.as-back-btn');\r\n\r\n    \/\/ Efecto \u201cfollow cursor\u201d para el brillo\r\n    btn.addEventListener('pointermove', (e)=>{\r\n      const r = e.currentTarget.getBoundingClientRect();\r\n      const x = e.clientX - r.left, y = e.clientY - r.top;\r\n      e.currentTarget.style.setProperty('--mx', x+'px');\r\n      e.currentTarget.style.setProperty('--my', y+'px');\r\n    });\r\n\r\n    btn.addEventListener('click', (e)=>{\r\n      e.preventDefault();\r\n      \/\/ Si hay historial \u201creal\u201d, volvemos. Si no, usamos fallback.\r\n      if (window.history.length > 1) {\r\n        window.history.back();\r\n      } else {\r\n        window.location.href = FALLBACK_URL;\r\n      }\r\n    });\r\n  })();\r\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Conversores T\u00e9cnicos | Any-Serv SpA Conversores T\u00e9cnicos PSI \u2194 BAR \u00b7 Kg \u2194 Lb \u00b7 Litros \u2194 Gal (US) \u00b7 \u00b0C \u2194 \u00b0F \u2014 c\u00e1lculos r\u00e1pidos para terreno y oficina. PSI \u2194 BAR (Presi\u00f3n) PSI BAR Conversi\u00f3n usada: 1 bar = 14.5037738 psi Kg \u2194 Lb (Peso) Kilogramos (kg) Libras (lb) Conversi\u00f3n usada: 1 kg<\/p>\n<div class=\"more-link\">\n\t\t\t\t <a href=\"https:\/\/tools.anyservspa.cl\/index.php\/conversor-unidades\/\" class=\"link-btn theme-btn\"><span>Read More <\/span> <i class=\"fa fa-caret-right\"><\/i><\/a>\n\t\t\t<\/div>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-83","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/pages\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/comments?post=83"}],"version-history":[{"count":4,"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/pages\/83\/revisions"}],"predecessor-version":[{"id":100,"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/pages\/83\/revisions\/100"}],"wp:attachment":[{"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/media?parent=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}