@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; } @function admin-font-faces($fonts) { $url: "https://fonts.googleapis.com/css?family="; $nb: 0; @each $fontname, $weights in $fonts { @if $fontname == $fonts-default or $fontname == $fonts-header or $fontname == $fonts-mono { $nb: $nb + 1; $nb-word: 0; $fontname: str-replace("#{$fontname}", " ", "+"); $url: $url + $fontname; @if $weights != null { $url: $url + ":" + $weights; } @if $nb < 3 { $url: $url + "|"; } } } @return $url + "&subset=latin-ext"; } @mixin body-fonts($font) { body, h5, h6, .badge, .note, .grav-mdeditor-preview, input, select, textarea, button, .selectize-input { font-family: "#{$font}", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; } } @mixin header-fonts($font) { h1, h2, h3, h4, .form-tabs > label, .label { font-family: "#{$font}", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; } } @mixin mono-fonts($font) { code, kbd, pre, samp, body .CodeMirror { font-family: "#{$font}", "Monaco", "Consolas", "Lucida Console", monospace !important; } } $font-url: admin-font-faces($font-definitions); @import url("#{$font-url}"); @include body-fonts($fonts-default); @include header-fonts($fonts-header); @include mono-fonts($fonts-mono);