Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"IE8+" version of normalize.css #94

Closed
necolas opened this issue May 10, 2012 · 44 comments
Closed

"IE8+" version of normalize.css #94

necolas opened this issue May 10, 2012 · 44 comments

Comments

@necolas
Copy link
Owner

necolas commented May 10, 2012

I've got a version of normalize.css that removes legacy browser support. This would not affect the ability to download the existing version of normalize.css. I'm looking for:

  • Feedback on how much this non-legacy version is wanted now
  • Feedback on the specifics of the proposal below

Intended browser support

  • Chrome
  • IE 8+
  • Safari 5+
  • Opera (latest)
  • Firefox 4+ (in practice, latest few versions)
  • Mobile Safari
  • Other common mobile browsers that should be catered for

In essence, dropping IE 6/7, Safari 4, and Firefox 3.x

Plan of attack

  • Tag existing normalize.css as 1.0.0
  • Use semantic versioning going forward

I'd like to avoiding modifying 1.0.0 as much as possible in the future, and plan around how I'd like to manage the project 12-24 months down the line (i.e., not with a "legacy" branch hanging around). So using tags feels simpler, and AFAIK, would still leave me the option of hotfixing version 1 if absolutely necessary.

NOTE: Please avoid comments like "IE < 8 sucks, who uses that?".

@matthewlein
Copy link

+1 for wanting now. I'm even interested in a IE9+ version, but it might be a pain to maintain so many versions.

@chuanxshi
Copy link

I don't understand why dropping IE6/7, the current file isn't like over-bloated.

It doesn't affect the future focus of newer browsers. (IMO)

@necolas
Copy link
Owner Author

necolas commented May 10, 2012

@shichuan The file size will be reduced quite significantly, and the ability to use inherit in certain situations will help.

@posabsolute
Copy link

It's a bit soon (if you ask me) to drop support for ie7 it seems with a 10% average

@necolas
Copy link
Owner Author

necolas commented May 10, 2012

Where is that 10% stat from? And 1.0.0 would still be around and provided as a download on the project site.

@giuseppeg
Copy link

I wouldn't drop IE7 it is still quite popular, corporate websites still need to support it.
I'd rather create a build tool so I people can choose to have the IE7 style or not.

@necolas
Copy link
Owner Author

necolas commented May 10, 2012

There's no need for a build tool when you can just download the 1.0.0 tagged release.

@giuseppeg
Copy link

It will be abandoned at some point!

@hi-im-si
Copy link

I would of thought the whole reason behind normalize was to iron out the crappy browser quirks that the lesser browsers possess hence allowing us to concentrate less on worrying about how things work across IE6/IE7 etc making our job of cross browser fixing easier. Dont get me wrong, the more we refuse to support these lesser browsers, the more we stick our fingers up but unfortunately not everyone understands this. To put this over bloated comment in short. I don't agree with the removal of legacy support for Normalize.

@tbassetto
Copy link

Provided that 1.0.0 would still be around, I think it's needed now (like if I want to normalize my CSS for the different mobile web browsers).

@06b
Copy link

06b commented May 10, 2012

How much of a file size reduction are we talking about? Since I have to support corporate customers who still use ie7 (and one that still uses ie6) I'm against the removal, however I can completely understand why you would want to remove it. As for the one client who still uses ie6, I can support removing ie6 support at least.

On that note - if the removal of the unsupported browsers happens with the tagging of 1.0.0 that could still allow anyone to keep supporting the previous browser with downloading the last commit prior to 1.0.0 and they could manage their own fork rather than having you keep a "legacy" branch.

@nathancrank
Copy link

I like the build idea, choose what you need to support. I know I personally don't have to be too concerned about IE6, but 7+ are all concerns.

@necolas
Copy link
Owner Author

necolas commented May 10, 2012

I would of thought the whole reason behind normalize was to iron out the crappy browser quirks that the lesser browsers possess hence allowing us to concentrate less on worrying about how things work across IE6/IE7 etc making our job of cross browser fixing easier.

and…

I have to support corporate customers who still use ie7 (and one that still uses ie6) I'm against the removal

