routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+36
@@ -0,0 +1,36 @@
|
||||
$id: 'roboto';
|
||||
$family: 'Roboto';
|
||||
$category: sans-serif;
|
||||
$subsets: (cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, math, symbols, vietnamese);
|
||||
$weights: (100, 200, 300, 400, 500, 600, 700, 800, 900);
|
||||
$styles: (italic, normal);
|
||||
$axes: null;
|
||||
$defaults: (
|
||||
subset: latin,
|
||||
weight: 400,
|
||||
style: normal,
|
||||
axis: null,
|
||||
);
|
||||
$unicode: (
|
||||
cyrillic-ext: (U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F),
|
||||
cyrillic: (U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116),
|
||||
greek-ext: (U+1F00-1FFF),
|
||||
greek: (U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF),
|
||||
math: (U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF),
|
||||
symbols: (U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF),
|
||||
vietnamese: (U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB),
|
||||
latin-ext: (U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF),
|
||||
latin: (U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD),
|
||||
);
|
||||
|
||||
$metadata: (
|
||||
id: $id,
|
||||
family: $family,
|
||||
category: $category,
|
||||
subsets: $subsets,
|
||||
weights: $weights,
|
||||
styles: $styles,
|
||||
axes: $axes,
|
||||
defaults: $defaults,
|
||||
unicode: $unicode,
|
||||
) !default;
|
||||
+193
@@ -0,0 +1,193 @@
|
||||
@use 'sass:list';
|
||||
@use 'sass:map';
|
||||
@use 'sass:math';
|
||||
@use 'sass:meta';
|
||||
@use 'sass:string';
|
||||
|
||||
@use 'metadata';
|
||||
|
||||
$metadata: metadata.$metadata !default;
|
||||
$directory: null !default;
|
||||
|
||||
$family: null !default;
|
||||
$display: null !default;
|
||||
$formats: null !default;
|
||||
$subsets: null !default;
|
||||
$weights: null !default;
|
||||
$styles: null !default;
|
||||
$axes: null !default;
|
||||
|
||||
// Deprecated
|
||||
$displayVar: null !default;
|
||||
|
||||
@mixin generator(
|
||||
$metadata: $metadata,
|
||||
$directory: $directory,
|
||||
$family: $family,
|
||||
$display: $display,
|
||||
$formats: $formats,
|
||||
$subsets: $subsets,
|
||||
$weights: $weights,
|
||||
$styles: $styles,
|
||||
$axes: $axes,
|
||||
|
||||
// Deprecated
|
||||
$displayVar: $displayVar
|
||||
) {
|
||||
@warn "Importing mixins via the fontsource package is deprecated and will be removed in the next major release. Please use the @fontsource-utils/scss package instead.";
|
||||
|
||||
@if $displayVar != null {
|
||||
@warn "$displayVar is deprecated due to the limitation of using css variables in @font-face (https://github.com/fontsource/fontsource/issues/726).";
|
||||
}
|
||||
|
||||
$isVariable: map.get($metadata, axes) != null;
|
||||
|
||||
$directory: if(
|
||||
$directory,
|
||||
$directory,
|
||||
'~@fontsource#{if($isVariable, '-variable', '')}/#{map.get($metadata, id)}/files'
|
||||
);
|
||||
|
||||
$family: if($family, $family, map.get($metadata, family) + if($isVariable, ' Variable', ''));
|
||||
$display: if($display, $display, swap);
|
||||
$formats: if(not $formats or $formats == all, if($isVariable, woff2, (woff2, woff)), $formats);
|
||||
$subsets: if(
|
||||
$subsets,
|
||||
if($subsets == all, map.get($metadata, subsets), $subsets),
|
||||
map.get($metadata, subsets)
|
||||
);
|
||||
$weights: if(
|
||||
$weights,
|
||||
if($weights == all, map.get($metadata, weights), $weights),
|
||||
map.get($metadata, defaults, weight)
|
||||
);
|
||||
$styles: if(
|
||||
$styles,
|
||||
if($styles == all, map.get($metadata, styles), $styles),
|
||||
map.get($metadata, defaults, style)
|
||||
);
|
||||
$axes: if(
|
||||
$axes,
|
||||
if($axes == all, full, $axes),
|
||||
if($isVariable, if(map.has-key($metadata, axes, wght), wght, full), null)
|
||||
);
|
||||
|
||||
@each $subset in $subsets {
|
||||
@each $unicodeSubset, $unicodeRange in map.get($metadata, unicode) {
|
||||
// If condition is true, generate faces for the current subset
|
||||
@if (
|
||||
// If there is no unicode information for the font or
|
||||
($unicodeSubset == null) or
|
||||
// If the subset match a unicode subset or
|
||||
($subset == $unicodeSubset) or
|
||||
(
|
||||
// If $unicodeSubset is a numeric unicode subset
|
||||
// and current subset exists in the list of font subsets but does not match any unicode subset
|
||||
// then generate faces for this numeric unicode subset as it is representing part of the current subset
|
||||
list.index(map.get($metadata, subsets), $subset) and not
|
||||
map.has-key($metadata, unicode, $subset) and not
|
||||
list.index(map.get($metadata, subsets), $unicodeSubset)
|
||||
)
|
||||
) {
|
||||
@each $weight in if($axes, null, $weights) {
|
||||
@each $axis in $axes {
|
||||
@each $style in $styles {
|
||||
$variant: '#{map.get($metadata, id)}-#{if($unicodeSubset, $unicodeSubset, $subset)}-#{if($axis, $axis, $weight)}-#{$style}';
|
||||
|
||||
$src: ();
|
||||
@each $format in $formats {
|
||||
$src: list.append(
|
||||
$src,
|
||||
url('#{$directory}/#{$variant}.#{$format}')
|
||||
format('#{$format}#{if($axis, '-variations', '')}'),
|
||||
comma
|
||||
);
|
||||
}
|
||||
|
||||
@content ((
|
||||
metadata: $metadata,
|
||||
directory: $directory,
|
||||
family: $family,
|
||||
display: $display,
|
||||
formats: $formats,
|
||||
subsets: $subsets,
|
||||
weights: $weights,
|
||||
styles: $styles,
|
||||
axes: $axes,
|
||||
|
||||
variant: $variant,
|
||||
subset: $subset,
|
||||
unicodeSubset: $unicodeSubset,
|
||||
unicodeRange: $unicodeRange,
|
||||
weight: $weight,
|
||||
axis: $axis,
|
||||
style: $style,
|
||||
|
||||
font-family: string.quote($family),
|
||||
font-style: if(
|
||||
(($axis == full) or ($axis == slnt)) and map.has-key($metadata, axes, slnt),
|
||||
oblique map.get($metadata, axes, slnt, min) + deg map.get($metadata, axes, slnt, max) + deg,
|
||||
$style
|
||||
),
|
||||
font-display: $display,
|
||||
font-weight: if(
|
||||
(($axis == full) or ($axis == wght)) and map.has-key($metadata, axes, wght),
|
||||
map.get($metadata, axes, wght, min) map.get($metadata, axes, wght, max),
|
||||
$weight
|
||||
),
|
||||
font-stretch: if(
|
||||
(($axis == full) or ($axis == wdth)) and map.has-key($metadata, axes, wdth),
|
||||
'#{map.get($metadata, axes, wdth, min)}% #{map.get($metadata, axes, wdth, max)}%',
|
||||
null
|
||||
),
|
||||
src: $src,
|
||||
unicode-range: $unicodeRange,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin faces(
|
||||
$metadata: $metadata,
|
||||
$directory: $directory,
|
||||
$family: $family,
|
||||
$display: $display,
|
||||
$formats: $formats,
|
||||
$subsets: $subsets,
|
||||
$weights: $weights,
|
||||
$styles: $styles,
|
||||
$axes: $axes,
|
||||
|
||||
// Deprecated
|
||||
$displayVar: $displayVar
|
||||
) {
|
||||
@include generator(
|
||||
$metadata: $metadata,
|
||||
$directory: $directory,
|
||||
$family: $family,
|
||||
$display: $display,
|
||||
$formats: $formats,
|
||||
$subsets: $subsets,
|
||||
$weights: $weights,
|
||||
$styles: $styles,
|
||||
$axes: $axes,
|
||||
|
||||
$displayVar: $displayVar
|
||||
)
|
||||
using ($props) {
|
||||
/* #{map.get($props, variant)} */
|
||||
@font-face {
|
||||
font-family: map.get($props, font-family);
|
||||
font-style: map.get($props, font-style);
|
||||
font-display: map.get($props, font-display);
|
||||
font-weight: map.get($props, font-weight);
|
||||
font-stretch: map.get($props, font-stretch);
|
||||
unicode-range: map.get($props, unicode-range);
|
||||
src: map.get($props, src);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user