Paul Irish, a web developer on the Chrome team, writes about front-end techniques, browser internals, and performance tips.
HN links it for practical web tricks like protocol-relative URLs, FOUT, and WebKit internals, and commenters note he posts rarely now.
I'm the author of one of these independent CSS libraries that has been in the front page of HN several times. I normally use the libraries I write quite a lot, and it speeds things up for myself. This is mainly because of the deep knowledge I have for them, but if other people find them interesting so let it be.
Why would still make sense for skilled teams like yours? I can think several reasons:
- Prototyping: Probably not everything you do is detailed development and you might want to throw a quick prototype with not-too-bad styles. It won't be groundbreaking, but the ROI of using a CSS framework for those normally pays off.
- Cross-browser testing: an open source library will get bug reports from many varied places, and normally it's well tested cross-browser. Do you know about all of the flexbugs [1]? Do you even want to know? What about the 2012 trick of Paul Irish for box-sizing [2]? Did you know it was updated in 2014 and how awesome this update is?
- Documentation: when onboarding a new member on the team, if you are using one of the more popular libraries there is a large amount of documentation, github issues, stackoverflow questions and general articles on the web. While you might put the work to do this internally, even with great teams the internal documentation is normally very much worse than the OSS docs.
- Other topics such as accessibility (color contrasts, keyboard states, etc) are normally polished in the libraries. It's not free, it comes after bug…
hm… sorry it came off that way. :(
fwiw, the amount of technical things i've learned from working on bootstrap is not proportional to the amount of work i've put into this project… at all. But, i never expected it to be, and that's totally fine.
Have I learned any technical things? lol sure, of course!
Funnily, the accessibility thing you linked to wasn't really something I learned building bootstrap… the presentation was all about how accessibility is too hard to really learn… and you need to become a specialist, which is sad times. Paul Irish wrote a great post about it a while back: http://paulirish.com/2012/accessibility-and-developers/
maybe i learned that i knew nothing, but that was about it :P
My friend Dustin (who created this writing topic on medium) asked me to write about the single most important thing i learned from working on bootstrap.
And for me, that single thing was that I love working with people and hate working alone.
It took me a while to realize that what was bumming me out the most about running bootstrap (and other projects) was that as they became more successful, there was more of an expectation that i would be working on them all the time (which meant the expectation that i would be working on them independently/alone all the time).
That's ok from time to time, but isn't why I get excited about free software and ultimately i became pretty depressed/negative about the whole thing.
I'm just now starting to identify what makes we want to…
You don't have to use a service like Typekit to use a pretty webfont. The advantage Typekit has is that it gives you access to a lot of font choices to use (which you wouldn't otherwise have access to) and hosts/serves up the fonts for you.
Sites not using Typekit are most likely just using their own @font-face solution and hosting the fonts on their own server (which can also be a faster solution than loading in 3rd party font solutions).
Never use fonts and just hope a user might have it. It's not too hard to roll your own solution for serving up pretty fonts using @font-face. You will need to read up on it to learn the ins and outs, and what sort of goofy idiosyncrasies exits that you need to deal with.
I would recommend using the @font-face generator from fontsquirrel.com (http://www.fontsquirrel.com/fontface/generator). This helps you take a font you want to use and prepare it for the web, creating all the different font file types, as well as creating the css you need to use to embed the font for use.
When you use the font, be sure to use it as part of a font-family, so that you can plan what fonts to use as a fallback in case your @font-face declarations don't work out.
Understand that your font will be rendered differently between various browsers and operating systems. Sometimes using a css declaration like text-shadow (text-shadow: #FFF 0px 0px 1px;), and matching the text-shadow color to the background color the text is on, can help smooth out jaggies on…
> border-box is about layout, content-box about content. You should aim to design things around content, not layout: leave layout to the parent.
> border-box is incompatible with ratios: you need content-box there.
> border-box is only actually useful for things like making body fill the viewport.
I get the contrarian thing, but this doesn't make a whole lot of sense.
Both border-box and content-box are about content; it's just a matter what's included or not in the width of a box. Sure, there's some truth about what designers expected, but they weren't the only ones who were confused about how a box's border and padding changed how content worked…
There's a reason why virtually every widely-used CSS framework starts by changing content-box to border-box.
It's one of those issues that if we could go back in a Time Machine, content-box would have been the default; this is the next best thing:
html
{ box-sizing: border-box }
*, *::before, *::after
{ box-sizing: inherit }
References
From 2012, which started it all: https://www.paulirish.com/2012/box-sizing-border-box-ftw/
Developers are so psyched, border-box has a holiday: "International box-sizing Awareness Day"—https://css-tricks.com/international-box-sizing-awareness-day/
CSS Tricks almanac: https://css-tricks.com/almanac/properties/b/box-sizing/
This is a good thing, and there is basically no way around it.
There is a varying degree of a WebKit monoculture on mobile. Without great site compatibility, users will never successfully switch to a non-webkit browser, but currently much of the great mobile content out there assumes webkit prefixes and userAgent. So Opera, Mozilla, and MS basically need to adopt some of the mobile webkit properties in order to get compatibility, in order to get users. It's either that or advocacy wherein we try to get every site ever to not publish with just WebKit prefixes. But in reality, this advocacy effort has been underway already for over two years and we're still in this bad situation.
Look at the chart linked to from http://paulirish.com/2012/vendor-prefixes-are-not-developer-friendly/ When IE10 comes out (or it's complementary mobile browser), less than 25% of all sites that use CSS transitions will have them working in IE10.
Vendor prefixes are bad for us as developers and they're bad for browsers because it leads to situations like these. We'd be in a better situation without them.
BTW, one detail that wasn't really covered: I believe this change is localized to Opera's mobile browsers. Their desktop story is, I think, unchanged.
(All the above is a personal opinion and not that of my employer, yadda yadda)
Super! Just set up my first secure website with Nginx.
Absolutely simple. Literally the only way it could have been easier is if letsencrypt had been installed on my Centos 6.7 box but it was only a `git clone' away.
---
1) Stop the web server.
2) ./letsencrypt-auto certonly --standalone -d _my_domain1_ -d _my_domain2_ ...
At the curses prompt give it your contact email address, and accept the licence
3) Edit nginx.conf - Change all listen 80s to listen 443s. Add the following commands
ssl_certificate /etc/letsencrypt/live/_my_domain_/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/_my_domain_/privkey.pem;
# bump up protection
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
4) Start the web server
5) Doh! Go through website changing hardcoded http:// links to protocol (scheme) relative links // See here: https://www.paulirish.com/2010/the-protocol-relative-url/
6) Restart the web server
---
Ok. It's doesn't seem that simple now that I say it but it was easier than wrestling with Apache and rewrite rules :)