diff options
author | JohnAlbin <virtually.johnalbin@gmail.com> | 2016-10-24 08:48:19 +0300 |
---|---|---|
committer | JohnAlbin <virtually.johnalbin@gmail.com> | 2016-10-24 09:24:13 +0300 |
commit | 6dcf2941f392560414d0f7ebcc4df60b51976d5e (patch) | |
tree | 5578b3db0c2e8a0edaf6ddb301466294aeac13b8 | |
parent | 86f93372c6ec845280c6a727ad6fb88458e280ac (diff) |
Don't output vertical rhythm if only $indent-amount variable is set. #88
-rw-r--r-- | fork-versions/default/_normalize.scss | 7 | ||||
-rw-r--r-- | sass/normalize/_normalize-mixin.scss | 10 | ||||
-rw-r--r-- | test/fixtures/fork-versions/default/output.css | 2 | ||||
-rw-r--r-- | test/fixtures/import-now/output.css | 2 | ||||
-rw-r--r-- | test/fixtures/normalize/exclude-single/output.css | 2 | ||||
-rw-r--r-- | test/fixtures/normalize/exclude-string/output.css | 2 | ||||
-rw-r--r-- | test/fixtures/variables/default/output.css | 2 | ||||
-rw-r--r-- | test/fixtures/variables/indent-amount-and-vertical-rhythm/input.scss | 5 | ||||
-rw-r--r-- | test/fixtures/variables/indent-amount-and-vertical-rhythm/output.css | 512 | ||||
-rw-r--r-- | test/fixtures/variables/indent-amount/output.css | 84 | ||||
-rw-r--r-- | test/test_variables.js | 6 |
11 files changed, 545 insertions, 89 deletions
diff --git a/fork-versions/default/_normalize.scss b/fork-versions/default/_normalize.scss index daae7f1..2eb3e92 100644 --- a/fork-versions/default/_normalize.scss +++ b/fork-versions/default/_normalize.scss @@ -169,7 +169,12 @@ figure { */ figure { - @include normalize-margin(1 $indent-amount); + @if $normalize-vertical-rhythm { + @include normalize-margin(1 $indent-amount); + } + @else { + margin: 1em $indent-amount; + } } /** diff --git a/sass/normalize/_normalize-mixin.scss b/sass/normalize/_normalize-mixin.scss index 05561f5..33a381e 100644 --- a/sass/normalize/_normalize-mixin.scss +++ b/sass/normalize/_normalize-mixin.scss @@ -39,8 +39,7 @@ or $h3-font-size != 1.17 * $base-font-size or $h4-font-size != 1 * $base-font-size or $h5-font-size != 0.83 * $base-font-size - or $h6-font-size != 0.67 * $base-font-size - or $indent-amount != 40px { + or $h6-font-size != 0.67 * $base-font-size { $normalize-vertical-rhythm: true !global; } @@ -201,7 +200,12 @@ */ figure { - @include normalize-margin(1 $indent-amount); + @if $normalize-vertical-rhythm { + @include normalize-margin(1 $indent-amount); + } + @else { + margin: 1em $indent-amount; + } } /** diff --git a/test/fixtures/fork-versions/default/output.css b/test/fixtures/fork-versions/default/output.css index deb3095..dda3b63 100644 --- a/test/fixtures/fork-versions/default/output.css +++ b/test/fixtures/fork-versions/default/output.css @@ -58,7 +58,7 @@ figure { * Add the correct margin in IE 8. */ figure { - margin: 1.5em 40px; } + margin: 1em 40px; } /** * 1. Add the correct box sizing in Firefox. diff --git a/test/fixtures/import-now/output.css b/test/fixtures/import-now/output.css index 24cd578..2a37664 100644 --- a/test/fixtures/import-now/output.css +++ b/test/fixtures/import-now/output.css @@ -58,7 +58,7 @@ figure { * Add the correct margin in IE 8. */ figure { - margin: 1.5em 40px; } + margin: 1em 40px; } /** * 1. Add the correct box sizing in Firefox. diff --git a/test/fixtures/normalize/exclude-single/output.css b/test/fixtures/normalize/exclude-single/output.css index bddeb76..ce75668 100644 --- a/test/fixtures/normalize/exclude-single/output.css +++ b/test/fixtures/normalize/exclude-single/output.css @@ -58,7 +58,7 @@ figure { * Add the correct margin in IE 8. */ figure { - margin: 1.5em 40px; } + margin: 1em 40px; } /** * 1. Add the correct box sizing in Firefox. diff --git a/test/fixtures/normalize/exclude-string/output.css b/test/fixtures/normalize/exclude-string/output.css index 8c1c26c..7b77e43 100644 --- a/test/fixtures/normalize/exclude-string/output.css +++ b/test/fixtures/normalize/exclude-string/output.css @@ -58,7 +58,7 @@ figure { * Add the correct margin in IE 8. */ figure { - margin: 1.5em 40px; } + margin: 1em 40px; } /** * 1. Add the correct box sizing in Firefox. diff --git a/test/fixtures/variables/default/output.css b/test/fixtures/variables/default/output.css index 24cd578..2a37664 100644 --- a/test/fixtures/variables/default/output.css +++ b/test/fixtures/variables/default/output.css @@ -58,7 +58,7 @@ figure { * Add the correct margin in IE 8. */ figure { - margin: 1.5em 40px; } + margin: 1em 40px; } /** * 1. Add the correct box sizing in Firefox. diff --git a/test/fixtures/variables/indent-amount-and-vertical-rhythm/input.scss b/test/fixtures/variables/indent-amount-and-vertical-rhythm/input.scss new file mode 100644 index 0000000..1fa8dac --- /dev/null +++ b/test/fixtures/variables/indent-amount-and-vertical-rhythm/input.scss @@ -0,0 +1,5 @@ +$normalize-vertical-rhythm: true; +$indent-amount: 3em; + +@import 'normalize'; +@include normalize(); diff --git a/test/fixtures/variables/indent-amount-and-vertical-rhythm/output.css b/test/fixtures/variables/indent-amount-and-vertical-rhythm/output.css new file mode 100644 index 0000000..b1c387c --- /dev/null +++ b/test/fixtures/variables/indent-amount-and-vertical-rhythm/output.css @@ -0,0 +1,512 @@ +/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */ +/* Document + ========================================================================== */ +/** + * 1. Change the default font family in all browsers (opinionated). + * 2. Correct the line height in all browsers. + * 3. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ +html { + font-family: sans-serif; + /* 1 */ + font-size: 100%; + line-height: 1.5em; + /* 2 */ + -ms-text-size-adjust: 100%; + /* 3 */ + -webkit-text-size-adjust: 100%; + /* 3 */ } + +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers (opinionated). + */ +body { + margin: 0; } + +/** + * Add the correct display in IE 9-. + */ +article, +aside, +footer, +header, +nav, +section { + display: block; } + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + line-height: 1.5em; + /* Set 1 unit of vertical rhythm on the top and bottom margins. */ + margin: 0.75em 0; } + +h2 { + font-size: 1.5em; + line-height: 2em; + margin: 1em 0; } + +h3 { + font-size: 1.17em; + line-height: 1.28205em; + margin: 1.28205em 0; } + +h4 { + font-size: 1em; + line-height: 1.5em; + margin: 1.5em 0; } + +h5 { + font-size: 0.83em; + line-height: 1.80723em; + margin: 1.80723em 0; } + +h6 { + font-size: 0.67em; + line-height: 2.23881em; + margin: 2.23881em 0; } + +/* Grouping content + ========================================================================== */ +/** + * Set 1 unit of vertical rhythm on the top and bottom margin. + */ +blockquote { + margin: 1.5em 3em; } + +dl, +ol, +ul { + margin: 1.5em 0; } + +/** + * Turn off margins on nested lists. + */ +ol ol, +ol ul, +ul ol, +ul ul { + margin: 0; } + +dd { + margin: 0 0 0 3em; } + +ol, +ul { + padding: 0 0 0 3em; } + +/** + * Add the correct display in IE 9-. + */ +figcaption, +figure { + display: block; } + +/** + * Add the correct margin in IE 8. + */ +figure { + margin: 1.5em 3em; } + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ } + +/** + * Add the correct display in IE. + */ +main { + display: block; } + +/** + * Set 1 unit of vertical rhythm on the top and bottom margin. + */ +p, +pre { + margin: 1.5em 0; } + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ } + +/* Links + ========================================================================== */ +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ +a { + background-color: transparent; + /* 1 */ + -webkit-text-decoration-skip: objects; + /* 2 */ } + +/** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). + */ +a:active, +a:hover { + outline-width: 0; } + +/* Text-level semantics + ========================================================================== */ +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; + /* 1 */ + text-decoration: underline; + /* 2 */ + text-decoration: underline dotted; + /* 2 */ } + +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ +b, +strong { + font-weight: inherit; } + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; } + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ } + +/** + * Add the correct font style in Android 4.3-. + */ +dfn { + font-style: italic; } + +/** + * Add the correct background and color in IE 9-. + */ +mark { + background-color: #ff0; + color: #000; } + +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; } + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sub { + bottom: -0.25em; } + +sup { + top: -0.5em; } + +/* Embedded content + ========================================================================== */ +/** + * Add the correct display in IE 9-. + */ +audio, +video { + display: inline-block; } + +/** + * Add the correct display in iOS 4-7. + */ +audio:not([controls]) { + display: none; + height: 0; } + +/** + * Remove the border on images inside links in IE 10-. + */ +img { + border-style: none; } + +/** + * Hide the overflow in IE. + */ +svg:not(:root) { + overflow: hidden; } + +/* Forms + ========================================================================== */ +/** + * Known issues: + * - By default, Chrome on OS X and Safari on OS X allow very limited styling of + * select, unless a border property is set. The default font weight on + * optgroup elements cannot safely be changed in Chrome on OSX and Safari on + * OS X. + * - It is recommended that you do not style checkbox and radio inputs as + * Firefox's implementation does not respect box-sizing, padding, or width. + * - Certain font size values applied to number inputs cause the cursor style of + * the decrement button to change from default to text. + * - The search input is not fully stylable by default. In Chrome and Safari on + * OSX/iOS you can't control font, padding, border, or background. In Chrome + * and Safari on Windows you can't control border properly. It will apply + * border-width but will only show a border color (which cannot be controlled) + * for the outer 1px of that border. Applying -webkit-appearance: textfield + * addresses these issues without removing the benefits of search inputs (e.g. + * showing past searches). Safari (but not Chrome) will clip the cancel button + * on when it has padding (and textfield appearance). + */ +/** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: 1.5em; + /* 1 */ + margin: 0; + /* 2 */ } + +/** + * Show the overflow in IE. + */ +button { + overflow: visible; } + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { + /* 1 */ + text-transform: none; } + +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; + /* 2 */ } + +button, +[type="button"], +[type="reset"], +[type="submit"] { + /** + * Remove the inner border and padding in Firefox. + */ + /** + * Restore the focus styles unset by the previous rule. + */ } + button::-moz-focus-inner, + [type="button"]::-moz-focus-inner, + [type="reset"]::-moz-focus-inner, + [type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } + button:-moz-focusring, + [type="button"]:-moz-focusring, + [type="reset"]:-moz-focusring, + [type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } + +/** + * Show the overflow in Edge. + */ +input { + overflow: visible; } + +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ + /** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ } + [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ } + +/** + * Change the border, margin, and padding in all browsers (opinionated). + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; + /* 1 */ + display: table; + /* 1 */ + max-width: 100%; + /* 1 */ + white-space: normal; + /* 1 */ + color: inherit; + /* 2 */ + padding: 0; + /* 3 */ } + +/** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ } + +/** + * Remove the default vertical scrollbar in IE. + */ +textarea { + overflow: auto; } + +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Edge, IE, and Firefox. + */ +details { + display: block; } + +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; } + +/* + * Add the correct display in IE 9-. + */ +menu { + display: block; + /* + * 1. Set 1 unit of vertical rhythm on the top and bottom margin. + * 2. Set consistent space for the list style image. + */ + margin: 1.5em 0; + /* 1 */ + padding: 0 0 0 3em; + /* 2 */ + /** + * Turn off margins on nested lists. + */ } + menu menu, + ol menu, + ul menu { + margin: 0; } + +/* Scripting + ========================================================================== */ +/** + * Add the correct display in IE 9-. + */ +canvas { + display: inline-block; } + +/** + * Add the correct display in IE. + */ +template { + display: none; } + +/* Hidden + ========================================================================== */ +/** + * Add the correct display in IE 10-. + */ +[hidden] { + display: none; } diff --git a/test/fixtures/variables/indent-amount/output.css b/test/fixtures/variables/indent-amount/output.css index b1c387c..6e7a201 100644 --- a/test/fixtures/variables/indent-amount/output.css +++ b/test/fixtures/variables/indent-amount/output.css @@ -10,8 +10,7 @@ html { font-family: sans-serif; /* 1 */ - font-size: 100%; - line-height: 1.5em; + line-height: 1.15; /* 2 */ -ms-text-size-adjust: 100%; /* 3 */ @@ -43,65 +42,12 @@ section { */ h1 { font-size: 2em; - line-height: 1.5em; /* Set 1 unit of vertical rhythm on the top and bottom margins. */ margin: 0.75em 0; } -h2 { - font-size: 1.5em; - line-height: 2em; - margin: 1em 0; } - -h3 { - font-size: 1.17em; - line-height: 1.28205em; - margin: 1.28205em 0; } - -h4 { - font-size: 1em; - line-height: 1.5em; - margin: 1.5em 0; } - -h5 { - font-size: 0.83em; - line-height: 1.80723em; - margin: 1.80723em 0; } - -h6 { - font-size: 0.67em; - line-height: 2.23881em; - margin: 2.23881em 0; } - /* Grouping content ========================================================================== */ /** - * Set 1 unit of vertical rhythm on the top and bottom margin. - */ -blockquote { - margin: 1.5em 3em; } - -dl, -ol, -ul { - margin: 1.5em 0; } - -/** - * Turn off margins on nested lists. - */ -ol ol, -ol ul, -ul ol, -ul ul { - margin: 0; } - -dd { - margin: 0 0 0 3em; } - -ol, -ul { - padding: 0 0 0 3em; } - -/** * Add the correct display in IE 9-. */ figcaption, @@ -112,7 +58,7 @@ figure { * Add the correct margin in IE 8. */ figure { - margin: 1.5em 3em; } + margin: 1em 3em; } /** * 1. Add the correct box sizing in Firefox. @@ -133,13 +79,6 @@ main { display: block; } /** - * Set 1 unit of vertical rhythm on the top and bottom margin. - */ -p, -pre { - margin: 1.5em 0; } - -/** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ @@ -307,7 +246,7 @@ textarea { /* 1 */ font-size: 100%; /* 1 */ - line-height: 1.5em; + line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } @@ -472,22 +411,7 @@ summary { * Add the correct display in IE 9-. */ menu { - display: block; - /* - * 1. Set 1 unit of vertical rhythm on the top and bottom margin. - * 2. Set consistent space for the list style image. - */ - margin: 1.5em 0; - /* 1 */ - padding: 0 0 0 3em; - /* 2 */ - /** - * Turn off margins on nested lists. - */ } - menu menu, - ol menu, - ul menu { - margin: 0; } + display: block; } /* Scripting ========================================================================== */ diff --git a/test/test_variables.js b/test/test_variables.js index 7102e21..92d9439 100644 --- a/test/test_variables.js +++ b/test/test_variables.js @@ -28,4 +28,10 @@ describe('Configuration variables', function() { return sassyTest.renderFixture('variables/indent-amount'); }); }); + + describe('$indent-amount and $normalize-vertical-rhythm', function() { + it('should alter the indent amount of elements', function() { + return sassyTest.renderFixture('variables/indent-amount-and-vertical-rhythm'); + }); + }); }); |