Tags: ui

970

sparkline

Friday, April 18th, 2025

Petition · Defend the Internet Archive - United States · Change.org

Signed!

We, the undersigned, call on the record labels and members of the Recording Industry Association of America (RIAA)—including UMG, Capitol Records, Concord Bicycle Assets, CMGI Recorded Music Assets, Sony Music Entertainment, and Arista Music—to drop your lawsuit against the Internet Archive.

Thursday, April 17th, 2025

A man playing tin whistle and a man playing fiddle on either side of the corner of a pub table.

Thursday session

Beach daydreams, lost at sea (Interconnected)

Matt’s beach thoughts are like a satisfying susurrus in my RSS reader.

Monday, April 7th, 2025

AI ambivalence | Read the Tea Leaves

Here’s the main problem I’ve found with generative AI, and with “vibe coding” in general: it completely sucks out the joy of software development for me.

I hate the way they’ve taken over the software industry, I hate how they make me feel while I’m using them, and I hate the human-intelligence-insulting postulation that a glorified Excel spreadsheet can do what I can but better.

Thursday, March 20th, 2025

Command and control

I’ve been banging on for a while now about how much I’d like a declarative option for the Web Share API. I was thinking that the type attribute on the button element would be a good candidate for this (there’s prior art in the way we extended the type attribute on the input element for HTML5).

I wrote about the reason for a share button type as well as creating a polyfill. I also wrote about how this idea would work for other button types: fullscreen, print, copy to clipboard, that sort of thing.

Since then, I’ve been very interested in the idea of “invokers” being pursued by the Open UI group. Rather than extending the type attribute, they’ve been looking at adding a new attribute. Initially it was called invoketarget (so something like button invoketarget="share").

Things have been rolling along and invoketarget has now become the command attribute (there’s also a new commandfor attribute that you can point to an element with an ID). Here’s a list of potential values for the command attribute on a button element.

Right now they’re focusing on providing declarative options for launching dialogs and other popovers. That’s already shipping.

The next step is to use command and commandfor for controlling audio and video, as well as some form controls. I very much approve! I love the idea of being able to build and style a fully-featured media player without any JavaScript.

I’m hoping that after that we’ll see the command attribute get expanded to cover JavaScript APIs that require a user interaction. These seem like the ideal candidates:

There’s also scope for declarative options for navigating the browser’s history stack:

  • button command="back"
  • button command="forward"
  • button command="refresh"

Whatever happens next, I’m very glad to see that so much thinking is being applied to declarative solutions for common interface patterns.

Sunday, March 16th, 2025

Cool native HTML elements you should already be using · Harrison Broadbent

dialog, details, datalist, progress, optgroup, and more:

If this article helps just a single developer avoid an unnecessary Javascript dependency, I’ll be happy. Native HTML can handle plenty of features that people typically jump straight to JS for (or otherwise over-complicate).

Friday, March 7th, 2025

Prog

I really like Brad’s new project, Cold Album Drumming:

Brad Frost plays drums to the albums he knows intimately, but has never drummed to before. Cover to cover. No warm-up. No prep. Totally cold. What could possibly go wrong?

I got a kick out of watching him play along to Radiohead’s In Rainbows and The Decemberist’s The Crane Wife.

I was really into The Decemberists in the first decade of the 21st Century. I remember seeing them in a long-gone Brighton venue more than twenty years ago.

But I kind of stopped paying attention to them after they released The Hazards Of Love. Not because I didn’t like that album. Quite the opposite. I love that album. I think in my mind I kind of thought “That’s it, they’ve done it, they can go home now.”

It’s exactly the kind of album I should not like. It’s a concept album. A folk-rock opera.

When I was growing up, concept albums were the antithesis of cool. Prog rock was like an insult.

You have to remember just how tribal music was back in the ’70s and ’80s. In my school, I remember the divide between the kind of people who listened to The Cure and The Smiths versus the kind of people who listened to Prince or Queen. Before that you had the the mods and the rockers, which in hindsight makes no sense—how are The Who and The Jam not rockers?

Looking back now, it’s ridiculous. I get the impression that for most people growing up in the last few decades, those kind of distinctions have been erased. People’s musical intake is smeared across all types and time periods. That is a good thing.

Anyway, a folky prog-rock opera like The Hazards Of Love is exactly the kind of thing that past me would’ve hated. Present me adores it. Maybe it’s because it’s got that folky angle. I suspect Colin Meloy listened to a lot of Horslips—heck, The Decemberists even did their own mini version of The Táin.

Speaking of mythic Irish language epics, I really like John Spillane’s Fíorusice:

Fíoruisce - The Legend of the Lough is a three-act Gaelic folk opera composed by Irish artist John Spillane. It is a macaronic or bilingual work. The work is an imagined re-Gaelicization of the Victorian Cork fairytale Fior-usga collected by Thomas Crofton Croker in the 1800’s and published in his book Fairy Legends and Traditions of the South of Ireland (1828). The story is a surreal tale culminating in a drowned kingdom, which as lore tells us, becomes The Lough in Cork city as we know it today. They say, you can see the tops of the underworld towers on a clear day and hear the music of their big party on Midsummer’s night.

Yup, it’s another concept album. And funnily enough, past me was not a fan of John Spillane either.

I first heard him when he was part of a trad band called Nomos in Cork in the early ’90s (the bódhran player’s mother was friends with my mother). I really liked their tunes but I thought the songs were kind of twee.

