Make an oblique.

This commit is contained in:
be5invis 2015-12-18 07:28:46 +08:00
parent f95465836e
commit e0bf066e06
5 changed files with 174 additions and 83 deletions

View file

@ -493,8 +493,8 @@ symbol-block 'a'
include eMarks include eMarks
set-anchor 'trailing' BASE (RIGHTSB - markHalfStroke) 0 set-anchor 'trailing' BASE (RIGHTSB - markHalfStroke) 0
local bartop (XH * BARPOS * 1.02 + HALFSTROKE) local bartop (XH * BARPOS * 1.02 + HALFSTROKE)
local lowslope : let [k : linreg 18 0 126 0.85 STROKE] : [shoulderMidSlope SHOULDERFINE nothing (-1)] * k - TANSLANT * (1 - k) local lowslope : shoulderMidSlope SHOULDERFINE nothing (-1)
local lowmiddle : [mix (SB + OX) (RIGHTSB - HALFSTROKE * HVCONTRAST) [linreg 72 0.51 126 0.56 STROKE]] + CORRECTION_OMIDS local lowmiddle : [mix (SB + OX) (RIGHTSB - HALFSTROKE * HVCONTRAST) [linreg 72 0.51 126 0.58 STROKE]] + CORRECTION_OMIDS * 0.5
local barsmooth : mix SB RIGHTSB 0.55 local barsmooth : mix SB RIGHTSB 0.55
include : dispiro include : dispiro
widths.lhs widths.lhs
@ -510,9 +510,8 @@ symbol-block 'a'
g4 (SB + OX) (bartop * 0.95 * (SMALLSMOOTHB / (SMALLSMOOTHA + SMALLSMOOTHB))) g4 (SB + OX) (bartop * 0.95 * (SMALLSMOOTHB / (SMALLSMOOTHA + SMALLSMOOTHB)))
arcvh arcvh
g4 (lowmiddle + (-lowslope) * STROKE) O [heading {.y 1 .x lowslope}] g4 (lowmiddle + (-lowslope) * STROKE) O [heading {.y 1 .x lowslope}]
archv archv 16
flat (RIGHTSB - STROKE * HVCONTRAST) (SMALLSMOOTHB * 0.9) [widths 0 SHOULDERFINE] straight.up.end (RIGHTSB - STROKE * HVCONTRAST + SHOULDERFINE * HVCONTRAST) (SMALLSMOOTHB * 0.9) [widths.lhs SHOULDERFINE]
curl (RIGHTSB - STROKE * HVCONTRAST) (SMALLSMOOTHB * 0.9 + 1)
if SLAB : begin if SLAB : begin
include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB 0 SIDEJUT include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB 0 SIDEJUT
@ -2393,7 +2392,7 @@ define {LongSShape} : symbol-block 'f'
g4 (RIGHTSB + RBALANCE2 - OXE) (CAP - HOOK * 0.7) g4 (RIGHTSB + RBALANCE2 - OXE) (CAP - HOOK * 0.7)
hookstart (CAP - O) true hookstart (CAP - O) true
flat barleft [CAP - SMOOTHA * 0.85] flat barleft [CAP - SMOOTHA * 0.85]
curl barleft 0 curl barleft 0 [heading DOWNWARD]
include : HBarTop [mix SB RIGHTSB 0] [mix SB RIGHTSB 0.95] fbar include : HBarTop [mix SB RIGHTSB 0] [mix SB RIGHTSB 0.95] fbar
if SLAB : include : HBarBottom [mix SB RIGHTSB 0.02] [mix SB RIGHTSB 0.875] 0 if SLAB : include : HBarBottom [mix SB RIGHTSB 0.02] [mix SB RIGHTSB 0.875] 0

View file

