Add Fira Code V6's progress bar symbols.

This commit is contained in:
be5invis 2021-12-01 00:24:56 -08:00
parent 2446530629
commit 52a865571c
5 changed files with 74 additions and 4 deletions

View file

@ -1,2 +1,3 @@
* Slightly reduce X-height by 0.01em foe better geometric balancing.
* Make low-crossbar variants of `f` more distinctive with `crossbar-at-x-height` (#1254).
* Add Fira Code V6's progress bar symbols.

View file

@ -522,7 +522,7 @@ glyph-block Letter-Latin-K : begin
alias 'latinkappa' 0x138 'smcpK'
select-variant 'cyrl/ka' 0x43A (shapeFrom -- 'smcpK')
select-variant 'cyrl/kaDescender' 0x49B (follow -- 'cyrl/ka')
select-variant 'cyrl/ka.BGR' 0xE012 (shapeFrom -- 'k') (follow -- 'cyrl/ka')
select-variant 'cyrl/ka.BGR' (shapeFrom -- 'k') (follow -- 'cyrl/ka')
select-variant 'cyrl/kaVBar' 0x49D (shapeFrom -- 'smcpKVBar') (follow -- 'cyrl/kaVBar')
select-variant 'cyrl/kaHook' 0x4C4 (shapeFrom -- 'smcpK') (follow -- 'cyrl/kaHook')

View file

@ -82,6 +82,30 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
if RT : include : UpperRightQuarterMark
if RB : include : LowerRightQuarterMark
define [progressCircleMaskPoint pAngle] : corner
Geom.MidX + [Math.cos ((0.5 - pAngle * 2) * Math.PI)] * Geom.Width * 4
Geom.MidY + [Math.sin ((0.5 - pAngle * 2) * Math.PI)] * Geom.Width * 4
define progressCircleSections : list
list 0xEE06 (-1 / 12) (1 / 12)
list 0xEE07 0 (1 / 3)
list 0xEE08 (1 / 6) (1 / 2 + 1 / 24)
list 0xEE09 (1 / 4) (3 / 4)
list 0xEE0A (1 / 2 - 1 / 24) (5 / 6)
list 0xEE0B (2 / 3) 1
foreach [{u pAngleStart pAngleEnd} : items-of progressCircleSections] : begin
create-glyph [MangleName ('uni' + u)] [MangleUnicode u] : glyph-proc
set-width Geom.Width
include : intersection
refer-glyph : MangleName 'whiteCircle'
spiro-outline
corner Geom.MidX Geom.MidY
progressCircleMaskPoint [mix pAngleStart pAngleEnd (0 / 4)]
progressCircleMaskPoint [mix pAngleStart pAngleEnd (1 / 4)]
progressCircleMaskPoint [mix pAngleStart pAngleEnd (2 / 4)]
progressCircleMaskPoint [mix pAngleStart pAngleEnd (3 / 4)]
progressCircleMaskPoint [mix pAngleStart pAngleEnd (4 / 4)]
do "Partial square"
define squareParts : list
list 0x25E7 1 1 0 0 0 0 0 0

View file

@ -11,7 +11,7 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
define uiFigTop : mix ParenBot ParenTop 0.95
define uiFigBot : mix ParenBot ParenTop 0.05
create-glyph 'branch' 0xE0A0 : glyph-proc
create-glyph 'powerline/branch' 0xE0A0 : glyph-proc
local fine : AdviceStroke 3.5
local y1 : mix uiFigBot uiFigTop 0.8
local y2 : mix uiFigBot uiFigTop 0.2
@ -23,7 +23,7 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
g4 (SB + fine * HVContrast) y2 [heading Leftward]
include : DotAt (RightSB - fine * HVContrast / 2) y1 [Math.max (fine * 1.5) PeriodRadius]
create-glyph 'pwlLock' 0xE0A2 : glyph-proc
create-glyph 'powerline/lock' 0xE0A2 : glyph-proc
local fine : AdviceStroke 3.5
local lockTop : mix uiFigBot uiFigTop 0.6
local lockLeft : SB / 2
@ -51,6 +51,49 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
close
OShapeOutline lockHoleTop lockHoleBottom lockHoleLeft lockHoleRight fine (SmallSmoothA * lockHoleWidth) (SmallSmoothB * lockHoleWidth)
do "Progress Bar"
define frameLeft : mix SB RightSB DesignParameters.bracketOutside
define frameRight : mix RightSB SB DesignParameters.bracketOutside
define progressBarGap : Math.min ((TackTop - TackBot) / 6) (Width / 6) [AdviceStroke 5]
create-glyph 'powerline/progressBarStartEmpty' 0xEE00 : glyph-proc
include : VBarLeft frameLeft TackTop TackBot GeometryStroke
include : HBarTop frameLeft (Width - O) TackTop GeometryStroke
include : HBarBottom frameLeft (Width - O) TackBot GeometryStroke
create-glyph 'powerline/progressBarMiddleEmpty' 0xEE01 : glyph-proc
include : HBarTop O (Width - O) TackTop GeometryStroke
include : HBarBottom O (Width - O) TackBot GeometryStroke
create-glyph 'powerline/progressBarEndEmpty' 0xEE02 : glyph-proc
include : VBarRight frameRight TackTop TackBot GeometryStroke
include : HBarTop O frameRight TackTop GeometryStroke
include : HBarBottom O frameRight TackBot GeometryStroke
create-glyph 'powerline/progressBarStartFilled' 0xEE03 : glyph-proc
include : refer-glyph 'powerline/progressBarStartEmpty' AS_BASE ALSO_METRICS
include : Rect
TackTop - GeometryStroke - progressBarGap
TackBot + GeometryStroke + progressBarGap
frameLeft + GeometryStroke * HVContrast + progressBarGap * HVContrast
Width - O
create-glyph 'powerline/progressBarMiddleFilled' 0xEE04 : glyph-proc
include : refer-glyph 'powerline/progressBarMiddleEmpty' AS_BASE ALSO_METRICS
include : Rect
TackTop - GeometryStroke - progressBarGap
TackBot + GeometryStroke + progressBarGap
0 + O
Width - O
create-glyph 'powerline/progressBarEndFilled' 0xEE05 : glyph-proc
include : refer-glyph 'powerline/progressBarEndEmpty' AS_BASE ALSO_METRICS
include : Rect
TackTop - GeometryStroke - progressBarGap
TackBot + GeometryStroke + progressBarGap
0 + O
frameRight - GeometryStroke * HVContrast - progressBarGap * HVContrast
for-width-kinds WideWidth4
do "arrowheadShapedPointer"
define scaffold : object

View file

@ -150,7 +150,9 @@ exports.blockData = [
[[0xd800, 0xdb7f], "High Surrogates"],
[[0xdb80, 0xdbff], "High Private Use Surrogates"],
[[0xdc00, 0xdfff], "Low Surrogates"],
[[0xe000, 0xf8ff], "Private Use Area"],
[[0xe000, 0xe03f], "Private Use Area - Misc"],
[[0xe0a0, 0xe0df], "Private Use Area - Powerline"],
[[0xee00, 0xee3f], "Private Use Area - Progress Bar"],
[[0xf900, 0xfaff], "CJK Compatibility Ideographs"],
[[0xfb00, 0xfb4f], "Alphabetic Presentation Forms"],
[[0xfb50, 0xfdff], "Arabic Presentation Forms-A"],