$font-color: #444 !default; //looks better than black: twitter.com/H_FJ/statuses/11800719859 $link-color: #607890 !default; $link-hover-color: #036 !default; $link-active-color: #607890 !default; $link-visited-color: #607890 !default; $selected-font-color: #fff !default; $selected-background-color: #ff5e99 !default; $list-left-margin: 1.8em !default; // // Minimal base styles // @mixin html5-boilerplate-styles { body, select, input, textarea { color: $font-color; } html { @include force-scrollbar; } a, a:active, a:visited { color: $link-color; } a:hover { color: $link-hover-color; } ul, ol { margin-left: $list-left-margin; } ol { list-style-type: decimal; } td, td img { vertical-align: top; } sub { @include sub; } sup { @include sup; } textarea { overflow: auto; } // thnx ivannikolic! www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars @include accessible-focus; @include quoted-pre; @include align-input-labels; @include hand-cursor-inputs; @include webkit-reset-form-elements; @include selected-text; @include webkit-tap-highlight; @include ie-hacks; } @mixin sub{ vertical-align: sub; font-size: smaller; } @mixin sup{ vertical-align: super; font-size: smaller; } // Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test @mixin accessible-focus { a:hover, a:active { outline: none; } } // www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ @mixin quoted-pre { pre { padding: 15px; white-space: pre; // CSS2 white-space: pre-wrap; // CSS 2.1 white-space: pre-line; // CSS 3 (and 2.1 as well, actually) word-wrap: break-word; // IE } } // align checkboxes, radios, text inputs with their label // by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css @mixin align-input-labels { input[type="radio"] { vertical-align: text-bottom; } input[type="checkbox"] { vertical-align: bottom; } .ie7 input[type="checkbox"] { vertical-align: baseline; } .ie6 input { vertical-align: text-bottom; } } // hand cursor on clickable input elements @mixin hand-cursor-inputs { label, input[type=button], input[type=submit], button { cursor: pointer; } } // webkit browsers add a 2px margin outside the chrome of form elements @mixin webkit-reset-form-elements { button, input, select, textarea { margin: 0; } } // These selection declarations have to be separate. // No text-shadow: twitter.com/miketaylr/status/12228805301 // Also: hot pink. @mixin selected-text { ::-moz-selection{ background:$selected-background-color; color: $selected-font-color; text-shadow: none; } ::selection { background: $selected-background-color; color: $selected-font-color; text-shadow: none; } } // j.mp/webkit-tap-highlight-color @mixin webkit-tap-highlight { a:link { -webkit-tap-highlight-color: $selected-background-color; } } // always force a scrollbar in non-IE @mixin force-scrollbar { overflow-y: scroll; } @mixin ie-hacks { // make buttons play nice in IE: // www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ button { width: auto; overflow: visible; } // 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; } .ie6 legend, .ie7 legend { margin-left: -7px; } // thnx ivannikolic! }