@ -21,10 +21,8 @@ NODE = node
UPRIGHT = $(OBJDIR)/$(PREFIX)-thin.ttf $(OBJDIR)/$(PREFIX)-extralight.ttf $(OBJDIR)/$(PREFIX)-light.ttf $(OBJDIR)/$(PREFIX)-regular.ttf $(OBJDIR)/$(PREFIX)-medium.ttf $(OBJDIR)/$(PREFIX)-bold.ttf $(OBJDIR)/$(PREFIX)-heavy.ttf UPRIGHT = $(OBJDIR)/$(PREFIX)-thin.ttf $(OBJDIR)/$(PREFIX)-extralight.ttf $(OBJDIR)/$(PREFIX)-light.ttf $(OBJDIR)/$(PREFIX)-regular.ttf $(OBJDIR)/$(PREFIX)-medium.ttf $(OBJDIR)/$(PREFIX)-bold.ttf $(OBJDIR)/$(PREFIX)-heavy.ttf
ITALIC = $(OBJDIR)/$(PREFIX)-thinitalic.ttf $(OBJDIR)/$(PREFIX)-extralightitalic.ttf $(OBJDIR)/$(PREFIX)-lightitalic.ttf $(OBJDIR)/$(PREFIX)-italic.ttf $(OBJDIR)/$(PREFIX)-mediumitalic.ttf $(OBJDIR)/$(PREFIX)-bolditalic.ttf $(OBJDIR)/$(PREFIX)-heavyitalic.ttf ITALIC = $(OBJDIR)/$(PREFIX)-thinitalic.ttf $(OBJDIR)/$(PREFIX)-extralightitalic.ttf $(OBJDIR)/$(PREFIX)-lightitalic.ttf $(OBJDIR)/$(PREFIX)-italic.ttf $(OBJDIR)/$(PREFIX)-mediumitalic.ttf $(OBJDIR)/$(PREFIX)-bolditalic.ttf $(OBJDIR)/$(PREFIX)-heavyitalic.ttf
EXTUPRG = OBLIQUE = $(OBJDIR)/$(PREFIX)-thinoblique.ttf $(OBJDIR)/$(PREFIX)-extralightoblique.ttf $(OBJDIR)/$(PREFIX)-lightoblique.ttf $(OBJDIR)/$(PREFIX)-oblique.ttf $(OBJDIR)/$(PREFIX)-mediumoblique.ttf $(OBJDIR)/$(PREFIX)-boldoblique.ttf $(OBJDIR)/$(PREFIX)-heavyoblique.ttf
EXTITAL = TARGETS = $(UPRIGHT) $(ITALIC) $(OBLIQUE)
OUTPUTS = $(UPRIGHT) $(ITALIC)
TARGETS = $(UPRIGHT) $(ITALIC) $(EXTUPRG) $(EXTITAL)
MAPS = $(subst .ttf,.charmap,$(TARGETS)) MAPS = $(subst .ttf,.charmap,$(TARGETS))
@ -32,57 +30,66 @@ FDTS = $(subst .ttf,.fdt,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS)))
SVG0 = $(subst .ttf,.svg,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))) SVG0 = $(subst .ttf,.svg,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS)))
ABFEAT = $(subst .ttf,.ab.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))) ABFEAT = $(subst .ttf,.ab.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS)))
FEATURE = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(UPRIGHT) $(EXTUPRG))) FEATURE = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(UPRIGHT) $(OBLIQUE)))
FEATITA = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(ITALIC) $(EXTITAL))) FEATITA = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(ITALIC)))
PASS1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS)) PASS1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))
PASS1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass1-,$(TARGETS)) PASS1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass1-,$(TARGETS))
PASS2 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass2-,$(TARGETS)) PASS2 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass2-,$(TARGETS))
PASS3 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass3-,$(TARGETS)) PASS3 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass3-,$(TARGETS))
PASS4 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass4-,$(TARGETS)) PASS4 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass4-,$(TARGETS))
fonts : $(OUTPUTS) fonts : $(TARGETS)
OUTPUT_FDTS = $(subst .ttf,.fdt,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(OUTPUTS))) fdts : $(FDTS)
OUTPUT_SVG0 = $(subst .ttf,.svg,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(OUTPUTS))) svgs : $(SVG0)
fdts : $(OUTPUT_FDTS)
svgs : $(OUTPUT_SVG0)
# Pass 0 : file construction # Pass 0 : file construction
$(OBJDIR)/.pass0-$(PREFIX)-thin.fdt : $(SCRIPTS) | $(OBJDIR) $(OBJDIR)/.pass0-$(PREFIX)-thin.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-thin s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-thin s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-thinitalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-thin s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-extralight.fdt : $(SCRIPTS) | $(OBJDIR) $(OBJDIR)/.pass0-$(PREFIX)-extralight.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extralight s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extralight s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-extralightitalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extralight s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-light.fdt : $(SCRIPTS) | $(OBJDIR) $(OBJDIR)/.pass0-$(PREFIX)-light.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-light s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-light s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-lightitalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-light s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-regular.fdt : $(SCRIPTS) | $(OBJDIR) $(OBJDIR)/.pass0-$(PREFIX)-regular.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-book s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-book s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-italic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-book s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-medium.fdt : $(SCRIPTS) | $(OBJDIR) $(OBJDIR)/.pass0-$(PREFIX)-medium.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-medium s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-medium s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-mediumitalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-medium s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-bold.fdt : $(SCRIPTS) | $(OBJDIR) $(OBJDIR)/.pass0-$(PREFIX)-bold.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-bolditalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
#$(OBJDIR)/.pass0-$(PREFIX)-extrabold.fdt : $(SCRIPTS) | $(OBJDIR)
# $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extrabold s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
#$(OBJDIR)/.pass0-$(PREFIX)-extrabolditalic.fdt : $(SCRIPTS) | $(OBJDIR)
# $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extrabold s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-heavy.fdt : $(SCRIPTS) | $(OBJDIR) $(OBJDIR)/.pass0-$(PREFIX)-heavy.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-thinitalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-thin s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-extralightitalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extralight s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-lightitalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-light s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-italic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-book s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-mediumitalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-medium s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-bolditalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-heavyitalic.fdt : $(SCRIPTS) | $(OBJDIR) $(OBJDIR)/.pass0-$(PREFIX)-heavyitalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-thinoblique.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-thin s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-extralightoblique.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extralight s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-lightoblique.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-light s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-oblique.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-book s-oblique $(STYLE_oblique) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-mediumoblique.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-medium s-oblique $(STYLE_oblique) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-boldoblique.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-oblique $(STYLE_oblique) $(STYLE_SUFFIX)
$(OBJDIR)/.pass0-$(PREFIX)-heavyoblique.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-oblique $(STYLE_oblique) $(STYLE_SUFFIX)
$(SVG0) : $(OBJDIR)/.pass0-%.svg : $(OBJDIR)/.pass0-%.fdt $(SVG0) : $(OBJDIR)/.pass0-%.svg : $(OBJDIR)/.pass0-%.fdt
$(NODE) extract --uprightify 1 --svg $@ $< $(NODE) extract --uprightify 1 --svg $@ $<
$(ABFEAT) : $(OBJDIR)/.pass0-%.ab.fea : $(OBJDIR)/.pass0-%.fdt $(ABFEAT) : $(OBJDIR)/.pass0-%.ab.fea : $(OBJDIR)/.pass0-%.fdt
@ -97,7 +104,7 @@ $(FEATITA) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.
# Pass 1 : Outline cleanup and merge # Pass 1 : Outline cleanup and merge
$(PASS1) : $(OBJDIR)/.pass1-%.ttf : pass1-cleanup.py $(OBJDIR)/.pass0-%.svg $(PASS1) : $(OBJDIR)/.pass1-%.ttf : pass1-cleanup.py $(OBJDIR)/.pass0-%.svg
fontforge -quiet -script $^ $@ $(if $(findstring italic,$@),10,0) $(FAST) $(SUPPRESS_ERRORS) fontforge -quiet -script $^ $@ $(if $(findstring italic,$@),10,$(if $(findstring oblique,$@),10,0)) $(FAST) $(SUPPRESS_ERRORS)
$(PASS2) : $(OBJDIR)/.pass2-%.ttf : pass2-smartround.js $(OBJDIR)/.pass1-%.ttf $(OBJDIR)/.pass0-%.fdt $(PASS2) : $(OBJDIR)/.pass2-%.ttf : pass2-smartround.js $(OBJDIR)/.pass1-%.ttf $(OBJDIR)/.pass0-%.fdt
$(NODE) $^ -o $@ --upm $(TARGETUPM) $(NODE) $^ -o $@ --upm $(TARGETUPM)
$(PASS3) : $(OBJDIR)/.pass3-%.ttf : pass3-features.py $(OBJDIR)/.pass2-%.ttf $(OBJDIR)/.pass0-%.fea $(PASS3) : $(OBJDIR)/.pass3-%.ttf : pass3-features.py $(OBJDIR)/.pass2-%.ttf $(OBJDIR)/.pass0-%.fea
@ -117,12 +124,12 @@ $(OBJDIR) :
RELEASEDIR = releases RELEASEDIR = releases
ARCHIVEDIR = release-archives ARCHIVEDIR = release-archives
RELEASES = $(subst $(OBJDIR)/,$(RELEASEDIR)/,$(OUTPUTS)) RELEASES = $(subst $(OBJDIR)/,$(RELEASEDIR)/,$(TARGETS))
$(RELEASES) : $(RELEASEDIR)/%.ttf : $(OBJDIR)/%.ttf $(RELEASES) : $(RELEASEDIR)/%.ttf : $(OBJDIR)/%.ttf
cp $< $@ cp $< $@
PAGEDIR = pages/assets PAGEDIR = pages/assets
PAGESTTF = $(subst $(OBJDIR)/,$(PAGEDIR)/,$(OUTPUTS)) PAGESTTF = $(subst $(OBJDIR)/,$(PAGEDIR)/,$(TARGETS))
$(PAGESTTF) : $(PAGEDIR)/%.ttf : $(OBJDIR)/%.ttf $(PAGESTTF) : $(PAGEDIR)/%.ttf : $(OBJDIR)/%.ttf
cp $< $@ cp $< $@
PAGESWOFF = $(subst .ttf,.woff,$(PAGESTTF)) PAGESWOFF = $(subst .ttf,.woff,$(PAGESTTF))
@ -132,9 +139,9 @@ PAGESMAPS = $(subst $(OBJDIR)/,$(PAGEDIR)/,$(MAPS))
$(PAGESMAPS) : $(PAGEDIR)/%.charmap : $(OBJDIR)/%.charmap $(PAGESMAPS) : $(PAGEDIR)/%.charmap : $(OBJDIR)/%.charmap
cp $< $@ cp $< $@
$(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).tar.bz2 : $(OUTPUTS) $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).tar.bz2 : $(TARGETS)
cd $(OBJDIR) && tar -cjvf ../$@ $(subst $(OBJDIR)/,,$^) cd $(OBJDIR) && tar -cjvf ../$@ $(subst $(OBJDIR)/,,$^)
$(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).zip : $(OUTPUTS) $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).zip : $(TARGETS)
cd $(OBJDIR) && 7z a -tzip ../$@ $(subst $(OBJDIR)/,,$^) cd $(OBJDIR) && 7z a -tzip ../$@ $(subst $(OBJDIR)/,,$^)
archives : $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).tar.bz2 $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).zip archives : $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).tar.bz2 $(ARCHIVEDIR)/$(ARCPREFIX)$(ARCPREFIXB)-$(VERSION).zip
@ -143,13 +150,13 @@ release : $(RELEASES) archives pages
# testdrive # testdrive
TESTDIR = testdrive/assets TESTDIR = testdrive/assets
TESTTTF = $(subst $(OBJDIR)/,$(TESTDIR)/,$(OUTPUTS)) TESTTTF = $(subst $(OBJDIR)/,$(TESTDIR)/,$(TARGETS))
$(TESTTTF) : $(TESTDIR)/%.ttf : $(OBJDIR)/%.ttf $(TESTTTF) : $(TESTDIR)/%.ttf : $(OBJDIR)/%.ttf
cp $< $@ cp $< $@
TESTWOFF = $(subst .ttf,.woff,$(TESTTTF)) TESTWOFF = $(subst .ttf,.woff,$(TESTTTF))
$(TESTWOFF) : $(TESTDIR)/%.woff : $(TESTDIR)/%.ttf $(TESTWOFF) : $(TESTDIR)/%.woff : $(TESTDIR)/%.ttf
sfnt2woff $< sfnt2woff $<
OUTMAPS = $(subst .ttf,.charmap,$(OUTPUTS)) OUTMAPS = $(subst .ttf,.charmap,$(TARGETS))
TESTMAPS = $(subst $(OBJDIR)/,$(TESTDIR)/,$(OUTMAPS)) TESTMAPS = $(subst $(OBJDIR)/,$(TESTDIR)/,$(OUTMAPS))
$(TESTMAPS) : $(TESTDIR)/%.charmap : $(OBJDIR)/%.charmap $(TESTMAPS) : $(TESTDIR)/%.charmap : $(OBJDIR)/%.charmap
cp $< $@ cp $< $@

