Keith Clark
keithclarkcouk.bsky.social
Keith Clark
@keithclarkcouk.bsky.social
keithclark.co.uk

Front-end developer • IoT tinkerer • Retro gamer • Atari ST coder

GitHub: https://github.com/keithclark
LinkedIn: https://linkedin.com/in/keithclarkcou
@gw3m.bsky.social I'm writing a tool to converts MOD files into maxYMiser songs. I have successfully created song and voiceset data, which load and play in maxYMiser :)

I want to create some basic instruments for the songs, but can't find any documentation on the file format. Does anything exist?
October 23, 2025 at 8:15 PM
New CSS article: Simulating Container Style Queries with CSS Animations.

keithclark.co.uk/articles/sim...
Simulating Container Style Queries with CSS Animations
Conditional layout in browsers where container style query support is lacking, using CSS animations.
keithclark.co.uk
October 2, 2025 at 7:39 AM
Made a new Web Component: RichInput. It's a drop-in replacement for text-based elements that can colourise user input.

A "stylepattern" attribute accepts a regex pattern and the resulting capture groups can be styled using CSS `::part(group-n)`

keithclark.github.io/richinput/
June 23, 2025 at 8:47 PM
Using module `registerHooks` in NodeJS to intercept the assert module and return a Proxy that logs assertions outcomes to the console is a very simple way to build a unit test tool
May 28, 2025 at 3:28 PM
Making a test suite
May 23, 2025 at 9:02 PM
CSS system colour differences in the wild: Safari uses `Canvas` for inputs, where as Chrome/Firefox use `Field`. In this screen grab, the browsers from left to right are Safari, Firefox and Chrome. In each browser, the left column contains my web component and the right is a native element
May 23, 2025 at 2:20 PM
I wish browsers would expose their default style choices (colours, borders etc) to CSS so that, when creating a Web Component, I don't have to impose my opinionated, halfway house set of default styles on developers. I'd like to style elements that fit with the native elements, until overridden.
May 22, 2025 at 11:27 AM
Working on a colourised input web component that can be used as a drop-in replacement for `<input>`. It uses a regex pattern (set via attribute) for capturing content groups and CSS ::part() for styling them.

Now trying to find a way to proxy its DOM interface to the input in the shadow DOM.
May 21, 2025 at 11:22 AM
A few years ago, I wrote a "JSON to Type Doc" tool, which I use for all JS/TS projects that talk to JSON-based APIs but lack type definitions. I've moved it to a more accessible location and made some improvements. I hope it's useful to some of you.

keithclark.co.uk/apps/json-ty...
JSON to Type Definitions
Automatically create TypeScript type definitions or JSDoc blocks from a JSON payload
keithclark.co.uk
May 6, 2025 at 2:15 PM
I'm looking for a full-time frontend role in the UK. Are you looking for a developer with years of experience working on the Web Platform? If so, please send me a DM.

Check my profile for more info.
April 9, 2025 at 6:24 AM
Added uniforms support to my Web Component. You can now pass data to a shader from JavaScript using `element.setUniform()`.

There are some basic pointer tracking examples on the website. keithclark.github.io/shaderview/
March 30, 2025 at 4:26 PM
Adding support for uniforms to . This example is an animated smiley that tracks the pointer position.

Original shader can be found here: www.shadertoy.com/view/lsXcWn
March 28, 2025 at 5:38 PM
I often go back through my old CSS experiments to see how things have fared over time. It's also a great reminder of how far CSS has come!

Last time I checked this old "zero element" demo, it didn't work correctly in any browser: codepen.io/keithclark/p...
Zero Element: Cube
...
codepen.io
March 26, 2025 at 9:24 PM
Updated my Shaderview Web Component to offload rendering to a Web Worker. The performance difference is massive now that the main thread is unblocked. I've also used an IntersectionObserver to pause running shaders when they leave the viewport.



keithclark.github.io/shaderview/
Shaderview by Keith Clark
A Web Component for rendering WebGL shaders
keithclark.github.io
March 19, 2025 at 5:13 PM
First experiment for shaderview will be offloading the renderer to a worker so slower devices stay responsive.
March 12, 2025 at 8:30 PM
Shaderview. A Web Component for rendering WebGL shaders in your web pages.

keithclark.github.io/shaderview/

github.com/keithclark/s...
Shaderview by Keith Clark
A Web Component for rendering WebGL shaders
keithclark.github.io
March 12, 2025 at 3:29 PM
I'm looking for a new full-time role in the UK. Are you looking for a frontend developer with lots of experience working on the Web Platform? If so, please send me a DM.

Check my profile for more info.
March 5, 2025 at 5:05 PM
Working on a Web Component that can render GLSL fragment shaders into HTML documents. Shaders receive a limited set of uniforms (e.g. time) that can be set from DOM attributes/properties, allowing scroll linking and playback control.

Shaders in this video are from www.shadertoy.com
March 1, 2025 at 10:02 PM
Contemplating writing a new version of my CSS toggle dev tools extension but not sure how widely used it is nowadays.

Does anyone here use it?

github.com/keithclark/c...
GitHub - keithclark/css-feature-toggle-devtools-extension: A devtools extension for toggling CSS features allowing developers to see how pages/apps render in browsers that don't support modern CSS fea...
A devtools extension for toggling CSS features allowing developers to see how pages/apps render in browsers that don&#39;t support modern CSS features - keithclark/css-feature-toggle-devtools-exten...
github.com
February 27, 2025 at 2:23 PM