div { background: conic-gradient(red, yellow, lime, aqua, blue, magenta, red); border-radius: 50% }
margin
padding
border
margin-{block,inline}-{start,end}
padding-{block,inline}-{start,end}
border-{block,inline}-{start,end}-{width,style,color}
-webkit
border-{block,inline}-{start,end}
#gallery { scroll-snap-type: x mandatory; overflow-x: scroll; display: flex; } #gallery img { scroll-snap-align: center; }
env()
viewport-fit
viewport
cover
<meta name="viewport" content="viewport-fit: cover" /> <style> #box { margin-top: env(safe-area-inset-top); margin-left: env(safe-area-inset-left); margin-bottom: env(safe-area-inset-bottom); margin-right: env(safe-area-inset-right); } </style> <div id=box></div>
DedicatedWorker.requestAnimationFrame()
const offscreenCanvas = new OffscreenCanvas(100, 100); const ctx = offscreenCanvas.getContext("2d"); ctx.fillRect(0, 0, 10, 10);
const canvasElement = document.getElementById("mycanvas") const offscreenCanvas = canvasElement.transferControlToOffscreen(); const ctx = offscreenCanvas.getContext("2d"); ctx.fillRect(0, 0, 10, 10);
self.onmessage = function(ev) { const offscreenCanvas = ev.data; const ctx = offscreenCanvas.getContext("2d"); let x = 0; const draw = function() { ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); ctx.fillRect(x, 0, 10, 10); x = (x + 1) % ctx.canvas.width; requestAnimationFrame(draw); }; draw(0); }
const worker = new Worker("worker.js"); const offscreenCanvas = document.getElementById("canvas").transferControlToOffscreen(); worker.postMessage(offscreenCanvas, [offscreenCanvas]);
Element.toggleAttribute()
Element.classList.toggle
Element.setAttribute()
Array.prototype.flat()
Array.prototype.flatMap()
flat()
KeyboardEvent.code
rtt
downlink
ect
navigator.connection.rtt
navigator.connection.downlink
navigator.connection.effectiveType
ServiceWorkerRegistration.update()
navigator.serviceWorker
SecurityError
my_net_sync
my_resource
await navigator.locks.request('my_resource', async lock => { const url = await look_up_in_database(); const response = await fetch(url); const body = await response.text(); await store_body_in_database(body); });
RTCRtpParameters.headerExtensions
RTCRtpSender.getParameters()
PeerConnection
RTCRtpSender
RTCRtpReceiver
getCapabilities()
HTMLMediaElement.stalled
stalled
document.createTouchList()
Touch()
window.confirm()
false