You could still download 1.0.0 for that

@n00b2pr0
Copy link

+1 No complaints. In the last few months the feedback from clients with FF 3 & IE < 8 users were very aware the web looks different for them even outside the scope of normalize.css covers.

With all discussions of browser support aside there comes a point where projects like this move forward and I see this as a positive move.

With a legacy version available I see no reason not to.

@malvese
Copy link

malvese commented May 10, 2012

I understand where you go with this move, but still…
A client I'm working at has an important part of its activity in China. And in China IE6 is still close to 25%! Still, it's a worldwide site so we need to deal with all the browsers. I'm not sure I'd consider the Chinese market an edge case.

@necolas
Copy link
Owner Author

necolas commented May 10, 2012

@malvese Did you see this part? "This would not affect the ability to download the existing version of normalize.css."

@malvese
Copy link

malvese commented May 10, 2012

@necolas Sure I did. But if the new version has clear benefits for modern browsers (beyond just reducing the file size) I'd be tempted to use both versions, and it's simpler to use the same libraries/frameworks for all browsers.
Is there a way the legacy rules could be grouped at the same place in the file? It would then be easy to add/remove them if we wanted, as a temporary solution.

@korywka
Copy link

korywka commented May 10, 2012

imho, if you want to make version for IE8+, you still need update version for IE6+. i dont see any reason to drop IE6-7 support for normalize, cause normalize is used not only for mobile\html5 sites. a lot of people in Ukraine, for example, who work in banks, still have IE6 cause of winXP. and they cant use any other browser cause their system administrator prohibit do this.

i agree, that IE6 can be removed within ~1 year, but now it is too early. and to use both, or to use unsupported file i dont want :)

@verekia
Copy link

verekia commented May 10, 2012

@necolas How smaller would the file be?
Will both versions get updated when a new stuff comes out? Like 1.0.2 kind of synchronized with "2.0.2" when possible?
If it's the case, then there is no reason for not having an IE8+ version, that would be really great!

I would personally use both, IE8+ for side projects, 1.0.0 for work.

EDIT: Actually I think 1.0.0 is good enough to do not have to update it at all in the future.

@valpackett
Copy link

You should start versioning with 2.0.0 and keep the 1.x branch with old browser support.
Like MODx Evolution — 1.x, MODX Revolution — 2.x.

@philipwalton
Copy link

I'd love a normalize-sass or something like that with variables indicating whether or not a browser or browser version is supported. Similar to how Compass does it. That way the compiled version would be perfect for everyone.

@ghost
Copy link

ghost commented May 10, 2012

I wrote a normalize plugin for sass/compass, compass-normalize-plugin. It's available from rubygems and supports including/removing IE6/7/8 support as well as other goodness. Maybe you should extend normalize.css to normalize.scss and include the scss sources ...

@Francisc
Copy link

I wouldn't drop IE6/7. It's still pretty visible in the browser landscape of less developed countries.
At the very least IE7 should still be supported.
FF3.x gets auto-updated to FF12 so that makes sense.

@cointilt
Copy link

You wouldn't drop IE6? Even Microsoft is dropping it.

@Francisc
Copy link

MS dropped support for IE6 years ago.
It's all about what users use for me.

@mhulse
Copy link

mhulse commented May 10, 2012

I agree with @malvese's last comment:

"Is there a way the legacy rules could be grouped at the same place in the file? It would then be easy to add/remove them if we wanted, as a temporary solution."

I've recently decide to drop support for IE6, but IE7 is still a browser that I would like to support.

But, I suppose the real question is, if you do drop IE7, then how badly does that mess up the look/feel for that browser? I mean, I can't really see IE7 looking horrible if normalize.css dropped it... Could someone slap together a couple demos sites for the "before" and "after"?

Either way, thanks so much for normalize.css! :)

@malvese
Copy link

malvese commented May 10, 2012

Lots of fixes apply to both IE6 and 7, I don't think there's much benefit for normalize in dropping IE6 support but keeping IE7.

@kevinSuttle
Copy link

Each major browser platform is now on the path to auto-upgrade. I say pull the trigger, Nicolas.