View file

@ -192,6 +192,14 @@ jhook = 120
[s-italic.adds] [s-italic.adds]
style = " Italic" style = " Italic"
[s-oblique]
isItalic = false
slantAngle = 10
jhook = 120
[s-oblique.adds]
style = " Oblique"
# Slab variant # Slab variant
[slab] [slab]
slab = true slab = true

View file

@ -9,6 +9,12 @@
font-style: italic; font-style: italic;
src: url('assets/iosevka-thinitalic.woff') format('woff'), url('assets/iosevka-thinitalic.ttf') format('truetype'); src: url('assets/iosevka-thinitalic.woff') format('woff'), url('assets/iosevka-thinitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaWEB;
font-weight: 100;
font-style: oblique;
src: url('assets/iosevka-thinoblique.woff') format('woff'), url('assets/iosevka-thinoblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaWEB; font-family: IosevkaWEB;
font-weight: 200; font-weight: 200;
@ -20,6 +26,12 @@
font-style: italic; font-style: italic;
src: url('assets/iosevka-extralightitalic.woff') format('woff'), url('assets/iosevka-extralightitalic.ttf') format('truetype'); src: url('assets/iosevka-extralightitalic.woff') format('woff'), url('assets/iosevka-extralightitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaWEB;
font-weight: 200;
font-style: oblique;
src: url('assets/iosevka-extralightoblique.woff') format('woff'), url('assets/iosevka-extralightoblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaWEB; font-family: IosevkaWEB;
font-weight: 300; font-weight: 300;
@ -31,6 +43,12 @@
font-style: italic; font-style: italic;
src: url('assets/iosevka-lightitalic.woff') format('woff'), url('assets/iosevka-lightitalic.ttf') format('truetype'); src: url('assets/iosevka-lightitalic.woff') format('woff'), url('assets/iosevka-lightitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaWEB;
font-weight: 300;
font-style: oblique;
src: url('assets/iosevka-lightoblique.woff') format('woff'), url('assets/iosevka-lightoblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaWEB; font-family: IosevkaWEB;
src: url('assets/iosevka-regular.woff') format('woff'), url('assets/iosevka-regular.ttf') format('truetype'); src: url('assets/iosevka-regular.woff') format('woff'), url('assets/iosevka-regular.ttf') format('truetype');
@ -40,6 +58,11 @@
font-style: italic; font-style: italic;
src: url('assets/iosevka-italic.woff') format('woff'), url('assets/iosevka-italic.ttf') format('truetype'); src: url('assets/iosevka-italic.woff') format('woff'), url('assets/iosevka-italic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaWEB;
font-style: oblique;
src: url('assets/iosevka-oblique.woff') format('woff'), url('assets/iosevka-oblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaWEB; font-family: IosevkaWEB;
font-weight: 500; font-weight: 500;
@ -51,6 +74,12 @@
font-weight: 500; font-weight: 500;
src: url('assets/iosevka-mediumitalic.woff') format('woff'), url('assets/iosevka-mediumitalic.ttf') format('truetype'); src: url('assets/iosevka-mediumitalic.woff') format('woff'), url('assets/iosevka-mediumitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaWEB;
font-style: oblique;
font-weight: 500;
src: url('assets/iosevka-mediumoblique.woff') format('woff'), url('assets/iosevka-mediumoblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaWEB; font-family: IosevkaWEB;
font-weight: 700; font-weight: 700;
@ -62,19 +91,12 @@
font-weight: 700; font-weight: 700;
src: url('assets/iosevka-bolditalic.woff') format('woff'), url('assets/iosevka-bolditalic.ttf') format('truetype'); src: url('assets/iosevka-bolditalic.woff') format('woff'), url('assets/iosevka-bolditalic.ttf') format('truetype');
} }
/*
@font-face { @font-face {
font-family: IosevkaWEB; font-family: IosevkaWEB;
font-weight: 800; font-style: oblique;
src: url('assets/iosevka-extrabold.woff') format('woff'), url('assets/iosevka-extrabold.ttf') format('truetype'); font-weight: 700;
src: url('assets/iosevka-boldoblique.woff') format('woff'), url('assets/iosevka-boldoblique.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaWEB;
font-style: italic;
font-weight: 800;
src: url('assets/iosevka-extrabolditalic.woff') format('woff'), url('assets/iosevka-extrabolditalic.ttf') format('truetype');
}
*/
@font-face { @font-face {
font-family: IosevkaWEB; font-family: IosevkaWEB;
font-weight: 900; font-weight: 900;
@ -86,6 +108,12 @@
font-weight: 900; font-weight: 900;
src: url('assets/iosevka-heavyitalic.woff') format('woff'), url('assets/iosevka-heavyitalic.ttf') format('truetype'); src: url('assets/iosevka-heavyitalic.woff') format('woff'), url('assets/iosevka-heavyitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaWEB;
font-style: oblique;
font-weight: 900;
src: url('assets/iosevka-heavyoblique.woff') format('woff'), url('assets/iosevka-heavyoblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaSlabWEB; font-family: IosevkaSlabWEB;
font-weight: 100; font-weight: 100;
@ -97,6 +125,12 @@
font-style: italic; font-style: italic;
src: url('assets/iosevka-slab-thinitalic.woff') format('woff'), url('assets/iosevka-slab-thinitalic.ttf') format('truetype'); src: url('assets/iosevka-slab-thinitalic.woff') format('woff'), url('assets/iosevka-slab-thinitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaSlabWEB;
font-weight: 100;
font-style: oblique;
src: url('assets/iosevka-slab-thinoblique.woff') format('woff'), url('assets/iosevka-slab-thinoblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaSlabWEB; font-family: IosevkaSlabWEB;
font-weight: 200; font-weight: 200;
@ -108,6 +142,12 @@
font-style: italic; font-style: italic;
src: url('assets/iosevka-slab-extralightitalic.woff') format('woff'), url('assets/iosevka-slab-extralightitalic.ttf') format('truetype'); src: url('assets/iosevka-slab-extralightitalic.woff') format('woff'), url('assets/iosevka-slab-extralightitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaSlabWEB;
font-weight: 200;
font-style: oblique;
src: url('assets/iosevka-slab-extralightoblique.woff') format('woff'), url('assets/iosevka-slab-extralightoblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaSlabWEB; font-family: IosevkaSlabWEB;
font-weight: 300; font-weight: 300;
@ -119,6 +159,12 @@
font-style: italic; font-style: italic;
src: url('assets/iosevka-slab-lightitalic.woff') format('woff'), url('assets/iosevka-slab-lightitalic.ttf') format('truetype'); src: url('assets/iosevka-slab-lightitalic.woff') format('woff'), url('assets/iosevka-slab-lightitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaSlabWEB;
font-weight: 300;
font-style: oblique;
src: url('assets/iosevka-slab-lightoblique.woff') format('woff'), url('assets/iosevka-slab-lightoblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaSlabWEB; font-family: IosevkaSlabWEB;
src: url('assets/iosevka-slab-regular.woff') format('woff'), url('assets/iosevka-slab-regular.ttf') format('truetype'); src: url('assets/iosevka-slab-regular.woff') format('woff'), url('assets/iosevka-slab-regular.ttf') format('truetype');
@ -128,6 +174,11 @@
font-style: italic; font-style: italic;
src: url('assets/iosevka-slab-italic.woff') format('woff'), url('assets/iosevka-slab-italic.ttf') format('truetype'); src: url('assets/iosevka-slab-italic.woff') format('woff'), url('assets/iosevka-slab-italic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaSlabWEB;
font-style: oblique;
src: url('assets/iosevka-slab-oblique.woff') format('woff'), url('assets/iosevka-slab-oblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaSlabWEB; font-family: IosevkaSlabWEB;
font-weight: 500; font-weight: 500;
@ -139,32 +190,29 @@
font-weight: 500; font-weight: 500;
src: url('assets/iosevka-slab-mediumitalic.woff') format('woff'), url('assets/iosevka-slab-mediumitalic.ttf') format('truetype'); src: url('assets/iosevka-slab-mediumitalic.woff') format('woff'), url('assets/iosevka-slab-mediumitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaSlabWEB;
font-style: oblique;
font-weight: 500;
src: url('assets/iosevka-slab-mediumoblique.woff') format('woff'), url('assets/iosevka-slab-mediumoblique.ttf') format('truetype');
}
@font-face { @font-face {
font-family: IosevkaSlabWEB; font-family: IosevkaSlabWEB;
font-weight: 700; font-weight: 700;
src: url('assets/iosevka-slab-bold.woff') format('woff'), url('assets/iosevka-slab-bold.ttf') format('truetype'); src: url('assets/iosevka-slab-bold.woff') format('woff'), url('assets/iosevka-slab-bold.ttf') format('truetype');
} }
@font-face { @font-face {
font-family: IosevkaSlabWEB; font-family: IosevkaSlabWEB;
font-style: italic; font-style: italic;
font-weight: 700; font-weight: 700;
src: url('assets/iosevka-slab-bolditalic.woff') format('woff'), url('assets/iosevka-slab-bolditalic.ttf') format('truetype'); src: url('assets/iosevka-slab-bolditalic.woff') format('woff'), url('assets/iosevka-slab-bolditalic.ttf') format('truetype');
} }
/*
@font-face { @font-face {
font-family: IosevkaSlabWEB; font-family: IosevkaSlabWEB;
font-weight: 800; font-style: oblique;
src: url('assets/iosevka-slab-extrabold.woff') format('woff'), url('assets/iosevka-slab-extrabold.ttf') format('truetype'); font-weight: 700;
src: url('assets/iosevka-slab-boldoblique.woff') format('woff'), url('assets/iosevka-slab-boldoblique.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaSlabWEB;
font-style: italic;
font-weight: 800;
src: url('assets/iosevka-slab-extrabolditalic.woff') format('woff'), url('assets/iosevka-slab-extrabolditalic.ttf') format('truetype');
}
*/
@font-face { @font-face {
font-family: IosevkaSlabWEB; font-family: IosevkaSlabWEB;
font-weight: 900; font-weight: 900;
@ -176,6 +224,12 @@
font-weight: 900; font-weight: 900;
src: url('assets/iosevka-slab-heavyitalic.woff') format('woff'), url('assets/iosevka-slab-heavyitalic.ttf') format('truetype'); src: url('assets/iosevka-slab-heavyitalic.woff') format('woff'), url('assets/iosevka-slab-heavyitalic.ttf') format('truetype');
} }
@font-face {
font-family: IosevkaSlabWEB;
font-style: oblique;
font-weight: 900;
src: url('assets/iosevka-slab-heavyoblique.woff') format('woff'), url('assets/iosevka-slab-heavyoblique.ttf') format('truetype');
}
.thin { font-weight: 100 } .thin { font-weight: 100 }
.extralight { font-weight: 200 } .extralight { font-weight: 200 }
@ -185,4 +239,5 @@
.extrabold { font-weight: 800 } .extrabold { font-weight: 800 }
.heavy { font-weight: 900 } .heavy { font-weight: 900 }
.italic { font-style: italic } .italic { font-style: italic }
.oblique { font-style: oblique }
.slab { font-family: "IosevkaSlabWEB", monospace } .slab { font-family: "IosevkaSlabWEB", monospace }

View file

@ -130,24 +130,32 @@
right: 0; right: 0;
top: 4rem; top: 4rem;
background: #ddd; background: #ddd;
font-size: 1.25rem;
} }
#picker:hover .menu{ #picker:hover .menu{
display: block; display: block;
} }
#picker:hover .menu .group { #picker .menu .group {
display: flex; display: flex;
} }
#picker:hover .menu .group a { #picker .menu .group a {
display: block; display: block;
padding: 0.5rem; padding: 0.5rem;
flex: 1; flex: 1;
min-width: 10rem; min-width: 10rem;
background: #eee; background: #eee;
text-shadow: none; text-shadow: none;
font-size: 0.8em; font-size: 1rem;
} }
#picker:hover .menu .group a:hover { #picker .menu .group a.italic, #picker .menu .group a.oblique {
flex: 2
}
#picker .menu .group a.slab {
flex: 5
}
#picker .menu .group a.slab.italic, #picker .menu .group a.slab.oblique {
flex: 7
}
#picker .menu .group a:hover {
background: #ddd; background: #ddd;
} }
#picker .title { #picker .title {
@ -181,7 +189,7 @@
</html> </html>
<body> <body>
<div id="picker"> <div id="picker">
<span class="title pp {{current.cls}}">{{current.display}} Specimen<span class="icon icon-menu"></span></span> <span class="title pp {{current.cls}}">Iosevka {{current.display}} Specimen<span class="icon icon-menu"></span></span>
<div class="menu"> <div class="menu">
<div class="group" v-for="group in fonts"> <div class="group" v-for="group in fonts">
<a href="#" v-for="item in group" v-on:click.prevent="choose(item)" class="pp {{item.cls}} {{item === current ? 'active' : ''}}">{{item.display}}</a> <a href="#" v-for="item in group" v-on:click.prevent="choose(item)" class="pp {{item.cls}} {{item === current ? 'active' : ''}}">{{item.display}}</a>
@ -209,20 +217,34 @@
} }
var BLOCKSIZE = 16 * 4; var BLOCKSIZE = 16 * 4;
var fonts = [ var fonts = [
[ {name: 'iosevka-thin', cls: 'thin', display: 'Iosevka Thin'}, {name: 'iosevka-slab-thin', cls: 'slab thin', display: 'Iosevka Slab Thin'}, [ {name: 'iosevka-thin', cls: 'thin', display: 'Thin'}, {name: 'iosevka-slab-thin', cls: 'slab thin', display: 'Slab Thin'},
{name: 'iosevka-thinitalic', cls:'thin italic', display: 'Iosevka Thin Italic'}, {name: 'iosevka-slab-thinitalic', cls:'slab thin italic', display: 'Iosevka Slab Thin Italic'} ], {name: 'iosevka-thinitalic', cls:'thin italic', display: 'Thin Italic'}, {name: 'iosevka-slab-thinitalic', cls:'slab thin italic', display: 'Slab Thin Italic'},
[ {name: 'iosevka-extralight', cls: 'extralight', display: 'Iosevka Extralight'}, {name: 'iosevka-slab-extralight', cls: 'slab extralight', display: 'Iosevka Slab Extralight'}, {name: 'iosevka-thinoblique', cls:'thin oblique', display: 'Thin Oblique'}, {name: 'iosevka-slab-thinoblique', cls:'slab thin oblique', display: 'Slab Thin Oblique'}
{name: 'iosevka-extralightitalic', cls:'extralight italic', display: 'Iosevka Extralight Italic'}, {name: 'iosevka-slab-extralightitalic', cls:'slab extralight italic', display: 'Iosevka Slab Extralight Italic'} ], ],
[ {name: 'iosevka-light', cls: 'light', display: 'Iosevka Light'}, {name: 'iosevka-slab-light', cls: 'slab light', display: 'Iosevka Slab Light'}, [ {name: 'iosevka-extralight', cls: 'extralight', display: 'Extralight'}, {name: 'iosevka-slab-extralight', cls: 'slab extralight', display: 'Slab Extralight'},
{name: 'iosevka-lightitalic', cls:'light italic', display: 'Iosevka Light Italic'}, {name: 'iosevka-slab-lightitalic', cls:'slab light italic', display: 'Iosevka Slab Light Italic'} ], {name: 'iosevka-extralightitalic', cls:'extralight italic', display: 'Extralight Italic'}, {name: 'iosevka-slab-extralightitalic', cls:'slab extralight italic', display: 'Slab Extralight Italic'},
[ {name: 'iosevka-regular', cls: '', display: 'Iosevka'}, {name: 'iosevka-slab-regular', cls: 'slab', display: 'Iosevka Slab'}, {name: 'iosevka-extralightoblique', cls:'extralight oblique', display: 'Extralight Oblique'}, {name: 'iosevka-slab-extralightoblique', cls:'slab extralight oblique', display: 'Slab Extralight Oblique'}
{name: 'iosevka-italic', cls:'italic', display: 'Iosevka Italic'}, {name: 'iosevka-slab-italic', cls:'slab italic', display: 'Iosevka Slab Italic'} ], ],
[ {name: 'iosevka-medium', cls: 'medium', display: 'Iosevka Medium'}, {name: 'iosevka-slab-medium', cls: 'slab medium', display: 'Iosevka Slab Medium'}, [ {name: 'iosevka-light', cls: 'light', display: 'Light'}, {name: 'iosevka-slab-light', cls: 'slab light', display: 'Slab Light'},
{name: 'iosevkamediumitalic', cls:'medium italic', display: 'Iosevka Medium Italic'}, {name: 'iosevka-slab-mediumitalic', cls:'slab medium italic', display: 'Iosevka Slab Medium Italic'} ], {name: 'iosevka-lightitalic', cls:'light italic', display: 'Light Italic'}, {name: 'iosevka-slab-lightitalic', cls:'slab light italic', display: 'Slab Light Italic'},
[ {name: 'iosevka-bold', cls: 'bold', display: 'Iosevka Bold'}, {name: 'iosevka-slab-bold', cls: 'slab bold', display: 'Iosevka Slab Bold'}, {name: 'iosevka-lightoblique', cls:'light oblique', display: 'Light Oblique'}, {name: 'iosevka-slab-lightoblique', cls:'slab light oblique', display: 'Slab Light Oblique'}
{name: 'iosevka-bolditalic', cls:'bold italic', display: 'Iosevka Bold Italic'}, {name: 'iosevka-slab-bolditalic', cls:'slab bold italic', display: 'Iosevka Slab Bold Italic'} ], ],
[ {name: 'iosevka-heavy', cls: 'heavy', display: 'Iosevka Heavy'}, {name: 'iosevka-slab-heavy', cls: 'slab heavy', display: 'Iosevka Slab Heavy'}, [ {name: 'iosevka-regular', cls: '', display: 'Regular'}, {name: 'iosevka-slab-regular', cls: 'slab', display: 'Slab'},
{name: 'iosevka-heavyitalic', cls:'heavy italic', display: 'Iosevka Heavy Italic'}, {name: 'iosevka-slab-heavyitalic', cls:'slab heavy italic', display: 'Iosevka Slab Heavy Italic'} ] {name: 'iosevka-italic', cls:'italic', display: 'Italic'}, {name: 'iosevka-slab-italic', cls:'slab italic', display: 'Slab Italic'},
{name: 'iosevka-oblique', cls:'oblique', display: 'Oblique'}, {name: 'iosevka-slab-oblique', cls:'slab oblique', display: 'Slab Oblique'}
],
[ {name: 'iosevka-medium', cls: 'medium', display: 'Medium'}, {name: 'iosevka-slab-medium', cls: 'slab medium', display: 'Slab Medium'},
{name: 'iosevkamediumitalic', cls:'medium italic', display: 'Medium Italic'}, {name: 'iosevka-slab-mediumitalic', cls:'slab medium italic', display: 'Slab Medium Italic'},
{name: 'iosevkamediumoblique', cls:'medium oblique', display: 'Medium Oblique'}, {name: 'iosevka-slab-mediumoblique', cls:'slab medium oblique', display: 'Slab Medium Oblique'}
],
[ {name: 'iosevka-bold', cls: 'bold', display: 'Bold'}, {name: 'iosevka-slab-bold', cls: 'slab bold', display: 'Slab Bold'},
{name: 'iosevka-bolditalic', cls:'bold italic', display: 'Bold Italic'}, {name: 'iosevka-slab-bolditalic', cls:'slab bold italic', display: 'Slab Bold Italic'},
{name: 'iosevka-boldoblique', cls:'bold oblique', display: 'Bold Oblique'}, {name: 'iosevka-slab-boldoblique', cls:'slab bold oblique', display: 'Slab Bold Oblique'}
],
[ {name: 'iosevka-heavy', cls: 'heavy', display: 'Heavy'}, {name: 'iosevka-slab-heavy', cls: 'slab heavy', display: 'Slab Heavy'},
{name: 'iosevka-heavyitalic', cls:'heavy italic', display: 'Heavy Italic'}, {name: 'iosevka-slab-heavyitalic', cls:'slab heavy italic', display: 'Slab Heavy Italic'},
{name: 'iosevka-heavyoblique', cls:'heavy oblique', display: 'Heavy Oblique'}, {name: 'iosevka-slab-heavyoblique', cls:'slab heavy oblique', display: 'Slab Heavy Oblique'}
]
]; ];
var REGULAR = 3; var REGULAR = 3;
var lipsums = ['Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur semper ipsum quam, at molestie libero euismod vitae. Etiam vehicula felis mi, et ultricies libero consequat at. Donec consequat, nunc id elementum tempor, lectus orci vulputate leo, eget lobortis lectus nulla sed orci. Donec in dolor non orci aliquet gravida. Nulla volutpat magna et nulla pretium, quis consequat nibh euismod. Suspendisse eget metus enim. Fusce vulputate scelerisque eros et consequat. Quisque dapibus accumsan augue, et semper lectus vehicula sit amet. Ut ornare venenatis tortor, non gravida tellus mattis interdum. In hac habitasse platea dictumst. Donec interdum commodo ex eu tincidunt. Curabitur non fermentum enim. Proin luctus orci ut commodo auctor. Pellentesque accumsan id sem eu semper. Sed non pharetra nibh. Vivamus mattis luctus arcu, a rutrum dui venenatis sit amet. aja ojo ojoined', var lipsums = ['Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur semper ipsum quam, at molestie libero euismod vitae. Etiam vehicula felis mi, et ultricies libero consequat at. Donec consequat, nunc id elementum tempor, lectus orci vulputate leo, eget lobortis lectus nulla sed orci. Donec in dolor non orci aliquet gravida. Nulla volutpat magna et nulla pretium, quis consequat nibh euismod. Suspendisse eget metus enim. Fusce vulputate scelerisque eros et consequat. Quisque dapibus accumsan augue, et semper lectus vehicula sit amet. Ut ornare venenatis tortor, non gravida tellus mattis interdum. In hac habitasse platea dictumst. Donec interdum commodo ex eu tincidunt. Curabitur non fermentum enim. Proin luctus orci ut commodo auctor. Pellentesque accumsan id sem eu semper. Sed non pharetra nibh. Vivamus mattis luctus arcu, a rutrum dui venenatis sit amet. aja ojo ojoined',