I've used shoelace components, overall I've been happy with them.
The only parts I don't like are the event based APIs.
It's 2022, I feel like we've settled on promises as the best way to handle async.
The author wasn't particularly receptive to the issue I raised around it, even offering to create a PR.
I think event based APIs are really holding what would otherwise be a very nice component set back.