{"id":48868493,"url":"https://github.com/piazzai/sevka","last_synced_at":"2026-04-15T20:04:20.156Z","repository":{"id":321815045,"uuid":"1086825220","full_name":"piazzai/sevka","owner":"piazzai","description":"A subset of Iosevka, custom-built","archived":false,"fork":false,"pushed_at":"2026-04-03T21:10:20.000Z","size":6270,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-03T23:16:08.300Z","etag":null,"topics":["fixed-width","font","font-family","iosevka","iosevka-font","monospace-font","sans-serif","slab-serif","true-type","truetype","ttf","ttf-fonts","typeface","typeface-font","typefaces","web-font","web-fonts","webfont","webfonts","woff2"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"ofl-1.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/piazzai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-31T00:49:32.000Z","updated_at":"2026-04-03T21:10:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/piazzai/sevka","commit_stats":null,"previous_names":["piazzai/sevka"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/piazzai/sevka","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piazzai%2Fsevka","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piazzai%2Fsevka/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piazzai%2Fsevka/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piazzai%2Fsevka/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piazzai","download_url":"https://codeload.github.com/piazzai/sevka/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piazzai%2Fsevka/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31857625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fixed-width","font","font-family","iosevka","iosevka-font","monospace-font","sans-serif","slab-serif","true-type","truetype","ttf","ttf-fonts","typeface","typeface-font","typefaces","web-font","web-fonts","webfont","webfonts","woff2"],"created_at":"2026-04-15T20:04:19.220Z","updated_at":"2026-04-15T20:04:20.150Z","avatar_url":"https://github.com/piazzai.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sevka\n\nSevka is a subset of [Iosevka](https://typeof.net/Iosevka/) intended for online distribution. It constrains Iosevka to five weights (light, regular, medium, semibold, bold), one width (normal), and two slopes (upright, italic), resulting in 10 fonts against Iosevka's original 54.\n\nTo further reduce filesize, all OpenType features, character variants, and ligations are disabled at build time, and the fonts are reduced after build to either [US-ASCII](https://en.wikipedia.org/wiki/ASCII) or [Latin-1](https://en.wikipedia.org/wiki/ISO/IEC_8859-1) characters. As a result, a basic TrueType bundle consisting of regular, italic, bold, and bold italic weights amounts to only 139.4 kB (ASCII) or 258.2 kB (Latin) against Iosevka's original 40.4 MB. In WOFF2 format, the size is further compressed to 57.8 kB (ASCII) and 100.9 kB (Latin), allowing fonts to load in a split second.\n\nThe font comes in three versions:\n\n* Sevka: sans-serif, quasi-proportional\n* Sevka Slab: serif, quasi-proportional\n* Sevka Fixed: sans-serif, fixed width\n\nSevka and Sevka Slab are intended for body text and headings. Sevka Fixed is the true monospaced version, to be used for code, tables, and other environments where column width is constant.\n\n## Specimen\n\n![](https://github.com/piazzai/sevka/blob/master/screenshot.png)\n\n## Motivation\n\nIosevka is a marvelous typeface. It is open-source, looks stunning, and comes in a variety of weights, widths, and slopes, with fixed-space and quasi-proportional versions, hundreds of character variants, ligatures, and a matching slab-serif family.\n\nThere is one problem with its use on the web, however. Due to extensive Unicode coverage, language support, OpenType features, ligature sets, and extensive customization options, its filesize is massive. Just the vanilla face (regular, normal width, upright, in TrueType format) is 9.9 MB. This is inconvenient for a website, especially if one does not even need full Unicode encoding but only ASCII or Latin characters.\n\nSevka is a solution to this problem. It is a heavily streamlined Iosevka build that only retains weights and shapes commonly found on the web, dropping all unnecessary glyphs and uneconomical features. This allows for a much leaner font that requires minimal bandwidth but covers virtually all use cases.\n\n## Build\n\nPrebuilt font files based on [Iosevka v34.3.0](https://github.com/be5invis/Iosevka/releases/tag/v34.3.0) are included in the `dist` folder. If you'd like to replicate the build process, install [node.js](https://nodejs.org/) and [pip](https://pypi.org/project/pip/). You might want to build the files yourself if you want a different release of Iosevka, or if you'd like to reintroduce particular features or character variants. If this is the case, please [read the docs](https://github.com/be5invis/Iosevka/blob/main/doc/custom-build.md#customized-build) and create new build plans through Iosevka's [customizer tool](https://typeof.net/Iosevka/customizer).\n\nWhen you have your build plans, clone the Iosevka repo, `cd` into it, and copy the plans.\n\n```bash\ngit clone --depth 1 https://github.com/be5invis/Iosevka\ncd Iosevka \u0026\u0026 cp ../private-build-plans.toml private-build-plans.toml\n```\n\nThe build process requires [ttfautohint](https://freetype.org/ttfautohint/), and [glyphhanger](https://www.zachleat.com/web/glyphhanger/) to be installed on your computer. Both are available via `npm` and can be installed globally.\n\n```bash\nnpm install -g ttfautohint\nnpm install -g glyphhanger\n```\n\nInstall local dependencies and build the fonts.\n\n```bash\nnpm install\nnpm run build -- contents::Sevka\nnpm run build -- contents::SevkaSlab\nnpm run build -- contents::SevkaFixed\n```\n\nCreating subsets requires the [fonttools](https://pypi.org/project/fonttools/) and [brotli](https://pypi.org/project/brotli/) Python libraries. They can be installed with `pip`.\n\n```bash\npip install fonttools\npip install brotli\n```\n\nNow you can run `subset.sh` to reduce the files previously built to ASCII and Latin characters.\n\n```bash\nbash ../subset.sh\n```\n\nCopy the resulting fonts into the root directory, `cd` back, and delete the Iosevka repo.\n\n```bash\nmv dist/ascii ../\nmv dist/latin ../\ncd .. \u0026\u0026 rm -rf Iosevka\n```\n\nDone! Your files are in the `ascii` and `latin` folders.\n\n## Usage\n\nCopy the fonts to your project's asset directory and load them with the CSS blocks included in `ascii/sevka.css` or `latin/sevka.css`. Alternative stylesheets can be found in `ascii` and `latin`'s subfolders, in case you only want to load the TrueType or WOFF2 versions.\n\nYou can also use the more compact Sass syntax:\n\n```scss\n$faces: (\n  Sevka: \"Sevka\",\n  SevkaSlab: \"Sevka Slab\",\n  SevkaFixed: \"Sevka Fixed\",\n);\n\n$styles: (\n  normal: \"\",\n  italic: \"Italic\",\n);\n\n$weights: (\n  \"Light\": 300,\n  \"Medium\": 500,\n  \"SemiBold\": 600,\n  \"Bold\": 700,\n);\n\n@each $face, $face-value in $faces {\n  @font-face {\n    font-family: \"#{$face-value}\";\n    font-display: swap;\n    font-style: normal;\n    font-weight: 400;\n    src: url(\"path/to/fonts/#{$face}-Regular.ttf\") format(\"truetype\") url(\"path/to/fonts/#{$face}-Regular.woff2\") format(\"woff2\");\n  }\n\n  @font-face {\n    font-family: \"#{$face-value}\";\n    font-display: swap;\n    font-style: italic;\n    font-weight: 400;\n    src: url(\"path/to/fonts/#{$face}-Italic.ttf\") format(\"truetype\") url(\"path/to/fonts/#{$face}-Italic.woff2\") format(\"woff2\");\n  }\n\n  @each $style, $style-value in $styles {\n    @each $weight, $weight-value in $weights {\n      @font-face {\n        font-family: \"#{$face-value}\";\n        font-display: swap;\n        font-style: #{$style};\n        font-weight: #{$weight-value};\n        src: url(\"path/to/fonts/#{$face}-#{$weight}#{$style-value}.ttf\") format(\"truetype\") url(\"path/to/fonts/#{$face}-#{$weight}#{$style-value}.woff2\") format(\"woff2\");\n      }\n    }\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiazzai%2Fsevka","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiazzai%2Fsevka","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiazzai%2Fsevka/lists"}