Skip to content

Instantly share code, notes, and snippets.

@awakeningspirit
Created September 4, 2024 04:42
Show Gist options
  • Save awakeningspirit/3c0f33b998773ab15e0341e1ba7ef90a to your computer and use it in GitHub Desktop.
Save awakeningspirit/3c0f33b998773ab15e0341e1ba7ef90a to your computer and use it in GitHub Desktop.
"The Marvelous Julia"
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>The Marvelous Julia</title>
</head>
<body>
<canvas id="juliaSetCanvas"></canvas>
</body>
</html>
const _0x471913 = _0x2572;
(function (_0x101ff1, _0x384382) {
const _0x59e9a1 = _0x2572,
_0x388bde = _0x101ff1();
while (!![]) {
try {
const _0x16e07c =
parseInt(_0x59e9a1(0x1e2)) / 0x1 +
(parseInt(_0x59e9a1(0x1cd)) / 0x2) * (parseInt(_0x59e9a1(0x1db)) / 0x3) +
(parseInt(_0x59e9a1(0x1ec)) / 0x4) * (-parseInt(_0x59e9a1(0x1bc)) / 0x5) +
parseInt(_0x59e9a1(0x1c7)) / 0x6 +
-parseInt(_0x59e9a1(0x1e1)) / 0x7 +
-parseInt(_0x59e9a1(0x1cf)) / 0x8 +
parseInt(_0x59e9a1(0x1c8)) / 0x9;
if (_0x16e07c === _0x384382) break;
else _0x388bde["push"](_0x388bde["shift"]());
} catch (_0x50f832) {
_0x388bde["push"](_0x388bde["shift"]());
}
}
})(_0x45d1, 0xe306a);
const canvas = document["getElementById"](_0x471913(0x1c6)),
gl = canvas[_0x471913(0x1ea)](_0x471913(0x1e6));
function _0x2572(_0xb98484, _0x56e0fc) {
const _0x45d141 = _0x45d1();
return (
(_0x2572 = function (_0x257264, _0x65795b) {
_0x257264 = _0x257264 - 0x1ba;
let _0x4359a1 = _0x45d141[_0x257264];
return _0x4359a1;
}),
_0x2572(_0xb98484, _0x56e0fc)
);
}
!gl ? alert(_0x471913(0x1c3)) : initWebGL();
function initWebGL() {
const _0x4d757a = _0x471913,
_0x340beb = _0x4d757a(0x1eb),
_0x526c74 = _0x4d757a(0x1dc);
function _0x4c7045(_0x1a3cad, _0x1bd77e, _0x2990ab) {
const _0x59b851 = _0x4d757a,
_0x545fb0 = _0x1a3cad["createShader"](_0x1bd77e);
_0x1a3cad[_0x59b851(0x1e0)](_0x545fb0, _0x2990ab),
_0x1a3cad[_0x59b851(0x1c5)](_0x545fb0);
if (!_0x1a3cad["getShaderParameter"](_0x545fb0, _0x1a3cad[_0x59b851(0x1df)]))
return (
console["error"](_0x59b851(0x1d5), _0x1a3cad[_0x59b851(0x1d3)](_0x545fb0)),
_0x1a3cad["deleteShader"](_0x545fb0),
null
);
return _0x545fb0;
}
const _0x404650 = _0x4c7045(gl, gl[_0x4d757a(0x1d1)], _0x340beb),
_0x2e4a3e = _0x4c7045(gl, gl[_0x4d757a(0x1d2)], _0x526c74);
if (!_0x404650 || !_0x2e4a3e) {
console[_0x4d757a(0x1bb)](_0x4d757a(0x1ba));
return;
}
const _0x37d4d9 = gl["createProgram"]();
gl[_0x4d757a(0x1be)](_0x37d4d9, _0x404650),
gl["attachShader"](_0x37d4d9, _0x2e4a3e),
gl[_0x4d757a(0x1bf)](_0x37d4d9);
if (!gl[_0x4d757a(0x1c4)](_0x37d4d9, gl[_0x4d757a(0x1e7)])) {
console[_0x4d757a(0x1bb)](
"Program\x20link\x20error:",
gl["getProgramInfoLog"](_0x37d4d9)
);
return;
}
const _0x556d38 = gl[_0x4d757a(0x1d0)](_0x37d4d9, _0x4d757a(0x1d9)),
_0x8dcbaa = gl[_0x4d757a(0x1bd)](_0x37d4d9, _0x4d757a(0x1de)),
_0x1d17cc = gl[_0x4d757a(0x1bd)](_0x37d4d9, "resolution"),
_0x4d42d9 = gl[_0x4d757a(0x1d7)]();
gl[_0x4d757a(0x1e9)](gl[_0x4d757a(0x1d6)], _0x4d42d9);
const _0x319298 = [-0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x1, 0x1];
gl[_0x4d757a(0x1cb)](
gl[_0x4d757a(0x1d6)],
new Float32Array(_0x319298),
gl["STATIC_DRAW"]
);
function _0x42a975() {
const _0x3e7d81 = _0x4d757a;
(canvas[_0x3e7d81(0x1c1)] = window["innerWidth"] * window[_0x3e7d81(0x1c2)]),
(canvas["height"] = window[_0x3e7d81(0x1e8)] * window[_0x3e7d81(0x1c2)]),
gl[_0x3e7d81(0x1ca)](
0x0,
0x0,
canvas[_0x3e7d81(0x1c1)],
canvas[_0x3e7d81(0x1c0)]
);
}
window[_0x4d757a(0x1e5)](_0x4d757a(0x1d8), _0x42a975), _0x42a975();
function _0x503a37(_0x5eb557) {
const _0x55733d = _0x4d757a;
(_0x5eb557 *= 0.001),
gl[_0x55733d(0x1d4)](0x0, 0x0, 0x0, 0x1),
gl[_0x55733d(0x1c9)](gl[_0x55733d(0x1cc)]),
gl[_0x55733d(0x1ce)](_0x37d4d9),
gl[_0x55733d(0x1e9)](gl[_0x55733d(0x1d6)], _0x4d42d9),
gl["enableVertexAttribArray"](_0x556d38),
gl["vertexAttribPointer"](
_0x556d38,
0x2,
gl[_0x55733d(0x1da)],
![],
0x0,
0x0
),
gl[_0x55733d(0x1e4)](_0x8dcbaa, _0x5eb557),
gl[_0x55733d(0x1dd)](_0x1d17cc, canvas[_0x55733d(0x1c1)], canvas["height"]),
gl[_0x55733d(0x1e3)](gl["TRIANGLE_STRIP"], 0x0, 0x4),
requestAnimationFrame(_0x503a37);
}
requestAnimationFrame(_0x503a37);
}
function _0x45d1() {
const _0x3a6141 = [
"COLOR_BUFFER_BIT",
"1308854SEUhmn",
"useProgram",
"11694104zeTRIE",
"getAttribLocation",
"VERTEX_SHADER",
"FRAGMENT_SHADER",
"getShaderInfoLog",
"clearColor",
"Shader\x20compile\x20error:",
"ARRAY_BUFFER",
"createBuffer",
"resize",
"position",
"FLOAT",
"3ihSxsG",
"#version\x20300\x20es\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20precision\x20highp\x20float;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20out\x20vec4\x20fragColor;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20uniform\x20float\x20time;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20uniform\x20vec2\x20resolution;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20int\x20MAX_ITERATIONS\x20=\x20128;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20float\x20EPSILON\x20=\x200.0001;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20float\x20STEP_SIZE\x20=\x200.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20float\x20MIN_DISTANCE\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20float\x20MAX_DISTANCE\x20=\x2020.0;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20rotate(vec3\x20p,\x20float\x20angle,\x20vec3\x20axis)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20a\x20=\x20normalize(axis);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20s\x20=\x20sin(angle);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20c\x20=\x20cos(angle);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20r\x20=\x201.0\x20-\x20c;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mat3\x20m\x20=\x20mat3(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20a.x\x20*\x20a.x\x20*\x20r\x20+\x20c,\x20a.y\x20*\x20a.x\x20*\x20r\x20+\x20a.z\x20*\x20s,\x20a.z\x20*\x20a.x\x20*\x20r\x20-\x20a.y\x20*\x20s,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20a.x\x20*\x20a.y\x20*\x20r\x20-\x20a.z\x20*\x20s,\x20a.y\x20*\x20a.y\x20*\x20r\x20+\x20c,\x20a.z\x20*\x20a.y\x20*\x20r\x20+\x20a.x\x20*\x20s,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20a.x\x20*\x20a.z\x20*\x20r\x20+\x20a.y\x20*\x20s,\x20a.y\x20*\x20a.z\x20*\x20r\x20-\x20a.x\x20*\x20s,\x20a.z\x20*\x20a.z\x20*\x20r\x20+\x20c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20m\x20*\x20p;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20juliaDE(vec3\x20pos,\x20vec4\x20c)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20z\x20=\x20vec4(pos,\x200.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20md2\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20mz2\x20=\x20dot(z,\x20z);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20MAX_ITERATIONS;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20md2\x20*=\x204.0\x20*\x20mz2;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z\x20=\x20vec4(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z.x\x20*\x20z.x\x20-\x20z.y\x20*\x20z.y\x20-\x20z.z\x20*\x20z.z\x20-\x20z.w\x20*\x20z.w,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x202.0\x20*\x20z.x\x20*\x20z.y,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x202.0\x20*\x20z.x\x20*\x20z.z,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x202.0\x20*\x20z.x\x20*\x20z.w\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x20+\x20c;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20mz2\x20=\x20dot(z,\x20z);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(mz2\x20>\x204.0)\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200.25\x20*\x20sqrt(mz2\x20/\x20md2)\x20*\x20log(mz2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20estimateNormal(vec3\x20p,\x20vec4\x20c)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20e\x20=\x20vec2(EPSILON,\x200.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20normalize(vec3(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20juliaDE(p\x20+\x20e.xyy,\x20c)\x20-\x20juliaDE(p\x20-\x20e.xyy,\x20c),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20juliaDE(p\x20+\x20e.yxy,\x20c)\x20-\x20juliaDE(p\x20-\x20e.yxy,\x20c),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20juliaDE(p\x20+\x20e.yyx,\x20c)\x20-\x20juliaDE(p\x20-\x20e.yyx,\x20c)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20render(vec3\x20ro,\x20vec3\x20rd,\x20vec4\x20c)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20t\x20=\x20MIN_DISTANCE;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20MAX_ITERATIONS;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20p\x20=\x20ro\x20+\x20rd\x20*\x20t;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20d\x20=\x20juliaDE(p,\x20c);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(d\x20<\x20EPSILON\x20*\x20t\x20||\x20t\x20>\x20MAX_DISTANCE)\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20t\x20+=\x20d\x20*\x20STEP_SIZE;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(t\x20<\x20MAX_DISTANCE)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20p\x20=\x20ro\x20+\x20rd\x20*\x20t;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20normal\x20=\x20estimateNormal(p,\x20c);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20lightDir\x20=\x20normalize(vec3(1.0,\x201.0,\x20-1.0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20diff\x20=\x20max(dot(normal,\x20lightDir),\x200.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20amb\x20=\x200.1;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20spec\x20=\x20pow(max(dot(reflect(-lightDir,\x20normal),\x20-rd),\x200.0),\x2032.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20albedo\x20=\x200.5\x20+\x200.5\x20*\x20cos(6.28318\x20*\x20(vec3(0.0,\x200.33,\x200.67)\x20+\x200.3\x20*\x20normal.z\x20+\x200.1\x20*\x20vec3(time)));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20albedo\x20*\x20(amb\x20+\x20diff)\x20+\x20spec\x20*\x20vec3(0.3);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec3(0.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20uv\x20=\x20(gl_FragCoord.xy\x20-\x200.5\x20*\x20resolution.xy)\x20/\x20resolution.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20ro\x20=\x20vec3(0.0,\x200.0,\x20-3.5);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20rd\x20=\x20normalize(vec3(uv,\x201.0));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ro\x20=\x20rotate(ro,\x20time\x20*\x200.3,\x20vec3(0.0,\x201.0,\x200.0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20rd\x20=\x20rotate(rd,\x20time\x20*\x200.3,\x20vec3(0.0,\x201.0,\x200.0));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20c\x20=\x200.7\x20*\x20vec4(cos(time\x20*\x200.4),\x20sin(time\x20*\x200.3),\x20cos(time\x20*\x200.2),\x20sin(time\x20*\x200.1));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20color\x20=\x20render(ro,\x20rd,\x20c);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fragColor\x20=\x20vec4(color,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}",
"uniform2f",
"time",
"COMPILE_STATUS",
"shaderSource",
"333921NrInkq",
"504752WZxJgL",
"drawArrays",
"uniform1f",
"addEventListener",
"webgl2",
"LINK_STATUS",
"innerHeight",
"bindBuffer",
"getContext",
"#version\x20300\x20es\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20in\x20vec4\x20position;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20position;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}",
"17148BPmcBu",
"Shader\x20creation\x20failed",
"error",
"30qhWcLz",
"getUniformLocation",
"attachShader",
"linkProgram",
"height",
"width",
"devicePixelRatio",
"WebGL\x202\x20not\x20supported",
"getProgramParameter",
"compileShader",
"juliaSetCanvas",
"7106472zfJwqJ",
"1093455SWhYAw",
"clear",
"viewport",
"bufferData"
];
_0x45d1 = function () {
return _0x3a6141;
};
return _0x45d1();
}
body,
html {
margin: 0;
padding: 0;
overflow: hidden;
}
canvas {
width: 100%;
height: 100%;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment