summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRasmus Andersson <rasmus@notion.se>2017-08-27 02:17:21 +0300
committerRasmus Andersson <rasmus@notion.se>2017-08-27 02:17:21 +0300
commit7da511ebf7865cda95fed8744da808fc1d7648a8 (patch)
tree95d9c834e9080fae88bd26447f6dbfc5e76164b8
parent6ee123719431784f177021bd918b14c513718c39 (diff)
downloadinter-7da511ebf7865cda95fed8744da808fc1d7648a8.tar.xz
Adds long arrows and dialognal arrows. Closes #16
-rw-r--r--docs/lab/index.html31
-rw-r--r--src/Interface-Bold.ufo/glyphs/arrowNE_.glif38
-rw-r--r--src/Interface-Bold.ufo/glyphs/arrowNW_.glif50
-rw-r--r--src/Interface-Bold.ufo/glyphs/arrowSE_.glif38
-rw-r--r--src/Interface-Bold.ufo/glyphs/arrowSW_.glif38
-rw-r--r--src/Interface-Bold.ufo/glyphs/arrowleftlong.case.glif35
-rw-r--r--src/Interface-Bold.ufo/glyphs/arrowleftlong.glif47
-rw-r--r--src/Interface-Bold.ufo/glyphs/arrowrightlong.case.glif35
-rw-r--r--src/Interface-Bold.ufo/glyphs/arrowrightlong.glif35
-rw-r--r--src/Interface-Bold.ufo/glyphs/contents.plist16
-rw-r--r--src/Interface-Bold.ufo/glyphs/notequal.glif8
-rw-r--r--src/Interface-Bold.ufo/lib.plist20
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowNE_.glif19
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowNW_.glif31
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowSE_.glif19
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowSW_.glif19
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowleft.glif6
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowleftlong.case.glif53
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowleftlong.glif66
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowrightlong.case.glif53
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowrightlong.glif54
-rw-r--r--src/Interface-Regular.ufo/glyphs/arrowup.glif2
-rw-r--r--src/Interface-Regular.ufo/glyphs/contents.plist16
-rw-r--r--src/Interface-Regular.ufo/glyphs/notequal.glif8
-rw-r--r--src/Interface-Regular.ufo/lib.plist20
-rw-r--r--src/features.fea97
26 files changed, 763 insertions, 91 deletions
diff --git a/docs/lab/index.html b/docs/lab/index.html
index 02e189633..8653db54a 100644
--- a/docs/lab/index.html
+++ b/docs/lab/index.html
@@ -117,7 +117,7 @@ e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 eA eB eC eD eE eF ea eb ec ed ee ef
f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fA fB fC fD fE fF fa fb fc fd fe ff
`)
-samples.set('Contextual alternates', `
+samples.set('Features test', `
(m) (M) (6) [m] [M] [6] {m} {M} {6}
m@n M@N
3×5 ×9 8× 3x4 x9 2x
@@ -126,11 +126,17 @@ m@n M@N
3=5 =5 8= 3≠5 ≠5 8≠
8*5 8 * 7 WALLPAPER*
B-O B–O B‒O B—O M•N
+-Selvece
+darest-Selvece
b-o b–o b‒o b—o m•n
-X→Y X←Y X↑Y X↓Y
-x→y x←y x↑y x↓y
-A → B ← C ↑ D ↓ E
-a → b ← c ↑ d ↓ e
+A→B←C⟵D⟶E
+a→b←c⟵d⟶e
+A → B ← C ⟵ D ⟶ E
+a → b ← c ⟵ d ⟶ e
+A -> B <- C
+A –> B <– C
+A —> B <— C
+x<-4 x < -4 x<-y
12:35
1.2 34.56.78.90.12
A*Y V*V W*W N*N X*X
@@ -289,7 +295,7 @@ da 27. es 38. an 87, in 68, 674
samples.set('Symbols', `
-→ ← ↑ ↓
+→ ⟶ ← ⟵ ↑ ↓ ↖ ↗ ↘ ↙
► Next (U+25BA)
◀ Previous (U+25C0)
▼ AMZ (U+25BC)
@@ -297,12 +303,12 @@ samples.set('Symbols', `
◆ King (U+25C6)
● Black Circle (U+25CF)
○ White Circle (U+25CB)
-⌘C (U+2318)
-\uE001 (U+E001)
-\uE000 (U+E000)
-\uE002 (U+E002)
-\uE003 (U+E003)
-\uE004 (U+E004)
+⌘ Place of interest (U+2318)
+\uE001 Registration (private-area, U+E001)
+\uE000 White Component (private-area, U+E000)
+\uE002 Black Component (private-area, U+E002)
+\uE003 Black Component instance (private-area, U+E003)
+\uE004 White Component instance (private-area, U+E004)
`)
samples.set('────── body ──────', null)
@@ -826,6 +832,7 @@ samples {
padding: 0 24px;
min-width:100px;
/*max-width:450px;*/
+ white-space: pre;
}
sample p {
white-space: pre;
diff --git a/src/Interface-Bold.ufo/glyphs/arrowNE_.glif b/src/Interface-Bold.ufo/glyphs/arrowNE_.glif
new file mode 100644
index 000000000..3fdaa781e
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/arrowNE_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowNE" format="1">
+ <advance width="2560"/>
+ <unicode hex="2197"/>
+ <outline>
+ <component base="arrowNW" xScale="-1" xOffset="2560"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>1280</integer>
+ <key>y</key>
+ <integer>452</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ <key>interface.gridadjust.original</key>
+ <string>{'width': 950, 'leftMargin': 121, 'rightMargin': 97}</string>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/arrowNW_.glif b/src/Interface-Bold.ufo/glyphs/arrowNW_.glif
new file mode 100644
index 000000000..8a1e82fce
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/arrowNW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowNW" format="1">
+ <advance width="2560"/>
+ <unicode hex="2196"/>
+ <outline>
+ <contour>
+ <point x="1848" y="464" type="line"/>
+ <point x="2096" y="712" type="line"/>
+ <point x="1108" y="1700" type="line"/>
+ <point x="1120" y="1712" type="line"/>
+ <point x="1764" y="1712" type="line"/>
+ <point x="1764" y="2048" type="line"/>
+ <point x="512" y="2048" type="line"/>
+ <point x="512" y="796" type="line"/>
+ <point x="848" y="796" type="line"/>
+ <point x="848" y="1440" type="line"/>
+ <point x="860" y="1452" type="line"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>1280</integer>
+ <key>y</key>
+ <integer>452</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ <key>interface.gridadjust.original</key>
+ <string>{'width': 950, 'leftMargin': 121, 'rightMargin': 97}</string>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/arrowSE_.glif b/src/Interface-Bold.ufo/glyphs/arrowSE_.glif
new file mode 100644
index 000000000..42feaa920
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/arrowSE_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowSE" format="1">
+ <advance width="2560"/>
+ <unicode hex="2198"/>
+ <outline>
+ <component base="arrowNW" yScale="-1" yOffset="2048"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>1280</integer>
+ <key>y</key>
+ <integer>452</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ <key>interface.gridadjust.original</key>
+ <string>{'width': 950, 'leftMargin': 121, 'rightMargin': 97}</string>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/arrowSW_.glif b/src/Interface-Bold.ufo/glyphs/arrowSW_.glif
new file mode 100644
index 000000000..a83a10641
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/arrowSW_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowSW" format="1">
+ <advance width="2560"/>
+ <unicode hex="2199"/>
+ <outline>
+ <component base="arrowNW" xScale="-1" yScale="-1" xOffset="2560" yOffset="2048"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>1280</integer>
+ <key>y</key>
+ <integer>452</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ <key>interface.gridadjust.original</key>
+ <string>{'width': 950, 'leftMargin': 121, 'rightMargin': 97}</string>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/arrowleftlong.case.glif b/src/Interface-Bold.ufo/glyphs/arrowleftlong.case.glif
new file mode 100644
index 000000000..f6a26b707
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/arrowleftlong.case.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowleftlong.case" format="1">
+ <advance width="3840"/>
+ <outline>
+ <component base="arrowleftlong" yOffset="192"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>904</integer>
+ <key>y</key>
+ <integer>832</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/arrowleftlong.glif b/src/Interface-Bold.ufo/glyphs/arrowleftlong.glif
new file mode 100644
index 000000000..2777455ba
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/arrowleftlong.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowleftlong" format="1">
+ <advance width="3840"/>
+ <outline>
+ <contour>
+ <point x="3584" y="656" type="line"/>
+ <point x="3584" y="1008" type="line"/>
+ <point x="904" y="1008" type="line"/>
+ <point x="904" y="1024" type="line"/>
+ <point x="1360" y="1480" type="line"/>
+ <point x="1124" y="1716" type="line"/>
+ <point x="240" y="832" type="line"/>
+ <point x="1124" y="-52" type="line"/>
+ <point x="1360" y="184" type="line"/>
+ <point x="904" y="640" type="line"/>
+ <point x="904" y="656" type="line"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>904</integer>
+ <key>y</key>
+ <integer>832</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/arrowrightlong.case.glif b/src/Interface-Bold.ufo/glyphs/arrowrightlong.case.glif
new file mode 100644
index 000000000..7818e13e7
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/arrowrightlong.case.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowrightlong.case" format="1">
+ <advance width="3840"/>
+ <outline>
+ <component base="arrowleftlong" xScale="-1" xOffset="3840" yOffset="192"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>904</integer>
+ <key>y</key>
+ <integer>832</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/arrowrightlong.glif b/src/Interface-Bold.ufo/glyphs/arrowrightlong.glif
new file mode 100644
index 000000000..ff9d6a12a
--- /dev/null
+++ b/src/Interface-Bold.ufo/glyphs/arrowrightlong.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowrightlong" format="1">
+ <advance width="3840"/>
+ <outline>
+ <component base="arrowleftlong" xScale="-1" xOffset="3840"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>904</integer>
+ <key>y</key>
+ <integer>832</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Bold.ufo/glyphs/contents.plist b/src/Interface-Bold.ufo/glyphs/contents.plist
index bd903ed7c..ad04c3de0 100644
--- a/src/Interface-Bold.ufo/glyphs/contents.plist
+++ b/src/Interface-Bold.ufo/glyphs/contents.plist
@@ -396,6 +396,14 @@
<string>approxequal.glif</string>
<key>archdblsubnosp</key>
<string>archdblsubnosp.glif</string>
+ <key>arrowNE</key>
+ <string>arrowNE_.glif</string>
+ <key>arrowNW</key>
+ <string>arrowNW_.glif</string>
+ <key>arrowSE</key>
+ <string>arrowSE_.glif</string>
+ <key>arrowSW</key>
+ <string>arrowSW_.glif</string>
<key>arrowdown</key>
<string>arrowdown.glif</string>
<key>arrowheaddownmod</key>
@@ -410,10 +418,18 @@
<string>arrowleft.glif</string>
<key>arrowleft.case</key>
<string>arrowleft.case.glif</string>
+ <key>arrowleftlong</key>
+ <string>arrowleftlong.glif</string>
+ <key>arrowleftlong.case</key>
+ <string>arrowleftlong.case.glif</string>
<key>arrowright</key>
<string>arrowright.glif</string>
<key>arrowright.case</key>
<string>arrowright.case.glif</string>
+ <key>arrowrightlong</key>
+ <string>arrowrightlong.glif</string>
+ <key>arrowrightlong.case</key>
+ <string>arrowrightlong.case.glif</string>
<key>arrowup</key>
<string>arrowup.glif</string>
<key>asciicircum</key>
diff --git a/src/Interface-Bold.ufo/glyphs/notequal.glif b/src/Interface-Bold.ufo/glyphs/notequal.glif
index 77f071017..29cd34acf 100644
--- a/src/Interface-Bold.ufo/glyphs/notequal.glif
+++ b/src/Interface-Bold.ufo/glyphs/notequal.glif
@@ -4,10 +4,10 @@
<unicode hex="2260"/>
<outline>
<contour>
- <point x="1268" y="1532" type="line"/>
- <point x="1092" y="1620" type="line"/>
- <point x="348" y="192" type="line"/>
- <point x="520" y="104" type="line"/>
+ <point x="1228" y="1548" type="line"/>
+ <point x="1052" y="1636" type="line"/>
+ <point x="308" y="208" type="line"/>
+ <point x="480" y="120" type="line"/>
</contour>
<component base="equal"/>
</outline>
diff --git a/src/Interface-Bold.ufo/lib.plist b/src/Interface-Bold.ufo/lib.plist
index 2a8b56379..dd3f0ade3 100644
--- a/src/Interface-Bold.ufo/lib.plist
+++ b/src/Interface-Bold.ufo/lib.plist
@@ -697,10 +697,18 @@
<string>zerowidthspace</string>
<string>arrowleft</string>
<string>arrowleft.case</string>
+ <string>arrowleftlong</string>
+ <string>arrowleftlong.case</string>
<string>arrowup</string>
<string>arrowright</string>
<string>arrowright.case</string>
+ <string>arrowrightlong</string>
+ <string>arrowrightlong.case</string>
<string>arrowdown</string>
+ <string>arrowNW</string>
+ <string>arrowNE</string>
+ <string>arrowSW</string>
+ <string>arrowSE</string>
<string>triagrt</string>
<string>triagdn</string>
<string>triagup</string>
@@ -2423,6 +2431,8 @@
<string>uniE003</string>
<string>placeofinterestsign</string>
<string>.notdef</string>
+ <string>circleblack</string>
+ <string>circlewhite</string>
</array>
<key>type</key>
<string>glyphList</string>
@@ -2917,10 +2927,18 @@
<string>zerowidthspace</string>
<string>arrowleft</string>
<string>arrowleft.case</string>
+ <string>arrowleftlong</string>
+ <string>arrowleftlong.case</string>
<string>arrowup</string>
<string>arrowright</string>
<string>arrowright.case</string>
+ <string>arrowrightlong</string>
+ <string>arrowrightlong.case</string>
<string>arrowdown</string>
+ <string>arrowNW</string>
+ <string>arrowNE</string>
+ <string>arrowSW</string>
+ <string>arrowSE</string>
<string>triagrt</string>
<string>triagdn</string>
<string>triagup</string>
@@ -4643,6 +4661,8 @@
<string>uniE003</string>
<string>placeofinterestsign</string>
<string>.notdef</string>
+ <string>circleblack</string>
+ <string>circlewhite</string>
</array>
</dict>
</plist>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowNE_.glif b/src/Interface-Regular.ufo/glyphs/arrowNE_.glif
new file mode 100644
index 000000000..66fe64300
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/arrowNE_.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowNE" format="1">
+ <advance width="2560"/>
+ <unicode hex="2197"/>
+ <outline>
+ <component base="arrowNW" xScale="-1" xOffset="2560"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowNW_.glif b/src/Interface-Regular.ufo/glyphs/arrowNW_.glif
new file mode 100644
index 000000000..c499124ba
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/arrowNW_.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowNW" format="1">
+ <advance width="2560"/>
+ <unicode hex="2196"/>
+ <outline>
+ <contour>
+ <point x="1896" y="508" type="line"/>
+ <point x="2052" y="664" type="line"/>
+ <point x="896" y="1820" type="line"/>
+ <point x="908" y="1832" type="line"/>
+ <point x="1780" y="1832" type="line"/>
+ <point x="1780" y="2048" type="line"/>
+ <point x="512" y="2048" type="line"/>
+ <point x="512" y="780" type="line"/>
+ <point x="728" y="780" type="line"/>
+ <point x="728" y="1652" type="line"/>
+ <point x="740" y="1664" type="line"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowSE_.glif b/src/Interface-Regular.ufo/glyphs/arrowSE_.glif
new file mode 100644
index 000000000..41dd0eedd
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/arrowSE_.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowSE" format="1">
+ <advance width="2560"/>
+ <unicode hex="2198"/>
+ <outline>
+ <component base="arrowNW" xScale="-1" yScale="-1" xOffset="2560" yOffset="2048"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowSW_.glif b/src/Interface-Regular.ufo/glyphs/arrowSW_.glif
new file mode 100644
index 000000000..c43d94699
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/arrowSW_.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowSW" format="1">
+ <advance width="2560"/>
+ <unicode hex="2199"/>
+ <outline>
+ <component base="arrowNW" yScale="-1" yOffset="2048"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowleft.glif b/src/Interface-Regular.ufo/glyphs/arrowleft.glif
index 0682f9733..7fd3a0cde 100644
--- a/src/Interface-Regular.ufo/glyphs/arrowleft.glif
+++ b/src/Interface-Regular.ufo/glyphs/arrowleft.glif
@@ -8,11 +8,11 @@
<point x="2432" y="1008" type="line"/>
<point x="796" y="1008" type="line"/>
<point x="796" y="1024" type="line"/>
- <point x="1408" y="1640" type="line"/>
+ <point x="1412" y="1640" type="line"/>
<point x="1260" y="1792" type="line"/>
- <point x="368" y="896" type="line"/>
+ <point x="364" y="896" type="line"/>
<point x="1260" y="0" type="line"/>
- <point x="1408" y="156" type="line"/>
+ <point x="1412" y="152" type="line"/>
<point x="796" y="768" type="line"/>
<point x="796" y="784" type="line"/>
</contour>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowleftlong.case.glif b/src/Interface-Regular.ufo/glyphs/arrowleftlong.case.glif
new file mode 100644
index 000000000..eaade0bb2
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/arrowleftlong.case.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowleftlong.case" format="1">
+ <advance width="3840"/>
+ <outline>
+ <component base="arrowleftlong" yOffset="128"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>272</integer>
+ <key>y</key>
+ <integer>896</integer>
+ </dict>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>668</integer>
+ <key>y</key>
+ <integer>1008</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ <key>interface.width-adjustments</key>
+ <array>
+ <integer>-16</integer>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowleftlong.glif b/src/Interface-Regular.ufo/glyphs/arrowleftlong.glif
new file mode 100644
index 000000000..55a3fd8ec
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/arrowleftlong.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowleftlong" format="1">
+ <advance width="3840"/>
+ <unicode hex="27F5"/>
+ <outline>
+ <contour>
+ <point x="3456" y="784" type="line"/>
+ <point x="3456" y="1008" type="line"/>
+ <point x="796" y="1008" type="line"/>
+ <point x="796" y="1024" type="line"/>
+ <point x="1412" y="1640" type="line"/>
+ <point x="1260" y="1792" type="line"/>
+ <point x="364" y="896" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1412" y="152" type="line"/>
+ <point x="796" y="768" type="line"/>
+ <point x="796" y="784" type="line"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>272</integer>
+ <key>y</key>
+ <integer>896</integer>
+ </dict>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>668</integer>
+ <key>y</key>
+ <integer>1008</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ <key>interface.width-adjustments</key>
+ <array>
+ <integer>-16</integer>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowrightlong.case.glif b/src/Interface-Regular.ufo/glyphs/arrowrightlong.case.glif
new file mode 100644
index 000000000..e9b29702a
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/arrowrightlong.case.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowrightlong.case" format="1">
+ <advance width="3840"/>
+ <outline>
+ <component base="arrowleftlong" xScale="-1" xOffset="3840" yOffset="128"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>272</integer>
+ <key>y</key>
+ <integer>896</integer>
+ </dict>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>668</integer>
+ <key>y</key>
+ <integer>1008</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ <key>interface.width-adjustments</key>
+ <array>
+ <integer>-16</integer>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowrightlong.glif b/src/Interface-Regular.ufo/glyphs/arrowrightlong.glif
new file mode 100644
index 000000000..dd4b5937b
--- /dev/null
+++ b/src/Interface-Regular.ufo/glyphs/arrowrightlong.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="arrowrightlong" format="1">
+ <advance width="3840"/>
+ <unicode hex="27F6"/>
+ <outline>
+ <component base="arrowleftlong" xScale="-1" xOffset="3840"/>
+ </outline>
+ <lib>
+ <dict>
+ <key>com.typemytype.robofont.guides</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>272</integer>
+ <key>y</key>
+ <integer>896</integer>
+ </dict>
+ <dict>
+ <key>angle</key>
+ <real>90.0</real>
+ <key>isGlobal</key>
+ <false/>
+ <key>magnetic</key>
+ <integer>5</integer>
+ <key>name</key>
+ <string></string>
+ <key>x</key>
+ <integer>668</integer>
+ <key>y</key>
+ <integer>1008</integer>
+ </dict>
+ </array>
+ <key>com.typemytype.robofont.mark</key>
+ <array>
+ <real>0.8</real>
+ <real>0.94</real>
+ <real>0.95</real>
+ <real>1.0</real>
+ </array>
+ <key>interface.width-adjustments</key>
+ <array>
+ <integer>-16</integer>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/src/Interface-Regular.ufo/glyphs/arrowup.glif b/src/Interface-Regular.ufo/glyphs/arrowup.glif
index 0ebac6642..f74160d00 100644
--- a/src/Interface-Regular.ufo/glyphs/arrowup.glif
+++ b/src/Interface-Regular.ufo/glyphs/arrowup.glif
@@ -10,7 +10,7 @@
<point x="1408" y="1636" type="line"/>
<point x="2024" y="1024" type="line"/>
<point x="2176" y="1172" type="line"/>
- <point x="1280" y="2064" type="line"/>
+ <point x="1280" y="2068" type="line"/>
<point x="384" y="1172" type="line"/>
<point x="540" y="1024" type="line"/>
<point x="1152" y="1636" type="line"/>
diff --git a/src/Interface-Regular.ufo/glyphs/contents.plist b/src/Interface-Regular.ufo/glyphs/contents.plist
index c9199e868..9b9d1effb 100644
--- a/src/Interface-Regular.ufo/glyphs/contents.plist
+++ b/src/Interface-Regular.ufo/glyphs/contents.plist
@@ -396,6 +396,14 @@
<string>approxequal.glif</string>
<key>archdblsubnosp</key>
<string>archdblsubnosp.glif</string>
+ <key>arrowNE</key>
+ <string>arrowNE_.glif</string>
+ <key>arrowNW</key>
+ <string>arrowNW_.glif</string>
+ <key>arrowSE</key>
+ <string>arrowSE_.glif</string>
+ <key>arrowSW</key>
+ <string>arrowSW_.glif</string>
<key>arrowdown</key>
<string>arrowdown.glif</string>
<key>arrowheaddownmod</key>
@@ -410,10 +418,18 @@
<string>arrowleft.glif</string>
<key>arrowleft.case</key>
<string>arrowleft.case.glif</string>
+ <key>arrowleftlong</key>
+ <string>arrowleftlong.glif</string>
+ <key>arrowleftlong.case</key>
+ <string>arrowleftlong.case.glif</string>
<key>arrowright</key>
<string>arrowright.glif</string>
<key>arrowright.case</key>
<string>arrowright.case.glif</string>
+ <key>arrowrightlong</key>
+ <string>arrowrightlong.glif</string>
+ <key>arrowrightlong.case</key>
+ <string>arrowrightlong.case.glif</string>
<key>arrowup</key>
<string>arrowup.glif</string>
<key>asciicircum</key>
diff --git a/src/Interface-Regular.ufo/glyphs/notequal.glif b/src/Interface-Regular.ufo/glyphs/notequal.glif
index 6f40b4429..7bb2e1eb3 100644
--- a/src/Interface-Regular.ufo/glyphs/notequal.glif
+++ b/src/Interface-Regular.ufo/glyphs/notequal.glif
@@ -4,10 +4,10 @@
<unicode hex="2260"/>
<outline>
<contour>
- <point x="1388" y="1556" type="line"/>
- <point x="1252" y="1640" type="line"/>
- <point x="424" y="232" type="line"/>
- <point x="564" y="148" type="line"/>
+ <point x="1316" y="1544" type="line"/>
+ <point x="1180" y="1628" type="line"/>
+ <point x="352" y="220" type="line"/>
+ <point x="492" y="136" type="line"/>
</contour>
<component base="equal"/>
</outline>
diff --git a/src/Interface-Regular.ufo/lib.plist b/src/Interface-Regular.ufo/lib.plist
index faab9ead3..bcafab714 100644
--- a/src/Interface-Regular.ufo/lib.plist
+++ b/src/Interface-Regular.ufo/lib.plist
@@ -781,10 +781,18 @@
<string>zerowidthspace</string>
<string>arrowleft</string>
<string>arrowleft.case</string>
+ <string>arrowleftlong</string>
+ <string>arrowleftlong.case</string>
<string>arrowup</string>
<string>arrowright</string>
<string>arrowright.case</string>
+ <string>arrowrightlong</string>
+ <string>arrowrightlong.case</string>
<string>arrowdown</string>
+ <string>arrowNW</string>
+ <string>arrowNE</string>
+ <string>arrowSE</string>
+ <string>arrowSW</string>
<string>triagrt</string>
<string>triagdn</string>
<string>triagup</string>
@@ -2506,6 +2514,8 @@
<string>placeofinterestsign.specz.medium</string>
<string>uniE001</string>
<string>.notdef</string>
+ <string>circleblack</string>
+ <string>circlewhite</string>
</array>
<key>type</key>
<string>glyphList</string>
@@ -2997,10 +3007,18 @@
<string>zerowidthspace</string>
<string>arrowleft</string>
<string>arrowleft.case</string>
+ <string>arrowleftlong</string>
+ <string>arrowleftlong.case</string>
<string>arrowup</string>
<string>arrowright</string>
<string>arrowright.case</string>
+ <string>arrowrightlong</string>
+ <string>arrowrightlong.case</string>
<string>arrowdown</string>
+ <string>arrowNW</string>
+ <string>arrowNE</string>
+ <string>arrowSE</string>
+ <string>arrowSW</string>
<string>triagrt</string>
<string>triagdn</string>
<string>triagup</string>
@@ -4722,6 +4740,8 @@
<string>placeofinterestsign.specz.medium</string>
<string>uniE001</string>
<string>.notdef</string>
+ <string>circleblack</string>
+ <string>circlewhite</string>
</array>
</dict>
</plist>
diff --git a/src/features.fea b/src/features.fea
index ba34678bc..d94663c18 100644
--- a/src/features.fea
+++ b/src/features.fea
@@ -856,7 +856,12 @@ feature numr {
sub @frac1 by @frac2;
} numr;
-@CASE_L = [
+@CASE_DELIM_L = [
+ braceleft braceright
+ bracketleft bracketright
+ parenleft parenright
+];
+@CASE_NONDELIM_L = [
asterisk
at
multiply
@@ -872,14 +877,18 @@ feature numr {
hyphen
bullet
arrowleft
+ arrowleftlong
arrowright
+ arrowrightlong
notequal
- braceleft braceright
- bracketleft bracketright
- parenleft parenright
colon
];
+@CASE_L = [ @CASE_DELIM_L @CASE_NONDELIM_L ];
@CASE_R = [
+ braceleft.case braceright.case
+ bracketleft.case bracketright.case
+ parenleft.case parenright.case
+
asterisk.case
at.case
multiply.case
@@ -895,11 +904,10 @@ feature numr {
hyphen.case
bullet.case
arrowleft.case
+ arrowleftlong.case
arrowright.case
+ arrowrightlong.case
notequal.case
- braceleft.case braceright.case
- bracketleft.case bracketright.case
- parenleft.case parenright.case
colon.case
];
@@ -909,66 +917,21 @@ feature case {
feature calt {
@UC = [ @UC_ROMAN @UC_SET1 exclam question ];
-
- sub @UC at' @UC by at.case;
- sub @UC asterisk' by asterisk.case;
-
- sub multiply' @UC by multiply.case;
- sub @UC multiply' by multiply.case;
-
- sub minus' @UC by minus.case;
- sub @UC minus' by minus.case;
-
- sub plus' @UC by plus.case;
- sub @UC plus' by plus.case;
-
- sub plusminus' @UC by plusminus.case;
- sub @UC plusminus' by plusminus.case;
-
- sub divide' @UC by divide.case;
- sub @UC divide' by divide.case;
-
- sub equal' @UC by equal.case;
- sub @UC equal' by equal.case;
-
- sub notequal' @UC by notequal.case;
- sub @UC notequal' by notequal.case;
-
- sub endash' @UC by endash.case;
- sub @UC endash' by endash.case;
-
- sub figuredash' @UC by figuredash.case;
- sub @UC figuredash' by figuredash.case;
-
- sub emdash' @UC by emdash.case;
- sub @UC emdash' by emdash.case;
-
- sub hyphen' @UC by hyphen.case;
- sub @UC hyphen' by hyphen.case;
-
- sub bullet' @UC by bullet.case;
- sub @UC bullet' by bullet.case;
-
- sub arrowleft' @UC by arrowleft.case;
- sub @UC arrowleft' by arrowleft.case;
-
- sub arrowright' @UC by arrowright.case;
- sub @UC arrowright' by arrowright.case;
-
- sub notequal' @UC by notequal.case;
- sub @UC notequal' by notequal.case;
-
- sub braceleft' @UC by braceleft.case;
- sub @UC braceright' by braceright.case;
-
- sub bracketleft' @UC by bracketleft.case;
- sub @UC bracketright' by bracketright.case;
-
- sub parenleft' @UC by parenleft.case;
- sub @UC parenright' by parenright.case;
-
- sub colon' @UC by colon.case;
- sub @UC colon' by colon.case;
+ @LC = [ @LC_ROMAN @LC_SET1 ];
+
+ sub @UC @CASE_L' by @CASE_R;
+ ignore sub @LC @CASE_NONDELIM_L' @UC;
+ sub @CASE_L' @UC by @CASE_R;
+
+ # ->, <-
+ @ARROW_DASH = [ hyphen endash emdash ];
+ @ARROW_DASH_CASE = [ hyphen.case endash.case emdash.case ];
+ sub @ARROW_DASH' greater' by arrowrightlong;
+ sub @ARROW_DASH_CASE' greater' by arrowrightlong.case;
+ ignore sub less' @ARROW_DASH' @NUM;
+ ignore sub less' @ARROW_DASH_CASE' @NUM;
+ sub less' @ARROW_DASH' by arrowleftlong;
+ sub less' @ARROW_DASH_CASE' by arrowleftlong.case;
sub period' @NUM by period.num;
} calt;