7 ms·
Yahoo reinvented inline styles through classes
- nates 9y agoIt's open source: https://acss.io https://acss.io
- gvx 9y agoI hope they'll accept my pull request: https://github.com/acss-io/atomizer/pull/302 https://github.com/acss-io/atomizer/pull/302
- winstonewert 9y agoYou could at least ensure the CI tests still pass. :P
- juanpotato 9y agoNo need for tests to pass if they don't exist ¯\_(ツ)_/¯
- awinder 9y agoNeed to provide tests to make sure that the original problem doesn’t crop up again ;-)
- coke12 9y agoWhy would you do this?
- treve 9y agoYou're an awful person.
- _Marak_ 9y agoFor everyone reading these comments, I want to say that this kind of pull request is hurtful and unwarranted. You've essentially sent an alert to someone ( or a group of people ) saying that you believe their work has no value. This kind of behavior could have real-world consequences. You could be pushing someone to not work on open-source again, or make them feel worse about working on a project they might be required to contribute to as part of their job. How would you feel if someone started vandalizing your own github projects gvx? Would it make you feel good? Would you consider it funny?
- gvx 9y agoIt was intended as an innocent tongue-in-cheek joke, not to insult or vandalise. In that, I've failed completely. I can see that now. I'm closing the pull request with an apology.
- pier25 9y agoSo because some people might take criticism personally we shouldn't be allowed to express criticism?
- romanovcode 9y agoThis kind of criticism has 0 value. It basically says "you suck!". OP needs to grow up.
- pier25 9y agoI asked a question because I want to start a debate, which is quite different.
- matt_kantor 9y agoYou're allowed to be a jerk, but when doing so you shouldn't be surprised if people call you a jerk (or use a nicer phrase like "this kind of pull request is hurtful and unwarranted"). Constructive criticism is good, but the linked PR is not that. It's akin to a content-less drive-by HN comment like "you suck". You're free to post it (until you get banned), but it's not adding anything and you should expect downvotes.
- pier25 9y agoI agree with you and I'm not saying "delete your fucking project" is constructive criticism. But, if an internet stranger says "delete your fucking project" and you take that personally there's no one to blame for your suffering than yourself. Also, _Marak_'s paternalistic comment would make sense with a group of 10 year olds, but we are all adults here.
- ninjaranter 9y agoTo be more specific, they're using the https://acss.io https://acss.io framework which they came up with 2015.
- scrollaway 9y agoThat site is a bit light on the "Why?".
- ninjaranter 9y agoYeah, they showcase how much better it is than using inline styles (which it is, of course) but I don't see "the headache of managing stylesheets" problem this supposedly solves. Not sure who the target audience is for this one. It's funny how they say "The lower specificity of classes also allows for easier overrides" -- that's true, but what on earth would I want to override a class called "P(20px)" to do instead? :)
- lylepstein 9y agoSize. Using styles like this lead to a small decrease in page size, which over time on a very high traffic site leads to a notable bandwidth savings. ... or at least, that was the argument. In practice, most teams didn't adopt it unless mandated from above; because it sucks to use, has an infinitesimal decrease in individual page load time, and the bandwidth savings certainly don't outweigh the lost developer time. But hey, all you gotta do is convince some VP that your niche approach is the right one, and you'll get some adoption in a large company like Yahoo.
- troels 9y agoWhere have you heard that argument? That is absolutely bonkers. Why didn't they just use css as intended and collect all these inline styles into generic classes? Or turn on gzip-compression?
- lylepstein 9y ago
- omegote 9y agoWhat a trainwreck.
- asd89a 9y agothis is hilariously sad... absolutely awful.. no wonder their company is a disaster.
- 0xcde4c3db 9y agoI don't know if this quite counts as the inner-platform effect [1], but it seems similar at least. [1] http://thedailywtf.com/articles/The_Inner-Platform_Effect http://thedailywtf.com/articles/The_Inner-Platform_Effect
- troels 9y agoYeah, that seems accurate to me.
- agumonkey 9y agoIt's so easy to end up doing this u_u;
- gazoakley 9y agoWell that's one way to avoid using Content-Security-Policy with "unsafe-inline" (assuming someone cares about CSP?)
- Keanu1114 9y agoThe, code is much more readable then the same written with inline styles. Citing their website: Most approaches to styling inside components rely on inline styles, which are limiting. Atomic CSS, like inline styles, offers single-purpose units of style, but applied via classes. This allows for the use of handy things such as media queries, contextual styling and pseudo-classes. The lower specificity of classes also allows for easier overrides. And the short, predictable classnames are highly reusable and compress well.
- maxxxxx 9y agoStuff like this makes me wonder about the sanity of web development. They always seem to be looking for ways to abuse features for other purposes.
- valarauca1 9y agoMost of it is learned from the environment. A lot of browsers which all implement standards in their own _fun_ ways across dozens of display types. All of this is using a system that was effectively designed to share and display research papers 20 years ago. Then you add the competition to _up_ everyone else. Sure you don't have to be the best, but you need to have flare.
- ryanmarsh 9y agoThats what happens when you have a Turing complete styling DSL
- lightblade 9y agoWe use a combination of Atomics and BEM in our project. Atomics offers single level specificity thus providing a strategy to combat the specificity problem that plagues many projects. They are single purpose and infinitely composable, which complements very well with component oriented architecture that's popular today. They are localized to single DOM node. When combined with its single purpose nature offers fewer surprises when making changes to your style sheet. For example, when you add a margin 15 Atomics to a DOM node, it is very hard to accidentally add another margin 15 somewhere else. Versus if you add a label class, it is much easier to accidentally add another label class and cause unintended consequences.
- colbyh 9y agothis, pretty much. it's as declarative and surprise-free as you can get in CSS and it works super well when abstracted into components. I know it isn't the easiest to read and it seems counterintuitive at first, but in practice you can easily encapsulate long chains of inline classes into helper classes thus giving most projects a sort of sane middle ground.
- firloop 9y agoTachyons (http://tachyons.io http://tachyons.io) is another CSS framework that works the same way, more or less.
- mr_alien 9y agoAll I can say is tht front-end is going crazy these days. Might give up soon.