-
Notifications
You must be signed in to change notification settings - Fork 12.3k
Commit
… default styles We're pulling in http://github.com/necolas/normalize.css/ developed by Nicolas Gallagher along with Jonathan Neal. normalize.css retains useful browser defaults and includes several common fixes to improve cross-browser (desktop and mobile) styling consistency. Lots of research has gone into normalize, verifying what are the default user agent styles provided by each browser. We can very specifically change only the ones we need to instead of the bulldozer approach. Why this is great news: * Who likes being so damn redudant and declaring: em, i { font-style: italic; } * By using normalization instead of a reset + building up default styles, we use less styles and save bytes * Less noise in your dev tools: when debugging, you don't have to trawl through every reset selector to reach the actual style that is causing the issue. * More details here: http://necolas.github.com/normalize.css/ We're really happy to get user feedback on this, as we think style normalization is a better direction than resetting; and want to make sure you do too. :) Leave a comment here or in the Google Group: http://h5bp.com/group Fixes #412 Fixes #500 Fixes #534 Closes #456 Links #566
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,181 +1,211 @@ | ||
/** | ||
/* | ||
* HTML5 ✰ Boilerplate | ||
* | ||
* style.css contains a reset, font normalization and some base styles. | ||
* | ||
* Credit is left where credit is due. | ||
* Much inspiration was taken from these projects: | ||
* - yui.yahooapis.com/2.8.1/build/base/base.css | ||
* - camendesign.com/design/ | ||
* - praegnanz.de/weblog/htmlcssjs-kickstart | ||
* What follows is the result of much research on cross-browser styling. | ||
* Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, | ||
* Kroc Camen, and the H5BP dev community and team. | ||
*/ | ||
|
||
|
||
/** | ||
* html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline) | ||
* v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark | ||
* html5doctor.com/html-5-reset-stylesheet/ | ||
/* ============================================================================= | ||
HTML5 element display | ||
========================================================================== */ | ||
|
||
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } | ||
audio[controls], canvas, video { display: inline-block; *display: inline; *zoom: 1; } | ||
|
||
|
||
/* ============================================================================= | ||
Base | ||
========================================================================== */ | ||
|
||
/* | ||
* 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units | ||
* http://clagnut.com/blog/348/#c790 | ||
* 2. Force vertical scrollbar in non-IE | ||
* 3. Remove Android and iOS tap highlight color to prevent entire container being highlighted | ||
* www.yuiblog.com/blog/2010/10/01/quick-tip-customizing-the-mobile-safari-tap-highlight-color/ | ||
* 4. Prevent iOS text size adjust on device orientation change, without disabling user zoom | ||
* www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ | ||
*/ | ||
|
||
html, body, body div, span, object, iframe, | ||
h1, h2, h3, h4, h5, h6, p, blockquote, pre, | ||
abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, | ||
small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, | ||
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, | ||
article, aside, canvas, details, figcaption, figure, | ||
footer, header, hgroup, menu, nav, section, summary, | ||
time, mark, audio, video { | ||
margin: 0; | ||
padding: 0; | ||
border: 0; | ||
font-size: 100%; | ||
vertical-align: baseline; | ||
} | ||
html { font-size: 100%; overflow-y: scroll; -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } | ||
|
||
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { | ||
display: block; | ||
} | ||
body { margin: 0; font-size: 13px; line-height: 1.231; } | ||
|
||
blockquote, q { quotes: none; } | ||
body, button, input, select, textarea { font-family: sans-serif; color: #222; } | ||
|
||
blockquote:before, blockquote:after, | ||
q:before, q:after { content: ""; content: none; } | ||
/* | ||
* Improve image quality when scaled in IE7 | ||
* code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ | ||
*/ | ||
|
||
img { border: 0; -ms-interpolation-mode: bicubic; } | ||
|
||
ins { background-color: #ff9; color: #000; text-decoration: none; } | ||
/* | ||
* These selection declarations have to be separate | ||
* No text-shadow: twitter.com/miketaylr/status/12228805301 | ||
* Also: hot pink! | ||
*/ | ||
|
||
mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; } | ||
::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; } | ||
::selection { background: #fe57a1; color: #fff; text-shadow: none; } | ||
|
||
del { text-decoration: line-through; } | ||
|
||
abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; } | ||
/* ============================================================================= | ||
Links | ||
========================================================================== */ | ||
|
||
table { border-collapse: collapse; border-spacing: 0; } | ||
a { color: #00e; } | ||
a:visited { color: #551a8b; } | ||
a:focus { outline: thin dotted; } | ||
|
||
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } | ||
/* Improve readability when focused and hovered in all browsers: people.opera.com/patrickl/experiments/keyboard/test */ | ||
a:hover, a:active { outline: 0; } | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
mathiasbynens
Member
|
||
|
||
|
||
/** | ||
* Font normalization inspired by YUI Library's fonts.css: developer.yahoo.com/yui/ | ||
*/ | ||
/* ============================================================================= | ||
Typography | ||
========================================================================== */ | ||
|
||
body { font: 13px/1.231 sans-serif; *font-size: small; } /* Hack retained to preserve specificity */ | ||
abbr[title] { border-bottom: 1px dotted; } | ||
|
||
/* Normalize monospace sizing: | ||
en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome */ | ||
pre, code, kbd, samp { font-family: monospace, sans-serif; } | ||
b, strong { font-weight: bold; } | ||
|
||
blockquote { margin: 1em 40px; } | ||
|
||
/** | ||
* Minimal base styles. | ||
*/ | ||
dfn { font-style: italic; } | ||
|
||
/* 1) Always force a scrollbar in non-IE | ||
2) Remove iOS text size adjust without disabling user zoom: www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */ | ||
html { overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } | ||
|
||
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } | ||
|
||
ins { background: #ff9; color: #000; text-decoration: none; } | ||
|
||
/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */ | ||
a:hover, a:active { outline: 0; } | ||
mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; } | ||
|
||
a, a:active, a:visited { color: #607890; } | ||
a:hover { color: #036; } | ||
/* Redeclare monospace font family: en.wikipedia.org/wiki/User:Davidgothberg/Test59 */ | ||
pre, code, kbd, samp { font-family: monospace, monospace; _font-family: 'courier new', monospace; font-size: 1em; } | ||
|
||
ul, ol { margin-left: 2em; } | ||
ol { list-style-type: decimal; } | ||
/* Improve readability of pre-formatted text in all browsers */ | ||
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; } | ||
|
||
/* Remove margins for navigation lists */ | ||
nav ul, nav li { margin: 0; list-style:none; list-style-image: none; } | ||
q { quotes: none; } | ||
q:before, q:after { content: ""; content: none; } | ||
|
||
small { font-size: 85%; } | ||
b, strong, th { font-weight: bold; } | ||
|
||
td { vertical-align: top; } | ||
|
||
/* Set sub, sup without affecting line-height: gist.github.com/413930 */ | ||
sub, sup { font-size: 75%; line-height: 0; position: relative; } | ||
/* Position subscript and superscript content without affecting line-height: gist.github.com/413930 */ | ||
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } | ||
sup { top: -0.5em; } | ||
sub { bottom: -0.25em; } | ||
|
||
pre { | ||
/* www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ */ | ||
white-space: pre; white-space: pre-wrap; word-wrap: break-word; | ||
padding: 15px; | ||
} | ||
|
||
.ie6 legend, .ie7 legend { margin-left: -7px; } | ||
/* ============================================================================= | ||
Lists | ||
========================================================================== */ | ||
|
||
/* 1) Make inputs and buttons play nice in IE: www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ | ||
2) WebKit browsers add a 2px margin outside the chrome of form elements. | ||
Firefox adds a 1px margin above and below textareas | ||
3) Set font-size to match <body>'s, and font-family to sans-serif | ||
4) Align to baseline */ | ||
button, input, select, textarea { width: auto; overflow: visible; margin: 0; font-size: 100%; font-family: sans-serif; vertical-align: baseline; } | ||
ul, ol { margin: 1em 0; padding: 0 0 0 40px; } | ||
dd { margin: 0 0 0 40px; } | ||
nav ul, nav ol { list-style: none; margin: 0; padding: 0; } | ||
|
||
/* 1) Remove default scrollbar in IE: www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars/ | ||
2) Align to text-top */ | ||
textarea { overflow: auto; vertical-align:text-top; } | ||
|
||
/* Hand cursor on clickable input elements */ | ||
label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; } | ||
/* ============================================================================= | ||
Figures | ||
========================================================================== */ | ||
|
||
/* Remove extra padding and inner border in Firefox */ | ||
input::-moz-focus-inner, | ||
button::-moz-focus-inner { border: 0; padding: 0; } | ||
figure { margin: 0; } | ||
|
||
/* Colors for form validity */ | ||
input:valid, textarea:valid { } | ||
input:invalid, textarea:invalid { border-radius: 1px; -moz-box-shadow: 0 0 5px red; -webkit-box-shadow: 0 0 5px red; box-shadow: 0 0 5px red; } | ||
.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; } | ||
|
||
/* Bicubic resizing for non-native sized IMG: | ||
code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */ | ||
.ie7 img { -ms-interpolation-mode: bicubic; } | ||
/* ============================================================================= | ||
Forms | ||
========================================================================== */ | ||
|
||
form { margin: 0; } | ||
fieldset { border: 0; margin: 0; padding: 0; } | ||
|
||
/** | ||
* You might tweak these.. | ||
/* | ||
* 1. Correct color not inheriting in IE6/7/8/9 | ||
* 2. Correct alignment displayed oddly in IE6/7 | ||
*/ | ||
|
||
body, select, input, textarea { | ||
/* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */ | ||
color: #444; | ||
/* Set your base font here, to apply evenly */ | ||
/* font-family: Georgia, serif; */ | ||
} | ||
legend { border: 0; *margin-left: -7px; padding: 0; } | ||
|
||
/* These selection declarations have to be separate | ||
No text-shadow: twitter.com/miketaylr/status/12228805301 | ||
Also: hot pink! */ | ||
::-moz-selection { background: #fe57a1; color:#fff; text-shadow: none; } | ||
::selection { background:#fe57a1; color:#fff; text-shadow: none; } | ||
a:link { -webkit-tap-highlight-color: #FF5E99; } /* j.mp/webkit-tap-highlight-color */ | ||
/* | ||
* 1. Correct font-size not inheriting in all browsers | ||
* 2. Remove margins in FF3/4 S5 Chrome | ||
* 3. Define consistent vertical alignment display in all browsers | ||
*/ | ||
|
||
button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; } | ||
|
||
/** | ||
* Primary styles | ||
* | ||
* Author: | ||
/* | ||
* 1. Define line-height as normal to match FF3/4 (set using !important in the UA stylesheet) | ||
* 2. Correct inner spacing displayed oddly in IE6/7 | ||
*/ | ||
|
||
button, input { line-height: normal; *overflow: visible; } | ||
|
||
/* | ||
* 1. Display hand cursor for clickable form elements | ||
* 2. Allow styling of clickable form elements in iOS | ||
*/ | ||
|
||
button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; } | ||
|
||
/* | ||
* Consistent box sizing and appearance | ||
*/ | ||
|
||
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; } | ||
|
||
input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; } | ||
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } | ||
|
||
/* | ||
* Remove inner padding and border in FF3/4 | ||
* www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ | ||
*/ | ||
|
||
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } | ||
|
||
/* Remove default vertical scrollbar in IE6/7/8/9 */ | ||
textarea { overflow: auto; vertical-align: top; } | ||
|
||
/* Colors for form validity */ | ||
input:valid, textarea:valid { } | ||
input:invalid, textarea:invalid { background-color: #f0dddd; } | ||
|
||
This comment has been minimized.
Sorry, something went wrong.
anselmh
Contributor
|
||
|
||
/* ============================================================================= | ||
Tables | ||
========================================================================== */ | ||
|
||
table { border-collapse: collapse; border-spacing: 0; } | ||
|
||
|
||
/* ============================================================================= | ||
Primary styles | ||
Author: | ||
========================================================================== */ | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/** | ||
* Non-semantic helper classes: please define your styles before this section. | ||
*/ | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/* ============================================================================= | ||
Non-semantic helper classes | ||
Please define your styles before this section. | ||
========================================================================== */ | ||
|
||
/* For image replacement */ | ||
.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; } | ||
|
@@ -188,25 +218,25 @@ a:link { -webkit-tap-highlight-color: #FF5E99; } /* j.mp/webkit-tap-highlight-co | |
/* Hide only visually, but have it available for screenreaders: by Jon Neal. | ||
www.webaim.org/techniques/css/invisiblecontent/ & j.mp/visuallyhidden */ | ||
.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } | ||
|
||
/* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: drupal.org/node/897638 */ | ||
.visuallyhidden.focusable:active, | ||
.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } | ||
.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } | ||
|
||
/* Hide visually and from screenreaders, but maintain layout */ | ||
.invisible { visibility: hidden; } | ||
|
||
/* The Magnificent Clearfix: Updated to prevent margin-collapsing on child elements in most situations. | ||
nicolasgallagher.com/micro-clearfix-hack/ */ | ||
/* Contain floats: nicolasgallagher.com/micro-clearfix-hack/ */ | ||
.clearfix:before, .clearfix:after { content: ""; display: table; } | ||
.clearfix:after { clear: both; } | ||
.clearfix { zoom: 1; } | ||
|
||
|
||
|
||
/** | ||
* Placeholder media queries for responsive design. Modify as design requires. | ||
* These follow after, and will override, the primary ('mobile first') styles | ||
*/ | ||
/* ============================================================================= | ||
PLACEHOLDER Media Queries for Responsive Design. | ||
These override the primary ('mobile first') styles | ||
Modify as content requires. | ||
========================================================================== */ | ||
|
||
@media only screen and (min-width: 480px) { | ||
/* Style adjustments for viewports 480px and over go here */ | ||
|
@@ -220,23 +250,22 @@ a:link { -webkit-tap-highlight-color: #FF5E99; } /* j.mp/webkit-tap-highlight-co | |
|
||
|
||
|
||
/** | ||
* Print styles. | ||
* | ||
* Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ | ||
*/ | ||
/* ============================================================================= | ||
Print styles. | ||
Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ | ||
========================================================================== */ | ||
|
||
@media print { | ||
* { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; | ||
-ms-filter: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */ | ||
a, a:visited { color: #444 !important; text-decoration: underline; } | ||
a[href]:after { content: " (" attr(href) ")"; } | ||
abbr[title]:after { content: " (" attr(title) ")"; } | ||
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */ | ||
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } | ||
thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */ | ||
tr, img { page-break-inside: avoid; } | ||
img { max-width: 100% !important; } | ||
@page { margin: 0.5cm; } | ||
p, h2, h3 { orphans: 3; widows: 3; } | ||
h2, h3 { page-break-after: avoid; } | ||
* { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */ | ||
a, a:visited { color: #444 !important; text-decoration: underline; } | ||
a[href]:after { content: " (" attr(href) ")"; } | ||
abbr[title]:after { content: " (" attr(title) ")"; } | ||
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */ | ||
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } | ||
thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */ | ||
tr, img { page-break-inside: avoid; } | ||
img { max-width: 100% !important; } | ||
@page { margin: 0.5cm; } | ||
p, h2, h3 { orphans: 3; widows: 3; } | ||
h2, h3{ page-break-after: avoid; } | ||
} |
8 comments
on commit ddaf66a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do you set fonts sizes with the new css, still use %'s in this table http://developer.yahoo.com/yui/fonts/ ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Solid work! I'd also like to get an answer to johnnytee's question though. Please, and thank you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@blackfalcon The base CSS can't be dependent on conditional classnames or modernizr classes because H5BP can be downloaded and without those components.
@johnnytee @paulmist You can still use that table as a guide when setting %
or em
unit font-sizes because the base font size has not been altered in this update.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@necolas thx for the reply, good to know :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Like! I've seen a few reset CSS's and use them reluctantly where normalisation was all I actually wanted. Nice work!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here's a basic example of how many common elements look - one file using the previous raw boilerplate css and one using the this commits: http://experiments.botsko.net/tests/html5-boilerplate-css/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Total fan of this approach. Much more modular/cascading/simple.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reset was bloating the CSS, but I liked not having to think about zeroing out margins on elements like headings and paragraphs.
I think outline: 0; is bad practice. You finally cannot navigate through a website with just your keyboard then. What's about accessibilty here?