Divtober Speedrun

October is the month of “Divtober”, where artists are challenged to draw different things using CSS and a single HTML element. Each day they get a theme to work with. You can find some nice works on CodePen, all tagged #divtober. Here’s a small selection: See the Pen Single div CSS chili garlic sauce by …

New WebKit Features in Safari 15

If you’re looking for a technical roundup of what’s new in Safari 15, head over to the WebKit blog With the release of Safari 15 for macOS Monterey, iPadOS 15, iOS 15, and watchOS, as well as macOS Big Sur and macOS Catalina, WebKit brings significant advancements in privacy and security, improved interoperability, and a …

Adobe Photoshop in the browser thanks to WASM/Emscripten, Web Components, and Project Fugu

At (the ongoing) Adobe MAX 2021, Adobe announced that Photoshop and Illustrator are coming to the web, with Photoshop already in beta. Your collaborators can open and view your work in the browser and provide feedback. You’ll also be able to make basic edits without having to download or launch the apps. It’s not the …

Jetson ONE — Personal Electric Aerial Vehicle

(Warning: Spinning Imagery 😵‍💫) Jetson ONE is an ultralight and extremely fun to fly recreational all-electric personal vertical take-off and landing (VTOL) aircraft, powered with eight powerful electric motors. For a mere 92,000 USD this baby can be yours. Orders are limited and delivery is expected in 2023. Flight time of 20 minutes. Jetson ONE …

100 Bytes of CSS to look great everywhere

Interesting little CSS snippet by Shawn Wang. This should be simple drop-in css to look good on most displays It’s an enhancement that builds on top of the User-Agent provided styles to make your content more easily consumable by limiting line-length, centring the content column, adding some whitespace, bumping up the font-size, etc. html { …

Cleanup.pictures — Remove objects, people, text and defects from any picture

Load in a photo, and simply paint on top of the part you want to see removed. Works very good I must say. Was expecting some WASM here, but turns out the heaving lifting is done by “LaMa” — an open-source model from Samsung’s AI Lab to automatically & acurately redraw the areas that you …

Media Queries Level 4: Media Query Range Contexts (Media Query Ranges)

A media feature like width can take its value from a range. When used, we prefix these with min- or max- to express “minimum condition” or “maximum condition” constraints. @media (min-width: 300px) and (max-width: 750px) { … } In CSS Media Queries Level 4 these type of Media Features can now be written as a …

Tonic — A thin wrapper around Web Components

A Low Profile Component Framework – Stable, minimal, easy to audit, zero-dependencies and build-tool-free. Basic component definition is really simple: import Tonic from "https://cdn.skypack.dev/@optoolco/tonic" class MyGreeting extends Tonic { render () { return this.html`<div>Hello, ${this.props.name ?? 'Stranger'}.</div>` } } Tonic.add(MyGreeting); Tonic will automatically convert the CamelCased class name to the proper custom element name. <my-greeting></my-greeting> …

Alpha Paintlet

Dave Rupert created a little lovely Houdini Paint Worklet that allows you set a background color with an alpha on elements. The Worklet’s code is as simple as this: registerPaint(‘alpha’, class { static get inputProperties() { return [‘–bg-alpha’, ‘–bg-color’] } paint(ctx, size, props) { ctx.globalAlpha = props.get(‘–bg-alpha’); ctx.fillStyle = props.get(‘–bg-color’); ctx.fillRect(0, 0, size.width, size.height); } …

Natively Format JavaScript Dates and Times

Elijah Manor digs into Date’s toLocaleDateString() and toLocaleTimeString() methods to format Dates and Times in JavaScript, with respect to a passed locale. const date = new Date(); console.log(date.toLocaleDateString(‘en-US’)); // 7/19/2020 const dateOptions = { weekday: ‘long’, year: ‘numeric’, month: ‘long’, day: ‘numeric’, }; console.log(date.toLocaleDateString(‘en-US’, dateOptions)); // Sunday, July 19, 2020 console.log( date.toLocaleDateString(‘fr-FR’, { month: ‘long’, …