Tags: protesilaos/iosevka-comfy
Tags
Update to Iosevka Comfy version 2.1.0 This is a small release that fixes a detail in the `m` character of all the "motion" variants. It now has a tail at the bottom right corner in addition to the top left serif. This is the same design used wherever relevant, such as in the `n` and `u` glyphs. Other than that, the rebuild is an attempt to fix the broken files that appear on NixOS, as reported by Damien Cassou in issue 17: <#17>. I do not know if this fixes the problem, but I cannot think of a better approach. This is not reproducible on my end (Debian stable).
Update to Iosevka Comfy version 2.0.0 (on top of Iosevka 31.3.0) * It is difficult to build Iosevka Comfy I made a lot of adjustments to preserve the aesthetics of Iosevka Comfy while adapting them to the latest version of upstream Iosevka. Users will now benefit from all the refinements made upstream. Iosevka has a rapid release cycle. Almost every version introduces some breaking change: a code point is repurposed to reference another character or the numeric value of a character variant is modified to point to another variant... To rebuild Iosevka Comfy, I have to inspect every single character to ensure its code point AND numeric variant are correct. This is a laborious task that takes several days of testing all the fonts. Still, it is worth the effort as I get a set of highly functional fonts in the process. Another complication this time was on the hardware side of things. I could not rebuild because I was running out of RAM and my computer would crash. This stalled the current version for several months. I finally got a new 16GB memory stick and was able to work on this project. * Minor stylistic refinements All the variants I provide are the same except for two small changes: - The capital U in all the "motion" variants now uses the style I had always intended. This is a rounded bottom with a serif at the top left corner. In the previous version of Iosevka Comfy, this character had a tail at the bottom right corner because upstream had changed the numeric value of the variant. I either did not notice that in the documentation at the time, or the documentation had not been updated accordingly. I did spot the error back then after I had rebuilt the fonts, but I was not going to put further stress on my computer just for one character. Anyway, this change makes "motion" variants have the desired rhythm throughout. - All "duo" and "wide" variants have a capital 'i' ('I') with shorter bars/serifs than the others (e.g. Iosevka Comfy and Iosevka Comfy Motion). For the "duo" variants, this enforces tighter spacing around that character, which is appropriate in a quasi-proportional font. While for the "wide" variants, the same change improves the sense of added space between characters and is easier to read at tiny point sizes. This capital 'I' still has serifs to not be mistaken for the bar/pipe character or for a cursor that is rendered in a vertical bar shape. * Stylistic tweaks for the Greek alphabet Greek characters have always been supported, though their style was the same as that of upstream Iosevka. For many of those characters I now introduce changes to make them fit better with their Latin counterparts. The specifications are in the file 'private-build-plans.toml'.
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: <#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).
PreviousNext