UNPKG

hydra-element

Version:

A custom element for wrapping the hydra-synth engine

58 lines (53 loc) 1.64 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>&lt;hydra-element&gt;</title> <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🍬</text></svg>"> <style> body { margin: 0; font-family: monospace; background-color: #242427; } textarea { width: 100%; height: 100%; z-index: 1; position: fixed; color: #d6bb21; background: transparent; border: 0; } textarea:focus { outline: none; } hydra-element { width: 100%; height: 100vh; display: flex; } </style> <script defer> const keypressHandler = (event) => { if (event.key === '\n') { document.querySelector('hydra-element').code = document.querySelector('textarea').value } } window.onload = () => document.querySelector('hydra-element').transforms = [{ name: 'noixe', type: 'src', inputs: [ { type: 'float', name: 'scale', default: 5 }, { type: 'float', name: 'offset', default: 0.5 } ], glsl: `return vec4(vec3(_noise(vec3(_st*scale, offset*time))), 0.5);` }] </script> <script type="module" src="./index.js"></script> </head> <body onkeypress="keypressHandler(event)"> <textarea name="editor" spellcheck="false"></textarea> <hydra-element audio="true"></hydra-element> </body> </html>