redesign ss styles
|
@ -137,21 +137,6 @@ symbol-block 'GSUB' : if [not recursive] : begin
|
|||
: else : ans.push term
|
||||
return ans
|
||||
|
||||
# cvxx
|
||||
foreach [name : items-of : Object.keys glyphs] : begin
|
||||
if glyphs.(name).featureSelector : begin
|
||||
local fs glyphs.(name).featureSelector
|
||||
foreach [feature : items-of : Object.keys fs] : begin
|
||||
if [not lookups.(feature)] : begin
|
||||
set features.(feature) {feature}
|
||||
set lookups.(feature) {.type 'gsub_single' .subtables{{.}}}
|
||||
commonList.push feature
|
||||
set lookups.(feature).subtables.0.(name) fs.(feature)
|
||||
# ssxx
|
||||
foreach [name : items-of : Object.keys para.sscompose] : begin
|
||||
commonList.push name
|
||||
set features.(name) para.sscompose.(name)
|
||||
|
||||
# ccmp
|
||||
commonList.push 'ccmp'
|
||||
set features.ccmp {'ccmp1' 'ccmp2'}
|
||||
|
@ -267,8 +252,6 @@ symbol-block 'GSUB' : if [not recursive] : begin
|
|||
cyrbe 'cyrbe.serbian'
|
||||
set lookups.locl_srb {.type 'gsub_single' .subtables {srbSubtable}}
|
||||
set features.locl_srb {'locl_srb'}
|
||||
set languages.'cyrl_SRB ' {.features [{'locl_srb'}.concat commonList]}
|
||||
set languages.'cyrl_MKD ' {.features [{'locl_srb'}.concat commonList]}
|
||||
|
||||
# locl, BGR
|
||||
local bgrSubtable : object
|
||||
|
@ -289,6 +272,24 @@ symbol-block 'GSUB' : if [not recursive] : begin
|
|||
cyryu 'cyryu.BGR'
|
||||
set lookups.locl_bgr {.type 'gsub_single' .subtables {bgrSubtable}}
|
||||
set features.locl_bgr {'locl_bgr'}
|
||||
|
||||
# cvxx
|
||||
foreach [name : items-of : Object.keys glyphs] : begin
|
||||
if glyphs.(name).featureSelector : begin
|
||||
local fs glyphs.(name).featureSelector
|
||||
foreach [feature : items-of : Object.keys fs] : begin
|
||||
if [not lookups.(feature)] : begin
|
||||
set features.(feature) {feature}
|
||||
set lookups.(feature) {.type 'gsub_single' .subtables{{.}}}
|
||||
commonList.push feature
|
||||
set lookups.(feature).subtables.0.(name) fs.(feature)
|
||||
# ssxx
|
||||
foreach [name : items-of : Object.keys para.sscompose] : begin
|
||||
commonList.push name
|
||||
set features.(name) para.sscompose.(name)
|
||||
|
||||
set languages.'cyrl_SRB ' {.features [{'locl_srb'}.concat commonList]}
|
||||
set languages.'cyrl_MKD ' {.features [{'locl_srb'}.concat commonList]}
|
||||
set languages.'cyrl_BGR ' {.features [{'locl_bgr'}.concat commonList]}
|
||||
|
||||
set font.GSUB {.languages languages .features features .lookups lookups}
|
|
@ -31,8 +31,32 @@ symbol-block 'I'
|
|||
include : ISerifShape XH
|
||||
save 'smcpI' 0x26A
|
||||
|
||||
### dotless i and i
|
||||
symbol-block 'i'
|
||||
### dotless i, i and iota
|
||||
define IotaShape : symbol-block 'i'
|
||||
# iota
|
||||
define [IotaShape top] : glyph-construction
|
||||
local middle MIDDLE
|
||||
set-anchor 'above' BASE middle top
|
||||
include : LeftwardTopSerif middle top LONGJUT
|
||||
include : dispiro
|
||||
widths.center
|
||||
flat middle top [heading DOWNWARD]
|
||||
curl middle HOOK
|
||||
arcvh
|
||||
flat (middle + HOOK - HALFSTROKE) HALFSTROKE
|
||||
curl (middle + LONGJUT * 1.05) HALFSTROKE [heading RIGHTWARD]
|
||||
|
||||
sketch # iota
|
||||
include eMarks
|
||||
include : IotaShape XH
|
||||
save 'iota' 0x3B9
|
||||
save 'latiniota' 0x269
|
||||
|
||||
sketch # latinIota
|
||||
include capitalMarks
|
||||
include : IotaShape CAP
|
||||
save 'latinIota' 0x196
|
||||
|
||||
sketch # dotlessi.straight
|
||||
include eMarks
|
||||
include : VBar (MIDDLE) 0 XH
|
||||
|
@ -43,7 +67,6 @@ symbol-block 'i'
|
|||
include eMarks
|
||||
include : VBar (MIDDLE + IBALANCE) 0 XH
|
||||
include : LeftwardTopSerif (MIDDLE + IBALANCE) XH LONGJUT
|
||||
|
||||
save 'dotlessi.hooky'
|
||||
|
||||
sketch # dotlessi.zshaped
|
||||
|
@ -51,21 +74,20 @@ symbol-block 'i'
|
|||
include : VBar (MIDDLE) 0 XH
|
||||
include : LeftwardTopSerif (MIDDLE) XH LONGJUT
|
||||
include : RightwardBottomSerif MIDDLE 0 LONGJUT
|
||||
|
||||
save 'dotlessi.zshaped'
|
||||
|
||||
sketch # dotlessi.serifed
|
||||
include eMarks
|
||||
|
||||
local balance IBALANCE
|
||||
include : VBar (MIDDLE + balance) 0 XH
|
||||
include : LeftwardTopSerif (MIDDLE + balance) XH (LONGJUT - balance)
|
||||
include : RightwardBottomSerif MIDDLE 0 LONGJUT
|
||||
include : LeftwardBottomSerif MIDDLE 0 LONGJUT
|
||||
|
||||
save 'dotlessi.serifed'
|
||||
|
||||
sketch # dotlessi.italic
|
||||
if para.isItalic
|
||||
: then : begin
|
||||
local left : [mix SB RIGHTSB [linreg 18 0.42 126 0.46 STROKE]] - HALFSTROKE * HVCONTRAST
|
||||
local right : mix SB RIGHTSB 1.1
|
||||
local middle : mix left right 0.55
|
||||
|
@ -81,7 +103,9 @@ symbol-block 'i'
|
|||
include eMarks
|
||||
set-anchor 'above' BASE (left + HALFSTROKE * HVCONTRAST + [linreg 18 0.25 126 0 STROKE] * TANSLANT * WIDTH) XH
|
||||
set-anchor 'below' BASE middle 0
|
||||
|
||||
: else : begin
|
||||
include eMarks
|
||||
include : IotaShape XH
|
||||
save 'dotlessi.italic'
|
||||
|
||||
select-variant 'dotlessi' 0x131 [if para.isItalic 'italic' 'serifed'] {
|
||||
|
@ -110,32 +134,8 @@ symbol-block 'i'
|
|||
.cv06 'i.cv06'
|
||||
}
|
||||
alias 'cyrUkrainiani' 0x456 'i'
|
||||
|
||||
turned nothing 0x1D09 'i' MIDDLE (XH / 2) pMarks
|
||||
|
||||
# iota
|
||||
define [IotaShape top] : glyph-construction
|
||||
local middle MIDDLE
|
||||
set-anchor 'above' BASE middle top
|
||||
include : LeftwardTopSerif middle top LONGJUT
|
||||
include : dispiro
|
||||
widths.center
|
||||
flat middle top [heading DOWNWARD]
|
||||
curl middle HOOK
|
||||
arcvh
|
||||
flat (middle + HOOK - HALFSTROKE) HALFSTROKE
|
||||
curl (middle + LONGJUT * 1.05) HALFSTROKE [heading RIGHTWARD]
|
||||
|
||||
sketch # iota
|
||||
include eMarks
|
||||
include : IotaShape XH
|
||||
save 'iota' 0x3B9
|
||||
save 'latiniota' 0x269
|
||||
|
||||
sketch # latinIota
|
||||
include capitalMarks
|
||||
include : IotaShape CAP
|
||||
save 'latinIota' 0x196
|
||||
* IotaShape
|
||||
|
||||
### J
|
||||
symbol-block 'J'
|
||||
|
@ -330,6 +330,9 @@ symbol-block 'l'
|
|||
save 'l.serifed'
|
||||
|
||||
sketch # l.italic
|
||||
include bMarks
|
||||
if para.isItalic
|
||||
: then : begin
|
||||
local left : mix SB RIGHTSB 0.3
|
||||
local right : mix SB RIGHTSB 1.1
|
||||
local middle : mix left right 0.54
|
||||
|
@ -342,11 +345,10 @@ symbol-block 'l'
|
|||
include : dispiro
|
||||
flat SB CAP [widths 0 STROKE]
|
||||
curl left CAP
|
||||
include bMarks
|
||||
set-anchor 'above' BASE (left + HALFSTROKE) CAP
|
||||
set-anchor 'below' BASE middle 0
|
||||
set-anchor 'overlay' BASE (left + HALFSTROKE) (CAP * OVERLAYPOS)
|
||||
|
||||
: else : include : IotaShape CAP
|
||||
save 'l.italic'
|
||||
|
||||
select-variant 'l' 'l' [if para.isItalic 'italic' 'serifed'] {
|
||||
|
@ -580,11 +582,17 @@ symbol-block 'a'
|
|||
include eMarks
|
||||
set-anchor 'trailing' BASE (RIGHTSB - markHalfStroke) 0
|
||||
include : OBarRightShape
|
||||
if SLAB
|
||||
: then : begin
|
||||
include : VBarRight RIGHTSB 0 XH
|
||||
if SLAB : begin
|
||||
include : RightwardBottomSerif RIGHTSB 0 SIDEJUT
|
||||
tag-contour 'serifRB'
|
||||
|
||||
: else : begin
|
||||
include : dispiro
|
||||
widths.rhs
|
||||
flat RIGHTSB XH [heading DOWNWARD]
|
||||
curl RIGHTSB SMOOTHA [heading DOWNWARD]
|
||||
g4 [mix SB RIGHTSB 1.075] 0 [heading DOWNWARD]
|
||||
save 'a.singlestorey'
|
||||
|
||||
select-variant 'a' 'a' [if para.isItalic 'singlestorey' 'doublestorey'] {
|
||||
|
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 409 KiB After Width: | Height: | Size: 409 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 522 KiB |
Before Width: | Height: | Size: 354 KiB After Width: | Height: | Size: 354 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 260 KiB |
|
@ -77,16 +77,15 @@ powerlineShiftX = 0 # Horizontal shift
|
|||
[iosevka.variantSelector]
|
||||
|
||||
[iosevka.sscompose]
|
||||
ss01 = ['cv05', 'cv09']
|
||||
ss02 = ['cv06', 'cv10']
|
||||
ss03 = ['cv04', 'cv08']
|
||||
ss04 = ['cv11']
|
||||
ss05 = ['cv12']
|
||||
ss06 = ['cv13']
|
||||
ss07 = ['cv14']
|
||||
ss08 = ['cv15']
|
||||
ss09 = ['cv16', 'cv18', 'cv20']
|
||||
ss10 = ['cv17', 'cv19', 'cv21']
|
||||
ss01 = ['cv01', 'cv11', 'cv05', 'cv10', 'cv14', 'cv18'] # Andale Mono Style
|
||||
ss02 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv13', 'cv19'] # Anonymous Pro Style
|
||||
ss03 = ['cv01', 'cv11', 'cv03', 'cv07', 'cv13', 'cv18'] # Consolas Style
|
||||
ss04 = ['cv01', 'cv12', 'cv03', 'cv08', 'cv13', 'cv19'] # Menlo Style
|
||||
ss05 = ['cv01', 'cv11', 'cv03', 'cv08', 'cv14', 'cv18'] # Fira Mono Style
|
||||
ss06 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv18'] # Libration Mono Style
|
||||
ss07 = ['cv02', 'cv12', 'cv06', 'cv10', 'cv13', 'cv18'] # Monaco Style
|
||||
ss08 = ['cv01', 'cv11', 'cv03', 'cv07', 'cv14', 'cv19'] # Pragmata Pro Style
|
||||
ss09 = ['cv01', 'cv11', 'cv05', 'cv08', 'cv14', 'cv19'] # Source Code Pro Style
|
||||
|
||||
[verbose]
|
||||
verbose = true
|
||||
|
|
|
@ -25,26 +25,18 @@
|
|||
<section id="opentype">
|
||||
<h2>Opentype features</h2>
|
||||
<div class="hr">Stylistic sets</div>
|
||||
<div>
|
||||
<span class="normal-example"><span class="lhs">default</span><span class="rhs sub">vo<b>l</b>at<b>i</b><b>l</b>e<br><i>vo<b>l</b>at<b>i</b><b>l</b>e</i></span></span>
|
||||
<span class="arrow icon-arrow-right-circle"></span>
|
||||
<span class="feature-example"><span class="lhs">ss01</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss01'; font-feature-settings:'ss01'">vo<b>l</b>at<b>i</b><b>l</b>e<br><i>vo<b>l</b>at<b>i</b><b>l</b>e</i></span></span><span class="feature-example"><span class="lhs">ss02</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss02'; font-feature-settings:'ss02'">vo<b>l</b>at<b>i</b><b>l</b>e<br><i>vo<b>l</b>at<b>i</b><b>l</b>e</i></span></span><span class="feature-example"><span class="lhs">ss03</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss03'; font-feature-settings:'ss03'">vo<b>l</b>at<b>i</b><b>l</b>e<br><i>vo<b>l</b>at<b>i</b><b>l</b>e</i></span></span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="normal-example"><span class="lhs">default</span><span class="rhs sub">percenta<b>g</b>e<br><i>percenta<b>g</b>e</i></span></span>
|
||||
<span class="arrow icon-arrow-right-circle"></span>
|
||||
<span class="feature-example"><span class="lhs">ss04</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss04'; font-feature-settings:'ss04'">percenta<b>g</b>e<br><i>percenta<b>g</b>e</i></span></span><span class="feature-example"><span class="lhs">ss05</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss05'; font-feature-settings:'ss05'">percenta<b>g</b>e<br><i>percenta<b>g</b>e</i></span></span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="normal-example"><span class="lhs">default</span><span class="rhs sub">msk & <b>0</b>xFF<br><i>msk & <b>0</b>xFF</i></span></span>
|
||||
<span class="arrow icon-arrow-right-circle"></span>
|
||||
<span class="feature-example"><span class="lhs">ss06</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss06'; font-feature-settings:'ss06'">msk & <b>0</b>xFF<br><i>msk & <b>0</b>xFF</i></span></span><span class="feature-example"><span class="lhs">ss07</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss07'; font-feature-settings:'ss07'">msk & <b>0</b>xFF<br><i>msk & <b>0</b>xFF</i></span></span><span class="feature-example"><span class="lhs">ss08</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss08'; font-feature-settings:'ss08'">msk & <b>0</b>xFF<br><i>msk & <b>0</b>xFF</i></span></span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="normal-example"><span class="lhs">default</span><span class="rhs sub"><b>*</b>p=<b>~</b>mask<b>_</b>0<br><i><b>*</b>p=<b>~</b>mask<b>_</b>0</i></span></span>
|
||||
<span class="arrow icon-arrow-right-circle"></span>
|
||||
<span class="feature-example"><span class="lhs">ss09</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss09'; font-feature-settings:'ss09'"><b>*</b>p=<b>~</b>mask<b>_</b>0<br><i><b>*</b>p=<b>~</b>mask<b>_</b>0</i></span></span><span class="feature-example"><span class="lhs">ss10</span><span class="rhs sub" style="-webkit-font-feature-settings:'ss10'; font-feature-settings:'ss10'"><b>*</b>p=<b>~</b>mask<b>_</b>0<br><i><b>*</b>p=<b>~</b>mask<b>_</b>0</i></span></span>
|
||||
</div>
|
||||
<ol>
|
||||
<li><span class="tag off">off</span><span class="sample">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Default</span></li>
|
||||
<li><span class="tag">ss01</span><span class="sample" style="font-feature-settings:'ss01'">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Andale Mono Style</span></li>
|
||||
<li><span class="tag">ss02</span><span class="sample" style="font-feature-settings:'ss02'">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Anonymous Pro Style</span></li>
|
||||
<li><span class="tag">ss03</span><span class="sample" style="font-feature-settings:'ss03'">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Consolas Style</span></li>
|
||||
<li><span class="tag">ss04</span><span class="sample" style="font-feature-settings:'ss04'">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Menlo Style</span></li>
|
||||
<li><span class="tag">ss05</span><span class="sample" style="font-feature-settings:'ss05'">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Fira Mono Style</span></li>
|
||||
<li><span class="tag">ss06</span><span class="sample" style="font-feature-settings:'ss06'">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Libration Mono Style</span></li>
|
||||
<li><span class="tag">ss07</span><span class="sample" style="font-feature-settings:'ss07'">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Monaco Style</span></li>
|
||||
<li><span class="tag">ss08</span><span class="sample" style="font-feature-settings:'ss08'">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Pragmata Pro Style</span></li>
|
||||
<li><span class="tag">ss09</span><span class="sample" style="font-feature-settings:'ss09'">f<b>l</b>o<b>a</b>t Fox.qu<b>i</b>ck(h){ <b>*</b><b>i</b>s_brown && <b>i</b>t_jumps_over(do<b>g</b>es.<b>l</b><b>a</b>zy) } <b>0</b>123456789</span><span class="description">Source Code Pro Style</span></li>
|
||||
</ol>
|
||||
<div class="hr">Character Variants</div>
|
||||
<div>
|
||||
<span class="normal-example"><span class="lhs">default</span><span class="rhs sub">v<b>a</b>ri<b>a</b>ble<br><i>v<b>a</b>ri<b>a</b>ble</i></span></span>
|
||||
|
|
|
@ -143,6 +143,50 @@ section#opentype
|
|||
padding: 0.25em
|
||||
border: 1px solid transparent
|
||||
|
||||
> ol
|
||||
list-style none
|
||||
margin 0
|
||||
padding 0
|
||||
font-size 1em
|
||||
width 35.5em
|
||||
> li
|
||||
margin 0
|
||||
padding 0
|
||||
position relative
|
||||
height 3em
|
||||
border-top 1px solid #eee
|
||||
margin-top 0.4em
|
||||
padding-top 0.4em
|
||||
&:first-child
|
||||
border-top none
|
||||
margin-top 0
|
||||
> .tag
|
||||
display block
|
||||
position absolute
|
||||
top calc(0.8em - 0.2em - 1px)
|
||||
left 0
|
||||
font-size 0.8em
|
||||
width 2em
|
||||
border 1px solid rgba(0, 0, 0, 0.25)
|
||||
padding 0.2em
|
||||
padding-bottom 0.1em
|
||||
text-align center
|
||||
border-radius 0.2em
|
||||
> .description
|
||||
display block
|
||||
position absolute
|
||||
top 0.8em
|
||||
right 0
|
||||
font-style italic
|
||||
font-size 0.8em
|
||||
color rgba(0, 0, 0, 0.5)
|
||||
> .sample
|
||||
display block
|
||||
margin-top 1.6em
|
||||
b
|
||||
font-weight normal
|
||||
color #c33500
|
||||
|
||||
span.normal-example
|
||||
padding: 0.25em
|
||||
text-align: right
|
||||
|
|