Update to Iosevka Comfy version 1.4.0 - All fonts are now available in two more weights: medium and semibold. Use them to refine your interfaces. This is in response to the request for a medium weight made by madjxatw in issue 8 on the GitHub mirror: <https://github.com/protesilaos/iosevka-comfy/issues/8>. - Large portions of the build instructions have been rewritten to (i) track the numerous and non-trivial breaking changes made by upstream Iosevka and (ii) preserve the style of Iosevka Comfy. - The latin long S (ſ) and the Latin sharp S, else Eszett (ß), are now supported by Iosevka Comfy. Details of shape have been considered, such that the reader does not conflate those characters with similar ones (e.g. the sharp S with a Greek beta, an ampersand, or an 8). - The slanted version of the ampersand looks the same as its upright counterpart. This is a deviation from the previous version, where this character looked like a flipped 3 with a flat top: I had introduced that style by mistake and did not want to rebuild everything just for it (rebuilding fonts is an expensive operation---I spent 8 hours this time). - Thanks to Raymond Ko for sending a patch to make Iosevka Comfy build on top of Iosevka version 26.3.1. I installed it to register the contribution in Git, though I eventually wrote the aforementioned changes from scratch as the current development of Iosevka has more breaking changes (the version was updated to 27.1.0 and more changes were made on top). It was easier to review all code points, than to assume some as fixed. Raymond send the patch on the mailing list: <https://lists.sr.ht/~protesilaos/general-issues/patches/44816>. As a note for future users, I am always keeping track of upstream Iosevka, though I do not want to rebuild Iosevka Comfy too frequently. Upstream has a policy of changing the code points practically every few weeks, which then requires hours or days of testing on my end just to keep Iosevka Comfy the same. If you try to build Iosevka Comfy from source, make sure to use the commit in iosevka.git specified in my project's README.md, as of this writing: this is the current working version for me. Future versions of iosevka.git will probably contain breaking changes. I will eventually adapt to them.
Update to Iosevka Comfy version 1.3.0 * Include table in the 'README.md' file that succinctly describes the Iosevka Comfy variants. This is it: | Family | Shapes | Spacing | Style | Ligatures | |---------------------------------+--------+---------+------------+-----------| | Iosevka Comfy | Sans | Compact | Monospaced | Yes | | Iosevka Comfy Fixed | Sans | Compact | Monospaced | No | | Iosevka Comfy Duo | Sans | Compact | Duospaced | Yes | |---------------------------------+--------+---------+------------+-----------| | Iosevka Comfy Motion | Slab | Compact | Monospaced | Yes | | Iosevka Comfy Motion Fixed | Slab | Compact | Monospaced | No | | Iosevka Comfy Motion Duo | Slab | Compact | Duospaced | Yes | |---------------------------------+--------+---------+------------+-----------| | Iosevka Comfy Wide | Sans | Wide | Monospaced | Yes | | Iosevka Comfy Wide Fixed | Sans | Wide | Monospaced | No | | Iosevka Comfy Wide Duo | Sans | Wide | Duospaced | Yes | |---------------------------------+--------+---------+------------+-----------| | Iosevka Comfy Wide Motion | Slab | Wide | Monospaced | Yes | | Iosevka Comfy Wide Motion Fixed | Slab | Wide | Monospaced | No | | Iosevka Comfy Wide Motion Duo | Slab | Wide | Duospaced | Yes | * Review all glyph codes to preserve the font's style in light of the numerous breaking stages in the main Iosevka repository. An example of such a change is when 'cv20 = 2' has a different style than what it used to or when the 'cvXX' refers to another character than what it once did. * Ensure the lower case italic form of 'f' has a crossbar at the x-height. This is how its roman counterpart is: it aligns with 'i' and 't'. * Make the capital 'B' in all the "motion" variants (slab serif families) consist of two symmetric chambers. This is consistent with the sans serif variants of Iosevka Comfy. * Revise the 'f' in the "motion" variants to be the same as their sans serif counterparts. The reason is that the previous glyph was closed at the top and was thus harder to read at small point sizes. * Change the italic forms of lower case 'v', 'w', 'x', and 'z' from curly to straight across all the variants. This is to ensure a consistent rhythm in all contexts between upper and lower case characters as well as upright and slanted forms. * Let capital 'W' have a middle joint below the height of its two sides in order to be consistent with capital 'M' and the lower case 'w'. * Adjust the bar character '|' (also known as "pipe") to have no slope in italic forms. The intent is to disambiguate it from the forward slash. Also, the pipe can now be used in plain text tables even if those are italicised (e.g. a comment in programming code). * Declare the Iosevka Comfy Wide Motion Duo as a slab serif font. This affects characters that are not explicitly defined in our list of overrides. * Clarify some comments in the build plan of Iosevka Comfy to better describe the intended looks of the referenced characters.
Update to Iosevka Comfy version 1.2.0 * Make necessary adjustments to handle backward-incompatible changes in upstream Iosevka. The intent is to preserve the aesthetic of Iosevka Comfy. * Introduce the "wide motion" superset of font families. This is another triplet that consists of (i) a regular monospaced style with support for ligatures and some wide glyphs like arrows, (ii) a fixed spaced monospaced variant that does not support ligatures or any wide glyphs, and (ii) a quasi-proportional ("duospaced") variant that preserves some of the rigidity of its monospaced counterparts but allows certain glyphs to occupy their natural width. The project's README describes all the variants on offer.
Update to latest Iosevka version There are no user-facing changes in this release. Though I had to test everything again and make sure to adapt to upstream's breaking changes. Given this update, I am removing some files that had stayed behind from a previous release.
Update to Iosevka Comfy version 1.1.0 * Made the '@' and '%' characters wider in the font families 'iosevka-comfy-duo', 'iosevka-comfy-motion-duo', 'iosevka-comfy-wide', 'iosevka-comfy-wide-fixed', 'iosevka-comfy-wide-duo'. This is consistent with their design, which has wider glyphs and/or more generous spacing. * Built using upstream Iosevka 'v16.3.4', commit 'ad1e247a'. The rest of the design remains the same as before. Read the detailed release notes for version 1.0.0: <https://protesilaos.com/codelog/2022-09-14-iosevka-comfy-1-0-0/>.
Update to Iosevka Comfy version 1.0.0 Breaking change about vertical spacing -------------------------------------- I no longer override the line height established by upstream Iosevka. This means that all the font families provided by the Iosevka Comfy project are the same as Iosevka in terms of vertical spacing. This change is necessary to conform with recent developments upstream. Those affected Iosevka Comfy in two ways: 1. Capital letters with accents would no longer be rendered in full. The accent would be cropped. I tried some modest adjustments to the relevant variable, but the problem would still occur at certain point sizes. 2. The "wide" families no longer had the same vertical spacing as the others. This is a regression from what we used to have. I do not want the various families of this project to be radically different, so such a deviation is unacceptable. New families and reorganisation into triplets --------------------------------------------- I added two new families: 'iosevka-comfy-motion-fixed' and 'iosevka-comfy-wide-duo'. These complete the set of the three stylistic variants provided by this project. These triplets follow the naming scheme 'NAME{,-fixed,-duo}'. The base name is monospaced and supports ligatures. The "fixed" one is strictly monospaced so as to work with all terminal emulators: it does not support ligatures. And the "duo" is quasi-proportionately spaced, while supporting ligatures. 1. The **compact, sans-serif** set: - 'iosevka-comfy' is monospaced and supports ligatures. Apart from ligatures, it allows certain special glyphs, such as arrows, to occupy more than one block. - 'iosevka-comfy-fixed' is like 'iosevka-comfy' albeit strictly monospaced and thus does not support ligatures. All glyphs are exactly the same width. Use this if you prefer it or if your application (e.g. terminal emulator) does not recognise 'iosevka-comfy' as a monospaced font. - 'iosevka-comfy-duo' is quasi-proportional and supports ligatures. The naturally narrow glyphs, such as 'i', are allowed to occupy their natural width instead of one space. 2. The **compact, serif** set: - 'iosevka-comfy-motion' is monospaced and supports ligatures. It is like 'iosevka-comfy' but with lots of small tweaks that add serifs and tailed ends to relevant glyphs. Put simply, it is the serified counterpart of 'iosevka-comfy'. - 'iosevka-comfy-motion-fixed' is the serif equivalent of the aforementioned 'iosevka-comfy-fixed'. - 'iosevka-comfy-motion-duo' is the serif equivalent of 'iosevka-comfy-duo'. 3. The **wide, sans-serif** set: - 'iosevka-comfy-wide' is the same as 'iosevka-comfy' except it is noticeably wider. It also looks taller than 'iosevka-comfy' even though both variants fit the same number of lines on a screen. - 'iosevka-comfy-wide-fixed' is the "wide" counterpart of the 'iosevka-comfy-fixed' family. - 'iosevka-comfy-wide-duo' is the "wide" counterpart of the 'iosevka-comfy-duo' family. Inter-font consistency ---------------------- I ensured that all fonts feel part of the same project. The stylistic differences between them are subtle and, generally, only go in one direction (e.g. the "motion" triplet just adds some serifs while retaining the main skeleton). Simplification of the README and update to the demo pictures ------------------------------------------------------------ I rewrote the README to omit some of its more technical sections. It now is simpler as it focuses on describing what this project offers. The README also includes links to all official sources of the project. Furthermore, I updated the sample screen shots to better showcase the three variants mentioned above: <https://protesilaos.com/emacs/iosevka-comfy-pictures>. Miscellaneous ------------- The README now suggests a shallow clone of the git repo. Keeping a version history of lots of .ttf files is not ideal. Advanced users who plan to tweak the 'private-build-plans.toml' and then build their own fonts, may be interested in the shell one-liner I use to build the font files: for i in iosevka-comfy{,-motion,-wide}{,-fixed,-duo} ; do npm run build -- ttf::$i ; done This is invoked from the root of the iosevka.git repo and works with my 'private-build-plans.toml'. The backronym of Iosevka COMFY is: Iosevka (Could Only Modify a Font, Yes)
Update to Iosevka Comfy 0.5.0 * Created a dedicated page for sample pictures of the fonts: <https://protesilaos.com/emacs/iosevka-comfy-pictures>. * Revised the proportions of the fonts to have a marginally less compact vertical spacing. The intent is to fix the display of accents over capital letters, such as ÀÄÃÁÖÕ. This issue was discussed on the mailing list. Thanks to inwit for bringing the matter to my attention: <https://lists.sr.ht/~protesilaos/general-issues/%3CCMG66XYLH7MO.2T0058JIS1343%40bisio%3E>. * Made sweeping changes to Iosevka Comfy Motion and Iosevka Comfy Motion Duo to address their [subtle] inconsistencies and enforce a uniform style throughout their glyphs. Put simply, the "motion" variants are the pseudo-serif counterparts of base Iosevka Comfy and Iosevka Comfy Duo, respectively. * Rebuilt all font files based on Iosevka 'v16.2.0', commit 'b7a59ee4' on 2022-09-10. * Updated the README to reflect the aforementioned. * * * Reminder of the font families on offer: * 'iosevka-comfy' is monospaced and supports ligatures. Apart from ligatures, it allows certain glyphs, such as arrows, to occupy more than one block. * 'iosevka-comfy-motion' is like 'iosevka-comfy' but with lots of small tweaks that add serifs and tailed ends to relevant glyphs. Put sipmly this is the pseudo-serif version of the otherwise sans-serif base style. * 'iosevka-comfy-duo' is quasi-proportional and supports ligatures. The naturally wide glyphs, such as 'i', are allowed to occupy their natural width instead of one space. * 'iosevka-comfy-motion-duo' is like 'iosevka-comfy-duo' but with the serified style of 'iosevka-comfy-motion'. * 'iosevka-comfy-fixed' is like 'iosevka-comfy' albeit strictly monospaced and thus does not support ligatures. All glyphs are exactly the same width. Use this if you prefer it or if your application (e.g. terminal emulator) does not recognise 'iosevka-comfy' as a monospaced font. * 'iosevka-comfy-wide' is the same as 'iosevka-comfy' except it is noticeably wider. It also looks taller than 'iosevka-comfy' even though both variants fit the same number of lines on a screen. * 'iosevka-comfy-wide-fixed' same as 'iosevka-comfy-wide' though it is strictly monospaced and does not support ligatures.
Update to Iosevka Comfy 0.4.0 - Rebuilt all files using upstream Iosevka version 'v16.0.2', commit '2f48331f'. This is done to incorporate the latest changes (although they do not affect Iosevka Comfy). - Designed a new stylistic "motion" variant. Select glyphs are curlier and/or have tailed ends and serifs, giving a more playful and fluid impression. By comparison, standard Iosevka Comfy is austere. The new variants are (i) 'iosevka-comfy-motion', which is largely monospaced and supports ligatures, and (ii) 'iosevka-comfy-motion-duo' which is quasi-proportional in its spacing. The variants in brief: - 'iosevka-comfy' is monospaced and supports ligatures. Apart from ligatures, it allows certain glyphs, such as arrows, to occupy more than one block. - 'iosevka-comfy-motion' is like 'iosevka-comfy' but with lots of small tweaks that add serifs and tailed ends to give a more playful impression. - 'iosevka-comfy-duo' is quasi-proportional and supports ligatures. The naturally wide glyphs, such as 'm', are allowed to occupy two blocks instead of one. - 'iosevka-comfy-motion-duo' is like 'iosevka-comfy-duo' but with the more playful style of 'iosevka-comfy-motion'. - 'iosevka-comfy-fixed' is like 'iosevka-comfy' albeit strictly monospaced and thus does not support ligatures. All glyphs are exactly the same width. Use this if you prefer it or if your application (e.g. terminal emulator) does not recognise 'iosevka-comfy' as a monospaced font. - 'iosevka-comfy-wide' is the same as 'iosevka-comfy' except it is noticeably wider. It also looks taller than 'iosevka-comfy' even though both variants fit the same number of lines on a screen. - 'iosevka-comfy-wide-fixed' same as 'iosevka-comfy-wide' though it is strictly monospaced and does not support ligatures. - Updated all screen shots and reworked the README to better present the stylistic variants of Iosevka Comfy. - The comparison between regular Iosevka and Iosevka Comfy now uses a larger font height and displays line numbers. These help illustrate how Iosevka Comfy is more compact than its counterpart (compactness is more economical, but also prevents rivers of negative space from flowing through the lines; rivers which I find incredibly annoying).
Rebuild Iosevka Comfy * Changed the 'a' glyph from a single to a double storey design. The previous implementation had two problems: (1) it was not fully consistent with the overall rounded style of Iosevka Comfy, and (2) it could be mistaken for an 'o'. Damien Cassou wrote about the latter case in issue 2 over at the GitHub mirror: <https://github.com/protesilaos/iosevka-comfy/issues/2>. The report confirmed my suspicion that I had a misplaced sense of comfort in disambiguating the single storey 'a' from 'o' solely because of how we tend to read known words predictively instead of character-by-character. I was already testing this by substituting random 'a' with 'o' in long texts where I was still reading everything as if the typos were not there. Damien's report was the final datum that provided the impetus for this change. * Revised the 'b' and 'd' glyphs to exhibit the roundedness found in other relevant glyphs. Before they had a sturdier look which broke the established patterns of Iosevka Comfy, albeit ever so slightly. The inconsistency was noticeable at larger point sizes. The new rounded shapes look virtually the same as their predecessors at small point sizes. At larger sizes though, they retain the desirable characteristics of the typeface. * Removed the tail from the 'u' glyph and enforced roundedness. This aligns its design with 'a' but also with other characters like 'n'. Again, the intent is to achieve inter-character consistency, where appropriate. * Updated the documentation to reflect the aforementioned. * Produced new screenshots to showcase the current state of the project.