@giuseppeg
Copy link

What do you think about to have an additional stylesheet for IE7 and others (like a set of extensions of normalize.css)?

@dmcass
Copy link

dmcass commented May 11, 2012

100% in favor. The browser version support you suggested looks good to me as well, although I'd probably lean towards Firefox 10+ (or Firefox latest). I'd love to get my hands on this ASAP, as I have a project coming up where it would be exceptionally useful. I could do all the updates myself, but that seems redundant :P

@robwierzbowski
Copy link

I would use this tomorrow. For real, please release this tomorrow.

I'm usually conditionally loading Selectivizr and sometimes suggesting Chrome Frame for < IE8 already. I say look forward, not to the past.

For those who want to continue legacy IE support there's always the tagged 1.x release, and if that's not good enough anyone is welcome to fork Normalize and mix and match themselves. That's what Github is for.

@JohnAlbin
Copy link
Contributor

Short answer: 100% in favor

Long answer:

I really like using the "download and alter normalize.css" method of integrating normalize into a website. It makes it much simpler to have decent default styles for all HTML elements before adding in higher specificity styling in later stylesheets.

I created a Compass version of normalize.css that uses many of Compass' best features including the ability to turn on/off IE6/7 support with its $legacy-support-for-ie* variables. https://github.com/JohnAlbin/normalize.css-with-sass-or-compass

To me, it makes sense for Nicolas to create a 1.0 version off the current IE6/7 compatible code. (And maybe a 1.x branch, please?) And then to make the master branch be the start of a new IE8+ version that will become Normalize 2.0.

I plan on merging these 2 different versions back together in my Compass port. That will allow you to turn on/off IE6/7 support per client. I find that it is client requirements that make me have to add IE6/7 support. And, yes, sometimes they forget to mention that need until late in the project. Having a simple Sass variable to toggle the support is a god-send.

@jtrein
Copy link

jtrein commented May 30, 2012

@JohnAlbin Totally, and nice idea. Is this in Zen theme for Drupal?

@JohnAlbin
Copy link
Contributor

@jtrein Yes. http://drupal.org/project/zen Also see http://drupal.org/project/normalize which is the Drupal port which includes RTL language support.

@jtrein
Copy link

jtrein commented May 31, 2012

@JohnAlbin Well, rock on, man. Impressive and thanks.

@influxweb
Copy link

I think having two versions would be a fantastic thing. I have made some alterations on a per project basis and haven't seen an issue.

@webgefrickel
Copy link

I would love a IE8+ version of normalize.css.

@DavidOliver
Copy link

I love the idea of a Compass version being able to turn on/off legacy IE support. IE 6 and 7 are still very much an issue for me for some projects, unfortunately.

I'll look at the above options mentioned when I get a chance.

@IanOliver
Copy link

Sounds like a great idea to me. I dropped 'support' for IE 6 and 7 long ago, as have my clients.

Providing the 1.0 release to cater for developers who still feel the need to support older IEs, while progressing on with future releases is the ideal way to do it. Legacy for those who want it, with a lean, modern release for us that don't.

Would recommend making sure there is a very clear distinction between the two so people don't get confused/use the wrong one.

@iancrowther
Copy link

seems ok only if its an option in a builder, i sometimes need to support older browsers, but for mobile im all for smaller file sizes

@necolas
Copy link
Owner Author

necolas commented Aug 16, 2012

Ha, I'm not going to make a builder for a single CSS file! Both 1.0.0 and 2.0.0 will be available to download.

@necolas
Copy link
Owner Author

necolas commented Aug 19, 2012

Delivered by 494d32b

@necolas necolas closed this as completed Aug 19, 2012
@JohnAlbin
Copy link
Contributor

I've created an issue in my project to use Compass' $legacy-support-for-ie7 and $legacy-support-for-ie6 variables to conditionally inject the crufty v1 bits into the updated normalize v2. JohnAlbin/normalize.css-with-sass-or-compass#6

Nice work, necolas!!!

@devinrhode2
Copy link

Thanks @necolas, was just searching for this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests