Over Thanksgiving break I decided to brush up on my extremely outdated CSS and JavaScript knowledge. It turns out a lot has changed over the past 20 years. What hasn't changed is my lack of any sense of style.

If I were to allow the fear of creating an eyesore hinder me, I'd never get started with anything. So after casting concerns of user experience to the wind I drafted up a simple idea for a web service that could make use of server and client side interactions. Behold, flask-coolname, a basic flask application that does little more than provide coolname slugs.

It's been interesting to try and adopt some of the async javascript ideas. It's a shame that the python variation on async is such a pain to use, because the javascript implementation is pretty nice to work with. The event loop is running implicitly, and handlers for element actions can be either normal or async.

I think the things that were the most fascinating to me from a CSS perspective were the addition of mask, transform, and animation. There are so many simple yet pleasant enhancements just from having some slight fading happen here and there. Also I am in love with the idea of transitioning an element's height to zero and then removing it, that's such a great way to animate a list changing its content.

I do have a bunch of redundancies in my CSS. I'll need to slowly prune directives until I get it minimalized a bit. There are some cases where I really think it would be easier to just do it the old way and (mis)use a table to do layout, but I'll keep fighting with flex and auto margins a while longer.

I bundled up a container image which is hosted on ghcr.io, built via CI on the master branch. I'm using this to host a demo copy of the application, which you can take a look at here - preoccupied.net/coolname

I'd like to create a truly ridiculous version of this app some day. I would use OAuth and accounts with credits. The credits would be used to buy word packs, save slots, and slug rolls. Users could then try to accumulate interesting phrases, or auction them off for credits! I'd have statistics generated to see what words were most liked. Utter nonsense and useless, but I could get some practice on how to properly do account management and oauth. I'd also be fighting to make sure that I could prevent cheating, so a lot more would be happening app-side rather than client-side. It seems interesting to develop, even if the end result is dumb. It would give me a reason to work with helm charts and pods as well, since this would obviously be a multi-container application.

Published

Category

programming

Tags

Connect