{"slug": "building-a-zero-dependency-cyberpunk-ai-prompt-widget-for-website-sidebars-full", "title": "Building a Zero-Dependency Cyberpunk AI Prompt Widget for Website Sidebars (Full Source Code)", "summary": "A developer built a zero-dependency, client-side \"AI Prompt Architect Matrix\" widget that lets visitors assemble and copy Midjourney V6 prompt structures with a single click. The self-contained HTML, inline CSS, and JavaScript block is designed to drop into a 360px website sidebar or CMS HTML block, and includes a gamified session tracker aimed at increasing time-on-page metrics without server-side tracking frameworks or plugins.", "body_md": "Hey dev community! 👋\n\nI wanted to find a clean way to increase user time-on-page metrics for a tech blog without bloating the server with heavy tracking frameworks or bulky WordPress plugins.\n\nTo solve this, I engineered a highly compact, hyper-dark cyberpunk **AI Prompt Architect Matrix Widget** that runs 100% client-side. It allows visitors to instantly mix and match Midjourney V6 prompt structures and copy them with a single click. It even features a built-in gamified session tracker to keep users engaged.\n\nIt is completely self-contained—meaning **all HTML, inline CSS, and local JavaScript reside in one single block**. You can drop it straight into any standard 360px website sidebar, Ghost layout, or custom CMS HTML block.\n\nHere is the complete, production-ready code block. Feel free to copy-paste it directly into your project:\n\n```\n[<div id=\"ultimate-ai-style-architect-matrix\">\n<style>\n#ultimate-ai-style-architect-matrix{width:100%;max-width:360px;margin:auto;background:#090514;color:#f5edff;border:1px solid #c084fc;border-radius:16px;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;box-shadow:0 0 25px #c084fc25}\n#ultimate-ai-style-architect-matrix *{box-sizing:border-box}\n.uasm-head{padding:16px;border-bottom:1px solid #c084fc55;background:linear-gradient(135deg,#c084fc12,#22d3ee08)}\n.uasm-status{font-size:8px;color:#22d3ee;letter-spacing:1.2px;margin-bottom:7px}\n.uasm-title{margin:0;font-size:16px;line-height:1.3}\n.uasm-sub{margin:6px 0 0;color:#aa9ab9;font-size:8px;line-height:1.5}\n.uasm-body{padding:14px}\n.uasm-label{display:flex;justify-content:space-between;margin-bottom:6px;color:#e9d5ff;font-size:8px;font-weight:800;text-transform:uppercase}\n.uasm-code{color:#22d3ee}\n.uasm-group{margin-bottom:12px}\n.uasm-select{width:100%;padding:10px;border:1px solid #c084fc55;border-radius:9px;background:#10081b;color:#fff;outline:none;font:inherit;font-size:9px}\n.uasm-rangebox{padding:10px;border:1px solid #c084fc40;border-radius:9px;background:#08040f}\n.uasm-range-top{display:flex;justify-content:space-between;margin-bottom:8px;font-size:8px;color:#aa9ab9}\n.uasm-value{color:#22d3ee;font-weight:bold}\n#uasm-variance{width:100%;accent-color:#22d3ee}\n.uasm-output{border:1px solid #22d3ee35;border-radius:10px;background:#030208;margin-top:14px;overflow:hidden}\n.uasm-output-head{padding:7px 9px;border-bottom:1px solid #22d3ee22;color:#22d3ee;font-size:7px;letter-spacing:1px}\n.uasm-prompt{padding:10px;min-height:115px;max-height:170px;overflow:auto;font-size:8px;line-height:1.65;color:#ddd0e8}\n.uasm-copy{width:100%;margin-top:11px;padding:12px;border:1px solid #c084fc;border-radius:9px;background:linear-gradient(90deg,#c084fc,#22d3ee);color:#090514;font:inherit;font-size:9px;font-weight:900;cursor:pointer}\n.uasm-copy:active{transform:scale(.98)}\n.uasm-copy.done{background:#67e8f9}\n.uasm-counter{display:flex;justify-content:space-between;margin-top:9px;padding:7px 9px;border:1px solid #c084fc25;border-radius:8px;color:#aa9ab9;font-size:7px}\n.uasm-count{color:#c084fc;font-weight:bold}\n.uasm-vault{display:none;margin-top:11px;padding:11px;border:1px solid #22d3ee;border-radius:10px;background:#22d3ee09}\n.uasm-vault.show{display:block}\n.uasm-vault-title{margin:0;color:#fff;font-size:11px}\n.uasm-vault-text{margin:6px 0 9px;color:#aa9ab9;font-size:7px;line-height:1.5}\n.uasm-share{width:100%;padding:9px;border:1px solid #22d3ee;border-radius:8px;background:#22d3ee;color:#061015;font:inherit;font-size:7px;font-weight:900;cursor:pointer}\n.uasm-site{margin:11px 0 0;padding:10px;border:1px solid #c084fc45;border-radius:9px;text-align:center;background:#c084fc08}\n.uasm-site a{color:#22d3ee;text-decoration:none;font-size:8px;font-weight:900}\n.uasm-footer{margin:0 14px;padding:12px 0;border-top:1px solid #c084fc44;text-align:center}\n.uasm-footer a{color:#d9c2eb;text-decoration:none;font-size:7px}\n.uasm-toast{position:absolute;left:50%;bottom:55px;transform:translate(-50%,10px);opacity:0;width:calc(100% - 28px);padding:9px;border:1px solid #22d3ee88;border-radius:8px;background:#071016;color:#eaffff;text-align:center;font-size:7px;pointer-events:none}\n.uasm-toast.show{animation:uasmToast 2s ease}\n@keyframes uasmToast{0%{opacity:0;transform:translate(-50%,10px)}15%,75%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-5px)}}\n</style>\n\n<div class=\"uasm-head\">\n  <div class=\"uasm-status\">● PROMPTFLIP // STYLE MATRIX ONLINE</div>\n  <h2 class=\"uasm-title\">The Ultimate AI Style Architect Matrix</h2>\n  <p class=\"uasm-sub\">Build a visual prompt architecture in seconds.</p>\n</div>\n\n<div class=\"uasm-body\">\n\n  <div class=\"uasm-group\">\n    <div class=\"uasm-label\">\n      <span>Core Creative Subject</span>\n      <span class=\"uasm-code\">A</span>\n    </div>\n    <select id=\"uasm-subject\" class=\"uasm-select\">\n      <option>Cyberpunk Overlord</option>\n      <option>Biomechanical Dragon Nest</option>\n      <option>Hyper-Realistic Space Colony</option>\n    </select>\n  </div>\n\n  <div class=\"uasm-group\">\n    <div class=\"uasm-label\">\n      <span>Aesthetic Medium &amp; Pipeline</span>\n      <span class=\"uasm-code\">B</span>\n    </div>\n    <select id=\"uasm-medium\" class=\"uasm-select\">\n      <option>8K Unreal Engine 5 Render</option>\n      <option>Vintage Polaroid Film</option>\n      <option>Retro 16-Bit Pixel Art</option>\n    </select>\n  </div>\n\n  <div class=\"uasm-group\">\n    <div class=\"uasm-label\">\n      <span>Stylize Variance Vector</span>\n      <span class=\"uasm-code\">C</span>\n    </div>\n    <div class=\"uasm-rangebox\">\n      <div class=\"uasm-range-top\">\n        <span>--s VALUE</span>\n        <span id=\"uasm-value\" class=\"uasm-value\">500</span>\n      </div>\n      <input id=\"uasm-variance\" type=\"range\" min=\"0\" max=\"1000\" value=\"500\">\n    </div>\n  </div>\n\n  <div class=\"uasm-output\">\n    <div class=\"uasm-output-head\">GENERATED PROMPT ARCHITECTURE</div>\n    <div id=\"uasm-prompt\" class=\"uasm-prompt\"></div>\n  </div>\n\n  <button id=\"uasm-copy\" class=\"uasm-copy\" type=\"button\">\n    ⧉ COPY PROMPT\n  </button>\n\n  <div class=\"uasm-counter\">\n    <span>UNIQUE GENERATIONS</span>\n    <span id=\"uasm-counter\" class=\"uasm-count\">0 / 3</span>\n  </div>\n\n  <div id=\"uasm-vault\" class=\"uasm-vault\">\n    <h3 class=\"uasm-vault-title\">⚡ VIP PROMPT VAULT UNLOCKED</h3>\n    <p class=\"uasm-vault-text\">\n      You completed 3 different architectures. Continue the workflow with PromptFlip.\n    </p>\n    <button id=\"uasm-share\" class=\"uasm-share\" type=\"button\">\n      ↗ COPY PROMPTFLIP SHARE MESSAGE\n    </button>\n\n    <div class=\"uasm-site\">\n      <a href=\"https://promptflip.netlify.app\" target=\"_blank\" rel=\"noopener noreferrer\">\n        ⚡ OPEN PROMPTFLIP →\n      </a>\n    </div>\n  </div>\n\n</div>\n\n<div class=\"uasm-footer\">\n  <a href=\"https://promptflip.netlify.app\" target=\"_blank\" rel=\"noopener noreferrer\">\n    🚀 Extract Full Styles Natively via PromptFlip →\n  </a>\n</div>\n\n<div id=\"uasm-toast\" class=\"uasm-toast\"></div>\n\n<script>\n(function(){\n\"use strict\";\n\nvar subject=document.getElementById(\"uasm-subject\");\nvar medium=document.getElementById(\"uasm-medium\");\nvar variance=document.getElementById(\"uasm-variance\");\nvar value=document.getElementById(\"uasm-value\");\nvar output=document.getElementById(\"uasm-prompt\");\nvar copy=document.getElementById(\"uasm-copy\");\nvar counter=document.getElementById(\"uasm-counter\");\nvar vault=document.getElementById(\"uasm-vault\");\nvar share=document.getElementById(\"uasm-share\");\nvar toast=document.getElementById(\"uasm-toast\");\n\nvar count=0;\nvar signatures=[];\n\nvar subjects={\n\"Cyberpunk Overlord\":\"rain-soaked neon megacity command citadel, towering holographic architecture, cybernetic interfaces, reflective alloy structures, volumetric atmosphere, dominant central subject, cinematic low-angle framing, deep perspective\",\n\"Biomechanical Dragon Nest\":\"vast biomechanical cavern nest, organic-metal architecture, colossal chambers, intricate mechanical scales, engineered bone structures, glowing energy channels, microscopic detail, dramatic cinematic composition, layered depth\",\n\"Hyper-Realistic Space Colony\":\"massive orbital space colony overlooking a luminous planetary horizon, sophisticated habitat sectors, precision engineering, illuminated transit systems, realistic materials, atmospheric reflections, monumental scale, cinematic establishing composition\"\n};\n\nvar mediums={\n\"8K Unreal Engine 5 Render\":\"physically based materials, ray-traced global illumination, cinematic volumetric lighting, ultra-detailed 8K rendering, realistic reflections, crisp micro-geometry, high dynamic range\",\n\"Vintage Polaroid Film\":\"authentic vintage Polaroid character, soft optical imperfections, subtle film grain, instant-film exposure, natural analog color shifts, gentle highlight bloom, tactile photographic texture\",\n\"Retro 16-Bit Pixel Art\":\"carefully constructed 16-bit pixel-art aesthetic, deliberate pixel clusters, limited visual palette, crisp pixel edges, controlled dithering, nostalgic game-era composition\"\n};\n\nfunction buildPrompt(){\nreturn subjects[subject.value]+\", \"+mediums[medium.value]+\", precise material separation, sophisticated lighting hierarchy, controlled highlights and shadows, atmospheric depth, intentional negative space, coherent visual storytelling, premium production design, technically polished final composition --ar 16:9 --q 2 --s \"+variance.value;\n}\n\nfunction render(){\nvalue.textContent=variance.value;\noutput.textContent=buildPrompt();\n}\n\nfunction toastMessage(message){\ntoast.textContent=message;\ntoast.classList.remove(\"show\");\nvoid toast.offsetWidth;\ntoast.classList.add(\"show\");\n}\n\nfunction fallback(text,success){\nvar area=document.createElement(\"textarea\");\narea.value=text;\narea.style.position=\"fixed\";\narea.style.left=\"-9999px\";\ndocument.body.appendChild(area);\narea.focus();\narea.select();\n\nvar ok=false;\ntry{ok=document.execCommand(\"copy\");}catch(e){ok=false;}\n\ndocument.body.removeChild(area);\n\nif(ok){success();}\nelse{toastMessage(\"Clipboard unavailable. Please copy manually.\");}\n}\n\nfunction copyText(text,success){\nif(navigator.clipboard && navigator.clipboard.writeText){\nnavigator.clipboard.writeText(text).then(success).catch(function(){\nfallback(text,success);\n});\n}else{\nfallback(text,success);\n}\n}\n\nfunction register(){\nvar signature=subject.value+\"|\"+medium.value+\"|\"+variance.value;\n\nif(signatures.indexOf(signature)!==-1){\ntoastMessage(\"Choose a new configuration for another sequence.\");\nreturn;\n}\n\nsignatures.push(signature);\n\nif(count<3){count++;}\n\ncounter.textContent=count+\" / 3\";\n\nif(count===3){\nvault.classList.add(\"show\");\ntoastMessage(\"⚡ VIP PROMPT VAULT UNLOCKED\");\n}else{\ntoastMessage(\"✓ Generation \"+count+\" / 3 completed\");\n}\n}\n\nsubject.addEventListener(\"change\",render);\nmedium.addEventListener(\"change\",render);\nvariance.addEventListener(\"input\",render);\n\ncopy.addEventListener(\"click\",function(){\nregister();\n\ncopyText(buildPrompt(),function(){\ncopy.classList.add(\"done\");\ncopy.textContent=\"✓ COPIED\";\n\nsetTimeout(function(){\ncopy.classList.remove(\"done\");\ncopy.textContent=\"⧉ COPY PROMPT\";\n},1500);\n});\n});\n\nshare.addEventListener(\"click\",function(){\nvar liveUrl=window.location.href;\n\nvar message=\n\"⚡ I found a powerful AI visual prompt tool. \"+\n\"Try PromptFlip to reverse-engineer visual references into detailed prompt architecture: \"+\n\"https://promptflip.netlify.app \"+\n\" | Widget source: \"+liveUrl;\n\ncopyText(message,function(){\ntoastMessage(\"↗ PromptFlip share message copied!\");\n});\n});\n\nrender();\n\n})();\n</script>\n</div>]\n```\n\nIf you want to integrate this asset natively into your layout, you can quickly adjust the primary styling tokens directly within the first line of the code block:\n\n`#0d0818` for your site's native hex color code.`#a855f7` (Neon Purple) or `#38bdf8` (Cyan Output Text) to match your brand palette.", "url": "https://wpnews.pro/news/building-a-zero-dependency-cyberpunk-ai-prompt-widget-for-website-sidebars-full", "canonical_source": "https://dev.to/dev_alex_matrix/building-a-zero-dependency-cyberpunk-ai-prompt-widget-for-website-sidebars-full-source-code-23aa", "published_at": "2026-09-16 11:05:30+00:00", "updated_at": "2026-09-16 11:12:53.079023+00:00", "lang": "en", "topics": ["ai-tools", "generative-ai", "developer-tools"], "entities": ["Midjourney"], "alternates": {"html": "https://wpnews.pro/news/building-a-zero-dependency-cyberpunk-ai-prompt-widget-for-website-sidebars-full", "markdown": "https://wpnews.pro/news/building-a-zero-dependency-cyberpunk-ai-prompt-widget-for-website-sidebars-full.md", "text": "https://wpnews.pro/news/building-a-zero-dependency-cyberpunk-ai-prompt-widget-for-website-sidebars-full.txt", "jsonld": "https://wpnews.pro/news/building-a-zero-dependency-cyberpunk-ai-prompt-widget-for-website-sidebars-full.jsonld"}}