Over the years, the more of his songs I heard, the more I understood that John Spillane was just being completely open and honest. Past me thought that was twee. Present me really respects it. In fact, I genuinely love his songs like Johnny Don’t Go To Ballincollig and All The Ways You Wander.

And then there’s Passage West. It’s a masterpiece. I might be biased because Passage West is the next town over from Cobh, where I grew up.

So yeah, Fíorusice is something that past me would’ve disdained:

  1. a concept album by
  2. John Spillane in
  3. the Irish language.

Present me is into all three.

It’s Bandcamp Friday today. I think I know what I’m going to get.

Wednesday, March 5th, 2025

Building WebSites With LLMS - Jim Nielsen’s Blog

And by LLMS I mean: (L)ots of (L)ittle ht(M)l page(S).

I really like this approach: using separate pages instead of in-page interactions. I remember Simon talking about how great this works, and that was a few years back, before we had view transitions.

I build separate, small HTML pages for each “interaction” I want, then I let CSS transitions take over and I get something that feels better than its JS counterpart for way less work.

Wednesday, February 19th, 2025

Monzo tone of voice

Some good—if overlong—writing advice.

  • Focus on what matters to readers
  • Be welcoming to everyone
  • Swap formal words for normal ones
  • When we have to say sorry, say it sincerely
  • Watch out for jargon
  • Avoid ambiguity: write in the active voice
  • Use vivid words & delightful wordplay
  • Make references most people would understand
  • Avoid empty adjectives & marketing cliches
  • Make people feel they’re in on the joke – don’t punch down
  • Add a pinch of humour, not a dollop
  • Smart asides, not cheap puns and cliches
  • Be self-assured, but never arrogant

Sunday, February 9th, 2025

Saturday, February 8th, 2025

UI Pace Layers - Jim Nielsen’s Blog

Every UI control you roll yourself is a liability. You have to design it, test it, ship it, document it, debug it, maintain it — the list goes on.

It makes you wonder why we insist on rolling (or styling) our own common UI controls so often. Perhaps we’d be better off asking: What are the fewest amount of components we have to build to deliver value to our users?

Friday, January 17th, 2025

una.im | Updates to the customizable select API

It’s great to see the evolution of HTML happening in response to real use-cases—the turbo-charging of the select element just gets better and better!

Thursday, January 9th, 2025

Dark Patterns Detective

Deceptive design meets gamification in this explanatory puzzle game (though I wish it weren’t using the problematic label “dark patterns”).

I created this interactive experience to explore the intersection of design ethics and human psychology, helping us all make more informed choices while browsing the web.

Monday, December 23rd, 2024

Don’t Fuck With Scroll

  1. Violates User Expectations
  2. Causes Motion Sickness
  3. Reduces Accessibility for Disabled Users
  4. Inconsistent Performance Across Devices
  5. Impairs Usability for Power Users
  6. Increases Page Load Times
  7. Breaks Native Browser Features
  8. Makes Scroll Position Unclear
  9. Adds Maintenance Overhead
  10. Disrespects the User’s Control

Sunday, December 1st, 2024

A man playing concertina and a woman playing fiddle with a hand holding another fiddle in the foreground. A circle of musicians around a table chatting .

Sunday session

Wednesday, September 25th, 2024

The web we want: A beginner’s guide to the IndieWeb · Paul Robert Lloyd

This is a terrific presentation from Paul. He gives a history lesson and then focuses on what makes the indie web such a powerful idea (hint: it’s not about specific technologies).

Tuesday, September 17th, 2024

Nic Chan

What an excellent personal website!

PENGUIN SERIES DESIGN – the art of Penguin book covers

Exploring the graphic design history of Penguin books:

The covers presented on this site are all from my own collection of about 1400 Penguins, which have been chosen for the beauty or interest of their cover designs. They span the history of the company all the way back to 1935 when Penguin Books was launched.

Tuesday, September 10th, 2024

The State of ES5 on the Web

This is grim:

If you look at the data below on how popular websites today are actually transpiling and deploying their code to production, it turns out that most sites on the internet ship code that is transpiled to ES5, yet still doesn’t work in IE 11—meaning the transpiler and polyfill bloat is being downloaded by 100% of their users, but benefiting none of them.

Sunday, September 8th, 2024

Manual ’till it hurts

I’ve been going buildless—or as Brad crudely puts it, raw-dogging websites on a few projects recently. Not just obviously simple things like Clearleft’s Browser Support page, but sites like:

They also have 0 dependencies.

Like Max says:

Funnily enough, many build tools advertise their superior “Developer Experience” (DX). For my money, there’s no better DX than shipping code straight to the browser and not having to worry about some cryptic node_modules error in between.

Making websites without a build step is a gift to your future self. When you open that project six months or a year or two years later, there’ll be no faffing about with npm updates, installs, or vulnerabilities.

Need to edit the CSS? You edit the CSS. Need to change the markup? You change the markup.

It’s remarkably freeing. It’s also very, very performant.

If you’re thinking that your next project couldn’t possibly be made without a build step, let me tell you about a phrase I first heard in the indie web community: “Manual ‘till it hurts”. It’s basically a two-step process:

  1. Start doing what you need to do by hand.
  2. When that becomes unworkable, introduce some kind of automation.

It’s remarkable how often you never reach step two.

I’m not saying premature optimisation is the root of all evil. I’m just saying it’s premature.

Start simple. Get more complex if and when you need to.

You might never need to.