diff --git a/CHANGELOG.md b/CHANGELOG.md index 5732cdd..736d3e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,9 @@ All notable changes to this project will be documented in this file. -#### 4.0 (May 10, 2020) +#### 4.0 (May 18, 2020) + +Removed 44 individual arrow ligatures, replaced with four universal, combinative substitutions. 100-150% faster shaping performance, infinite amount of arrow combinations. - Arbitrary-long combinative hyphen-based arrows #346 #494 #713 #826 #968 #983 #1029 - Arbitrary-long combinative equal-based arrows #229 #234 #346 #494 #698 #826 #919 #931 #946 #948 #968 #1016 #1018 #1022 @@ -10,6 +12,7 @@ All notable changes to this project will be documented in this file. - Arbitrary-long numbersign sequences #1014 - Fixed descender in U+040F `Џ` - Undid #995 and properly fixed U+04CB `Ӌ`, U+04CC`ӌ` #1001 and U+0449 `щ` #1007 +- Added `|||` to prevent partial ligatures in `|||-|||` `|||=|||` #346 #### 3.1 (April 15, 2020) diff --git a/FiraCode.glyphs b/FiraCode.glyphs index e30db8e..4e1cc37 100644 --- a/FiraCode.glyphs +++ b/FiraCode.glyphs @@ -1,8 +1,5 @@ { .appVersion = "1330"; -DisplayStrings = ( -"FTl/space l\012fij" -); classes = ( { code = "A A-cy AE AEacute Aacute Abreve Abreve-cy Acircumflex Adieresis Adieresis-cy Agrave Aie-cy Aleutka-cy Alpha Alphadasia Alphadasiaoxia Alphadasiaoxiaprosgegrammeni Alphadasiaperispomeni Alphadasiaperispomeniprosgegrammeni Alphadasiaprosgegrammeni Alphadasiavaria Alphadasiavariaprosgegrammeni Alphamacron Alphaoxia Alphaprosgegrammeni Alphapsili Alphapsilioxia Alphapsilioxiaprosgegrammeni Alphapsiliperispomeni Alphapsiliperispomeniprosgegrammeni Alphapsiliprosgegrammeni Alphapsilivaria Alphapsilivariaprosgegrammeni Alphatonos Alphavaria Alphavrachy Amacron Aogonek Archaicsampi Aring Atilde B BdoubleStruck Be-cy Beta C CR Cacute Cacute.loclPLK Ccaron Ccedilla Ccircumflex Cdotaccent CdoubleStruck Che-cy Cheabkhasian-cy Chedescender-cy Chedescenderabkhasian-cy Chedieresis-cy Chekhakassian-cy Cheverticalstroke-cy Chi D Dcaron Dche-cy Dcroat De-cy Delta Digamma Dje-cy Dze-cy Dzeabkhasian-cy Dzhe-cy Dzzhe-cy E E-cy Eacute Ebreve Ecaron Ecircumflex Edieresis Edieresis-cy Edotaccent Ef-cy Egrave Eiotified-cy El-cy Eldescender-cy Elhook-cy Elmiddlehook-cy Eltail-cy Em-cy Emacron Emtail-cy En-cy EnLeftHook-cy Endescender-cy Eng Enghe-cy Enhook-cy Enmiddlehook-cy Entail-cy Eogonek Epsilon Epsilondasia Epsilondasiaoxia Epsilondasiavaria Epsilonoxia Epsilonpsili Epsilonpsilioxia Epsilonpsilivaria Epsilontonos Epsilonvaria Er-cy Ereversed-cy Ertick-cy Es-cy Esdescender-cy Eta Etadasia Etadasiaoxia Etadasiaoxiaprosgegrammeni Etadasiaperispomeni Etadasiaperispomeniprosgegrammeni Etadasiaprosgegrammeni Etadasiavaria Etadasiavariaprosgegrammeni Etaoxia Etaprosgegrammeni Etapsili Etapsilioxia Etapsilioxiaprosgegrammeni Etapsiliperispomeni Etapsiliperispomeniprosgegrammeni Etapsiliprosgegrammeni Etapsilivaria Etapsilivariaprosgegrammeni Etatonos Etavaria Eth F F.spacer Fita-cy G Gamma Gbreve Gcircumflex Gcommaaccent Gdotaccent Ge-cy Gedescender-cy Germandbls Gestrokehook-cy Ghemiddlehook-cy Ghestroke-cy Gheupturn-cy Gje-cy H H18543 H18551 H22073 Ha-cy Haabkhasian-cy Hadescender-cy Hahook-cy Hardsign-cy Hastroke-cy Hbar Hcircumflex HdoubleStruck Heta I I-cy IJ Ia-cy Iacute Ibreve Icircumflex Idieresis Idieresis-cy Idotaccent Ie-cy Iebreve-cy Iegrave-cy Igrave Ii-cy Iigrave-cy Iishort-cy Iishorttail-cy Imacron Imacron-cy Io-cy Iogonek Iota Iotadasia Iotadasiaoxia Iotadasiaperispomeni Iotadasiavaria Iotadieresis Iotamacron Iotaoxia Iotapsili Iotapsilioxia Iotapsiliperispomeni Iotapsilivaria Iotatonos Iotavaria Iotavrachy Itilde Iu-cy Izhitsa-cy Izhitsadblgrave-cy J Jcircumflex Je-cy K Ka-cy Kabashkir-cy Kadescender-cy Kahook-cy KaiSymbol Kappa Kastroke-cy Kaverticalstroke-cy Kcommaaccent Kje-cy Komide-cy Komidje-cy Komidzje-cy Komilje-cy Kominje-cy Komisje-cy Komitje-cy Komizje-cy Koppa KoppaArchaic Ksi-cy L LIG Lacute Lambda Lcaron Lcommaaccent Ldot Lha-cy Lje-cy Lslash M Mu N Nacute Nacute.loclPLK Ncaron Ncommaaccent NdoubleStruck Nje-cy Ntilde Nu O O-cy OE Oacute Oacute.loclPLK Obarred-cy Obarreddieresis-cy Obreve Ocircumflex Odieresis Odieresis-cy Ograve Ohungarumlaut Omacron Omega Omega-cy Omegadasia Omegadasiaoxia Omegadasiaoxiaprosgegrammeni Omegadasiaperispomeni Omegadasiaperispomeniprosgegrammeni Omegadasiaprosgegrammeni Omegadasiavaria Omegadasiavariaprosgegrammeni Omegaoxia Omegaprosgegrammeni Omegapsili Omegapsilioxia Omegapsilioxiaprosgegrammeni Omegapsiliperispomeni Omegapsiliperispomeniprosgegrammeni Omegapsiliprosgegrammeni Omegapsilivaria Omegapsilivariaprosgegrammeni Omegatonos Omegavaria Omicron Omicrondasia Omicrondasiaoxia Omicrondasiavaria Omicronoxia Omicronpsili Omicronpsilioxia Omicronpsilivaria Omicrontonos Omicronvaria Oslash Oslashacute Otilde P Palochka-cy Pamphyliandigamma PdoubleStruck Pe-cy Pedescender-cy Pemiddlehook-cy Phi Pi Psi Psi-cy Q Qa-cy QdoubleStruck R Racute Rcaron Rcommaaccent RdoubleStruck Reversedze-cy Rha-cy Rho Rhodasia S SF010000 SF020000 SF030000 SF040000 SF050000 SF060000 SF070000 SF080000 SF090000 SF100000 SF110000 SF190000 SF200000 SF210000 SF220000 SF230000 SF240000 SF250000 SF260000 SF270000 SF280000 SF360000 SF370000 SF380000 SF390000 SF400000 SF410000 SF420000 SF430000 SF440000 SF450000 SF460000 SF470000 SF480000 SF490000 SF500000 SF510000 SF520000 SF530000 SF540000 Sacute Sacute.loclPLK Sampi San Scaron Scedilla Schwa-cy Schwadieresis-cy Scircumflex Scommaaccent Semisoftsign-cy Sha-cy Shcha-cy Shha-cy Shhadescender-cy Sho Sigma SigmaLunateDottedReversedSymbol SigmaLunateDottedSymbol SigmaLunateReversedSymbol SigmaLunateSymbol Softsign-cy Stigma T T.spacer Tau Tbar Tcaron Tcedilla Tcommaaccent Te-cy Tedescender-cy Tetse-cy Theta ThetaSymbol Thorn Tse-cy Tshe-cy U U-cy Uacute Ubreve Ucircumflex Udieresis Udieresis-cy Ugrave Uhungarumlaut Uhungarumlaut-cy Uk-cy Umacron Umacron-cy Uogonek Upsilon UpsilonacutehookSymbol Upsilondasia Upsilondasiaoxia Upsilondasiaperispomeni Upsilondasiavaria Upsilondieresis UpsilondieresishookSymbol UpsilonhookSymbol Upsilonmacron Upsilonoxia Upsilontonos Upsilonvaria Upsilonvrachy Uring Ushort-cy Ustrait-cy Ustraitstroke-cy Utilde V Ve-cy W Wacute Wcircumflex Wdieresis We-cy Wgrave X Xi Y Yacute Yae-cy Yat-cy Ycircumflex Ydieresis Yeru-cy Yerudieresis-cy Ygrave Yi-cy Yot-greek Yusbig-cy Yusbigiotified-cy Yuslittle-cy Yuslittleiotified-cy Z Zacute Zacute.loclPLK Zcaron Zdotaccent ZdoubleStruck Ze-cy Zedescender-cy Zedieresis-cy Zeta Zhe-cy Zhebreve-cy Zhedescender-cy Zhedieresis-cy a a-cy aacute abreve abreve-cy acircumflex acknowledge-control acute acute.case acute.case.loclPLK acute.loclPLK acutecomb adieresis adieresis-cy ae aeacute afii00208 agrave aie-cy aleutka-cy alpha alphadasia alphadasiaoxia alphadasiaoxiaypogegrammeni alphadasiaperispomeni alphadasiaperispomeniypogegrammeni alphadasiavaria alphadasiavariaypogegrammeni alphadasiaypogegrammeni alphamacron alphaoxia alphaoxiaypogegrammeni alphaperispomeni alphaperispomeniypogegrammeni alphapsili alphapsilioxia alphapsilioxiaypogegrammeni alphapsiliperispomeni alphapsiliperispomeniypogegrammeni alphapsilivaria alphapsilivariaypogegrammeni alphapsiliypogegrammeni alphatonos alphavaria alphavariaypogegrammeni alphavrachy alphaypogegrammeni alternativekeysymbol amacron ampersand ampersand.before.ss03 ampersand.spacer ampersand.ss03 ampersand_ampersand.liga anoteleia anticlockwiseGappedCircleArrow aogonek apostrophemod approxequal archaicsampi aring arrowboth arrowdown arrowdownleft arrowdownright arrowdownwhite arrowleft arrowleftwhite arrowright arrowrightwhite arrowup arrowupdown arrowupleft arrowupright arrowupwhite asciicircum asciicircum.spacer asciicircum_equal.liga asciitilde asciitilde.spacer asciitilde_asciitilde.liga asciitilde_asciitilde_greater.liga asciitilde_at.liga asciitilde_greater.liga asciitilde_hyphen.liga assertion asterisk asterisk.lc asterisk.spacer asterisk_asterisk.liga asterisk_asterisk_asterisk.liga asterisk_greater.liga asterisk_slash.liga at at.spacer at.ss05 atilde b backslash backslash.spacer backslash.ss06 backslash.thick.ss06 backslash_slash.liga backspace-control ballotBox ballotBoxWithCheck ballotBoxWithX bar bar.spacer bar_bar.liga bar_bar_bar.liga bar_bar_bar_greater.liga bar_bar_equal_end.seq bar_bar_equal_middle.seq bar_bar_equal_start.seq bar_bar_greater.liga bar_bar_hyphen_end.seq bar_bar_hyphen_middle.seq bar_bar_hyphen_start.seq bar_braceright.liga bar_bracketright.liga bar_equal_end.seq bar_equal_middle.seq bar_equal_start.seq bar_greater.liga bar_hyphen_end.seq bar_hyphen_middle.seq bar_hyphen_start.seq bar_underscore_middle.seq be-cy because bell-control beta betaSymbol blackCircle blackDiamond blackLowerLeftTriangle blackLowerRightTriangle blackRightArrow blackUpperLeftTriangle blackUpperRightTriangle blackVerticalRect blank blankSymbol boxDownHeavyAndHorizontalLight boxDownHeavyAndLeftLight boxDownHeavyAndLeftUpLight boxDownHeavyAndRightLight boxDownHeavyAndRightUpLight boxDownHeavyAndUpHorizontalLight boxDownLightAndHorizontalHeavy boxDownLightAndLeftHeavy boxDownLightAndLeftUpHeavy boxDownLightAndRightHeavy boxDownLightAndRightUpHeavy boxDownLightAndUpHorizontalHeavy boxHeavyDoubleDashHorizontal boxHeavyDoubleDashVertical boxHeavyDown boxHeavyDownAndHorizontal boxHeavyDownAndLeft boxHeavyDownAndRight boxHeavyHorizontal boxHeavyLeft boxHeavyLeftAndLightRight boxHeavyQuadrupleDashHorizontal boxHeavyQuadrupleDashVertical boxHeavyRight boxHeavyTripleDashHorizontal boxHeavyTripleDashVertical boxHeavyUp boxHeavyUpAndHorizontal boxHeavyUpAndLeft boxHeavyUpAndLightDown boxHeavyUpAndRight boxHeavyVertical boxHeavyVerticalAndHorizontal boxHeavyVerticalAndLeft boxHeavyVerticalAndRight boxLeftDownHeavyAndRightUpLight boxLeftHeavyAndRightDownLight boxLeftHeavyAndRightUpLight boxLeftHeavyAndRightVerticalLight boxLeftLightAndRightDownHeavy boxLeftLightAndRightUpHeavy boxLeftLightAndRightVerticalHeavy boxLeftUpHeavyAndRightDownLight boxLightDiagonalCross boxLightDiagonalUpperLeftToLowerRight boxLightDiagonalUpperRightToLowerLeft boxLightDoubleDashHorizontal boxLightDoubleDashVertical boxLightDown boxLightLeft boxLightLeftAndHeavyRight boxLightQuadrupleDashHorizontal boxLightQuadrupleDashVertical boxLightRight boxLightTripleDashHorizontal boxLightTripleDashVertical boxLightUp boxLightUpAndHeavyDown boxRightDownHeavyAndLeftUpLight boxRightHeavyAndLeftDownLight boxRightHeavyAndLeftUpLight boxRightHeavyAndLeftVerticalLight boxRightLightAndLeftDownHeavy boxRightLightAndLeftUpHeavy boxRightLightAndLeftVerticalHeavy boxRightUpHeavyAndLeftDownLight boxUpHeavyAndDownHorizontalLight boxUpHeavyAndHorizontalLight boxUpHeavyAndLeftDownLight boxUpHeavyAndLeftLight boxUpHeavyAndRightDownLight boxUpHeavyAndRightLight boxUpLightAndDownHorizontalHeavy boxUpLightAndHorizontalHeavy boxUpLightAndLeftDownHeavy boxUpLightAndLeftHeavy boxUpLightAndRightDownHeavy boxUpLightAndRightHeavy boxVerticalHeavyAndHorizontalLight boxVerticalHeavyAndLeftLight boxVerticalHeavyAndRightLight boxVerticalLightAndHorizontalHeavy boxVerticalLightAndLeftHeavy boxVerticalLightAndRightHeavy braceleft braceleft.case braceleft.spacer braceleft_bar.liga braceright braceright.case braceright.spacer bracketleft bracketleft.case bracketleft.spacer bracketleft_bar.liga bracketright bracketright.case bracketright.spacer bracketright_numbersign.liga breve breve-cy breve-cy.case breve.case brevecomb brokenCircleNorthWestArrow brokenbar bullet bulletoperator bullseye c cacute cacute.loclPLK canadiansyllabicsa canadiansyllabicso cancel-control capslock caron caron.alt caron.case caroncomb carriageReturn-control ccaron ccedilla ccircumflex cdotaccent cedilla cedilla.case cedillacomb cent che-cy cheabkhasian-cy checkmark chedescender-cy chedescenderabkhasian-cy chedieresis-cy chekhakassian-cy cheverticalstroke-cy chi circumflex circumflex.case circumflexcomb clear clockwiseGappedCircleArrow club colon colon.spacer colon.uc colon_colon.liga colon_colon_colon.liga colon_colon_equal.liga colon_equal.liga colon_equal_middle.seq colon_greater.liga colon_less.liga comma commaabovecomb commaaccent commaaccent.case commareversedabovecomb containsasmemberSmall control copyright cornerbracketleft cornerbracketleft.half cornerbracketright cornerbracketright.half crosshatchFillSquare curlybracketextension currency d dagger daggerdbl dasia dasiaoxia dasiaperispomeni dasiavaria dataLinkEscape-control dblgravecomb dblverticalbar dcaron dche-cy dcroat de-cy degree delete-control deleteFormTwo-control deleteLeftKey deleterightKey delta deviceControlFour-control deviceControlOne-control deviceControlThree-control deviceControlTwo-control diagonalcrosshatchFillSquare dialytikaoxia dialytikaperispomeni dialytikavaria diameterSign diamond dieresis dieresis.case dieresiscomb dieresistonos digamma divide divisionslash dje-cy dkshade doesnotforce doesnotprove dollar dollar.spacer dollar.ss04 dollar_greater.liga dollar_greater.liga.ss04 dotaccent dotaccent.case dotaccentcomb dotlessi dotlessj dottedlunatesigmasymbol doubleprimemod doubleverticalbardoublerightturnstile downArrowHead downBlackArrow downBlock downQuadrupleArrow drachma dze-cy dzeabkhasian-cy dzhe-cy dzzhe-cy e e-cy eacute earthTrigram ebreve ecaron ecircumflex edieresis edieresis-cy edotaccent ef-cy egrave eight eight.dnom eight.numr eight.tosf eightinferior eightsuperior eiotified-cy ejectsymbol el-cy eldescender-cy element elementSmall elhook-cy ellipsis elmiddlehook-cy eltail-cy em-cy emacron emdash emdash.case emptyset emtail-cy en-cy endOfMedium-control endOfText-control endOfTransmission-control endOfTransmissionBlock-control endash endash.case endescender-cy eng enghe-cy enhook-cy enlefthook-cy enmiddlehook-cy enquiry-control entail-cy eogonek epsilon epsilonLunateReversedSymbol epsilonLunateSymbol epsilondasia epsilondasiaoxia epsilondasiavaria epsilonoxia epsilonpsili epsilonpsilioxia epsilonpsilivaria epsilontonos epsilonvaria equal equal.dnom equal.numr equal.spacer equal_asciitilde.ss07 equal_end.seq equal_equal.liga equal_equal_equal.liga equal_middle.seq equal_start.seq equalsinferior equalsuperior equivalence er-cy ereversed-cy ertick-cy es-cy escape-control esdescender-cy estimated eta etadasia etadasiaoxia etadasiaoxiaypogegrammeni etadasiaperispomeni etadasiaperispomeniypogegrammeni etadasiavaria etadasiavariaypogegrammeni etadasiaypogegrammeni etaoxia etaoxiaypogegrammeni etaperispomeni etaperispomeniypogegrammeni etapsili etapsilioxia etapsilioxiaypogegrammeni etapsiliperispomeni etapsiliperispomeniypogegrammeni etapsilivaria etapsilivariaypogegrammeni etapsiliypogegrammeni etatonos etavaria etavariaypogegrammeni etaypogegrammeni eth euro exclam exclam.spacer exclam_asciitilde.ss07 exclam_equal.liga exclam_equal_equal.liga exclam_equal_middle.seq exclam_exclam.liga exclam_exclam_period.liga exclamdown exclamdown.case existential f f.spacer female figuredash fileSeparator-control filledRect filledbox fireTrigram firsttonechinese fisheye fita-cy five five.dnom five.numr five.tosf fiveeighths fiveinferior fivesixths fivesuperior florin forces formFeed-control four four.dnom four.numr four.tosf fourfifths fourinferior foursuperior fraction fullBlock g gamma gbreve gcircumflex gcommaaccent gdotaccent ge-cy gedescender-cy germandbls gestrokehook-cy ghemiddlehook-cy ghestroke-cy gheupturn-cy gje-cy globeWithMeridians gradient grave grave.case gravecomb greater greater.spacer greater_colon.liga greater_equal.liga greater_equal.ss02 greater_equal_end.seq greater_equal_middle.seq greater_equal_start.seq greater_greater.liga greater_greater_equal_end.seq greater_greater_equal_middle.seq greater_greater_equal_start.seq greater_greater_greater.liga greater_greater_hyphen_end.seq greater_greater_hyphen_middle.seq greater_greater_hyphen_start.seq greater_hyphen_end.seq greater_hyphen_middle.seq greater_hyphen_start.seq greaterequal groupSeparator-control guillemetleft guillemetleft.case guillemetright guillemetright.case guilsinglleft guilsinglleft.case guilsinglright guilsinglright.case h ha-cy haabkhasian-cy hadescender-cy hahook-cy hardsign-cy hastroke-cy hbar hcircumflex heart heavenTrigram helmsymbol heta horizontalFillSquare horizontalTabulation-control house hungarumlaut hungarumlaut.case hungarumlautcomb hyphen hyphen.case hyphen.lc hyphen.spacer hyphen_asciitilde.liga hyphen_end.seq hyphen_hyphen.liga hyphen_hyphen_hyphen.liga hyphen_middle.seq hyphen_start.seq i i-cy i.salt_low ia-cy iacute ibreve icircumflex idieresis idieresis-cy idotaccent ie-cy iebreve-cy iegrave-cy igrave ii-cy iigrave-cy iishort-cy iishorttail-cy ij imacron imacron-cy increment infinity infinity.case integral integralbt integraltp intersection inverseWhiteCircle invsmileface io-cy iogonek iota iotadasia iotadasiaoxia iotadasiaperispomeni iotadasiavaria iotadialytikaoxia iotadialytikaperispomeni iotadialytikavaria iotadieresis iotadieresistonos iotamacron iotaoxia iotaperispomeni iotapsili iotapsilioxia iotapsiliperispomeni iotapsilivaria iotatonos iotavaria iotavrachy itilde iu-cy izhitsa-cy izhitsadblgrave-cy j j.salt_low jcircumflex je-cy k ka-cy kabashkir-cy kadescender-cy kahook-cy kaiSymbol kappa kappaSymbol kastroke-cy kaverticalstroke-cy kcommaaccent keyboard kgreenlandic kje-cy komide-cy komidje-cy komidzje-cy komilje-cy kominje-cy komisje-cy komitje-cy komizje-cy koppa koppaArchaic koronis ksi-cy l l.salt_low l.spacer lacute lakeTrigram lambda largeCircle lcaron lcommaaccent ldot leftBlackArrow leftBlackTriangle leftBlock leftFiveEighthsBlock leftHalfBlackCircle leftHalfBlackSquare leftHalfBlackWhiteCircle leftHookArrow leftLongArrow leftLongDoubleArrow leftLongDoubleFromBarArrow leftLongFromBarArrow leftOneEighthBlock leftOneQuarterBlock leftRightLongArrow leftRightLongDoubleArrow leftSevenEighthsBlock leftTabArrow leftThreeEighthsBlock leftThreeQuartersBlock leftanglebracket-math leftcurlybracketlowerhook leftcurlybracketmiddlepiece leftcurlybracketupperhook leftsquarebracketextension leftsquarebracketlowercorner leftsquarebracketuppercorner less less.spacer less_asciitilde.liga less_asciitilde_asciitilde.liga less_asciitilde_greater.liga less_asterisk.liga less_asterisk_greater.liga less_bar.liga less_bar_bar.liga less_bar_bar_bar.liga less_bar_greater.liga less_colon.liga less_dollar.liga less_dollar.liga.ss04 less_dollar_greater.liga less_dollar_greater.liga.ss04 less_equal.liga less_equal.ss02 less_equal_end.seq less_equal_middle.seq less_equal_start.seq less_exclam_hyphen_hyphen.liga less_greater.liga less_hyphen_end.seq less_hyphen_middle.seq less_hyphen_start.seq less_less.liga less_less_equal_end.seq less_less_equal_middle.seq less_less_equal_start.seq less_less_hyphen_end.seq less_less_hyphen_middle.seq less_less_hyphen_start.seq less_less_less.liga less_plus.liga less_plus_greater.liga less_slash.liga less_slash_greater.liga lessequal lha-cy lineFeed-control liraTurkish literSign lje-cy logicaland logicalnot logicalor lowerFiveEighthsBlock lowerHalfArc lowerHalfBlackWhiteCircle lowerHalfInverseWhiteCircle lowerLeftArc lowerLeftQuadrantWhiteCircle lowerOneEighthBlock lowerOneQuarterBlock lowerRightArc lowerRightDiagonalHalfBlackSquare lowerRightQuadrantWhiteCircle lowerSevenEighthsBlock lowerThreeEighthsBlock lowerThreeQuartersBlock lowernumeral-greek lozenge lslash ltshade m macron macron.case macroncomb male micro minus minus.dnom minus.numr minusinferior minussuperior models mountainTrigram mu multiply musicalnote musicalnotedbl n nacute nacute.loclPLK napostrophe ncaron ncommaaccent negateddoubleverticalbardoublerightturnstile negativeAcknowledge-control neitherasubsetofnorequalto neitherasupersetofnorequalto newline-control nine nine.dnom nine.numr nine.tosf nineinferior ninesuperior nje-cy nmod notcontains notelement notequal notidentical notsubset notsuperset nottrue ntilde nu null null-control numbersign numbersign.spacer numbersign_braceleft.liga numbersign_bracketleft.liga numbersign_colon.liga numbersign_colon.liga_rem numbersign_end.seq numbersign_equal.liga numbersign_exclam.liga numbersign_middle.seq numbersign_parenleft.liga numbersign_question.liga numbersign_start.seq numbersign_underscore.liga numbersign_underscore_parenleft.liga numeral-greek numero o o-cy oacute oacute.loclPLK obarred-cy obarreddieresis-cy obreve ocircumflex odieresis odieresis-cy oe ogonek ograve ohungarumlaut omacron omega omega-cy omegadasia omegadasiaoxia omegadasiaoxiaypogegrammeni omegadasiaperispomeni omegadasiaperispomeniypogegrammeni omegadasiavaria omegadasiavariaypogegrammeni omegadasiaypogegrammeni omegaoxia omegaoxiaypogegrammeni omegaperispomeni omegaperispomeniypogegrammeni omegapsili omegapsilioxia omegapsilioxiaypogegrammeni omegapsiliperispomeni omegapsiliperispomeniypogegrammeni omegapsilivaria omegapsilivariaypogegrammeni omegapsiliypogegrammeni omegatonos omegavaria omegavariaypogegrammeni omegaypogegrammeni omicron omicrondasia omicrondasiaoxia omicrondasiavaria omicronoxia omicronpsili omicronpsilioxia omicronpsilivaria omicrontonos omicronvaria one one.dnom one.numr one.tosf oneeighth onefifth onefraction onehalf oneinferior onequarter onesixth onesuperior onethird optionKey ordfeminine ordmasculine oslash oslashacute otilde overlinecomb oxia oxia.case p pagedown pageup palochka-cy pamphyliandigamma paragraph parenleft parenleft.case parenleft.dnom parenleft.numr parenleft.spacer parenleftextension parenleftinferior parenleftlowerhook parenleftsuperior parenleftupperhook parenright parenright.case parenright.dnom parenright.numr parenrightextension parenrightinferior parenrightlowerhook parenrightsuperior parenrightupperhook partialdiff pe-cy pedescender-cy pemiddlehook-cy percent percent.spacer percent_percent.liga period period.spacer period_equal.liga period_hyphen.liga period_period.liga period_period_equal.liga period_period_less.liga period_period_period.liga period_question.liga periodcentered perispomeni perispomenicomb perspective perthousand phi phiSymbol pi piSymbol plus plus.dnom plus.lc plus.numr plus.spacer plus_greater.liga plus_plus.liga plus_plus_plus.liga plusinferior plusminus plussuperior primemod product projective propellor prosgegrammeni psi psi-cy psili psilioxia psiliperispomeni psilivaria q qa-cy quadrantLowerLeft quadrantLowerRight quadrantUpperLeft quadrantUpperLeftAndLowerLeftAndLowerRight quadrantUpperLeftAndLowerRight quadrantUpperLeftAndUpperRightAndLowerLeft quadrantUpperLeftAndUpperRightAndLowerRight quadrantUpperRight quadrantUpperRightAndLowerLeft quadrantUpperRightAndLowerLeftAndLowerRight question question.spacer question_equal.liga question_period.liga question_question.liga questiondown questiondown.case questiongreek quotedbl quotedblbase quotedblleft quotedblright quoteleft quoteright quotesinglbase quotesingle r r.ss01 racute radical rcaron rcommaaccent recordSeparator-control reflexsubset reflexsuperset registered returnsymbol reverseddottedlunatesigmasymbol reversedlunatesigmasymbol reversedze-cy revlogicalnot rha-cy rho rhoStrokeSymbol rhoSymbol rhodasia rhopsili rightBlackTriangle rightBlock rightCircledPlusArrow rightHalfBlackCircle rightHalfBlackSquare rightHalfBlackWhiteCircle rightLongDoubleArrow rightLongDoubleFromBarArrow rightLongFromBarArrow rightLongSquiggleArrow rightOneEighthBlock rightTabArrow rightanglebracket-math rightcurlybracketlowerhook rightcurlybracketmiddlepiece rightcurlybracketupperhook rightlongArrow rightsquarebracketextension rightsquarebracketlowercorner rightsquarebracketuppercorner righttack ring ring.case ringcomb ruble rupeeIndian s sacute sacute.loclPLK sampi san scaron scedilla schwa-cy schwadieresis-cy scircumflex scommaaccent section semicolon semicolon.spacer semicolon_semicolon.liga semisoftsign-cy seven seven.dnom seven.numr seven.tosf seveneighths seveninferior sevensuperior sha-cy shade shcha-cy shha-cy shhadescender-cy shiftIn-control shiftOut-control sho sigma sigmaLunateSymbol sigmafinal six six.dnom six.numr six.tosf sixinferior sixsuperior skullAndCrossbones slash slash.spacer slash_asterisk.liga slash_backslash.liga slash_equal_end.seq slash_equal_middle.seq slash_equal_start.seq slash_greater.liga slash_slash.liga slash_slash_slash.liga smileface softhyphen softhyphen.case softsign-cy space-control spade squarewhitewithsmallblack startOfHeading-control startOfText-control sterling stigma strokelongoverlay strokeshortoverlay subset subsetnotequal substitute-control substituteFormTwo-control suchthat summation sun superset supersetnotequal synchronousIdle-control t tackdown tackleft tau tbar tcaron tcedilla tcommaaccent te-cy tedescender-cy tetse-cy theredoesnotexist therefore theta thetaSymbol thorn three three.dnom three.numr three.tosf threeTurned threeeighths threefifths threeinferior threequarters threesuperior thunderTrigram tilde tilde.case tildecomb tironiansignet tonos tonos.case trademark triaglf triagupTriangle triangledown triangleright tripleverticalbarrightturnstile true tse-cy tshe-cy two two.dnom two.numr two.tosf twoTurned twofifths twoinferior twosuperior twothirds u u-cy uacute ubreve ucircumflex udieresis udieresis-cy ugrave uhungarumlaut uhungarumlaut-cy uk-cy umacron umacron-cy underscore underscore.spacer underscore_end.seq underscore_middle.seq underscore_start.seq underscoredbl uni256D uni256E uni256F uni2570 uniE000 uniE001 uniE002 uniE003 uniE0A0 uniE0A1 uniE0A2 uniE0B0 uniE0B1 uniE0B2 uniE0B3 uniFEFF union unitSeparator-control universal uogonek upBetweenTwoHorizontalBarsArrowHead upBlackArrow upBlock upQuadrupleArrow upperHalfArc upperHalfBlackWhiteCircle upperHalfInverseWhiteCircle upperLeftArc upperLeftDiagonalHalfBlackSquare upperLeftQuadrantWhiteCircle upperLeftWhiteCircle upperOneEighthBlock upperRightArc upperRightQuadrantWhiteCircle upperlefttolowerrightFillSquare upperrighttolowerleftFillSquare upsilon upsilondasia upsilondasiaoxia upsilondasiaperispomeni upsilondasiavaria upsilondialytikaoxia upsilondialytikaperispomeni upsilondialytikavaria upsilondieresis upsilondieresistonos upsilonmacron upsilonoxia upsilonperispomeni upsilonpsili upsilonpsilioxia upsilonpsiliperispomeni upsilonpsilivaria upsilontonos upsilonvaria upsilonvrachy uptack uring ushort-cy ustrait-cy ustraitstroke-cy utilde v varia varia.case ve-cy verticalBisectingLineWhiteSquare verticalFillSquare verticalTabulation-control w w.spacer w_w_w.liga wacute waterTrigram wcircumflex wdieresis we-cy wgrave whiteCircle whiteDiamond whiteFrowningFace whiteRect whiteSquareWithLowerLeftQuadrant whiteSquareWithLowerRightQuadrant whiteSquareWithRoundedCorners whiteSquareWithUpperLeftQuadrant whiteSquareWithUpperRightQuadrant whiteVerticalRect windTrigram x x.multiply x.multiply.tosf xi y yacute yae-cy yat-cy ycircumflex ydieresis yen yeru-cy yerudieresis-cy ygrave yi-cy yot ypogegrammeni ypogegrammenicomb yusbig-cy yusbigiotified-cy yuslittle-cy yuslittleiotified-cy z zacute zacute.loclPLK zcaron zdotaccent ze-cy zedescender-cy zedieresis-cy zero zero.dnom zero.numr zero.tosf zero.tosf.zero zero.zero zero.zero.tosf zeroinferior zerosuperior zeta zhe-cy zhebreve-cy zhedescender-cy zhedieresis-cy"; @@ -132,7 +129,7 @@ value = ( ); } ); -date = "2020-04-15 17:23:06 +0000"; +date = "2020-05-18 01:31:27 +0000"; designer = "Carrois Corporate, Edenspiekermann AG, Nikita Prokopov"; designerURL = "https://tonsky.me"; familyName = "Fira Code"; @@ -1919,7 +1916,7 @@ unicode = 0118; }, { glyphname = F; -lastChange = "2020-05-16 21:58:34 +0000"; +lastChange = "2020-05-18 01:32:43 +0000"; layers = ( { anchors = ( @@ -1981,7 +1978,7 @@ nodes = ( ); } ); -width = 1230; +width = 1200; } ); unicode = 0046; @@ -10450,7 +10447,7 @@ unicode = 0138; }, { glyphname = l; -lastChange = "2020-05-16 21:55:40 +0000"; +lastChange = "2020-05-18 01:33:00 +0000"; layers = ( { anchors = ( @@ -10497,7 +10494,7 @@ nodes = ( ); } ); -width = 1210; +width = 1200; }, { anchors = ( @@ -10551,7 +10548,7 @@ unicode = 006C; }, { glyphname = lacute; -lastChange = "2020-05-16 21:56:03 +0000"; +lastChange = "2020-05-18 01:33:02 +0000"; layers = ( { components = ( @@ -10564,7 +10561,7 @@ transform = "{1, 0, 0, 1, -88, 422}"; } ); layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; -width = 1210; +width = 1200; }, { components = ( @@ -10584,7 +10581,7 @@ unicode = 013A; }, { glyphname = lcaron; -lastChange = "2020-05-16 21:56:03 +0000"; +lastChange = "2020-05-18 01:33:02 +0000"; layers = ( { components = ( @@ -10597,7 +10594,7 @@ transform = "{1, 0, 0, 1, 313, 106}"; } ); layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; -width = 1210; +width = 1200; }, { components = ( @@ -10617,7 +10614,7 @@ unicode = 013E; }, { glyphname = lcommaaccent; -lastChange = "2020-05-16 21:56:03 +0000"; +lastChange = "2020-05-18 01:33:02 +0000"; layers = ( { components = ( @@ -10630,7 +10627,7 @@ transform = "{1, 0, 0, 1, 108, 0}"; } ); layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; -width = 1210; +width = 1200; }, { components = ( @@ -10650,7 +10647,7 @@ unicode = 013C; }, { glyphname = ldot; -lastChange = "2020-05-16 21:56:03 +0000"; +lastChange = "2020-05-18 01:33:02 +0000"; layers = ( { components = ( @@ -10663,7 +10660,7 @@ transform = "{1, 0, 0, 1, 536, -674}"; } ); layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; -width = 1210; +width = 1200; }, { components = ( @@ -33215,7 +33212,7 @@ unicode = 04BF; }, { glyphname = "palochka-cy"; -lastChange = "2020-05-16 21:56:03 +0000"; +lastChange = "2020-05-18 01:33:02 +0000"; layers = ( { components = ( @@ -33224,7 +33221,7 @@ name = l; } ); layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; -width = 1210; +width = 1200; }, { components = ( @@ -121867,6 +121864,6 @@ oV = 98; }; }; }; -versionMajor = 3; -versionMinor = 1; +versionMajor = 4; +versionMinor = 0; } diff --git a/README.md b/README.md index 51c346c..6c4cfa9 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Fira Code is a free monospaced font containing ligatures for common programming ### Download & Install -**Download Fira Code v3.1** + Then: @@ -30,78 +30,37 @@ Fira Code is a personal, free-time project with no funding and huge [feature req Left: ligatures as rendered in Fira Code. Right: same character sequences without ligatures. - + -Fira Code comes with a few different character variants, so that everyone can choose what’s best for them. [How to enable](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets) +Fira Code comes with huge variety of arrows. Even better: you can make them as long as you like and combine start/middle/end fragments however you want! - + -In addition to that, Fira Code contains huge variety of Unicode characters well-suited for technical writing, math formulas and terminal UIs. +Fira Code is not only about ligatures. Some fine-tuning is done for punctuation and frequent letter pairs. - + -### Code examples +Fira Code comes with a few different character variants, so that everyone can choose what’s best for them. [How to enable.](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets) -Ruby: + - +Being programming font, Fira Code has fantastic support for ASCII/box drawing, powerline and other forms of console UIs. -JavaScript: + - +Unicode coverage makes Fira Code great choice for mathematical writing. -PHP: + - +### How does it look? -Erlang: - - - -Elixir: - - - -Go: - - - -LiveScript: - - - -Clojure: - - - -Swift: - - - -### Terminal compatibility list - -| Works | Doesn’t work | -| ------------------ | ------------------ | -| **Butterfly** | **Alacritty** | -| **crosh** (ChromeOS, [instructions](https://github.com/tonsky/FiraCode/wiki/ChromeOS-Terminal)) | **Windows Console (conhost.exe)** | -| **Hyper.app** | **Cmder** | -| **iTerm 2** ([3.1+](https://gitlab.com/gnachman/iterm2/issues/3568#note_13118332)) | **ConEmu** | -| **Kitty** | **GNOME Terminal** | -| **Konsole** | **mate-terminal** | -| **mintty** (partial support [2.8.3+](https://github.com/mintty/mintty/issues/601))| **PuTTY** | -| **QTerminal** | **rxvt** | -| **Terminal.app** | **xterm** | -| **Termux** | **ZOC** (Windows) | -| **Token2Shell/MD** | **gtkterm, guake, LXTerminal, sakura, Terminator, xfce4-terminal,** and other libvte-based terminals ([bug report](https://bugzilla.gnome.org/show_bug.cgi?id=584160)) | -| **upterm** | -| **Windows Terminal** | -| **ZOC** (macOS) | -| **st** ([patch](https://st.suckless.org/patches/ligatures/)) | + + ### Editor compatibility list | Works | Doesn’t work | -| ----- | -------------- | +|-------|----------------| | **Abricotine** | **Arduino IDE** | | **Android Studio** (2.3+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | **Adobe Dreamweaver** | | **Anjuta** (unless at the EOF) | **Delphi IDE** | @@ -160,16 +119,36 @@ Swift: | **Xi** | | Probably work: **Smultron, Vico** | Under question: **Code::Blocks IDE** | +### Terminal compatibility list + +| Works | Doesn’t work | +|--------------------|--------------------| +| **Butterfly** | **Alacritty** | +| **crosh** (ChromeOS, [instructions](https://github.com/tonsky/FiraCode/wiki/ChromeOS-Terminal)) | **Windows Console (conhost.exe)** | +| **Hyper.app** | **Cmder** | +| **iTerm 2** ([3.1+](https://gitlab.com/gnachman/iterm2/issues/3568#note_13118332)) | **ConEmu** | +| **Kitty** | **GNOME Terminal** | +| **Konsole** | **mate-terminal** | +| **mintty** (partial support [2.8.3+](https://github.com/mintty/mintty/issues/601))| **PuTTY** | +| **QTerminal** | **rxvt** | +| **Terminal.app** | **xterm** | +| **Termux** | **ZOC** (Windows) | +| **Token2Shell/MD** | **gtkterm, guake, LXTerminal, sakura, Terminator, xfce4-terminal,** and other libvte-based terminals ([bug report](https://bugzilla.gnome.org/show_bug.cgi?id=584160)) | +| **upterm** | +| **Windows Terminal** | +| **ZOC** (macOS) | +| **st** ([patch](https://st.suckless.org/patches/ligatures/)) | + ### Browser support ```html - + ``` ```css /* CSS */ -@import url(https://cdn.jsdelivr.net/gh/tonsky/FiraCode@3/distr/fira_code.css); +@import url(https://cdn.jsdelivr.net/gh/tonsky/FiraCode@4/distr/fira_code.css); ``` ```css @@ -181,7 +160,6 @@ code { font-family: 'Fira Code', monospace; } } ``` - - IE 10+, Edge Legacy: enable with `font-feature-settings: "calt";` - Firefox - Safari @@ -203,7 +181,7 @@ code { font-family: 'Fira Code', monospace; } ### Alternatives -Other free monospaced fonts with ligatures: +Free monospaced fonts with ligatures: - [Hasklig](https://github.com/i-tu/Hasklig) - [Monoid](http://larsenwork.com/monoid/) diff --git a/distr/otf/FiraCode-Bold.otf b/distr/otf/FiraCode-Bold.otf index 3f23f21..f2c65f6 100644 Binary files a/distr/otf/FiraCode-Bold.otf and b/distr/otf/FiraCode-Bold.otf differ diff --git a/distr/otf/FiraCode-Light.otf b/distr/otf/FiraCode-Light.otf index 0d6692d..76e1b6e 100644 Binary files a/distr/otf/FiraCode-Light.otf and b/distr/otf/FiraCode-Light.otf differ diff --git a/distr/otf/FiraCode-Medium.otf b/distr/otf/FiraCode-Medium.otf index 3d44ff4..443f2a2 100644 Binary files a/distr/otf/FiraCode-Medium.otf and b/distr/otf/FiraCode-Medium.otf differ diff --git a/distr/otf/FiraCode-Regular.otf b/distr/otf/FiraCode-Regular.otf index 46c70b6..41d6f17 100644 Binary files a/distr/otf/FiraCode-Regular.otf and b/distr/otf/FiraCode-Regular.otf differ diff --git a/distr/otf/FiraCode-Retina.otf b/distr/otf/FiraCode-Retina.otf index 5e2b81c..1f10f3c 100644 Binary files a/distr/otf/FiraCode-Retina.otf and b/distr/otf/FiraCode-Retina.otf differ diff --git a/distr/otf/FiraCode-SemiBold.otf b/distr/otf/FiraCode-SemiBold.otf index 661ca73..0f035e1 100644 Binary files a/distr/otf/FiraCode-SemiBold.otf and b/distr/otf/FiraCode-SemiBold.otf differ diff --git a/distr/ttf/FiraCode-Bold.ttf b/distr/ttf/FiraCode-Bold.ttf index ef437d6..2c62408 100644 Binary files a/distr/ttf/FiraCode-Bold.ttf and b/distr/ttf/FiraCode-Bold.ttf differ diff --git a/distr/ttf/FiraCode-Light.ttf b/distr/ttf/FiraCode-Light.ttf index 5566743..164ea7e 100644 Binary files a/distr/ttf/FiraCode-Light.ttf and b/distr/ttf/FiraCode-Light.ttf differ diff --git a/distr/ttf/FiraCode-Medium.ttf b/distr/ttf/FiraCode-Medium.ttf index 6a69d19..62193db 100644 Binary files a/distr/ttf/FiraCode-Medium.ttf and b/distr/ttf/FiraCode-Medium.ttf differ diff --git a/distr/ttf/FiraCode-Regular.ttf b/distr/ttf/FiraCode-Regular.ttf index a0a523b..20dac49 100644 Binary files a/distr/ttf/FiraCode-Regular.ttf and b/distr/ttf/FiraCode-Regular.ttf differ diff --git a/distr/ttf/FiraCode-Retina.ttf b/distr/ttf/FiraCode-Retina.ttf index 6261506..a7c328f 100644 Binary files a/distr/ttf/FiraCode-Retina.ttf and b/distr/ttf/FiraCode-Retina.ttf differ diff --git a/distr/ttf/FiraCode-SemiBold.ttf b/distr/ttf/FiraCode-SemiBold.ttf index 07b3802..7251e9d 100644 Binary files a/distr/ttf/FiraCode-SemiBold.ttf and b/distr/ttf/FiraCode-SemiBold.ttf differ diff --git a/distr/variable_ttf/FiraCode-VF.ttf b/distr/variable_ttf/FiraCode-VF.ttf index 4694e50..89a8110 100644 Binary files a/distr/variable_ttf/FiraCode-VF.ttf and b/distr/variable_ttf/FiraCode-VF.ttf differ diff --git a/distr/variable_ttf/FiraCodeGX.ttf b/distr/variable_ttf/FiraCodeGX.ttf index e360104..45c6860 100644 Binary files a/distr/variable_ttf/FiraCodeGX.ttf and b/distr/variable_ttf/FiraCodeGX.ttf differ diff --git a/distr/woff/FiraCode-Bold.woff b/distr/woff/FiraCode-Bold.woff index a751b61..dc71df7 100644 Binary files a/distr/woff/FiraCode-Bold.woff and b/distr/woff/FiraCode-Bold.woff differ diff --git a/distr/woff/FiraCode-Light.woff b/distr/woff/FiraCode-Light.woff index 0d32b27..3f411b1 100644 Binary files a/distr/woff/FiraCode-Light.woff and b/distr/woff/FiraCode-Light.woff differ diff --git a/distr/woff/FiraCode-Medium.woff b/distr/woff/FiraCode-Medium.woff index 813b39d..bbab30d 100644 Binary files a/distr/woff/FiraCode-Medium.woff and b/distr/woff/FiraCode-Medium.woff differ diff --git a/distr/woff/FiraCode-Regular.woff b/distr/woff/FiraCode-Regular.woff index c884274..3eb2d90 100644 Binary files a/distr/woff/FiraCode-Regular.woff and b/distr/woff/FiraCode-Regular.woff differ diff --git a/distr/woff/FiraCode-SemiBold.woff b/distr/woff/FiraCode-SemiBold.woff index 0242672..3370de5 100644 Binary files a/distr/woff/FiraCode-SemiBold.woff and b/distr/woff/FiraCode-SemiBold.woff differ diff --git a/distr/woff/FiraCode-VF.woff b/distr/woff/FiraCode-VF.woff index 489f2a4..a18f21c 100644 Binary files a/distr/woff/FiraCode-VF.woff and b/distr/woff/FiraCode-VF.woff differ diff --git a/distr/woff2/FiraCode-Bold.woff2 b/distr/woff2/FiraCode-Bold.woff2 index d8b3179..36929a3 100644 Binary files a/distr/woff2/FiraCode-Bold.woff2 and b/distr/woff2/FiraCode-Bold.woff2 differ diff --git a/distr/woff2/FiraCode-Light.woff2 b/distr/woff2/FiraCode-Light.woff2 index 9cb6aee..3d9391e 100644 Binary files a/distr/woff2/FiraCode-Light.woff2 and b/distr/woff2/FiraCode-Light.woff2 differ diff --git a/distr/woff2/FiraCode-Medium.woff2 b/distr/woff2/FiraCode-Medium.woff2 index dfeb9de..fa681ee 100644 Binary files a/distr/woff2/FiraCode-Medium.woff2 and b/distr/woff2/FiraCode-Medium.woff2 differ diff --git a/distr/woff2/FiraCode-Regular.woff2 b/distr/woff2/FiraCode-Regular.woff2 index 1979211..a1b2f4e 100644 Binary files a/distr/woff2/FiraCode-Regular.woff2 and b/distr/woff2/FiraCode-Regular.woff2 differ diff --git a/distr/woff2/FiraCode-SemiBold.woff2 b/distr/woff2/FiraCode-SemiBold.woff2 index ecec57d..6e74790 100644 Binary files a/distr/woff2/FiraCode-SemiBold.woff2 and b/distr/woff2/FiraCode-SemiBold.woff2 differ diff --git a/distr/woff2/FiraCode-VF.woff2 b/distr/woff2/FiraCode-VF.woff2 index a216c25..2d3c687 100644 Binary files a/distr/woff2/FiraCode-VF.woff2 and b/distr/woff2/FiraCode-VF.woff2 differ diff --git a/extras/arrows.png b/extras/arrows.png new file mode 100644 index 0000000..f13d51f Binary files /dev/null and b/extras/arrows.png differ diff --git a/extras/console.png b/extras/console.png new file mode 100644 index 0000000..5757526 Binary files /dev/null and b/extras/console.png differ diff --git a/extras/download.png b/extras/download.png new file mode 100644 index 0000000..9d3c186 Binary files /dev/null and b/extras/download.png differ diff --git a/extras/ligatures.png b/extras/ligatures.png new file mode 100644 index 0000000..f79fe9d Binary files /dev/null and b/extras/ligatures.png differ diff --git a/extras/math.png b/extras/math.png new file mode 100644 index 0000000..72df4bf Binary files /dev/null and b/extras/math.png differ diff --git a/extras/samples.png b/extras/samples.png new file mode 100644 index 0000000..94961c0 Binary files /dev/null and b/extras/samples.png differ diff --git a/extras/samples2.png b/extras/samples2.png new file mode 100644 index 0000000..d0b4e07 Binary files /dev/null and b/extras/samples2.png differ diff --git a/showcases/v3/showcases.txt b/extras/showcases.txt similarity index 100% rename from showcases/v3/showcases.txt rename to extras/showcases.txt diff --git a/extras/stylistic_sets.png b/extras/stylistic_sets.png new file mode 100644 index 0000000..84f7fd2 Binary files /dev/null and b/extras/stylistic_sets.png differ diff --git a/extras/typographics.png b/extras/typographics.png new file mode 100644 index 0000000..22ba32e Binary files /dev/null and b/extras/typographics.png differ diff --git a/package.json b/package.json index 19c00bc..a24167f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "firacode", - "version": "3.1.0", + "version": "4.0.0", "description": "Fira Code: monospaced font with programming ligatures", "main": "distr/fira_code.css", "keywords": [ diff --git a/script/bootstrap b/script/bootstrap index 1bcb6db..5078250 100755 --- a/script/bootstrap +++ b/script/bootstrap @@ -1,20 +1,20 @@ #! /bin/bash -ex -sudo easy_install pip -pip3 install virtualenv --user +sudo easy_install-3.7 pip +pip install virtualenv --user python3 -m virtualenv venv source venv/bin/activate # https://github.com/googlefonts/gftools/issues/121 brew install pkg-config -pip3 install -U Pillow==5.4.1 idna==2.8 requests==2.21.0 urllib3==1.24.1 +pip install -U Pillow==5.4.1 idna==2.8 requests==2.21.0 urllib3==1.24.1 export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" -pip3 install pycairo -pip3 install git+https://github.com/googlefonts/gftools +pip install pycairo +pip install git+https://github.com/googlefonts/gftools -pip3 install fontmake +pip install fontmake brew install ttfautohint brew install woff2 brew tap bramstein/webfonttools brew install sfnt2woff-zopfli -pip3 install fontbakery \ No newline at end of file +pip install fontbakery \ No newline at end of file diff --git a/script/build_woff b/script/build_woff index 7ab23e5..6010bc3 100755 --- a/script/build_woff +++ b/script/build_woff @@ -8,6 +8,8 @@ for ttf in $ttfs; do sfnt2woff-zopfli $ttf done +rm distr/ttf/FiraCode-Retina.woff + mkdir -p distr/woff woffs=$(ls distr/*/*.woff) for woff in $woffs; do diff --git a/script/build_woff2 b/script/build_woff2 index 10da390..3b7d0da 100755 --- a/script/build_woff2 +++ b/script/build_woff2 @@ -8,8 +8,10 @@ for ttf in $ttfs; do woff2_compress $ttf done +rm distr/ttf/FiraCode-Retina.woff2 + mkdir -p distr/woff2 woff2s=$(ls distr/*/*.woff2) for woff2 in $woff2s; do mv $woff2 distr/woff2/$(basename $woff2) -done +done \ No newline at end of file diff --git a/script/package.sh b/script/package.sh new file mode 100755 index 0000000..ea6809b --- /dev/null +++ b/script/package.sh @@ -0,0 +1,29 @@ +#!/bin/zsh -euo pipefail + +cd "`dirname $0`/.." + + +setopt BASH_REMATCH +MAJOR=`cat FiraCode.glyphs | grep versionMajor` +VERSION="" + +if [[ $MAJOR =~ 'versionMajor = ([0-9]+);' ]] ; then + VERSION="${BASH_REMATCH[2]}" +fi + +MINOR=`cat FiraCode.glyphs | grep versionMinor` +if [[ $MINOR =~ 'versionMinor = ([0-9]+);' ]] ; then + MATCH="${BASH_REMATCH[2]}" + if [ "$MATCH" != "0" ] ; then + VERSION="$VERSION.$MATCH" + fi +fi + +FILE="Fira_Code_v$VERSION.zip" +rm -f $FILE + +pushd distr +find . -not -name ".*" | xargs zip ../$FILE +popd + +ls -lah $FILE \ No newline at end of file diff --git a/showcases/v3/all_ligatures.png b/showcases/v3/all_ligatures.png deleted file mode 100644 index 3bec6e4..0000000 Binary files a/showcases/v3/all_ligatures.png and /dev/null differ diff --git a/showcases/v3/clojure.png b/showcases/v3/clojure.png deleted file mode 100644 index eec4c0c..0000000 Binary files a/showcases/v3/clojure.png and /dev/null differ diff --git a/showcases/v3/elixir.png b/showcases/v3/elixir.png deleted file mode 100644 index 1b53422..0000000 Binary files a/showcases/v3/elixir.png and /dev/null differ diff --git a/showcases/v3/erlang.png b/showcases/v3/erlang.png deleted file mode 100644 index 929da04..0000000 Binary files a/showcases/v3/erlang.png and /dev/null differ diff --git a/showcases/v3/feature_calt_centering.png b/showcases/v3/feature_calt_centering.png deleted file mode 100644 index 36d759f..0000000 Binary files a/showcases/v3/feature_calt_centering.png and /dev/null differ diff --git a/showcases/v3/go.png b/showcases/v3/go.png deleted file mode 100644 index bee84d1..0000000 Binary files a/showcases/v3/go.png and /dev/null differ diff --git a/showcases/v3/javascript.png b/showcases/v3/javascript.png deleted file mode 100644 index 1cec10a..0000000 Binary files a/showcases/v3/javascript.png and /dev/null differ diff --git a/showcases/v3/livescript.png b/showcases/v3/livescript.png deleted file mode 100644 index 2bc311e..0000000 Binary files a/showcases/v3/livescript.png and /dev/null differ diff --git a/showcases/v3/php.png b/showcases/v3/php.png deleted file mode 100644 index 3171474..0000000 Binary files a/showcases/v3/php.png and /dev/null differ diff --git a/showcases/v3/ruby.png b/showcases/v3/ruby.png deleted file mode 100644 index a34ccc1..0000000 Binary files a/showcases/v3/ruby.png and /dev/null differ diff --git a/showcases/v3/stylistic_sets.png b/showcases/v3/stylistic_sets.png deleted file mode 100644 index 7ec0863..0000000 Binary files a/showcases/v3/stylistic_sets.png and /dev/null differ diff --git a/showcases/v3/swift.png b/showcases/v3/swift.png deleted file mode 100644 index fdb68ac..0000000 Binary files a/showcases/v3/swift.png and /dev/null differ diff --git a/showcases/v3/unicode.png b/showcases/v3/unicode.png deleted file mode 100644 index b29a1d1..0000000 Binary files a/showcases/v3/unicode.png and /dev/null differ