Hey everyone,
I’m currently working on a dark, gritty UI for a gaming project and I’m trying to nail a very specific, worn-out look. I thought recreating these elements would make a fantastic challenge for the CSS wizards here on SitePoint!
Here is the target screenshot of the login screen I am trying to match:
I am specifically struggling to perfectly recreate the borders of two elements on this screen:
1. The Login Button This is far from a standard web button. A simple border: 1px solid cyan just doesn’t cut it.
-
It has an uneven, eroded “grunge” texture.
-
The cyan color isn’t perfectly solid; it has variations, fading out in some spots and bleeding inwards like scratched, oxidized metal.
2. The Input Field (“E-Mail-Adresse”) The input field has a different, but equally tricky border style:
-
The border is not constant in thickness or opacity. It acts like a fading gradient—slightly more present and metallic at the top/left, and fading almost into nothingness at the bottom right.
-
It needs to house an icon seamlessly on the left.
The Challenge: Recreate both of these elements (the input field and the login button) as closely as possible to the original screenshot using HTML and CSS.
The Rules:
-
No raster images (PNG, JPG, WebP) allowed for the borders, textures, or noise. No cheating with a 9-slice background image!

-
Pure CSS is great, but inline SVG filters (like
feTurbulence,feDisplacementMap) and CSS masks (mask-image,mask-composite) are absolutely welcome and probably the best way to achieve this. -
JavaScript is fully allowed if you want to use it to generate the noise, handle interactions, or create ripple effects.
-
The elements need to be responsive (fluid width).
I’ve been experimenting with feDisplacementMap for the button edges and mask-composite for the input border fading, but I’d love to see how the community tackles this combination.
Who can build the most authentic, gritty login form? Drop your CodePens or JSFiddles below!
Cheers
