Last active
June 2, 2025 07:21
-
Star
(502)
You must be signed in to star a gist -
Fork
(123)
You must be signed in to fork a gist
-
-
Save jonathantneal/d0460e5c2d5d7f9bc5e6 to your computer and use it in GitHub Desktop.
Revisions
-
jonathantneal revised this gist
Jan 5, 2015 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,7 +2,7 @@ A mixin for writing @font-face rules in SASS. ## Usage Create a font face rule. Embedded OpenType, WOFF2, WOFF, TrueType, and SVG files are automatically sourced. -
jonathantneal revised this gist
Jan 3, 2015 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -25,6 +25,7 @@ ); $formats: ( otf: "opentype", ttf: "truetype" ); -
jonathantneal revised this gist
Jan 3, 2015 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -86,6 +86,6 @@ Rendered as CSS: ## Notes IE≥9 prioritizes valid font formats over invalid ones. Therefore, while `embedded-opentype` is the correct format for an **.eot** font, `eot` is used to fool modern IE into prioritizing other, newer font formats. IE≤8 only supports **.eot** fonts and parses the `src` property incorrectly, interpreting everything between the first opening parenthesis `(` and the last closing parenthesis `)` as a single URL. Therefore, a `?` is appended to the **.eot**’s URL, fooling older IE into reading all other sources as query parameters. -
jonathantneal revised this gist
Jan 3, 2015 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -65,7 +65,7 @@ Rendered as CSS: --- Create a font face rule that applies to 500 weight text and sources EOT, WOFF2, and WOFF. ```scss @include font-face(Samplinal, fonts/Samplinal, 500, normal, eot woff2 woff); -
jonathantneal revised this gist
Jan 3, 2015 . 1 changed file with 6 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -23,6 +23,8 @@ Rendered as CSS: } ``` --- Create a font face rule that applies to bold and italic text. ```scss @@ -44,6 +46,8 @@ Rendered as CSS: } ``` --- Create a font face rule that only sources a WOFF. ```scss @@ -59,6 +63,8 @@ Rendered as CSS: } ``` --- Create a font face that applies to 500 weight text and sources EOT, WOFF2, and WOFF. ```scss -
jonathantneal revised this gist
Jan 3, 2015 . 1 changed file with 4 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -10,7 +10,7 @@ Create a font face rule. Embedded OpenType, WOFF2, WOFF, TrueType, and SVG files @include font-face(Samplino, fonts/Samplino); ``` Rendered as CSS: ```css @font-face { @@ -29,7 +29,7 @@ Create a font face rule that applies to bold and italic text. @include font-face("Samplina Neue", fonts/SamplinaNeue, bold, italic); ``` Rendered as CSS: ```css @font-face { @@ -50,7 +50,7 @@ Create a font face rule that only sources a WOFF. @include font-face(Samplinoff, fonts/Samplinoff, null, null, woff); ``` Rendered as CSS: ```css @font-face { @@ -65,7 +65,7 @@ Create a font face that applies to 500 weight text and sources EOT, WOFF2, and W @include font-face(Samplinal, fonts/Samplinal, 500, normal, eot woff2 woff); ``` Rendered as CSS: ```css @font-face { -
jonathantneal revised this gist
Jan 3, 2015 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -59,7 +59,7 @@ Which becomes: } ``` Create a font face that applies to 500 weight text and sources EOT, WOFF2, and WOFF. ```scss @include font-face(Samplinal, fonts/Samplinal, 500, normal, eot woff2 woff); -
jonathantneal revised this gist
Jan 3, 2015 . 2 changed files with 85 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,85 @@ # Font Face A mixin for writing @font-face rules in SASS. ## Usages Create a font face rule. Embedded OpenType, WOFF2, WOFF, TrueType, and SVG files are automatically sourced. ```scss @include font-face(Samplino, fonts/Samplino); ``` Which becomes: ```css @font-face { font-family: "Samplino"; src: url("fonts/Samplino.eot?") format("eot"), url("fonts/Samplino.woff2") format("woff2"), url("fonts/Samplino.woff") format("woff"), url("fonts/Samplino.ttf") format("truetype"), url("fonts/Samplino.svg#Samplino") format("svg"); } ``` Create a font face rule that applies to bold and italic text. ```scss @include font-face("Samplina Neue", fonts/SamplinaNeue, bold, italic); ``` Which becomes: ```css @font-face { font-family: "Samplina Neue"; font-style: italic; font-weight: bold; src: url("fonts/SamplinaNeue.eot?") format("eot"), url("fonts/SamplinaNeue.woff2") format("woff2"), url("fonts/SamplinaNeue.woff") format("woff"), url("fonts/SamplinaNeue.ttf") format("truetype"), url("fonts/SamplinaNeue.svg#Samplina_Neue") format("svg"); } ``` Create a font face rule that only sources a WOFF. ```scss @include font-face(Samplinoff, fonts/Samplinoff, null, null, woff); ``` Which becomes: ```css @font-face { font-family: "Samplinoff"; src: url("fonts/Samplinoff.woff") format("woff"); } ``` Create a font face that applies to 500 weight text and only sources a WOFF. ```scss @include font-face(Samplinal, fonts/Samplinal, 500, normal, eot woff2 woff); ``` Which becomes: ```css @font-face { font-family: "Samplinal"; font-style: normal; font-weight: 500; src: url("fonts/Samplinal.eot?") format("eot"), url("fonts/Samplinal.woff2") format("woff2"), url("fonts/Samplinal.woff") format("woff"); } ``` ## Notes IE≥9 prioritizes valid font formats over invalid ones. Therefore, while `embedded-opentype` the correct format for an **.eot** font, `eot` is written to fool modern IE into prioritizing other, newer font formats. IE≤8 only supports **.eot** fonts and parses the `src` property incorrectly, interpreting everything after the first opening parenthesis to the last closing parenthesis as a single URL. Therefore, a `?` is appended to the **.eot**’s URL, fooling older IE into interpreting all other sources as query parameters. This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -14,12 +14,6 @@ // ============================================================================= // Font Face // ============================================================================= @mixin font-face($name, $path, $weight: null, $style: null, $exts: eot woff2 woff ttf svg) { @@ -31,7 +25,6 @@ ); $formats: ( ttf: "truetype" ); -
jonathantneal created this gist
Jan 3, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,50 @@ // ============================================================================= // String Replace // ============================================================================= @function str-replace($string, $search, $replace: "") { $index: str-index($string, $search); @if $index { @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); } @return $string; } // ============================================================================= // Font Face // // Example usages: // @include font-face(Samplino, fonts/Samplino); // @include font-face(Samplino, fonts/Samplino, bold, italic); // @include font-face(Samplino, fonts/Samplino, null, null, woff); // @include font-face(Samplino, fonts/Samplino, 500, normal, eot woff2 woff); // ============================================================================= @mixin font-face($name, $path, $weight: null, $style: null, $exts: eot woff2 woff ttf svg) { $src: null; $extmods: ( eot: "?", svg: "#" + str-replace($name, " ", "_") ); $formats: ( eot: "!", ttf: "truetype" ); @each $ext in $exts { $extmod: if(map-has-key($extmods, $ext), $ext + map-get($extmods, $ext), $ext); $format: if(map-has-key($formats, $ext), map-get($formats, $ext), $ext); $src: append($src, url(quote($path + "." + $extmod)) format(quote($format)), comma); } @font-face { font-family: quote($name); font-style: $style; font-weight: $weight; src: $src; } }