css-houdini-fractals
Version:
Fractals Drawing with CSS Houdini
95 lines (91 loc) • 3.79 kB
HTML
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Houdini Fractals Demo</title>
<link rel="shortcut icon" href="favicon.ico" />
<link rel="stylesheet" href="fractals.css">
</head>
<body>
<h1><span>CSS</span> <span>Houdini</span> <span>Fractals</span> <span>Demo</span></h1>
<div class="flex">
<section class="demo fractals"></section>
<section>
<div>
<label>Colors</label>
<select id="colors">
<option selected>red green blue cyan magenta yellow</option>
<option>red green blue</option>
<option>black</option>
<option>#000 #222 #444 #666 #888 #aaa #ccc</option>
</select>
</div>
<div>
<label>Shape</label>
<select id="shape">
<option value="line" selected>line</option>
<option value="circle">circle</option>
<option value="square">square</option>
</select>
</div>
<div>
<label>Angle</label>
<input id="angle" type="range" min="0" max="360" value="30">
</div>
<div>
<label>Starting Length %</label>
<input id="starting-length-percent" type="range" min="5" max="95" value="22">
</div>
<div>
<label>Next Line Size</label>
<input id="next-line-size" type="range" min="0.1" max="0.9" step="0.1" value=".8">
</div>
<div>
<label>Max Draw Count</label>
<input id="max-draw-count" type="range" min="0" max="50000" step="1000" value="10000">
</div>
<div>
<label>Show Origin</label>
<select id="show-origin">
<option value="1">Yes</option>
<option value="0" selected>No</option>
</select>
</div>
<div>
<label>Debug to Console</label>
<select id="debug-to-console">
<option value="1">Yes</option>
<option value="0" selected>No</option>
</select>
</div>
<div class="center">
<a href="https://github.com/ConradSollitt/css-houdini-fractals">https://github.com/ConradSollitt/css-houdini-fractals</a>
</div>
</section>
</div>
<script type="module">
// Register the Fractals Paint Worklet
(async function () {
if (CSS['paintWorklet'] === undefined) {
await import('https://unpkg.com/css-paint-polyfill');
}
CSS.paintWorklet.addModule('fractals.js');
})();
// Setup page form
(function () {
const demo = document.querySelector('.demo');
const inputs = document.querySelectorAll('input, select');
for (const input of inputs) {
input.setAttribute('current-value', input.value);
input.oninput = () => {
demo.style.setProperty('--' + input.id, input.value);
input.setAttribute('current-value', input.value);
};
}
})();
</script>
<!-- Show a warning for Older browsers (IE, Older Mobile Devices, etc) -->
<script nomodule src="https://cdn.jsdelivr.net/npm/dataformsjs@5/js/web-components/old-browser-warning.min.js"></script>
</body>
</html>