{"id":3921,"date":"2026-04-23T08:26:36","date_gmt":"2026-04-23T08:26:36","guid":{"rendered":"https:\/\/gqlamp.com\/?page_id=3921"},"modified":"2026-04-23T09:04:22","modified_gmt":"2026-04-23T09:04:22","slug":"darksky","status":"publish","type":"page","link":"https:\/\/gqlamp.com\/pt\/lighting-design-services\/darksky\/","title":{"rendered":"Verificador de conformidade de lumin\u00e1ria comercial aprovado pela DarkSky"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-fdc8d40\" data-block-id=\"fdc8d40\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-fdc8d40-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-a7f2df0\" data-v=\"4\" data-block-id=\"a7f2df0\"><style>.stk-a7f2df0-container{margin-top:30px !important;margin-right:30px !important;margin-bottom:30px !important;margin-left:30px !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-a7f2df0-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-a7f2df0-inner-blocks\">\n<h1>DarkSky Approved Commercial Luminaire Compliance Checker<\/h1>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-c55d207\" data-block-id=\"c55d207\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-c55d207-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-93abcb7\" data-v=\"4\" data-block-id=\"93abcb7\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-93abcb7-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-93abcb7-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-be8c05f\" data-block-id=\"be8c05f\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-be8c05f-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-fc9295d\" data-v=\"4\" data-block-id=\"fc9295d\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-fc9295d-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-fc9295d-inner-blocks\">\n<section id=\"gq-darksky-checker\">\n  <style>\n    \/* 1. \u5f15\u5165\u9ad8\u8d28\u91cf\u5b57\u4f53\uff0c\u9075\u5faa\u9694\u79bb\u539f\u5219 *\/\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&display=swap');\n\n    \/* 2. \u9876\u7ea7\u4f5c\u7528\u57df\u9694\u79bb & \u57fa\u7840\u91cd\u7f6e *\/\n    #gq-darksky-checker {\n      width: 100% !important;\n      padding: 40px 0 !important;\n      background-color: transparent !important;\n      font-family: 'Inter', sans-serif !important;\n      color: #303030 !important;\n      box-sizing: border-box !important;\n    }\n\n    #gq-darksky-checker * {\n      box-sizing: border-box !important;\n    }\n\n    \/* \u6574\u4f53\u5e03\u5c40\u5c45\u4e2d *\/\n    #gq-darksky-checker .layout-container {\n      max-width: 880px !important;\n      margin: 0 auto !important;\n      padding: 0 20px !important;\n      text-align: center !important; \/* \u5f3a\u5236\u6807\u9898\u548c\u63cf\u8ff0\u5c45\u4e2d *\/\n    }\n\n    \/* --- \u8bed\u4e49\u5316 Heading \u6807\u7b7e\u8bbe\u7f6e --- *\/\n    \n    \/* H2: \u4e3b\u6807\u9898 (\u8bbe\u5b9a\u4e3a 32px) *\/\n    #gq-darksky-checker h2.main-title {\n      font-size: 32px !important;\n      color: #183090 !important; \/* \u6df1\u84dd\u8272 *\/\n      font-weight: 700 !important;\n      margin: 0 0 12px 0 !important;\n      line-height: 1.3 !important;\n    }\n\n    #gq-darksky-checker p.subtitle {\n      color: #6b7280 !important;\n      font-size: 15.5px !important;\n      line-height: 1.6 !important;\n      margin: 0 auto 35px auto !important;\n      max-width: 800px !important;\n    }\n\n    \/* \u5de5\u5177\u8868\u5355\u5361\u7247 *\/\n    #gq-darksky-checker .tool-card {\n      background: #f8fafc !important;\n      border: 1px solid #e0e5ea !important;\n      border-radius: 8px !important;\n      padding: 40px 30px !important;\n      text-align: left !important; \/* \u8868\u5355\u5185\u5bb9\u6062\u590d\u5de6\u5bf9\u9f50 *\/\n    }\n\n    \/* \u4e24\u5217\u7f51\u683c\u8868\u5355 *\/\n    #gq-darksky-checker .form-grid {\n      display: grid !important;\n      grid-template-columns: repeat(2, 1fr) !important;\n      gap: 20px 24px !important;\n    }\n\n    #gq-darksky-checker label {\n      display: block !important;\n      margin: 0 0 8px 0 !important;\n      font-weight: 600 !important;\n      font-size: 15px !important;\n      color: #303030 !important;\n    }\n\n    #gq-darksky-checker label .hint {\n      display: block !important;\n      font-weight: 400 !important;\n      color: #6b7280 !important;\n      font-size: 13px !important;\n      margin-top: 4px !important;\n    }\n\n    #gq-darksky-checker input[type=\"number\"], \n    #gq-darksky-checker select {\n      width: 100% !important;\n      padding: 12px 14px !important;\n      border: 1px solid #e0e5ea !important;\n      border-radius: 6px !important;\n      font-size: 15px !important;\n      font-family: 'Inter', sans-serif !important;\n      color: #303030 !important;\n      background: #ffffff !important;\n      transition: border-color 0.2s, box-shadow 0.2s !important;\n      appearance: auto !important;\n    }\n\n    #gq-darksky-checker input:focus, \n    #gq-darksky-checker select:focus {\n      outline: none !important;\n      border-color: #183090 !important;\n      box-shadow: 0 0 0 3px rgba(24, 48, 144, 0.1) !important;\n    }\n\n    \/* \u8ba1\u7b97\u4e3b\u6309\u94ae *\/\n    #gq-darksky-checker .btn-calc {\n      display: block !important;\n      width: 100% !important;\n      padding: 16px !important;\n      background: #183090 !important;\n      color: #ffffff !important;\n      border: none !important;\n      border-radius: 6px !important;\n      font-weight: 600 !important;\n      font-size: 16px !important;\n      cursor: pointer !important;\n      margin-top: 30px !important;\n      transition: background 0.2s, transform 0.2s !important;\n      text-transform: uppercase !important;\n      letter-spacing: 0.5px !important;\n    }\n\n    #gq-darksky-checker .btn-calc:hover {\n      background: #D81818 !important; \/* \u60ac\u505c\u53d8\u7ea2\u8272 *\/\n      transform: translateY(-2px) !important;\n    }\n\n    \/* --- \u7ed3\u679c\u5c55\u793a\u533a\u57df --- *\/\n    #gq-darksky-checker .result {\n      margin-top: 30px !important;\n      padding: 30px !important;\n      background: #ffffff !important;\n      border: 1px solid #e0e5ea !important;\n      border-radius: 8px !important;\n      display: none !important;\n      box-shadow: 0 10px 30px rgba(0,0,0,0.06) !important;\n    }\n\n    #gq-darksky-checker .result.active {\n      display: block !important;\n    }\n\n    \/* \u52a8\u6001\u8fb9\u6846\u989c\u8272 *\/\n    #gq-darksky-checker .result.pass { border-left: 4px solid #009048 !important; } \/* \u7eff\u8272 *\/\n    #gq-darksky-checker .result.fail { border-left: 4px solid #D81818 !important; } \/* \u7ea2\u8272 *\/\n\n    \/* H3: \u7ed3\u679c\u6807\u9898 *\/\n    #gq-darksky-checker h3.result-title {\n      font-size: 20px !important;\n      font-weight: 700 !important;\n      margin: 0 0 20px 0 !important;\n    }\n    #gq-darksky-checker .result.pass h3.result-title { color: #009048 !important; }\n    #gq-darksky-checker .result.fail h3.result-title { color: #D81818 !important; }\n\n    \/* \u68c0\u67e5\u5217\u8868\u9879 *\/\n    #gq-darksky-checker .check-item {\n      display: flex !important;\n      align-items: flex-start !important;\n      gap: 14px !important;\n      padding: 14px 0 !important;\n      border-bottom: 1px solid #e0e5ea !important;\n    }\n\n    #gq-darksky-checker .check-item:last-child {\n      border-bottom: none !important;\n    }\n\n    #gq-darksky-checker .check-icon {\n      flex-shrink: 0 !important;\n      width: 24px !important;\n      height: 24px !important;\n      border-radius: 50% !important;\n      display: flex !important;\n      align-items: center !important;\n      justify-content: center !important;\n      font-weight: 700 !important;\n      color: #ffffff !important;\n      font-size: 14px !important;\n      margin-top: 2px !important;\n    }\n\n    #gq-darksky-checker .check-pass { background: #009048 !important; }\n    #gq-darksky-checker .check-fail { background: #D81818 !important; }\n\n    #gq-darksky-checker .check-text strong {\n      display: block !important;\n      color: #303030 !important;\n      font-size: 15px !important;\n      margin-bottom: 4px !important;\n    }\n\n    #gq-darksky-checker .check-text span {\n      color: #6b7280 !important;\n      font-size: 13.5px !important;\n      line-height: 1.5 !important;\n      display: block !important;\n    }\n\n    \/* \u514d\u8d23\u58f0\u660e *\/\n    #gq-darksky-checker p.disclaimer {\n      font-size: 13px !important;\n      color: #6b7280 !important;\n      margin: 25px 0 !important;\n      font-style: italic !important;\n      line-height: 1.5 !important;\n    }\n\n    \/* CTA \u6a21\u5757 *\/\n    #gq-darksky-checker .cta-block {\n      padding: 20px !important;\n      background: #f5f7fa !important;\n      border-radius: 6px !important;\n      text-align: center !important;\n      border: 1px dashed #cbd5e1 !important;\n      font-size: 15px !important;\n      color: #4a4a4a !important;\n    }\n\n    #gq-darksky-checker .cta-block a {\n      color: #D81818 !important;\n      font-weight: 600 !important;\n      text-decoration: none !important;\n      transition: color 0.2s !important;\n    }\n\n    #gq-darksky-checker .cta-block a:hover {\n      color: #183090 !important;\n      text-decoration: underline !important;\n    }\n\n    \/* \u79fb\u52a8\u7aef\u54cd\u5e94\u5f0f *\/\n    @media (max-width: 640px) {\n      #gq-darksky-checker .form-grid {\n        grid-template-columns: 1fr !important; \/* \u5355\u5217 *\/\n        gap: 16px !important;\n      }\n      #gq-darksky-checker h2.main-title {\n        font-size: 28px !important;\n      }\n      #gq-darksky-checker .tool-card {\n        padding: 25px 20px !important;\n      }\n    }\n  <\/style>\n\n  <div class=\"layout-container\">\n    \n    <h2 class=\"main-title\">DarkSky Approved Commercial Luminaire Compliance Checker<\/h2>\n    <p class=\"subtitle\">Enter the spec of a commercial outdoor luminaire to check compliance with DarkSky Approved Commercial Luminaire criteria (Program Guidelines v3.1, October 2025). This is an informational self-check, not an official approval.<\/p>\n\n    <div class=\"tool-card\">\n      <div class=\"form-grid\">\n        \n        <div>\n          <label>Luminaire total lumen output\n            <span class=\"hint\">Initial total lumens (from LM-79 test report)<\/span>\n          <\/label>\n          <input type=\"number\" id=\"gq-lumens\" min=\"10\" value=\"2000\">\n        <\/div>\n\n        <div>\n          <label>Uplight output (lumens 90\u00b0-180\u00b0)\n            <span class=\"hint\">From photometric file \u2014 LCS zones UL + UH combined<\/span>\n          <\/label>\n          <input type=\"number\" id=\"gq-uplight\" min=\"0\" value=\"5\">\n        <\/div>\n\n        <div>\n          <label>Correlated color temperature (CCT)\n            <span class=\"hint\">Nominal value in Kelvins<\/span>\n          <\/label>\n          <select id=\"gq-cct\">\n            <option value=\"2700\">2700K (very warm)<\/option>\n            <option value=\"3000\" selected>3000K (warm white)<\/option>\n            <option value=\"3500\">3500K (neutral-warm)<\/option>\n            <option value=\"4000\">4000K (cool white)<\/option>\n            <option value=\"5000\">5000K (daylight cool)<\/option>\n          <\/select>\n        <\/div>\n\n        <div>\n          <label>Dimming capability\n            <span class=\"hint\">Required for luminaires over 500 lumens<\/span>\n          <\/label>\n          <select id=\"gq-dimming\">\n            <option value=\"10\" selected>Dimmable to 10% or less of full output<\/option>\n            <option value=\"30\">Dimmable to 30% of full output<\/option>\n            <option value=\"none\">Not dimmable<\/option>\n          <\/select>\n        <\/div>\n\n        <div>\n          <label>Electrical safety certification\n            <span class=\"hint\">Third-party nationally recognized testing laboratory<\/span>\n          <\/label>\n          <select id=\"gq-cert\">\n            <option value=\"yes\" selected>Yes (UL \/ ETL \/ CSA \/ CE \/ TUV)<\/option>\n            <option value=\"no\">No independent certification<\/option>\n          <\/select>\n        <\/div>\n\n        <div>\n          <label>Luminaire mount height (m)\n            <span class=\"hint\">Affects high-angle light criteria<\/span>\n          <\/label>\n          <input type=\"number\" id=\"gq-mountHeight\" min=\"0\" step=\"0.1\" value=\"3.5\">\n        <\/div>\n\n        <div>\n          <label>High-angle light (% of total, 80\u00b0-90\u00b0)\n            <span class=\"hint\">From photometric file \u2014 LCS zones FVH + BVH<\/span>\n          <\/label>\n          <input type=\"number\" id=\"gq-highAngle\" min=\"0\" step=\"0.1\" value=\"2\">\n        <\/div>\n\n        <div>\n          <label>Distribution type\n            <span class=\"hint\">Beam pattern symmetry<\/span>\n          <\/label>\n          <select id=\"gq-distType\">\n            <option value=\"TypeV\">Type V \/ VS (round \/ square symmetric)<\/option>\n            <option value=\"other\" selected>Other (Type I \/ II \/ III \/ IV)<\/option>\n          <\/select>\n        <\/div>\n\n        <div>\n          <label>Shielding option available\n            <span class=\"hint\">Required for pole-mounted area lighting<\/span>\n          <\/label>\n          <select id=\"gq-shielding\">\n            <option value=\"yes\" selected>Yes (house-side, side, louvers)<\/option>\n            <option value=\"no\">No<\/option>\n          <\/select>\n        <\/div>\n\n        <div>\n          <label>Upward tilt adjustment\n            <span class=\"hint\">Max 5\u00b0 permitted by DarkSky program<\/span>\n          <\/label>\n          <select id=\"gq-tilt\">\n            <option value=\"0\" selected>No upward tilt<\/option>\n            <option value=\"3\">Adjustable 0-3\u00b0 upward<\/option>\n            <option value=\"10\">Adjustable beyond 5\u00b0 upward<\/option>\n          <\/select>\n        <\/div>\n      <\/div>\n\n      <button id=\"gq-check-btn\" class=\"btn-calc\" type=\"button\">Check DarkSky Compliance<\/button>\n\n      <div id=\"gq-result\" class=\"result\">\n        <h3 id=\"gq-resultTitle\" class=\"result-title\"><\/h3>\n        <div id=\"gq-checklist\"><\/div>\n        <p class=\"disclaimer\">This checker implements DarkSky Approved Commercial Luminaire criteria per Program Guidelines v3.1 (October 2025). Official approval requires submission of ISO 17025 accredited photometric reports and a completed manufacturer application. Reference: darksky.org.<\/p>\n        <div class=\"cta-block\">\n          Need a DarkSky-aligned lighting design for your project? <br>\n          <a href=\"#ct-popup-801\">Request a Landscape Lighting Design Consultation &rarr;<\/a>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  <script>\n    document.addEventListener('DOMContentLoaded', () => {\n      const checkBtn = document.getElementById('gq-check-btn');\n\n      if (checkBtn) {\n        checkBtn.addEventListener('click', () => {\n          \/\/ \u83b7\u53d6\u8f93\u5165\u503c\n          const lumens = parseFloat(document.getElementById('gq-lumens').value) || 0;\n          const uplight = parseFloat(document.getElementById('gq-uplight').value) || 0;\n          const cct = parseInt(document.getElementById('gq-cct').value);\n          const dimming = document.getElementById('gq-dimming').value;\n          const cert = document.getElementById('gq-cert').value;\n          const mountHeight = parseFloat(document.getElementById('gq-mountHeight').value) || 0;\n          const highAngle = parseFloat(document.getElementById('gq-highAngle').value) || 0;\n          const distType = document.getElementById('gq-distType').value;\n          const shielding = document.getElementById('gq-shielding').value;\n          const tilt = parseInt(document.getElementById('gq-tilt').value);\n\n          const checks = [];\n\n          \/\/ 1. Uplight limit logic\n          const uplightLimit = lumens <= 1000 ? 5 : Math.min(lumens * 0.005, 50);\n          checks.push({\n            pass: uplight <= uplightLimit,\n            title: 'Uplight cap',\n            detail: `Commercial criteria: max ${uplightLimit.toFixed(1)} lumens (0.5% of output or 50 lm cap). Your luminaire: ${uplight} lumens.`\n          });\n\n          \/\/ 2. CCT\n          checks.push({\n            pass: cct <= 3000,\n            title: 'CCT ceiling (3000K nominal)',\n            detail: `DarkSky Approved caps CCT at 3000K nominal. Your luminaire: ${cct}K.`\n          });\n\n          \/\/ 3. Dimming (only checked if lumens > 500)\n          if (lumens > 500) {\n            let dimText = dimming === '10' ? 'dims to 10% or less' : (dimming === '30' ? 'dims to 30% only' : 'not dimmable');\n            checks.push({\n              pass: dimming === '10',\n              title: 'Dimming to 10% or less',\n              detail: `Required for luminaires over 500 lumens. Your luminaire: ${dimText}.`\n            });\n          }\n\n          \/\/ 4. Certification\n          checks.push({\n            pass: cert === 'yes',\n            title: 'Third-party electrical safety certification',\n            detail: `Required: UL \/ ETL \/ CSA \/ CE \/ TUV. Your luminaire: ${cert === 'yes' ? 'certified' : 'not certified'}.`\n          });\n\n          \/\/ 5. High-angle (only if mount height > 1.2m)\n          if (mountHeight > 1.2) {\n            const highAngleLimit = distType === 'TypeV' ? 5 : 3;\n            let distText = distType === 'TypeV' ? 'Type V\/VS' : 'other';\n            checks.push({\n              pass: highAngle <= highAngleLimit,\n              title: 'High-angle light cap (80\u00b0-90\u00b0 zone)',\n              detail: `Max ${highAngleLimit}% for ${distText} distributions. Your luminaire: ${highAngle}%.`\n            });\n          }\n\n          \/\/ 6. Tilt\n          checks.push({\n            pass: tilt <= 5,\n            title: 'Upward tilt adjustment',\n            detail: `Max 5\u00b0 upward tilt permitted. Your luminaire: ${tilt}\u00b0.`\n          });\n\n          \/\/ 7. Shielding (only if mount height > 1.2m)\n          if (mountHeight > 1.2) {\n            checks.push({\n              pass: shielding === 'yes',\n              title: 'Shielding option available',\n              detail: `Required for pole-mounted area \/ street \/ parking. Your luminaire: ${shielding === 'yes' ? 'shielding available' : 'no shielding option'}.`\n            });\n          }\n\n          \/\/ \u6e32\u67d3\u7ed3\u679c\n          const allPass = checks.every(c => c.pass);\n          const resultContainer = document.getElementById('gq-result');\n          const resultTitle = document.getElementById('gq-resultTitle');\n          const checklist = document.getElementById('gq-checklist');\n\n          resultContainer.className = `result active ${allPass ? 'pass' : 'fail'}`;\n          \n          resultTitle.textContent = allPass \n            ? '\u2713 Likely eligible for DarkSky Approved Commercial category' \n            : '\u2717 One or more criteria not met \u2014 not eligible without changes';\n\n          checklist.innerHTML = '';\n          \n          checks.forEach(c => {\n            const div = document.createElement('div');\n            div.className = 'check-item';\n            div.innerHTML = `\n              <div class=\"check-icon ${c.pass ? 'check-pass' : 'check-fail'}\">\n                ${c.pass ? '\u2713' : '\u2717'}\n              <\/div>\n              <div class=\"check-text\">\n                <strong>${c.title}<\/strong>\n                <span>${c.detail}<\/span>\n              <\/div>\n            `;\n            checklist.appendChild(div);\n          });\n        });\n      }\n    });\n  <\/script>\n<\/section>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>DarkSky Approved Commercial Luminaire Compliance Checker Enter the spec of a commercial outdoor luminaire to check compliance with DarkSky Approved Commercial Luminaire criteria (Program Guidelines v3.1, October 2025). This is an informational self-check, not an official approval. Luminaire total lumen output Initial total lumens (from LM-79 test report) Uplight output (lumens 90\u00b0-180\u00b0) From photometric file [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":2569,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-3921","page","type-page","status-publish","hentry"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"_links":{"self":[{"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/pages\/3921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/comments?post=3921"}],"version-history":[{"count":0,"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/pages\/3921\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/pages\/2569"}],"wp:attachment":[{"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/media?parent=3921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}