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
Front-end developer • IoT tinkerer • Retro gamer • Atari ST coder
GitHub: https://github.com/keithclark
LinkedIn: https://linkedin.com/in/keithclarkcou
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/
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
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/
A "stylepattern" attribute accepts a regex pattern and the resulting capture groups can be styled using CSS `::part(group-n)`
keithclark.github.io/richinput/
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
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
Making a test suite
May 23, 2025 at 9:02 PM
Making a test suite
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
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
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.
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
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.
Now trying to find a way to proxy its DOM interface to the input in the shadow DOM.
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/
There are some basic pointer tracking examples on the website. keithclark.github.io/shaderview/
March 30, 2025 at 4:26 PM
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/
There are some basic pointer tracking examples on the website. keithclark.github.io/shaderview/
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
Original shader can be found here: www.shadertoy.com/view/lsXcWn
March 28, 2025 at 5:38 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
Original shader can be found here: www.shadertoy.com/view/lsXcWn
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
Shaders in this video are from www.shadertoy.com
March 1, 2025 at 10:02 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
Shaders in this video are from www.shadertoy.com