Skip to content

Instantly share code, notes, and snippets.

@paolodina
Created May 17, 2015 16:37
Show Gist options
  • Save paolodina/68dc80739e0eee0f0aad to your computer and use it in GitHub Desktop.
Save paolodina/68dc80739e0eee0f0aad to your computer and use it in GitHub Desktop.
Generated by SassMeister.com.
<main>
<header>
<h1>Web Typography</h1>
<h1>Demystified</h1>
</header>
<h1>A section</h1>
<section>
<h2>Section heading</h2>
<p>A paragraph: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h2>A boxed container</h2>
<div class="box">
<h3>The header</h3>
<p>The paragraph: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>And another paragraph, lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
</section>
<h1>Typography showcase</h1>
<section>
<h2 class="main">Welcome!</h2>
<div class="box">
<h3>About Web typography</h3>
<h4 class="highlight">HARD TO GET IT RIGHT&hellip; <- Not kidding.</h4>
<h5>Sass and Compass FTW, will make it a snap!</h5>
<h6>Are you a web developer? Read on.</h6>
<p>This page aims to provide a simple web typography example that looks great in modern, and hopefully less modern browsers. Doing a such thing is not an easy task but <a href="http://sass-lang.com/">Sass</a> and Compass makes it possible greatly simplifying the challenge.</p>
<p><a href="compass-style.org">Compass</a> is <i>an open-source CSS authoring framework which uses the Sass stylesheet language to make writing stylesheets powerful and easy</i>. I agree, so many things become possible.</p>
<p>Going on, more documentation will come, in the mean time have a look at the showcase to get an idea. <a href="#headers">Headers</a></p>
<p><small><strong>DISCLAIMER:</strong> I'm a Python developer, not a pro web designer. Feedback is welcome &#9786;</small></p>
</div>
<h1 id="headers">Headers</h1>
<p>Herebelow is an example of the different headings.</p>
<div class="box">
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
<h6>Heading 6</h6>
<h1>Heading 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h2>Heading 2</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h3>Heading 3</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h4>Heading 4</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h5>Heading 5</h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h6>Heading 6</h6>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p
</div>
</section>
<h1>Last section</h1>
<section class="last">
<h2>Enjoy the code and feel free to tailor your own version tweaking scss.</h2>
<div class="box">
<h3>About this section</h3>
<p>Note that in this section the trailer space is reset to the default.</p>
</div>
</section>
</main>
// ----
// Sass (v3.3.14)
// Compass (v1.0.1)
// Normalize SCSS (v3.0.2)
// Responsive Sass (v0.1.1)
// Singularity.gs (v1.4.0)
// Typesettings (v2.3.1)
// ----
/* SASS/COMPASS Typography Example
GOAL OF THE PROJECT:
provide a simple typography module
looking great in modern (and less
modern) browsers.
DESCRIPTION:
TODO
FEATURES:
* takes care of vertical rhythm
* modular scale aware
* ... and much more ...
ISSUES:
Please report any issue here (TODO).
CREDITS AND INSPIRED BY:
*/
@import "normalize-scss";
@import "compass/typography/vertical_rhythm";
@import url('http://fonts.googleapis.com/css?family=Oxygen');
@import url('http://fonts.googleapis.com/css?family=Source+Sans+Pro');
@import url('http://fonts.googleapis.com/css?family=Creepster');
// DROP SHADOW
@mixin box-shadow($top, $left, $blur, $color, $inset:"") {
-webkit-box-shadow:$top $left $blur $color #{$inset};
-moz-box-shadow:$top $left $blur $color #{$inset};
box-shadow:$top $left $blur $color #{$inset};
}
// //////////////////////////////////
// SETTINGS!
$base-font-size: 16px;
$base-line-height: 24px;
$rhythm-unit: "rem";
$rem-with-px-fallback: true;
$round-to-nearest-half-line: false;
// FONTS
// http://css-tricks.com/snippets/css/font-stacks/
// http://monkee-boy.com/blog/2013/10/10-more-awesome-google-webfont-combinations-to-try-today/
// search google for: google font pairings
$hdr-font-stack: 'Oxygen', Frutiger, "Frutiger Linotype", Univers, Calibri, "Gill Sans", "Gill Sans MT", "Myriad Pro", Myriad, "DejaVu Sans Condensed", "Liberation Sans", "Nimbus Sans L", Tahoma, Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif;;
$pri-font-stack: 'Source Sans Pro', Corbel, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "DejaVu Sans", "Bitstream Vera Sans", "Liberation Sans", Verdana, "Verdana Ref", sans-serif;;
//$alt-font-stack: 'Lato', serif;
// MODULAR SCALE (TODO)
$ms-xxl: 86px;
$ms-up6: 30px;
$ms-up5: 26px;
$ms-up4: 22px;
$ms-up3: 20px;
$ms-up2: 18px;
$ms-up1: 18px;
$ms-base: $base-font-size;
$ms-down1: 10.715px;
$ms-down2: 10.042px;
$ms-down3: 9.662px;
// ACTUAL STYLESHEET
// BLOCK ELEMENTS
section, p {
@include adjust-font-size-to($ms-base);
@include rhythm();
font-family: $pri-font-stack;
}
//CONTAINERS
main {
@include debug-vertical-alignment();
width: 60%;
margin: 0 auto;
}
section {
@include trailer(3);
&.last {
@include trailer();
}
}
.box {
@include rhythm-borders(8px);
// rhythm borders overrided rules
border-color: #938;
@include box-shadow(0px, 0px, 20px, #222);
}
// HEADERS
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
@include rhythm();
font-family: $hdr-font-stack;
}
h1, .h1 { @include adjust-font-size-to($ms-up6); }
h2, .h2 { @include adjust-font-size-to($ms-up3); }
h3, .h3 { @include adjust-font-size-to($ms-up1); }
h4, .h4 { @include adjust-font-size-to($ms-up1); }
h5, .h5 { @include adjust-font-size-to($ms-base); }
h6, .h6 { @include adjust-font-size-to($ms-base); }
// spacing
main > h1 {
@include trailer(2);
color: brown;
}
// presentation
h2.main {
text-transform: uppercase;
}
h4.highlight {
//color: TODO;
font-weight: bold;
@include adjust-font-size-to($ms-xxl, 4, $ms-up1);
}
header h1 {
text-align: center;
@include adjust-font-size-to($ms-xxl, 4, $ms-up1);
font-family: 'Creepster', cursive;
}
@import "normalize-scss";
@import "responsive-sass";
@import "singularitygs";
@import "typesettings";
@charset "UTF-8";
/* SASS/COMPASS Typography Example
GOAL OF THE PROJECT:
provide a simple typography module
looking great in modern (and less
modern) browsers.
DESCRIPTION:
TODO
FEATURES:
* takes care of vertical rhythm
* modular scale aware
* ... and much more ...
ISSUES:
Please report any issue here (TODO).
CREDITS AND INSPIRED BY:
*/
/* normalize-scss 3.0.2+normalize.3.0.2 | MIT/GPLv2 License | bit.ly/normalize-scss */
/**
* Establish a vertical rhythm unit using $base-font-size, $base-line-height,
* and $rhythm-unit variables. Also, correct text resizing oddly in IE 6/7 when
* body `font-size` is set using `em` units.
*/
@import url("http://fonts.googleapis.com/css?family=Oxygen");
@import url("http://fonts.googleapis.com/css?family=Source+Sans+Pro");
@import url("http://fonts.googleapis.com/css?family=Creepster");
html {
font-size: 100%;
line-height: 1.5em;
}
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif;
/* 1 */
-ms-text-size-adjust: 100%;
/* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
display: inline-block;
/* 1 */
*display: inline;
*zoom: 1;
vertical-align: baseline;
/* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9/10.
*/
[hidden] {
display: none;
}
/**
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
*/
template {
display: none;
}
/* Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* Text-level semantics
========================================================================== */
/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Set 1 unit of vertical rhythm on the top and bottom margin.
*/
blockquote {
margin: 1.5em 40px;
}
/**
* Address styling not present in Safari and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/
h1 {
/* Set the font-size and line-height while keeping a proper vertical rhythm. */
font-size: 2em;
line-height: 1.5em;
/* Set 1 unit of vertical rhythm on the top and bottom margins. */
margin-top: 0.75em;
margin-bottom: 0.75em;
}
h2 {
font-size: 1.5em;
line-height: 2em;
margin-top: 1em;
margin-bottom: 1em;
}
h3 {
font-size: 1.17em;
line-height: 1.28205em;
margin-top: 1.28205em;
margin-bottom: 1.28205em;
}
h4 {
font-size: 1em;
line-height: 1.5em;
margin-top: 1.5em;
margin-bottom: 1.5em;
}
h5 {
font-size: 0.83em;
line-height: 1.80723em;
margin-top: 1.80723em;
margin-bottom: 1.80723em;
}
h6 {
font-size: 0.67em;
line-height: 2.23881em;
margin-top: 2.23881em;
margin-bottom: 2.23881em;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Set 1 unit of vertical rhythm on the top and bottom margin.
*/
p,
pre {
margin: 1.5em 0;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* Lists
========================================================================== */
/**
* Address margins set differently in IE 6/7.
*/
dl,
menu,
ol,
ul {
margin: 1.5em 0;
}
dd {
margin: 0 0 0 40px;
}
/**
* Address paddings set differently in IE 6/7.
*/
menu,
ol,
ul {
padding: 0 0 0 40px;
}
/**
* Correct list images handled incorrectly in IE 7.
*/
nav ul,
nav ol {
list-style: none;
list-style-image: none;
}
/* Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9/10.
*/
img {
border: 0;
/* Improve image quality when scaled in IE 7. */
-ms-interpolation-mode: bicubic;
}
/**
* Correct overflow not hidden in IE 9/10/11.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari.
*/
figure {
margin: 1.5em 40px;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto;
}
/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/* Forms
========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* Correct margin displayed oddly in IE 6/7.
*/
form {
margin: 0;
}
/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
* 4. Address `font-family` inconsistency between `textarea` and other form in IE 7
* 5. Improve appearance and consistency with IE 6/7.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit;
/* 1 */
font: inherit;
/* 2 */
margin: 0;
/* 3 */
*font-family: sans-serif;
/* 4 */
*vertical-align: middle;
/* 5 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/
button {
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
* 4. Remove inner spacing in IE 7 without affecting normal text inputs.
* Known issue: inner spacing remains in IE 6.
*/
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
/* 2 */
cursor: pointer;
/* 3 */
*overflow: visible;
/* 4 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
* 3. Remove excess padding in IE 7.
* Known issue: excess padding remains in IE 6.
*/
input[type="checkbox"],
input[type="radio"] {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
/* 1 */
padding: 0;
/* 2 */
*height: 13px;
/* 3 */
*width: 13px;
/* 3 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield;
/* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
/* 2 */
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
}
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
margin: 0 2px;
/* Apply borders and padding that keep the vertical rhythm. */
border-color: #c0c0c0;
border-top-width: 0.0625em;
border-top-style: solid;
padding-top: 0.4625em;
border-bottom-width: 0.0625em;
border-bottom-style: solid;
padding-bottom: 0.9125em;
border-left-width: 0.0625em;
border-left-style: solid;
padding-left: 0.875em;
border-right-width: 0.0625em;
border-right-style: solid;
padding-right: 0.875em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
* 3. Correct alignment displayed oddly in IE 6/7.
*/
legend {
border: 0;
/* 1 */
padding: 0;
/* 2 */
*margin-left: -7px;
/* 3 */
}
/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/
textarea {
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold;
}
/* Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
section, p {
font-size: 16px;
font-size: 1rem;
line-height: 24px;
line-height: 1.5rem;
margin-top: 24px;
margin-top: 1.5rem;
padding-top: 0px;
padding-top: 0rem;
padding-bottom: 0px;
padding-bottom: 0rem;
margin-bottom: 24px;
margin-bottom: 1.5rem;
font-family: "Source Sans Pro", Corbel, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "DejaVu Sans", "Bitstream Vera Sans", "Liberation Sans", Verdana, "Verdana Ref", sans-serif;
}
main {
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjEuMCIgeDI9IjAuNSIgeTI9IjAuMCI+PHN0b3Agb2Zmc2V0PSI1JSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjUiLz48c3RvcCBvZmZzZXQ9IjUlIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
background-size: 100%;
background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(5%, rgba(0, 0, 0, 0.5)), color-stop(5%, rgba(0, 0, 0, 0)));
background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 5%);
background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 5%);
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5) 5%, rgba(0, 0, 0, 0) 5%);
-moz-background-size: 100% 1.5rem;
-o-background-size: 100% 1.5rem;
-webkit-background-size: 100% 1.5rem;
background-size: 100% 1.5rem;
background-position: left top;
width: 60%;
margin: 0 auto;
}
section {
margin-bottom: 72px;
margin-bottom: 4.5rem;
}
section.last {
margin-bottom: 24px;
margin-bottom: 1.5rem;
}
.box {
border-width: 8px;
border-width: 0.5rem;
border-style: solid;
padding: 16px;
padding: 1rem;
border-color: #938;
-webkit-box-shadow: 0px 0px 20px #222222 ;
-moz-box-shadow: 0px 0px 20px #222222 ;
box-shadow: 0px 0px 20px #222222 ;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
margin-top: 24px;
margin-top: 1.5rem;
padding-top: 0px;
padding-top: 0rem;
padding-bottom: 0px;
padding-bottom: 0rem;
margin-bottom: 24px;
margin-bottom: 1.5rem;
font-family: "Oxygen", Frutiger, "Frutiger Linotype", Univers, Calibri, "Gill Sans", "Gill Sans MT", "Myriad Pro", Myriad, "DejaVu Sans Condensed", "Liberation Sans", "Nimbus Sans L", Tahoma, Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif;
}
h1, .h1 {
font-size: 30px;
font-size: 1.875rem;
line-height: 48px;
line-height: 3rem;
}
h2, .h2 {
font-size: 20px;
font-size: 1.25rem;
line-height: 24px;
line-height: 1.5rem;
}
h3, .h3 {
font-size: 18px;
font-size: 1.125rem;
line-height: 24px;
line-height: 1.5rem;
}
h4, .h4 {
font-size: 18px;
font-size: 1.125rem;
line-height: 24px;
line-height: 1.5rem;
}
h5, .h5 {
font-size: 16px;
font-size: 1rem;
line-height: 24px;
line-height: 1.5rem;
}
h6, .h6 {
font-size: 16px;
font-size: 1rem;
line-height: 24px;
line-height: 1.5rem;
}
main > h1 {
margin-bottom: 48px;
margin-bottom: 3rem;
color: brown;
}
h2.main {
text-transform: uppercase;
}
h4.highlight {
font-weight: bold;
font-size: 86px;
font-size: 5.375rem;
line-height: 96px;
line-height: 6rem;
}
header h1 {
text-align: center;
font-size: 86px;
font-size: 5.375rem;
line-height: 96px;
line-height: 6rem;
font-family: 'Creepster', cursive;
}
/* normalize-scss 3.0.2+normalize.3.0.2 | MIT/GPLv2 License | bit.ly/normalize-scss */
/**
* Establish a vertical rhythm unit using $base-font-size, $base-line-height,
* and $rhythm-unit variables. Also, correct text resizing oddly in IE 6/7 when
* body `font-size` is set using `em` units.
*/
html {
font-size: 100%;
line-height: 1.5em;
}
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif;
/* 1 */
-ms-text-size-adjust: 100%;
/* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
display: inline-block;
/* 1 */
*display: inline;
*zoom: 1;
vertical-align: baseline;
/* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9/10.
*/
[hidden] {
display: none;
}
/**
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
*/
template {
display: none;
}
/* Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* Text-level semantics
========================================================================== */
/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Set 1 unit of vertical rhythm on the top and bottom margin.
*/
blockquote {
margin: 24px 40px;
margin: 1.5rem 2.5rem;
}
/**
* Address styling not present in Safari and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/
h1 {
/* Set the font-size and line-height while keeping a proper vertical rhythm. */
font-size: 32px;
font-size: 2rem;
line-height: 48px;
line-height: 3rem;
/* Set 1 unit of vertical rhythm on the top and bottom margins. */
margin-top: 24px;
margin-top: 1.5rem;
margin-bottom: 24px;
margin-bottom: 1.5rem;
}
h2 {
font-size: 24px;
font-size: 1.5rem;
line-height: 48px;
line-height: 3rem;
margin-top: 24px;
margin-top: 1.5rem;
margin-bottom: 24px;
margin-bottom: 1.5rem;
}
h3 {
font-size: 19px;
font-size: 1.17rem;
line-height: 24px;
line-height: 1.5rem;
margin-top: 24px;
margin-top: 1.5rem;
margin-bottom: 24px;
margin-bottom: 1.5rem;
}
h4 {
font-size: 16px;
font-size: 1rem;
line-height: 24px;
line-height: 1.5rem;
margin-top: 24px;
margin-top: 1.5rem;
margin-bottom: 24px;
margin-bottom: 1.5rem;
}
h5 {
font-size: 13px;
font-size: 0.83rem;
line-height: 24px;
line-height: 1.5rem;
margin-top: 24px;
margin-top: 1.5rem;
margin-bottom: 24px;
margin-bottom: 1.5rem;
}
h6 {
font-size: 11px;
font-size: 0.67rem;
line-height: 24px;
line-height: 1.5rem;
margin-top: 24px;
margin-top: 1.5rem;
margin-bottom: 24px;
margin-bottom: 1.5rem;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Set 1 unit of vertical rhythm on the top and bottom margin.
*/
p,
pre {
margin: 24px 0;
margin: 1.5rem 0;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* Lists
========================================================================== */
/**
* Address margins set differently in IE 6/7.
*/
dl,
menu,
ol,
ul {
margin: 24px 0;
margin: 1.5rem 0;
}
dd {
margin: 0 0 0 40px;
}
/**
* Address paddings set differently in IE 6/7.
*/
menu,
ol,
ul {
padding: 0 0 0 40px;
}
/**
* Correct list images handled incorrectly in IE 7.
*/
nav ul,
nav ol {
list-style: none;
list-style-image: none;
}
/* Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9/10.
*/
img {
border: 0;
/* Improve image quality when scaled in IE 7. */
-ms-interpolation-mode: bicubic;
}
/**
* Correct overflow not hidden in IE 9/10/11.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari.
*/
figure {
margin: 24px 40px;
margin: 1.5rem 2.5rem;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto;
}
/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/* Forms
========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* Correct margin displayed oddly in IE 6/7.
*/
form {
margin: 0;
}
/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
* 4. Address `font-family` inconsistency between `textarea` and other form in IE 7
* 5. Improve appearance and consistency with IE 6/7.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit;
/* 1 */
font: inherit;
/* 2 */
margin: 0;
/* 3 */
*font-family: sans-serif;
/* 4 */
*vertical-align: middle;
/* 5 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/
button {
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
* 4. Remove inner spacing in IE 7 without affecting normal text inputs.
* Known issue: inner spacing remains in IE 6.
*/
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
/* 2 */
cursor: pointer;
/* 3 */
*overflow: visible;
/* 4 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
* 3. Remove excess padding in IE 7.
* Known issue: excess padding remains in IE 6.
*/
input[type="checkbox"],
input[type="radio"] {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
/* 1 */
padding: 0;
/* 2 */
*height: 13px;
/* 3 */
*width: 13px;
/* 3 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield;
/* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
/* 2 */
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
}
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
margin: 0 2px;
/* Apply borders and padding that keep the vertical rhythm. */
border-color: #c0c0c0;
border-top-width: 1px;
border-top-width: 0.0625rem;
border-top-style: solid;
padding-top: 7px;
padding-top: 0.4625rem;
border-bottom-width: 1px;
border-bottom-width: 0.0625rem;
border-bottom-style: solid;
padding-bottom: 15px;
padding-bottom: 0.9125rem;
border-left-width: 1px;
border-left-width: 0.0625rem;
border-left-style: solid;
padding-left: 14px;
padding-left: 0.875rem;
border-right-width: 1px;
border-right-width: 0.0625rem;
border-right-style: solid;
padding-right: 14px;
padding-right: 0.875rem;
}
/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
* 3. Correct alignment displayed oddly in IE 6/7.
*/
legend {
border: 0;
/* 1 */
padding: 0;
/* 2 */
*margin-left: -7px;
/* 3 */
}
/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/
textarea {
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold;
}
/* Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
/*If you wanted to add the equivalent of a 12px left padding to an h2 set at a font-size of 32px you could use it like this:
h2 {
padding-left: calc-em(12px, 32px);
}
More info can be found here => http://thesassway.com/intermediate/responsive-web-design-part-1*/
/*
Frameless http://framelessgrid.com/
by Joni Korpi http://jonikorpi.com/
licensed under CC0 http://creativecommons.org/publicdomain/zero/1.0/
Modified by Nick Treadway http://twitter.com/nicktea
*/
/*
Margin, padding, and border resets
except for form elements
*/
body, div,
h1, h2, h3, h4, h5, h6,
p, blockquote, pre, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, th, td,
article, aside, figure, footer, header, hgroup, menu, nav, section {
margin: 0;
padding: 0;
border: 0;
}
/*
An easy way to zoom your entire layout in or out (as long as it's set in ems).
Just change the media queries to activate them.
Assuming your base font-size is 16:
- the first one zooms out by a factor of (16-2)/16 = 0.875
- the second one zooms in by a factor of (16+2)/16 = 1.125
*/
@media screen and (max-width: 1px) {
body {
font-size: 0.875em;
}
}
@media screen and (max-width: 1px) {
body {
font-size: 1.125em;
}
}
html {
font-size: 100%;
}
body {
margin: 0;
padding: 0;
line-height: 1.5;
}
html {
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
padding: 0;
font-family: Georgia, "Times New Roman", serif;
font-weight: 400;
color: black;
}
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
margin-top: 0;
padding-top: 0;
padding-bottom: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: bold;
text-transform: uppercase;
}
h1, .h1 {
margin-bottom: 0.75023em;
font-size: 1.9994em;
line-height: 1.12534;
}
@media (min-width: 43.75em) {
h1, .h1 {
margin-bottom: 0.53057em;
font-size: 2.82715em;
line-height: 1.06114;
}
}
@media (min-width: 56.25em) {
h1, .h1 {
margin-bottom: 0.37523em;
font-size: 3.99758em;
line-height: 0.93807;
}
}
h2, .h2 {
margin-bottom: 1.06082em;
font-size: 1.414em;
line-height: 1.32603;
}
@media (min-width: 43.75em) {
h2, .h2 {
margin-bottom: 0.75023em;
font-size: 1.9994em;
line-height: 1.12534;
}
}
@media (min-width: 56.25em) {
h2, .h2 {
margin-bottom: 0.53057em;
font-size: 2.82715em;
line-height: 1.06114;
}
}
h3, .h3 {
margin-bottom: 1.06082em;
font-size: 1.414em;
line-height: 1.32603;
}
@media (min-width: 56.25em) {
h3, .h3 {
margin-bottom: 0.75023em;
font-size: 1.9994em;
line-height: 1.12534;
}
}
h4, .h4 {
margin-bottom: 1.06082em;
font-size: 1.414em;
line-height: 1.32603;
}
h5, .h5,
h6, .h6 {
margin-bottom: 1.5em;
font-size: 1em;
line-height: 1.5;
}
p {
margin-top: 0;
margin-bottom: 1.5em;
padding-top: 0;
padding-bottom: 0;
max-width: 36em;
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
-o-hyphens: auto;
hyphens: auto;
word-wrap: break-word;
}
@media (min-width: 43.75em) {
p {
text-align: justify;
}
}
p + p {
margin-top: -1.5em;
text-indent: 1.5em;
}
small,
.font-small {
font-size: 0.70721em;
line-height: 1.59075;
}
em {
font-style: italic;
}
strong {
font-weight: bold;
}
blockquote {
margin-top: 1.5em;
margin-bottom: 1.5em;
margin-left: -1.875em;
padding-top: 0;
padding-bottom: 0;
padding-left: 1.5em;
border-left: 6px solid gray;
font-family: "Lucida Console", Monaco, monospace;
font-weight: bold;
}
blockquote footer cite:before {
content: " – ";
}
pre,
code {
font-family: "Lucida Console", Monaco, monospace;
}
time,
.time {
text-transform: uppercase;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1.5em;
margin-left: 1.5em;
padding-top: 0;
padding-bottom: 0;
}
ul ul,
ol ol,
dl dl {
margin-left: 0;
}
ul {
list-style: disc;
}
ol {
list-style: decimal;
}
abbr {
font-variant: small-caps;
font-weight: 600;
text-transform: lowercase;
}
abbr[title]:hover {
cursor: help;
}
hr {
margin-top: 1.5em;
margin-bottom: 0;
border: none;
border-top-color: black;
border-top-style: solid;
border-top-width: 1px;
padding-top: 1.4375em;
}
<main>
<header>
<h1>Web Typography</h1>
<h1>Demystified</h1>
</header>
<h1>A section</h1>
<section>
<h2>Section heading</h2>
<p>A paragraph: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h2>A boxed container</h2>
<div class="box">
<h3>The header</h3>
<p>The paragraph: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>And another paragraph, lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
</section>
<h1>Typography showcase</h1>
<section>
<h2 class="main">Welcome!</h2>
<div class="box">
<h3>About Web typography</h3>
<h4 class="highlight">HARD TO GET IT RIGHT&hellip; <- Not kidding.</h4>
<h5>Sass and Compass FTW, will make it a snap!</h5>
<h6>Are you a web developer? Read on.</h6>
<p>This page aims to provide a simple web typography example that looks great in modern, and hopefully less modern browsers. Doing a such thing is not an easy task but <a href="http://sass-lang.com/">Sass</a> and Compass makes it possible greatly simplifying the challenge.</p>
<p><a href="compass-style.org">Compass</a> is <i>an open-source CSS authoring framework which uses the Sass stylesheet language to make writing stylesheets powerful and easy</i>. I agree, so many things become possible.</p>
<p>Going on, more documentation will come, in the mean time have a look at the showcase to get an idea. <a href="#headers">Headers</a></p>
<p><small><strong>DISCLAIMER:</strong> I'm a Python developer, not a pro web designer. Feedback is welcome &#9786;</small></p>
</div>
<h1 id="headers">Headers</h1>
<p>Herebelow is an example of the different headings.</p>
<div class="box">
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
<h6>Heading 6</h6>
<h1>Heading 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h2>Heading 2</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h3>Heading 3</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h4>Heading 4</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h5>Heading 5</h5>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<h6>Heading 6</h6>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p
</div>
</section>
<h1>Last section</h1>
<section class="last">
<h2>Enjoy the code and feel free to tailor your own version tweaking scss.</h2>
<div class="box">
<h3>About this section</h3>
<p>Note that in this section the trailer space is reset to the default.</p>
</div>
</section>
</main>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment