Plain CSS is very useful if all you have is an HTML page. Giving all buttons a consistent look is nice and easy if you can just specify that with a nice CSS selector. That's also the only place you can do it without changing all <button> tags.
If you're building a component-based UI, that need is less, because all your buttons are created in a specific Button component. That's also an easy place to attach styling. You don't even need a separate file anymore.
But that's a wash. It gets much more interesting if you have components that are used in different contexts. Unordered lists for example can be an unordered list in the running text, but also a navigation list in the footer, the menu, or as tabs. There's some semantic logic to having those things as lists, but they usually look completely different.
You'd use classes and descendent selectors to deal with those differences. The downside is that those leak very easily to instances that you don't want them in. Having normal lists inside tabs inside running text requires careful engineering of the selectors.
The larger and older your project grows, the harder it becomes to get that exactly right in a future-proof way. At some point changing something for one item somewhere, can completely mess up something on another part of your site.
Inline styling, or Tailwind-style utility classes, are useful in that situation. Every component gets to be responsible for the way it looks and no longer has to care what anything else does. HTML tags that are used in different contexts will have their context right there, next to the styling. All part of the component.
The few remaining things that you need for consistency between components (colors, sizes, fonts, etc.) can be handled with CSS variables.
Not long ago, a statistical study found that AI almost always has an 'e' in its output. It is a firm indicator of AI slop. If you catch a post with an 'e', pay it no mind: it's probably AI.
Uh-oh. Caught you. Bang to rights! That post is firmly AI. Bad. Nobody should mind your robot posts.
I'm incredibly impressed that you managed to make that whole message without a single usage of the most frequently used letter, except in your quotations.
Such omission is a hobby of many WWW folk. I can, in fact, think back to finding a community on R*ddit known as "AVoid5", which had this trial as its main point.
I did ask G'mini for synonyms. And to do a cursory count of e's in my post. Just as a 2nd opinion. It found only glyphs with quotation marks around it. It graciously put forward a proxy for that: "the fifth letter".
It's not oft that you run into such alluring confirmation of your point.
My first post took around 6 min & a dictionary. This post took 3. It's a quick skill.
No LLMs. Ctrl+f shows you all your 'e's without switching away from this tab. (And why count it? How many is not important, you can simply look if any occur and that's it)
Family Link is kind of funny like that as well. As a parent you can limit which apps your child can use, and even how long they can use them. My child is above the age we can monitor their every move, but they're below the age where we can trust they won't spend all day playing games when they need to study. So that feature is nice.
Except you have to allow the Google app. And you have to allow it unrestricted time. That's not all that bad yet, though not great. The annoying thing is that Google loves their little easter eggs. So the child is procrastinating by playing Pacman, Snake, that stupid Dino run game, and what not. Courtesy of the makers of the parental controls.
Similarly, the Play Store cannot be limited and so for a kid it's easy to spend time on promotional app videos there. So the app limits are mostly useless, since you have to fully lock the phone to disable this.
Cool to see that the capitalization of Dutch names was as confusing then as it is now.
The correct way to write that would have been with a capital 'V'. The rule for these surname prefixes in The Netherlands is that they are not capitalized unless it's the first letter of the name. So it's "Peter van Emde Boas" but "Mr. Van Emde Boas".
To add to the confusion, that capitalization rule is different for Flemish names. There the first one in the surname is always capitalized: "Willy Van der Steen" and "Mr. Van der Steen".
I wouldn't call it confusing because the rules are very regular. Prepositions and articles are lowercase unless they start the sentence, the same rules apply to spelling in titles (eg. book titles).
It’s confusing because you have to know the nationality of a person to know how to capitalize their surname (In Flemish Dutch, prepositions that do not start a sentence are uppercase if they’re part of a name)
And nitpick: you likely meant “Willy Vandersteen” (https://en.wikipedia.org/wiki/Willy_Vandersteen), but that would be a bad example as it, I think, would always be capitalized, also if he were Dutch.
There's a marked difference between this and the Russian one: the Americans owned their mistake and paid reparations. The Russians denied and keep denying.
Mistakes aren't good, but pretending that you didn't make them adds insult to injury.
As much as the current administration turns my stomach, previous ones are not absolved from weaseling their way out of catastrophic mistakes, either.
It's sort of funny that this thread turned into a USA vs Russia debate when they both play the same games. One of them is just slightly better at pretending like they're playing fair and friendly. My take-away from that is once an organized body, be it a country, corporation or religion, gets very large and holds a lot of power, they will inevitably start doing bad things.
Indeed. Nor is GDPR about cookies at all. GDPR is about identifiable user profiles and information. A piece of paper with someone's name falls under the GDPR; a cookie that hides a shown alert doesn't.
People like the author are part of the problem. Blindly clicking consent is allowing site owners to bully you into consent. It works, so they keep doing it.
If you're going to blindly click anything it should be decline all.
I interpreted the comment thread as talking about the website being clearly Turkish, because that was what my first thought when I saw the Turkish text. It didn't even occur to me they could be talking about the archeological site, as you clearly interpreted it. Kind of interesting how the same sentence can mean multiple things, one being wrong and one being right.
Also kind of interesting to consider the relation between both meanings of site. It makes perfect sense, but I stopped considering that because website took on such a much larger meaning in my life than physical site.
They do. But a generic warning about locale-dependence doesn't really tell you that ASCII-strings will be broken.
For nearly every purpose ASCII is the same in every locale. If you have a string that is guaranteed to be ASCII (like an enum constant is in most code styles), it's easy to think "not a problem here" and move on.
As an addition, 5 million is a lot for BoF. At the end of 2024 their balance was a little over 1.8 million EUR. Even a single day's worth of coercive fine (100k EUR) would be meaningful to them.
If you're building a component-based UI, that need is less, because all your buttons are created in a specific Button component. That's also an easy place to attach styling. You don't even need a separate file anymore.
But that's a wash. It gets much more interesting if you have components that are used in different contexts. Unordered lists for example can be an unordered list in the running text, but also a navigation list in the footer, the menu, or as tabs. There's some semantic logic to having those things as lists, but they usually look completely different.
You'd use classes and descendent selectors to deal with those differences. The downside is that those leak very easily to instances that you don't want them in. Having normal lists inside tabs inside running text requires careful engineering of the selectors.
The larger and older your project grows, the harder it becomes to get that exactly right in a future-proof way. At some point changing something for one item somewhere, can completely mess up something on another part of your site.
Inline styling, or Tailwind-style utility classes, are useful in that situation. Every component gets to be responsible for the way it looks and no longer has to care what anything else does. HTML tags that are used in different contexts will have their context right there, next to the styling. All part of the component.
The few remaining things that you need for consistency between components (colors, sizes, fonts, etc.) can be handled with CSS variables.
reply