├── .gitignore ├── CNAME ├── Gemfile ├── Gemfile.lock ├── README.md ├── _config.yml ├── _data └── data.yaml ├── _includes └── item.html ├── _layouts └── default.html ├── css └── styles.css ├── fonts ├── Isenheim_Fin.woff2 └── Isenheim_Regulier.woff2 ├── img ├── apple-touch-icon.png ├── icon.svg └── screenshot.png ├── index.md ├── jekyll-server.sh └── js └── main.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | _site 3 | .sass-cache 4 | .jekyll-cache 5 | .jekyll-metadata 6 | vendor 7 | working 8 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | typedesignresources.com -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | # Hello! This is where you manage which Jekyll version is used to run. 3 | # When you want to use a different version, change it below, save the 4 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so: 5 | # 6 | # bundle exec jekyll serve 7 | # 8 | # This will help ensure the proper Jekyll version is running. 9 | # Happy Jekylling! 10 | gem "jekyll", "~> 4.3.2" 11 | # This is the default theme for new Jekyll sites. You may change this to anything you like. 12 | gem "minima", "~> 2.5" 13 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and 14 | # uncomment the line below. To upgrade, run `bundle update github-pages`. 15 | # gem "github-pages", group: :jekyll_plugins 16 | # If you have any plugins, put them here! 17 | group :jekyll_plugins do 18 | gem "jekyll-feed", "~> 0.12" 19 | end 20 | 21 | # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem 22 | # and associated library. 23 | platforms :mingw, :x64_mingw, :mswin, :jruby do 24 | gem "tzinfo", ">= 1", "< 3" 25 | gem "tzinfo-data" 26 | end 27 | 28 | # Performance-booster for watching directories on Windows 29 | gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] 30 | 31 | # Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem 32 | # do not have a Java counterpart. 33 | gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] 34 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.8.4) 5 | public_suffix (>= 2.0.2, < 6.0) 6 | colorator (1.1.0) 7 | concurrent-ruby (1.2.2) 8 | em-websocket (0.5.3) 9 | eventmachine (>= 0.12.9) 10 | http_parser.rb (~> 0) 11 | eventmachine (1.2.7) 12 | ffi (1.15.5) 13 | forwardable-extended (2.6.0) 14 | google-protobuf (3.22.3-arm64-darwin) 15 | http_parser.rb (0.8.0) 16 | i18n (1.13.0) 17 | concurrent-ruby (~> 1.0) 18 | jekyll (4.3.2) 19 | addressable (~> 2.4) 20 | colorator (~> 1.0) 21 | em-websocket (~> 0.5) 22 | i18n (~> 1.0) 23 | jekyll-sass-converter (>= 2.0, < 4.0) 24 | jekyll-watch (~> 2.0) 25 | kramdown (~> 2.3, >= 2.3.1) 26 | kramdown-parser-gfm (~> 1.0) 27 | liquid (~> 4.0) 28 | mercenary (>= 0.3.6, < 0.5) 29 | pathutil (~> 0.9) 30 | rouge (>= 3.0, < 5.0) 31 | safe_yaml (~> 1.0) 32 | terminal-table (>= 1.8, < 4.0) 33 | webrick (~> 1.7) 34 | jekyll-feed (0.17.0) 35 | jekyll (>= 3.7, < 5.0) 36 | jekyll-sass-converter (3.0.0) 37 | sass-embedded (~> 1.54) 38 | jekyll-seo-tag (2.8.0) 39 | jekyll (>= 3.8, < 5.0) 40 | jekyll-watch (2.2.1) 41 | listen (~> 3.0) 42 | kramdown (2.4.0) 43 | rexml 44 | kramdown-parser-gfm (1.1.0) 45 | kramdown (~> 2.0) 46 | liquid (4.0.4) 47 | listen (3.8.0) 48 | rb-fsevent (~> 0.10, >= 0.10.3) 49 | rb-inotify (~> 0.9, >= 0.9.10) 50 | mercenary (0.4.0) 51 | minima (2.5.1) 52 | jekyll (>= 3.5, < 5.0) 53 | jekyll-feed (~> 0.9) 54 | jekyll-seo-tag (~> 2.1) 55 | pathutil (0.16.2) 56 | forwardable-extended (~> 2.6) 57 | public_suffix (5.0.1) 58 | rb-fsevent (0.11.2) 59 | rb-inotify (0.10.1) 60 | ffi (~> 1.0) 61 | rexml (3.2.5) 62 | rouge (4.1.0) 63 | safe_yaml (1.0.5) 64 | sass-embedded (1.62.1-arm64-darwin) 65 | google-protobuf (~> 3.21) 66 | terminal-table (3.0.2) 67 | unicode-display_width (>= 1.1.1, < 3) 68 | unicode-display_width (2.4.2) 69 | webrick (1.8.1) 70 | 71 | PLATFORMS 72 | arm64-darwin-21 73 | 74 | DEPENDENCIES 75 | http_parser.rb (~> 0.6.0) 76 | jekyll (~> 4.3.2) 77 | jekyll-feed (~> 0.12) 78 | minima (~> 2.5) 79 | tzinfo (>= 1, < 3) 80 | tzinfo-data 81 | wdm (~> 0.1.1) 82 | 83 | BUNDLED WITH 84 | 2.3.26 85 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Type Design Resources 2 | 3 | A growing, public, collaborative collection of type design resources. Everything from learning the basics to running your own foundry. 4 | 5 | To contribute, just post an issue, make a pull request, or send me an email at [justin@justinpenner.ca](justin@justinpenner.ca) 6 | 7 | --- 8 | 9 | → https://typedesignresources.com -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # theme: jekyll-theme-midnight -------------------------------------------------------------------------------- /_data/data.yaml: -------------------------------------------------------------------------------- 1 | categories: 2 | - name: Learning type design 3 | subcategories: 4 | - name: Beginners guides to type design 5 | items: 6 | - name: Type Design School 7 | url: https://typedesignschool.com 8 | description: Video guide by Lynne Yun 9 | - name: Design with FontForge 10 | url: http://designwithfontforge.com/en-US/index.html 11 | description: This is a fantastic introduction to type design, regardless of what software you use. 12 | - name: Getting started with type design 13 | url: https://jonathanhoefler.com/articles/getting-started-with-typeface-design 14 | description: by Jonathan Hoefler 15 | - name: Glyphs Tutorials 16 | url: https://glyphsapp.com/learn 17 | description: most tutorials here would be useful to non-Glyphs users too! 18 | - name: GT Academy 19 | url: https://www.instagram.com/grillitype 20 | description: Ongoing series of Instagram posts on how to construct certain glyphs. 21 | - name: Ohno Type School Articles 22 | url: https://ohnotype.co/blog/tagged/teaching 23 | description: Series of articles teaching the basics of type design. 24 | - name: Ohno Essential RoboFont 25 | url: https://school.ohnotype.co/p/essential-robofont 26 | description: Video class introduction to the classic editor 27 | - name: Books 28 | items: 29 | - name: How to design fonts? 30 | url: https://learntype.eu/ 31 | description: A 140-page PDF and print-on-demand book by Blaze Type Foundry. 32 | - name: "Designing Fonts: An Introduction to Professional Type Design" 33 | url: https://thamesandhudson.com/designing-fonts-an-introduction-to-professional-type-design-9780500241554 34 | description: by Chris Campe and Ulrike Rausch. A [German edition](https://typografie.de/produkt/making-fonts/) is also available. 35 | - name: Designing Type 36 | url: https://yalebooks.yale.edu/book/9780300249927/designing-type/ 37 | description: by Karen Cheng. 38 | - name: "How to create typefaces: From sketch to screen" 39 | url: https://www.tipo-e.com/publicaciones/how-to-create-typefaces.html 40 | description: by Cristóbal Henestrosa, Laura Meseguer, José Scaglione. Also available in a [Spanish edition](http://tipo-e.com/publicaciones/como-crear-tipografias.html). 41 | - name: "Italic: What gives Typography its emphasis" 42 | url: https://www.niggli.ch/en/produkt/italic/ 43 | description: by Hendrik Weber. Also available in [German](https://www.niggli.ch/en/produkt/kursiv/). 44 | - name: "Legibility: How and why typography affects ease of reading" 45 | url: https://legible-typography.com/ 46 | description: Book by Mary Dyson. Available online for free in English and Spanish. 47 | links: 48 | - name: English version 49 | url: https://legible-typography.com/en/ 50 | - name: Spanish version 51 | url: https://legible-typography.com/es/ 52 | - name: Recommended Type Design and Typography Books 53 | url: https://typedrawers.com/discussion/1275/recommended-type-design-and-typography-books/p1 54 | description: discussion on TypeDrawers 55 | - name: Teachers, show us your reading lists 56 | url: https://typedrawers.com/discussion/186/teachers-show-us-your-reading-lists 57 | description: discussion on typedrawers 58 | - name: Workshops 59 | description: "Tip: follow your favourite type [conferences](#conferences) – some of them present workshops and other events throughout the year." 60 | items: 61 | - name: Cyrillicsly 62 | url: https://twitter.com/cyrillicsly 63 | description: workshops for learning Cyrillic type design 64 | - name: Letterform Archive 65 | url: https://letterformarchive.org/events/ 66 | description: presents a variety of workshops and other events 67 | - name: Type@Cooper 68 | url: http://coopertype.org/workshops/ 69 | description: presents a variety of workshops and other events 70 | - name: Type Design Class 71 | url: https://www.typedesignclass.com/workshops 72 | description: Online workshops by Viktor Baltus for learning type design and typography. 73 | - name: Typographische Gesellschaft München 74 | url: https://tgm-online.de/angebot/?type=tgm-angebot-Fortbildung 75 | description: Typographic Society of Munich hosts a wide range of in-person workshops and courses on typography, including type design. 76 | - name: Courses 77 | items: 78 | - name: Tipo-g 79 | url: https://tipo-g.com/ 80 | description: A type design school in Barcelona, Spain. Currently teaching a 21-week part-time program with an emphasis on variable fonts. 81 | - name: Type Design Class 82 | url: https://www.typedesignclass.com/classes 83 | description: Self-guided courses by Viktor Baltus for learning type design and typography. 84 | - name: Practica Program 85 | url: https://practicaprogram.com/ 86 | description: A two-part, 6 week + 18 week part-time program for learning type design. 87 | - name: Type Electives 88 | url: https://www.typeelectives.com/ 89 | description: An online school with a range of type design and typography courses. 90 | - name: Variable Font Course 91 | url: https://www.variablefontcourse.com/ 92 | description: An on-demand video course by Arthur Reinders Folmer on creating variable fonts, and variable colour fonts. 93 | - name: I Love Typography Academy 94 | url: https://ilovetypography.com/academy/ 95 | description: ILT academy exists to promote expert teaching of type design, font production, and typography. Courses cover various script systems and are taught in a number of languages. 96 | - name: TypeParis 97 | url: https://typeparis.com/ 98 | description: A 6-week intensive type design programme held each summer in Paris (in English). 99 | - name: Ohno Type School Courses 100 | url: https://school.ohnotype.co/ 101 | description: A series of free courses for RoboFont users. 102 | - name: Full-time programs 103 | items: 104 | - name: ANRT 105 | url: https://anrt-nancy.fr/ 106 | description: at ENSAD (Nancy, France) 107 | - name: ECAL 108 | url: https://ecal.ch/en/courses-and-research/master/type-design/ 109 | description: A two-year master’s degree program in Switzerland. 110 | - name: EsadType 111 | url: http://postdiplome.esad-amiens.fr/ 112 | description: at Esad Amiens (Amiens, France) 113 | - name: MATD 114 | url: http://typefacedesign.net/courses/ 115 | description: at University of Reading (Reading, UK) 116 | - name: Type@Cooper 117 | url: http://coopertype.org/ 118 | description: at Cooper Union (New York City, USA) 119 | - name: Type & Media 120 | url: https://typemedia.org/ 121 | description: MA in Type Design at the KABK (The Hague, Netherlands) 122 | - name: Type West 123 | url: https://letterformarchive.org/education/ 124 | description: at Letterform Archive (San Francisco, USA) 125 | - name: Software 126 | description: Discounted student licenses are available with many of these applications. 127 | subcategories: 128 | - name: Commercial font editors 129 | items: 130 | - name: FontLab 131 | url: https://www.fontlab.com/ 132 | description: An all-in-one font editor for Mac and Windows – first released in 1992. 133 | data: 134 | - $499 USD 135 | - Windows 136 | - Mac 137 | - name: Fontself 138 | url: https://www.fontself.com/ 139 | description: Plugins for Adobe Illustrator & Photoshop for creating fonts within Creative Suite. Also available as an iPad app. 140 | data: 141 | - $39–59 USD 142 | - Windows 143 | - Mac 144 | - iPad 145 | - name: Glyphs 146 | url: https://glyphsapp.com/ 147 | description: A fully-featured, Mac-based font editor with an active community. 148 | data: 149 | - €299 150 | - Mac 151 | - name: Glyphs Mini 152 | url: https://glyphsapp.com/ 153 | description: A paired down version of the full Glyphs app, meant for beginners. Limited to designing single-style fonts (no multiple masters or variable fonts). 154 | data: 155 | - €49 156 | - Mac 157 | - name: High Logic Font Creator 158 | url: https://www.high-logic.com/font-editor/fontcreator 159 | description: A Windows-native font editor. 160 | data: 161 | - $49–199 USD 162 | - Windows 163 | - name: RoboFont 164 | url: https://robofont.com/ 165 | description: A Python-based font editor that puts an emphasis on scripting and extendability. 166 | data: 167 | - €400 168 | - Mac 169 | - name: TypeTool 170 | description: A simpler font editor for beginners, from the makers of FontLab. 171 | url: https://www.fontlab.com/font-editor/typetool/ 172 | data: 173 | - $49 USD 174 | - Windows 175 | - name: Drop & Type 176 | description: An application that generates Japanese or Latin fonts from Adobe Illustrator files. 177 | url: https://typeproject.com/fonts/dropandtype 178 | data: 179 | - ¥4,000 JPY 180 | - Windows 181 | - Mac 182 | - name: FontArk 183 | description: A browser-based font editor that’s currently in open beta. 184 | url: https://fontark.net/ 185 | data: 186 | - Free (while in beta) 187 | - name: Free and open source (FOSS) font editors 188 | items: 189 | - name: Birdfont 190 | url: https://birdfont.org/ 191 | description: A cross-platform, pay-what-you-want font editor written in the Vala programming language. Paid "Plus" version can export Color fonts, OpenType-CFF fonts, and single stroke fonts for CNC. 192 | data: 193 | - Windows 194 | - Mac 195 | - Linux 196 | - BSD 197 | - name: FontForge 198 | url: https://fontforge.org/ 199 | description: A cross-platform, FOSS font editor written in C. Can export many formats. First released in 1994. 200 | data: 201 | - Free 202 | - Windows 203 | - Mac 204 | - GNU+Linux. 205 | - name: Fontra 206 | url: https://fontra.xyz/ 207 | description: A browser-based FOSS font editor that allows distributed teams to work on a font together. Currently unfinished and in development (2023). Developed by [Black[Foundry]](https://black-foundry.com/) and [Google Fonts](https://fonts.google.com/). 208 | links: 209 | - name: GitHub 210 | url: https://github.com/googlefonts/fontra 211 | - name: FontStruct 212 | url: https://fontstruct.com/ 213 | description: FontStruct lets you quickly and easily create modular fonts constructed out of geometrical shapes, which are arranged in a grid pattern, like tiles or bricks. 214 | - name: Gerb 215 | url: https://github.com/epilys/gerb 216 | description: A FOSS font editor written in Rust. Currently unfinished and in development (2023). 217 | - name: Modular Font Editor K 218 | url: https://mfek.org/ 219 | description: A modular, Rust-based, FOSS font editor. Currently unfinished and in development (2023). 220 | - name: Runebender 221 | url: https://github.com/linebender/runebender 222 | description: A FOSS font editor, also written in Rust. Currently unfinished and in development (2023). 223 | - name: TruFont 224 | url: http://trufont.github.io/ 225 | description: A cross-platform FOSS font editor, written in Python. Now discontinued (2023). 226 | discontinued: true 227 | links: 228 | - name: GitHub 229 | url: https://github.com/trufont/trufont 230 | data: 231 | - Windows 232 | - Mac 233 | - Linux 234 | - name: Glyphr Studio 235 | url: https://github.com/glyphr-studio/Glyphr-Studio-1 236 | description: A browser-based FOSS font editor. 237 | links: 238 | - name: GitHub 239 | url: https://github.com/glyphr-studio/Glyphr-Studio-1 240 | - name: Typlr.app 241 | url: https://typlr.app/ 242 | description: A browser-based font editor by Evgeny Agasyants, currently in open beta. 243 | - name: Community 244 | items: 245 | subcategories: 246 | - name: Groups 247 | items: 248 | - name: Alphacrit 249 | url: https://www.alphacrit.alphabettes.org/ 250 | description: Online event series of type critiques, by Alphabettes 251 | - name: Type Crit Crew 252 | url: https://typecritcrew.com/ 253 | description: a free resource for type design students to meet 1–1 with experienced type designers for virtual critiques 254 | - name: TypeDrawers 255 | url: https://typedrawers.com/ 256 | description: discussion forum for type designers 257 | - name: Type Twitter 258 | url: https://twitter.com/i/lists/15845166 259 | description: a list of over 400 type foundries to follow on Twitter 260 | - name: Fonts r Magic 261 | url: https://twitter.com/mrkvlmrvc 262 | description: an informal weekly Zoom meeting for type designers to chat and show their work, hosted on Friday afternoons by Mirko Velimirovic. Posting Zoom links publicly is probably asking for trouble, so I'd say just send Mirko a DM to join! 263 | - name: Conferences 264 | items: 265 | - name: ATypI 266 | url: https://www.atypi.org/ 267 | description: A global type conference, hosted in a different country each year in September. 268 | - name: TypeCon 269 | url: https://www.typecon.com/ 270 | description: Annual conference presented by [S{o}TA](https://www.typesociety.org/). Hosted in-person in Portland, Oregon. 271 | - name: Typographics 272 | url: https://typographics.com/ 273 | description: Annually in June at The Cooper Union in New York City. Typographics hosts in-person and streaming events, plus workshops, a book fair, and [TypeLab](https://typographics.com/typelab/), an informal, multi-day, global typographic hackathon. 274 | - name: TypeWknd 275 | url: https://typewknd.com/ 276 | description: An online-only type conference 277 | - name: Robothon 278 | url: https://twitter.com/robothonconf 279 | description: Triennial conference on font software & technology. Hosted in-person in The Hague, Netherlands. 280 | - name: Signs of the times 281 | url: https://signs-of-the-times.net/ 282 | description: A two-day hybrid conference organized by Granshan, an organization that celebrates non-Latin typefaces and typography. 283 | links: 284 | - name: YouTube 285 | url: https://www.youtube.com/@granshanconference7285 286 | - name: Dynamic Font Day 287 | url: https://dynamicfontday.com/ 288 | description: A conference on digital typography and technology, presented by [Typographische Gesellschaft München](https://tgm-online.de/) (Typographic Society of Munich). 289 | - name: Inscript 290 | url: https://inscript.tf/ 291 | description: A five-day online conference showcasing presentations at the overlap of typography and technology. 292 | - name: Fontstand Conference 293 | url: https://fontstand.com/conference/ 294 | description: Annual typography conference organized by Fontstand, the typeface discovery and rental app. 295 | - name: Kerning 296 | url: https://kerning.it/ 297 | description: Kerning is the first international conference in Italy dedicated solely to typography and web typography. Last event was in 2019, but the [organizers are keen to host future events](https://twitter.com/ssstofff/status/1547939771623755778) if sponsors come forward. 298 | discontinued: true 299 | - name: Multilingüe 300 | url: https://www.typedrivesculture.com/ 301 | description: Online conference on writing and typography for native languages from Latin America. Hosted by the Type Directors Club. 302 | - name: Future of Reading 303 | url: http://www.futureofreading.de/ 304 | description: Conference about the future of reading and typography. Hosted by FH Münster, Germany. 305 | - name: Leipziger Typotage 306 | url: https://typotage.de 307 | description: The Leipziger Typotage is an annual event on type design and typography organised by the Gesellschaft zur Förderung der Druckkunst Leipzig e.V. since 1995 hosted at [Museum für Druckkunst Leipzig](https://www.druckkunst-museum.de/), Germany. 308 | - name: Now24 309 | url: https://typeparis.com/now24 310 | description: A one-day conference (in English) held in Paris each year by TypeParis. 311 | links: 312 | - name: Now23 313 | url: https://typeparis.com/now23 314 | - name: Events & Lectures 315 | description: "Events that occur regularly (except [Conferences](#conferences)), or organizations that host regular events on type design and typography." 316 | items: 317 | - name: Future Fonts HyperTalks 318 | url: https://www.futurefonts.xyz/blog/243-announcing-hypertalks 319 | description: A new online event series, featuring lightning talks from designers, which may or may not be related to fonts. 320 | links: 321 | - name: YouTube 322 | url: https://www.youtube.com/watch?v=0gqD-rxqD_8 323 | - name: Letterform Archive 324 | url: https://letterformarchive.org/events/ 325 | description: Letterform Archive in San Francisco hosts many lectures and events, both online and in-person. 326 | - name: St. Bride Foundation 327 | url: https://letterformarchive.org/events/ 328 | description: St. Bride Foundation in London hosts many lectures and events on printing, design, and typography. 329 | - name: Type Electives 330 | url: https://www.typeelectives.com/events 331 | description: Type Electives hosts lectures and events that go beyond traditional type design topics. 332 | links: 333 | - name: YouTube 334 | url: https://www.youtube.com/@typeelectives 335 | - name: Associations 336 | items: 337 | - name: ATypI 338 | url: https://www.atypi.org/ 339 | description: A global organization representing type designers and foundries. Holds an annual conference, hosted in a different country each year in September. 340 | - name: Granshan 341 | url: https://www.granshan.com/ 342 | description: An organization that promotes and celebrates non-Latin type design and typography. Holds an annual or biannual type design competition, followed by a conference and exhibition. 343 | - name: SoTA 344 | url: https://www.typesociety.org/ 345 | description: “An open community dedicated to supporting and advancing the typographic arts and design education.” Organizer of [TypeCon](https://www.typecon.com/). 346 | - name: Type Directors Club 347 | url: https://www.tdc.org/ 348 | description: Type Directors Club is an international organization promoting typography and type design. Since 1946 they've hosted events, conferences, and competitions in New York City and around the world. Each year they produce Typography Annual, recognizing the year's best typographers and type designers. 349 | - name: Media 350 | description: Social media, multimedia, type news media 351 | subcategories: 352 | - name: Podcasts 353 | items: 354 | - name: Creative Characters 355 | url: https://www.monotype.com/podcast 356 | description: by Monotype — Bill Connolly interviews type designers and other creative characters 357 | - name: Designed This Way 358 | url: https://kawal.co/designedthisway 359 | description: conversations with designers and other creative folks, including several type designers 360 | - name: The Interrogang Podcast 361 | url: https://proofco.xyz/the-interrogang-podcast 362 | description: “A weekly briefing and discussion of type, design, and creativity.” by Proof&Co. 363 | - name: Ohno Radio 364 | url: https://ohnotype.co/info/ohno-radio 365 | description: James Edmondson chats with up-and-coming and well-established type designers 366 | - name: The Tiny Typecast 367 | url: https://glog.glennf.com/tiny-type-blog 368 | description: Glenn Fleishman talks with type designers, calligraphers, letterpress printers, historians, and more. [RSS link](https://tinytypemuseum.com/tinytypecast.rss) 369 | - name: Type Radio 370 | url: http://www.typeradio.org/ 371 | description: the oldest and most beloved podcast for type designers – interviews at conferences from 2005–2020 372 | - name: The Weekly Typographic 373 | url: https://www.theleagueofmoveabletype.com/podcast 374 | description: from The League of Moveable Type 375 | - name: Publications 376 | items: 377 | - name: Footnotes 378 | url: http://www.footnotes.ch/ 379 | description: A print-only periodical dedicated to type design. 380 | - name: Typographica 381 | url: https://typographica.org/ 382 | description: Typeface reviews, articles on type design and typography. 383 | - name: Type Magazine 384 | url: https://www.typemag.org/ 385 | description: Print and online magazine on type and typography. 386 | - name: Font Review Journal 387 | url: https://fontreviewjournal.com/ 388 | description: Deep-dive reviews of fonts, by Bethany Heck. 389 | - name: TYPE01 390 | url: https://type-01.com/ 391 | description: News and articles from the world of type design. Online and print. 392 | - name: Design Regression 393 | url: https://designregression.com 394 | description: An academic mini journal publishing texts that are about design for reading and reading-related research 395 | - name: Typography papers 396 | url: https://typography.network/typographypapers/ 397 | description: An academic journal published by the Department of Typography & Graphic Communication, University of Reading and the Hyphen Press. Free PDFs available. 398 | - name: Blogs 399 | description: Type foundry and type designer blogs, or blogs that frequently feature articles on type design. 400 | items: 401 | - name: "Type Design Class: Resources" 402 | url: https://www.typedesignclass.com/resources 403 | description: A series of articles and tutorials by Viktor Baltus on type design. 404 | - name: Blaze Type Blog 405 | url: https://blazetype.eu/blog 406 | - name: Streamers 407 | description: Watch a type designer! 408 | items: 409 | - name: akimbo.black 410 | url: https://www.twitch.tv/akimbodotblack 411 | links: 412 | - name: Twitch 413 | url: https://www.twitch.tv/akimbodotblack 414 | - name: Alanna Munro 415 | url: https://www.twitch.tv/alannamun 416 | links: 417 | - name: Twitch 418 | url: https://www.twitch.tv/alannamun 419 | - name: YouTube 420 | url: https://www.youtube.com/@alannamun 421 | - name: Alex Slobzheninov 422 | url: https://www.youtube.com/@slobzheninov 423 | links: 424 | - name: YouTube 425 | url: https://www.youtube.com/@slobzheninov 426 | - name: Blaze Type 427 | url: https://www.twitch.tv/blazetype 428 | links: 429 | - name: Twitch 430 | url: https://www.twitch.tv/blazetype 431 | - name: YouTube 432 | url: https://www.youtube.com/@blazetype 433 | - name: Daniel Nisbet 434 | url: https://www.twitch.tv/danielnisbet/ 435 | links: 436 | - name: Twitch 437 | url: https://www.twitch.tv/danielnisbet/ 438 | - name: YouTube 439 | url: https://www.youtube.com/@danielnisbet 440 | - name: Eli Heuer 441 | url: https://www.twitch.tv/eli_gtl 442 | links: 443 | - name: Twitch 444 | url: https://www.twitch.tv/eli_gtl 445 | - name: YouTube 446 | url: https://www.youtube.com/@EliHeuer 447 | - name: SophiaTypeLove 448 | url: https://www.twitch.tv/sophiatypelove/ 449 | links: 450 | - name: Twitch 451 | url: https://www.twitch.tv/sophiatypelove/ 452 | - name: YouTube 453 | url: https://www.youtube.com/@SophiaTypeLove 454 | - name: Stephen Nixon (Arrow Type) 455 | url: https://www.twitch.tv/arrowtype 456 | links: 457 | - name: Twitch 458 | url: https://www.twitch.tv/arrowtype 459 | - name: YouTube 460 | url: https://www.youtube.com/arrowtype 461 | - name: typedesign_bk 462 | url: https://www.twitch.tv/typedesign_bk 463 | links: 464 | - name: Twitch 465 | url: https://www.twitch.tv/typedesign_bk 466 | - name: Adobe Fonts Livestreams 467 | url: https://www.behance.net/adobefonts/livestreams 468 | description: Discussing type with Adobe’s foundry partners. 469 | - name: Character design 470 | subcategories: 471 | - name: Latin 472 | items: 473 | - name: Microsoft Character Design Standards 474 | url: https://docs.microsoft.com/en-us/typography/develop/character-design-standards/ 475 | description: Guidelines and best practises for drawing the Latin alphabet, as well as figures, diacritics, punctuation and symbols. 476 | - name: How to draw a Capital Sharp S 477 | url: https://typography.guru/journal/how-to-draw-a-capital-sharp-s-r18/ 478 | description: A guide to drawing the German capital eszett (ẞ) by Ralf Herrmann. 479 | - name: How to Draw a Proper Capital Eszett 480 | url: http://cinga.ch/eszett/ 481 | description: A guide to drawing the German capital eszett (ẞ) by Christian Thalmann. 482 | - name: Vietnamese Typography 483 | url: https://vietnamesetypography.com/ 484 | description: by Donny Trương, comprehensive resource typographic features and diacritics in Vietnamese 485 | - name: diacritics.typo.cz 486 | url: http://diacritics.typo.cz/ 487 | description: by Filip Blažek 488 | - name: The Insects Project 489 | url: http://theinsectsproject.eu/ 490 | description: Central European diacritics 491 | - name: On diacritics 492 | url: https://ilovetypography.com/2009/01/24/on-diacritics/ 493 | description: A general introduction to the design of diacritics by David Březina 494 | - name: Diacritics resources Twitter thread 495 | url: https://twitter.com/aleksamul/status/1057350288061984770 496 | description: by Aleksandra Samuļenkova, thread listing many resources concerning diacritics and special characters of the Latin script 497 | - name: Context of Diacritics 498 | url: https://www.setuptype.com/x/cod/ 499 | description: An analysis of languages that use Latin diacritics and the frequencies of letters and letter pairs with diacritics. 500 | - name: Italics & Obliques 501 | items: 502 | - name: Design an Italic Typeface 503 | url: https://www.linkedin.com/learning/design-an-italic-typeface 504 | description: On-demand course by Charles Nix for LinkedIn Learning. You might be able to access LinkedIn Learning for free via your local library. 505 | - name: Designing italics 506 | url: https://gaultney.org/jvgtype/italics/designing-italics/ 507 | description: A thesis stemming from a five-year study by Victor Gaultney. 508 | - name: The essential italic 509 | url: https://gaultney.org/jvgtype/italics/essential-italic/ 510 | description: A presentation at ATypI 2017 by Victor Gaultney. 511 | - name: The italic design process 512 | url: https://gaultney.org/jvgtype/italics/italic-design-process/ 513 | description: A presentation at ATypI 2020 by Victor Gaultney. 514 | - name: Italics workflow 515 | url: https://typedrawers.com/discussion/comment/18274 516 | description: A discussion on TypeDrawers. 517 | - name: Maintaining Contrast and Weight across Upright and Italics 518 | url: https://typedrawers.com/discussion/comment/59107 519 | description: A discussion on TypeDrawers. 520 | - name: Why are italics lighter than their upright counterparts? 521 | url: https://typedrawers.com/discussion/1106/why-are-italics-lighter-than-their-upright-counterparts 522 | description: A discussion on TypeDrawers. 523 | - name: Easy oblique 524 | url: https://glyphsapp.com/learn/easy-oblique 525 | description: Glyphs tutorial by Rainer Erich Scheichelbauer. 526 | - name: Cyrillic 527 | items: 528 | - name: Cyrillic script variations and the importance of localisation 529 | url: https://www.fontsmith.com/blog/2016/10/12/cyrillic-script-variations-and-the-importance-of-localisation 530 | description: by Krista Radoeva 531 | - name: Cyrillic local forms 532 | url: https://localfonts.eu/typography-basics/fonts-the-importance-of-localisation/local-features/cyrillic-local-forms/ 533 | description: by Maria Doreuli 534 | - name: Cyrillicsly 535 | url: https://twitter.com/cyrillicsly 536 | description: workshops for learning Cyrillic type design 537 | - name: Extending Cyrillic (and later Latin) character sets 538 | url: https://blog.typekit.com/2006/08/01/defining_an_ext/ 539 | description: by Thomas Phinney 540 | - name: How to design Cyrillic letters Њ (Nje), Љ (Lje), Ћ (Tshe), and Ђ (Dje) 541 | url: https://uxdesign.cc/design-guides-for-cyrillic-letter-%D1%9A-nje-how-to-design-cyrillic-letters-%D1%9A-nje-%D1%99-lje-%D1%9B-tshe-f9b565a477cc 542 | description: An article by Igor Petrovic on localizing your glyphs for Serbian and Macedonian Cyrillic. 543 | - name: Some comments regarding Cyrillic glyphs 544 | url: https://github.com/CatharsisFonts/Cormorant/issues/14 545 | description: a lengthy GitHub issues discussion on Cyrillic glyphs in Catharsis Fonts' open-source typeface Cormorant 546 | - name: The relatively easy way to find out the quality of a Cyrillic typeface 547 | url: https://leksandra.livejournal.com/115861.html 548 | description: by Alexandra Korolkova 549 | - name: Cyrillic's links 550 | url: https://docs.google.com/document/d/1Pt-Hi_jeF0D7PlT4E7ib7oa2sKg9tazhOYuAl3hZKE8/edit?usp=sharing 551 | description: a collection of links to many online Cyrillic type samples and inspirations, by [Vika and Vita](https://vikavita.com/) 552 | - name: Greek 553 | items: 554 | - name: Greek type design 555 | url: https://leonidas.net/greek-type-design/ 556 | description: by Gerry Leonidas 557 | - name: "Polytonic Greek: a guide for type designers" 558 | url: https://github.com/irenevl/Polytonic-tutorial 559 | description: by Irene Vlachou 560 | - name: Hebrew 561 | items: 562 | - name: Some guidelines and recommendations for the design of a Hebrew book typeface 563 | url: https://issuu.com/gerryleonidas/docs/2003_dissertation_adistern 564 | description: MA dissertation by Adi Stern 565 | - name: Canadian Syllabics 566 | items: 567 | - name: Lava Syllabics type specimen [PDF] 568 | url: https://www.typotheque.com/fonts/lava/syllabics/getpdf 569 | description: A well-researched and invaluable look at the process behind designing a Canadian Syllabics typeface, which includes many special features to support a wide range of local preferences for languages that use this script. 570 | - name: Math symbols 571 | items: 572 | - name: Fonts for Mathematics 573 | url: http://www.typoma.com/publ/20041002-atypi.pdf, presentation slides by Johannes Küster at ATypI 2004 in Prague [Mirror](https://web.archive.org/web/20201007161310/http://www.typoma.com/publ/20041002-atypi.pdf) 574 | - name: Mathematical symbols contrasted or not? 575 | url: https://typedrawers.com/discussion/2965/mathematical-symbols-contrasted-or-not 576 | description: discussion on TypeDrawers 577 | - name: Maths glyphs in a non-maths font? 578 | url: https://typedrawers.com/discussion/1649/maths-glyphs-in-a-non-maths-font/p1 579 | description: discussion on TypeDrawers 580 | - name: Math symbols for Latin 1 581 | url: https://docs.microsoft.com/en-us/typography/develop/character-design-standards/math 582 | description: from Microsoft's *Character design standards* 583 | - name: Box drawing characters 584 | items: 585 | - name: boxDrawing.py 586 | url: https://github.com/adobe-type-tools/box-drawing 587 | description: Script for generating box drawing characters and block elements 588 | - name: OpenType feature programming 589 | items: 590 | - name: Fonts and Layout for Global Scripts 591 | url: https://simoncozens.github.io/fonts-and-layout/ 592 | description: An introduction to Unicode, the OpenType font format, and OpenType feature programming, by Simon Cozens. 593 | - name: The OpenType Cookbook 594 | url: http://opentypecookbook.com/ 595 | description: Learn to code your own OpenType features with Tal Leming. 596 | - name: OpenType Feature File specification 597 | url: https://adobe-type-tools.github.io/afdko/OpenTypeFeatureFileSpecification.html 598 | description: Technical specification for the OpenType programming language. 599 | - name: Language support 600 | description: "Determining the true language support of a font is a complex problem that has not yet been completely solved. Most of these tools will simply report which languages a font *seems* to support, based solely on its character set, but some tools like Hyperglot and Shaperglot will also check OpenType features for some languages that require the use of them." 601 | items: 602 | - name: CharSet Checker 603 | url: https://www.alphabet-type.com/tools/charset-checker/ 604 | description: and [CharSet Builder](https://www.alphabet-type.com/tools/charset-builder/) by Alphabet Type 605 | - name: FontDrop 606 | url: https://fontdrop.info/ 607 | - name: Hyperglot 608 | url: https://hyperglot.rosettatype.com/ 609 | description: by Rosetta Type. This is by far the most well-researched tool for checking language support. Hyperglot is available as a command line tool and a web interface. The command-line tool also checks OpenType support for some languages that require the use of OpenType features. 610 | links: 611 | - name: Web interface 612 | url: https://hyperglot.rosettatype.com/ 613 | - name: Github repo 614 | url: https://github.com/rosettatype/hyperglot 615 | - name: Shaperglot 616 | url: https://github.com/googlefonts/shaperglot 617 | description: A Python library by Simon Cozens for testing a font's language support. It also checks the behaviour of a font's OpenType features in order to confirm support for languages that require the use of OpenType features. 618 | - name: Pyfontaine 619 | url: https://github.com/googlefonts/pyfontaine 620 | description: by Google Fonts 621 | - name: Validate 622 | url: https://underware.nl/latin_plus/validate/ 623 | description: by Underware 624 | - name: Wakamai Fondue 625 | url: http://wakamaifondue.com/ 626 | - name: Standardized character sets 627 | items: 628 | - name: Adobe Latin Character Sets 629 | url: https://github.com/adobe-type-tools/adobe-latin-charsets 630 | - name: Google Fonts Glyph Sets 631 | url: https://github.com/googlefonts/glyphsets 632 | - name: Koeberlin Latin Character Sets 633 | url: https://github.com/koeberlin/Latin-Character-Sets 634 | - name: Underware Latin Plus 635 | url: https://underware.nl/latin_plus/info 636 | description: Latin character set by Underware that offers decent language support with a relatively small character set. 637 | - name: Encoding borders and ornaments 638 | items: 639 | - name: "'ornm' feature" 640 | url: https://docs.microsoft.com/en-us/typography/opentype/spec/features_ko#tag-ornm 641 | description: Microsoft OpenType spec 642 | - name: Ornaments and Unicode 643 | url: https://typedrawers.com/discussion/1156/ornaments-and-unicode/p1 644 | description: discussion on TypeDrawers 645 | - name: "Border Ornaments and their implementation: questions & answers." 646 | url: https://typedrawers.com/discussion/3799/border-ornaments-and-their-implementation-questions-answers 647 | description: discussion on TypeDrawers 648 | - name: Python and coding 649 | subcategories: 650 | - name: Learn Python with DrawBot 651 | description: "[DrawBot](https://drawbot.com/) is a free macOS app that allows you to draw graphics and typography with Python. It's one of the best ways for a type designer or graphic designer to start learning Python." 652 | items: 653 | - name: Python for Designers 654 | url: https://pythonfordesigners.com/ 655 | description: tutorial series by Roberto Arista 656 | - name: Getting Started with DrawBot 657 | url: https://learn.adafruit.com/getting-started-with-drawbot?view=all 658 | description: tutorial by Andy Clymer 659 | - name: Getting started with parametric design in DrawBot 660 | url: https://www.typefloundry.com/getting-started-with-drawbot/ 661 | description: 3-part tutorial series by Stephen Nixon 662 | - name: Animation tutorial screencast 663 | url: https://forum.drawbot.com/topic/5/animation-tutorial-screencast 664 | description: by Just van Rossum 665 | - name: "DrawBot: Drawing with Python" 666 | url: https://www.youtube.com/watch?v=h5h6NXC8ZoY 667 | description: by David Jonathan Ross (workshop recording) 668 | - name: Python for Visual Designers 669 | url: http://coopertype.org/event/python_for_visual_designers_sp23 670 | description: Type@Cooper course with David Jonathan Ross 671 | - name: Python scripting in Glyphs 672 | description: Learn from Glyphs' official tutorials, and from open-source scripts developed by other type designers. 673 | items: 674 | - name: Scripting Glyphs 675 | url: https://glyphsapp.com/learn/scripting-glyphs-part-1 676 | description: official tutorials from Glyphs 677 | - name: Glyphs 3 Python API 678 | url: https://docu.glyphsapp.com/ 679 | description: documentation 680 | - name: Glyphs scripts 681 | url: https://github.com/mekkablue/Glyphs-Scripts 682 | description: "by Rainer Scheichelbauer (aka mekkablue) of the Glyphs team. This repo contains many useful tools and code examples to help you write your own scripts.\n\nThere are many more repos of Glyphs scripts by type designers and developers:" 683 | links: 684 | - name: Alex Slobzheninov 685 | url: https://github.com/slobzheninov/Glyphs-Scripts 686 | - name: Erik Moberg 687 | url: https://github.com/TypeNurse/Glyphs-Scripts 688 | - name: Federico Parra Barrios 689 | url: https://github.com/FEDER-CO/Glyphs-Scripts 690 | - name: Filipe Negrão 691 | url: https://github.com/filipenegrao/glyphsapp-scripts 692 | - name: Guido Ferreyra 693 | url: https://github.com/guidoferreyra/Glyphs-Scripts 694 | - name: Henrique Beier 695 | url: https://github.com/harbortype/glyphs-scripts 696 | - name: Hugo Jourdan 697 | url: https://github.com/HugoJourdan/Glyphs-Script 698 | - name: Jens Kutilek 699 | url: https://github.com/jenskutilek/Glyphs-Scripts 700 | - name: Jeremy Tribby 701 | url: https://github.com/jpt/font-scripts/ 702 | - name: Juan Pablo del Peral and Andrés Torresi 703 | url: https://github.com/huertatipografica/huertatipografica-scripts 704 | - name: Kyle Benson 705 | url: https://github.com/kylewaynebenson/Glyphs-Scripts 706 | - name: Luke Prowse 707 | url: https://github.com/NaN-xyz/GlyphsApp-Scripts 708 | - name: Pedro Arilla 709 | url: https://github.com/pedroarilla/glyphs-scripts 710 | - name: Simon Cozens 711 | url: https://github.com/simoncozens/GlyphsScripts 712 | - name: Tosche Omagari 713 | url: https://github.com/Tosche/Glyphs-Scripts 714 | - name: Wei Huang 715 | url: https://github.com/weiweihuanghuang/wei-glyphs-scripts 716 | - name: Yanone 717 | url: https://github.com/yanone/Yanone-GlyphsApp-Scripts 718 | - name: Python Scripting for Type Design 719 | url: https://pnowell.com/python-type-design 720 | description: A workshop by Peter Nowell for type designers working in Glyphs or RoboFont with little to no coding experience. 721 | - name: Python scripting and extensions in RoboFont 722 | description: Learn from RoboFont’s official tutorials, and from open-source scripts developed by other type designers. 723 | items: 724 | - name: RoboFont documentation 725 | url: https://robofont.com/documentation/ 726 | - name: RoboFont community Discord channel 727 | url: https://discord.gg/fbRmAFyZar 728 | - name: RoboFont mechanic 729 | url: https://robofontmechanic.com/ 730 | description: Extension manager for RoboFont 731 | - name: RoboFont Script Database 732 | url: https://docs.google.com/spreadsheets/d/1uyeZXfwLe-vs1YmIDQvQwDBjTQohCd9dbRN2WqGJQf8/ 733 | description: Spreadsheet by Ryan Bugden of useful extensions not in Mechanic. 734 | - name: Python Scripting for Type Design 735 | url: https://pnowell.com/python-type-design 736 | description: A workshop by Peter Nowell for type designers working in Glyphs or RoboFont with little to no coding experience. 737 | - name: Git and version control 738 | items: 739 | - name: Git for Type Designers 740 | url: https://github.com/frankrolf/git-for-type-designers 741 | description: by Frank Grießhammer 742 | - name: Hinting 743 | items: 744 | - name: How to hint variable fonts 745 | url: https://googlefonts.github.io/how-to-hint-variable-fonts/ 746 | description: by Michael Duggan 747 | - name: Kerning tools 748 | items: 749 | - name: BubbleKern 750 | url: https://github.com/Tosche/BubbleKern 751 | description: by Toshi Omagari 752 | - name: Hands, Face, Space! 753 | url: https://gist.github.com/simoncozens/03da7e5ad7f52af711948ed52a797e23 754 | description: by Simon Cozens 755 | - name: HTLetterspacer 756 | url: https://github.com/huertatipografica/HTLetterspacer 757 | description: by Huerta Tipográfica 758 | - name: Kern-a-lytics 759 | url: https://github.com/adobe-type-tools/kernalytics-rf-ext 760 | description: by Frank Grießhammer [[live demo @ Robothon 2018](https://www.facebook.com/RoyalAcademyKABK/videos/1614287785322531)] 761 | - name: kerncritic 762 | url: https://github.com/simoncozens/atokern 763 | description: by Simon Cozens 764 | - name: Kern On 765 | url: https://kern-on.com/ 766 | description: by Tim Ahrens 767 | - name: MetricsMachine 768 | url: https://extensionstore.robofont.com/extensions/metricsMachine/ 769 | description: by Tal Leming 770 | - name: Proofing tools 771 | subcategories: 772 | - name: Font proofing software 773 | items: 774 | - name: Font Goggles 775 | url: https://fontgoggles.org/ 776 | description: by Just van Rossum, a macOS desktop font viewer for testing fonts, specifically text shaping and variation behavior. 777 | - name: Font Proofer 778 | url: https://fontproofer.com/ 779 | description: A commercial app for proofing fonts, by Peter Nowell. Integrates with Glyphs and RoboFont, allowing you to re-generate proofs anytime with a single click. 780 | - name: drawBotProofing 781 | url: https://github.com/adobe-type-tools/drawBotProofing 782 | description: A set of scripts for generating PDF proofs from a fonts or UFOs, by Frank Grießhammer. 783 | - name: Printer recommendations 784 | description: Discussions by type designers on printers they use for proofing type. 785 | items: 786 | - name: Twitter threads 787 | description: 788 | links: 789 | - name: 2023 790 | url: https://twitter.com/kaja_slojewska/status/1659265175038435343 791 | - name: 2023 792 | url: https://twitter.com/keyavadgama/status/1625959288643657730 793 | - name: 2022 794 | url: https://twitter.com/tulseytype/status/1533931491511656448 795 | - name: 2021 796 | url: https://twitter.com/mttymtt/status/1395395411830005766 797 | - name: 2017 798 | url: https://twitter.com/connordavenpo/status/881524083736940544 799 | - name: 2016 800 | url: https://twitter.com/rileycran/status/755086057599700992 801 | - name: 2013 802 | url: https://twitter.com/fostertype/status/306607673527382019 803 | - name: TypeDrawers threads 804 | links: 805 | - name: 2020 806 | url: https://typedrawers.com/discussion/3560/printer-for-proofing 807 | - name: 2016 808 | url: https://typedrawers.com/discussion/1917/not-too-expensive-printer-for-testing-font-printing 809 | - name: 2015 810 | url: https://typedrawers.com/discussion/896/printer-for-type-design-proofing 811 | - name: 2013–2022 812 | url: https://typedrawers.com/discussion/314/printer-recommendations-for-proofing/p1 813 | - name: Web-based proofing and testing 814 | description: There are a wide range of browser-based tools that you can drop your work-in-progress font into to test it. Most of these tools process your font using a client-side library like OpenType.js, which means your font is not uploaded to any server. 815 | items: 816 | - name: Axis Praxis 817 | url: https://www.axis-praxis.org/ 818 | description: A playground for testing variable fonts. Made by Laurence Penney. 819 | - name: Bulletproof Font Tester 820 | url: https://bulletproof.italic.space/ 821 | description: by Adam Jagosz 822 | - name: Coverslip 823 | url: https://simoncozens.github.io/coverslip/ 824 | description: by Simon Cozens 825 | - name: Crowbar 826 | url: http://corvelsoftware.co.uk/crowbar/ 827 | - name: Dinamo Font Gauntlet 828 | url: https://dinamodarkroom.com/gauntlet/ 829 | description: A tool for proofing and animating variable fonts. 830 | - name: Impallari Type Font Testing Page 831 | url: https://impallari.com/testing/ 832 | description: by Pablo Impallari 833 | links: 834 | - name: Github source 835 | url: https://github.com/impallari/font-testing-page 836 | - name: Mirror 1 837 | url: http://www.cyreal.org/Font-Testing-Page/ 838 | - name: Mirror 2 839 | url: http://www.rosaliewagner.com/font-testing/ 840 | - name: Mirror 3 841 | url: http://www.idc.iitb.ac.in/~girish/test/ 842 | - name: Mirror 4 843 | url: https://oketz.com/testing/ 844 | - name: Mirror 5 845 | url: https://snapbuilder.com/tools/font_testing_page/ 846 | - name: Mota Italic Font Testing Page 847 | url: https://www.motaitalic.com/tools/font-tester/latin/ 848 | description: A modified version, by Mota Italic, of Pablo Impallari's Font Testing Page. See also the [Devanagari](https://www.motaitalic.com/tools/devanagari-font-tester/) and [Hebrew](https://www.motaitalic.com/tools/font-tester/hebrew/) versions. 849 | - name: FontDrop 850 | url: https://fontdrop.info/ 851 | description: by Viktor and Clemens Nübel 852 | - name: Galvanized Jets 853 | url: http://www.galvanizedjets.com/ 854 | description: by Samarskaya & Partners 855 | - name: Samsa Variable Font Inspector 856 | url: https://www.axis-praxis.org/samsa/ 857 | description: by Laurence Penney 858 | - name: Validate 859 | url: https://underware.nl/latin_plus/validate/ 860 | description: by Underware 861 | - name: TN Type Tools 862 | url: https://typetools.typenetwork.com/ 863 | description: A set of layout tools for experimenting with variable fonts in various ways. Made by Font Bureau, when it was part of Type Network, to develop the first Decovar and Amstelvar variable fonts in 2016; deprecated by VideoProof and then TypeRoof. 864 | links: 865 | - name: Github source 866 | url: https://github.com/FontBureau/variable-type-tools/ 867 | - name: FB VideoProof 868 | url: https://videoproof.appspot.com 869 | description: Proof large design space variable fonts by animating through instance locations as keyframes. Made by Font Bureau, to develop Roboto Flex and the full Amstelvar Roman and Italic avar1 fonts, 2019-2022; deprecated by TypeRoof. 870 | links: 871 | - name: Github source 872 | url: https://github.com/FontBureau/videoproof/ 873 | - name: FB TypeRoof 874 | url: https://https://fontbureau.github.io/TypeRoof/ 875 | description: Proof large design space variable fonts by animating through instance locations as keyframes on 'stages'. Made by Font Bureau, to develop Roboto Delta and the full Amstelvar Roman and Italic avar 2 fonts, since 2023. 876 | links: 877 | - name: Github source 878 | url: https://github.com/FontBureau/TypeRoof 879 | - name: Variable Font Playground 880 | url: https://github.com/imohanvadivel/variable-font-playground 881 | - name: Wakamai Fondue 882 | url: http://wakamaifondue.com/ 883 | description: by Roel Nieskens 884 | - name: Waterfall 885 | url: https://workshop.mass-driver.com/waterfall 886 | description: A tool by Mass-Driver that generates words of equal length after you drop in a font. Great for proofing in early stages of a font, when you're still seeing how the forms interact with each other. 887 | - name: Stack & Justify 888 | url: https://max-esnee.com/stack-and-justify/ 889 | description: Stack & Justify is a tool to help create type specimens by finding words or phrases of the same width. Inspired by Mass-Driver’s Waterfall tool. 890 | - name: Proofing texts 891 | items: 892 | - name: adhesiontext 893 | url: https://adhesiontext.com/ 894 | description: by Miguel Sousa 895 | - name: Hoefler&Co Universal proofing text 896 | url: https://github.com/hoeflerco/proofs 897 | description: by Jonathan Hoefler 898 | - name: Just Another Test Text Generator 899 | url: https://justanotherfoundry.com/generator 900 | description: by Tim Ahrens 901 | links: 902 | - name: Github source 903 | url: https://github.com/justanotherfoundry/text-generator 904 | - name: Vietnamese and Pinyin proofing text 905 | url: https://typedrawers.com/discussion/1952/vietnamese-and-pinyin-proofing-text 906 | description: discussion on TypeDrawers 907 | - name: Wordtips Word Finder 908 | url: https://word.tips/ 909 | description: Handy tool for finding words that contain certain letter combinations, to help you build proofing texts for kerning and ligatures. 910 | - name: Font engineering 911 | description: "Font engineering is the technical side of making font files that work as intended on a wide range of systems." 912 | subcategories: 913 | - name: What is font engineering? 914 | items: 915 | - name: Font engineering and the importance of what you can't see. 916 | url: https://www.monotype.com/resources/expertise/font-engineering-explained 917 | description: by Tom Rickner 918 | - name: Font Engineering with Rainer Erich Scheichelbauer 919 | url: https://ilovetypography.com/academy/font-engineering/ 920 | description: A course from ILT Academy that will introduce you to font engineering. 921 | - name: Practical Font Engineering with Elí Castellanos 922 | url: https://tipastype.com/font-engineering/ 923 | description: A course from Tipastype 924 | - name: "Font Engineering: Defining a Profession" 925 | url: https://www.youtube.com/watch?v=5aIYHYX4Dvc 926 | description: A presentation by Rosalie Wagner for ATypI 2022 Tech Talks 927 | - name: Font Engineering resources needed 928 | url: https://typedrawers.com/discussion/4027/font-engineering-resources-needed 929 | description: Discussion on TypeDrawers 930 | - name: Fonts and Layout for Global Scripts 931 | url: https://simoncozens.github.io/fonts-and-layout/ 932 | description: A free book about font design, Unicode and the computer processing of complex text, by Simon Cozens. 933 | - name: The Raster Tragedy at Low-Resolution Revisited 934 | url: http://rastertragedy.com/ 935 | description: An essay on the problems of rendering text on-screen, with a focus on hinting. Updated several times since it was originally presented in 1997, this essay is considered required reading by many accomplished type designers. 936 | - name: Make Your Fonts Work in… 937 | url: https://www.youtube.com/watch?v=wmT4LfcIP5Q 938 | description: A presentation on font engineering by Rainer Erich Scheichelbauer of Glyphs, at ATypI Tech Talks 2022. 939 | - name: Font Engineering 940 | url: https://www.alphabet-type.com/fontengineering/ 941 | description: An overview of Alphabet Type's font engineering workflow, including links to more resources on each topic. 942 | - name: Tools for font engineering 943 | items: 944 | - name: Fontbakery 945 | url: https://github.com/fonttools/fontbakery 946 | description: A quality-assurance tool for fonts, developed by Google but used by many foundries. Primarily a command-line tool, a web interface was recently added. 947 | links: 948 | - name: Github source 949 | url: https://github.com/fonttools/fontbakery 950 | - name: Web interface 951 | url: http://fontbakery.com/ 952 | - name: Font engineering tools 953 | url: https://github.com/simoncozens/font-engineering 954 | description: A collection of font engineering utilities by Simon Cozens 955 | - name: Microsoft Typography Docs 956 | url: https://learn.microsoft.com/en-us/typography/ 957 | description: A collection of resources for font engineering, including the OpenType specification, and various other articles and tools. 958 | - name: fontTools (& ttx) 959 | url: https://github.com/fonttools/fonttools 960 | description: An indispensible toolkit for editing fonts via Python. Also includes ttx, a command line tool that quickly converts binary font files to human-readable XML, which can also be edited and converted back to binary. 961 | - name: FontTableViewer 962 | url: https://glyphsapp.com/tools/fonttableviewer 963 | description: A simple app to view and compare the OpenType tables inside of your font files. 964 | - name: DTL OTMaster 965 | url: https://www.fontmaster.nl/otmaster.html 966 | description: A dedicated app for font engineering that allows you to perform a wide range of proof tests, QA checks, and edits to your font files. 967 | - name: VerticalMetricsTools 968 | url: https://github.com/mathieureguer/VerticalMetricsTools 969 | description: Managing vertical metrics is one of the most common font engineering problems. This set of Python tools includes a command line tool which generates a PDF to preview the vertical metrics of a font. 970 | - name: FontDev 971 | url: https://fontdev.app/ 972 | description: A web-based tool for viewing and editing the internal tables of a binary font file. Runs entirely in your browser, without uploading your font files to any server. By Olli Meier. 973 | - name: Type specimens 974 | description: "Type specimens are the original marketing tool for type foundries, going back hundreds of years. Today, many type foundries still design a PDF specimen (and sometimes printed copies) for each typeface release, to complement the web specimen.\n\nSee also: [Web specimen tools](#web-specimen-tools)" 975 | items: 976 | - name: DeliverGlyphs in InDesign 977 | url: https://le-blog.jloupf.fr/indesign/scripts/deliverglyphs-importer-rapidement-tous-les-glyphes-dune-police 978 | description: by Jean loup Fusz, InDesign script to list all glyphs in a font (site in French) 979 | - name: Specimen Builder 980 | url: https://github.com/markboulton/specimen-builder-print 981 | description: by Mark Boulton 982 | - name: SpecimenDropper 983 | url: https://github.com/AlphabetType/SpecimenDropper 984 | description: by Alphabet Type 985 | - name: Text Fitting in InDesign 986 | url: http://in-tools.com/article/scripts-blog/fun-with-text-fitting-in-indesign/ 987 | description: by In-Tools 988 | - name: Type Specimens 989 | url: https://typespecimens.xyz/ 990 | description: A research project by Mark Boulton about type specimens. 991 | subcategories: 992 | - name: Historic type specimens 993 | items: 994 | - name: Online Archive of Type Specimens 995 | url: https://oa.letterformarchive.org/?dims=Format&vals0=Type%20Specimen&friendly0=Type%20Specimen&sortby=decade 996 | description: by Letterform Archive 997 | - name: Specimen Books of Metal & Wood Type 998 | url: https://library.typographica.org/specimen-books-of-metal-wood-type 999 | description: A directory by Typographica of type foundry catalogs available online 1000 | - name: "Mad, Bad (but Good to Know): A survey of type specimens offline and online" 1001 | url: https://www.paulshawletterdesign.com/2023/02/mad-bad-but-good-to-know-a-survey-of-type-specimens-offline-and-online/ 1002 | description: by Paul Shaw 1003 | - name: Resources on the history of type specimens 1004 | url: https://twitter.com/HoeflerCo/status/1304801378628513792 1005 | description: Twitter thread by Hoefler&Co, a list of books 1006 | - name: Naming your font 1007 | items: 1008 | - name: Typeface name check 1009 | url: https://namecheck.fontdata.com/ 1010 | description: Use this tool by Lars Schwarz to check if your font name might already be taken. 1011 | - name: WoLiBaFoNaGen 1012 | url: https://github.com/jenskutilek/WoLiBaFoNaGen 1013 | description: WordListBasedFontNameGenerator, an app by Jens Kutilek. 1014 | data: 1015 | - macOS 1016 | - Windows 1017 | - name: Open-source your fonts 1018 | items: 1019 | - name: SIL Open Font License 1020 | url: https://scripts.sil.org/OFL 1021 | description: The most common open-source license used for fonts. Required if you want to add your fonts to the Google Fonts library. 1022 | - name: Google Fonts 1023 | url: https://fonts.google.com/ 1024 | description: Used by millions of websites, it's the world's largest repository of high-quality open-source fonts. Google Fonts has also funded the development of many open-source fonts. 1025 | links: 1026 | - name: Google Fonts Contribution Guide 1027 | url: https://googlefonts.github.io/gf-guide/ 1028 | subcategories: 1029 | - name: Open source type foundries 1030 | description: Foundries that primarily release open-source fonts 1031 | items: 1032 | - name: Velvetyne 1033 | url: https://velvetyne.fr/ 1034 | - name: The League of Moveable Type 1035 | url: https://www.theleagueofmoveabletype.com/ 1036 | description: The O.G. of open-source foundries 1037 | - name: Tunera 1038 | url: https://www.tunera.xyz/ 1039 | - name: Collletttivo 1040 | url: https://www.collletttivo.it/ 1041 | - name: Selling your fonts 1042 | subcategories: 1043 | - name: Marketplaces & distributors 1044 | items: 1045 | - name: Monotype 1046 | url: https://www.monotype.com/ 1047 | description: Sell your fonts through MyFonts, FontShop, Linotype.com, Fonts.com, etc. Royalty rate 50%. 1048 | links: 1049 | - name: Getting started 1050 | url: https://foundrysupport.monotype.com/hc/en-us/articles/360028863311-Get-Started 1051 | - name: Fontspring 1052 | url: https://fontspring.com/ 1053 | description: Formerly known as the world's largest independent font marketplace, Fontspring is now owned by Creative Market, and has since reduced royalty rates from 70% to 50%. 1054 | links: 1055 | - name: Foundry Signup 1056 | url: https://www.fontspring.com/account/foundries/info 1057 | - name: Fontstand 1058 | url: https://fontstand.com/ 1059 | description: Font rentals distributor. 50% royalty rate. 1060 | links: 1061 | - name: Foundry Signup 1062 | url: https://www.fontspring.com/account/foundries/info 1063 | - name: Adobe Fonts 1064 | url: https://fonts.adobe.com/ 1065 | description: Anyone with an Adobe Creative Cloud subscription can use your fonts, and you get paid based on usage. 1066 | - name: Creative Market 1067 | url: https://creativemarket.com/ 1068 | description: A marketplace for all types of creative assets, including fonts. Seems to be geared more toward hobbyists and freelancers rather than companies. Royalty rate 50%. 1069 | links: 1070 | - name: Open a Shop 1071 | url: https://creativemarket.com/sell 1072 | - name: Type Network 1073 | url: https://typenetwork.com/ 1074 | description: A network that distributes for many of the world's best type designers. 1075 | - name: I Love Typography 1076 | url: https://fonts.ilovetypography.com/ 1077 | description: A new distributor with a large roster of some of the best indie type foundries. 1078 | - name: YouWorkForThem 1079 | url: https://www.youworkforthem.com/ 1080 | description: Opened in 2001, it's one of the longest-running marketplaces for fonts and stock assets. 1081 | links: 1082 | - name: Submissions 1083 | url: https://www.youworkforthem.com/submissions 1084 | - name: Learn about licensing 1085 | items: 1086 | - name: Type Right 1087 | url: http://www.typeright.org/ 1088 | - name: Why don’t EULA’ve me? 1089 | url: https://www.youtube.com/watch?v=3qVJCs-y39I 1090 | description: ATypI presentation by Joyce Ketterer, Font Licensing Expert 1091 | - name: Why Addenda? 1092 | url: https://www.youtube.com/watch?v=1fN9_KYfoaQ 1093 | description: ATypI presentation by Joyce Ketterer, Font Licensing Expert 1094 | - name: Three Ways to Improve Your EULA 1095 | url: https://medium.com/type-thursday/three-ways-to-improve-your-eula-4cdb7c2515e8 1096 | description: Thomas Jockin interviews Joyce Ketterer for TypeThursday 1097 | - name: 15 Things I Learned from Joyce Ketterer about EULAs 1098 | url: https://alexjohnlucas.com/type/joyceketterer 1099 | description: by Alex John Lucas 1100 | - name: Exploring End User Licensing Agreements 1101 | url: https://alexjohnlucas.com/type/eula 1102 | description: by Alex John Lucas 1103 | - name: XYZ Type – Foundry Documents 1104 | url: https://github.com/XYZ-Type/Foundry_Documents 1105 | description: A collection of documents (EULA and business documents) from XYZ Type, provided under Creative Commons CC0 license. 1106 | - name: Criticising the status quo 1107 | items: 1108 | - name: Licenses to Heal 1109 | url: http://www.revue-backoffice.com/en/issues/01-making-do-making-with/frank-adebiaye-licenses-to-heal 1110 | description: by Frank Adebiaye 1111 | - name: Font licensing is ill, please help heal it 1112 | url: https://fontsarena.com/blog/font-licensing-is-ill-please-help-heal-it/ 1113 | description: by Alina Sava 1114 | - name: Developers, IT, and tech people criticising font licenses 1115 | description: Comments on HackerNews 1116 | url: https://news.ycombinator.com/item?id=26441594 1117 | - name: A rant on web font licenses 1118 | description: Blog post by web developer Manuel Moreale. It's a good summary of how some web developers feel about web font licenses, but far more interesting is the [comments thread on HackerNews](https://news.ycombinator.com/item?id=35095393). 1119 | url: https://manuelmoreale.com/a-rant-on-web-font-licenses 1120 | - name: "Innovative licensing: pricing based on company size" 1121 | items: 1122 | - name: ABC Dinamo 1123 | url: https://abcdinamo.com/news/about-our-pricing 1124 | - name: Mass-Driver 1125 | url: https://mass-driver.com/licensing 1126 | - name: Newlyn 1127 | url: https://newlyn.com/licensing 1128 | - name: Production Type 1129 | url: https://licensing.productiontype.com/ 1130 | - name: "Innovative licensing: all-in-one licenses" 1131 | description: Desktop/web/ebook/app combined into a single license. 1132 | items: 1133 | - name: Swiss Typefaces 1134 | url: https://www.swisstypefaces.com/ 1135 | description: probably one of the first to do this? 1136 | - name: Fontwerk 1137 | url: https://fontwerk.com/ 1138 | - name: New Glyph 1139 | url: https://beta.newglyph.com/licence/ 1140 | - name: DJR 1141 | url: https://djr.com/ 1142 | - name: Tiny Type Co 1143 | url: https://tinytype.co/ 1144 | - name: Alanna Munro 1145 | url: http://alannamunro.com/ 1146 | - name: License enforcement 1147 | items: 1148 | - name: FontRadar 1149 | url: https://www.fontradar.com/ 1150 | description: Crawls the web to help you find and correct authorized and unauthorized usage of your fonts. 1151 | - name: Starting a foundry 1152 | description: Thinking about starting a foundry, or setting up a website to support your shop? Here are some tools that might come in handy. 1153 | subcategories: 1154 | - name: Running a type foundry 1155 | items: 1156 | - name: Type Foundries Today 1157 | url: https://census.typographica.org/ 1158 | description: A 2013 census and report on the state of type foundries, published by Typographica. 1159 | - name: Ohno Radio 1160 | url: https://ohnotype.co/info/ohno-radio 1161 | description: A podcast hosted by James Edmondson, where he chats with type designers and often discusses what it's like to run a foundry. 1162 | - name: Starting Your Own Type Foundry 1163 | url: https://medium.com/type-thursday/starting-your-own-type-foundry-1ef7c768308a 1164 | description: Ulrik Hogrebe (TypeThursday) talks with Jesse Ragan and Ben Kiel about starting their new type foundry. 1165 | - name: "Starting a type foundry 101: a checklist" 1166 | url: https://www.youtube.com/watch?v=j9EDHxHgc2A 1167 | description: A presentation at ATypI 2016 by Jean-Baptiste Levée. 1168 | - name: Why did I start a type foundry? 1169 | url: https://ilovetypography.com/2010/05/06/why-did-i-start-a-type-foundry/ 1170 | description: by Christian Schwartz 1171 | - name: Type Foundry Survey 1172 | url: https://abcdinamo.com/news/type-foundry-survey-1 1173 | description: Dinamo talks with 15 type foundry owners in 2022. 1174 | - name: Is it realistic to want to start up a type foundry? 1175 | url: https://www.quora.com/Is-it-realistic-to-want-to-start-up-a-type-foundry 1176 | description: A Quora post with answers from several well-known type designers and foundry owners. 1177 | - name: "Taking Your Fonts to Market: Foundry, Reseller, or Go Solo?" 1178 | url: https://typographica.org/on-typography/taking-your-fonts-to-market-foundry-reseller-or-go-solo/ 1179 | description: by Stephen Coles for Typographica. 1180 | - name: 2022 Annual Report & Almanac 1181 | url: https://proofco.gumroad.com/ 1182 | description: Statistics, facts and data from 2022 in the world of independent type foundries, by [Proof&Co](https://proofco.xyz/). 1183 | - name: The Autobiography of an Independent Type Foundry 1184 | url: https://www.adobe.com/max/2022/sessions/na-the-autobiography-of-an-independent-type-found-s301.html 1185 | description: Presentation by James Edmondson of OHno Type Co at Adobe Max 2022. 1186 | - name: Type foundry directories 1187 | items: 1188 | - name: Type Foundries Archive 1189 | offline: true 1190 | url: https://type-foundries-archive.com/ 1191 | links: 1192 | - name: Archived copy 1193 | url: https://web.archive.org/web/20220829055903/https://type-foundries-archive.com/ 1194 | - name: Type Foundry Directory 1195 | url: https://typefoundry.directory/ 1196 | description: by Matthew Smith (also available as a [spreadsheet](https://airtable.com/shrFnmJDFKQuik6Ju/tblOOfWzc1JT33c6k/viw3GySxCmxqD37GN)) 1197 | - name: Type Foundry Index 1198 | url: https://type.lol/ 1199 | - name: E-commerce platforms 1200 | items: 1201 | - name: Fontdue 1202 | url: https://www.fontdue.com/ 1203 | description: Developed by [Tom Conroy](http://tom.conroy.com.au/) and currently used by many type foundries. 1204 | - name: FoundryCore 1205 | url: https://foundrycore.tipografia.com.ar/ 1206 | description: Developed by Guido Ferreyra and is currently used by foundries like [Blackletra Type Foundry](https://blackletra.com/), [Blaze Type](https://blazetype.eu/), and [Undercase Type](https://undercase.xyz/). 1207 | - name: Lttr Shop 1208 | url: https://www.lttrshop.com/ 1209 | description: "Developed by Filip Paldia and currently used by foundries like [DizajnDesign](https://www.dizajndesign.sk/) and [Setup Type](https://www.setuptype.com)." 1210 | - name: Discussion on e-commerce platforms for type foundries 1211 | url: https://typedrawers.com/discussion/1679/e-commerce-platform-recommendations 1212 | description: TypeDrawers 1213 | - name: Gumroad 1214 | url: https://gumroad.com/ 1215 | description: A large e-commerce platform for creatives to sell digital products. Used by [Delve Fonts](https://delvefonts.com/), [Cinetype](https://www.cinetype.com/), [Justin Penner](https://justinpenner.ca/), [Nuform](https://nuformtype.com/). 1216 | - name: Website platforms 1217 | items: 1218 | - name: Craft CMS 1219 | url: https://craftcms.com/ 1220 | description: Used by [DJR](https://djr.com/), [Positype](https://positype.com/), [TypeMates](https://typemates.com/) 1221 | - name: ProcessWire 1222 | url: https://processwire.com/ 1223 | description: Used by [Velvetyne](https://velvetyne.fr/) 1224 | - name: Web specimen tools 1225 | items: 1226 | - name: BigText 1227 | url: https://github.com/zachleat/BigText 1228 | description: by Zach Leatherman 1229 | - name: FitText 1230 | url: http://fittextjs.com/ 1231 | description: by Paravel 1232 | - name: fit-to-width.js 1233 | url: https://github.com/Lorp/fit-to-width 1234 | description: by Laurence Penney 1235 | - name: Font Face Observer 1236 | url: https://fontfaceobserver.com/ 1237 | description: by Bram Stein 1238 | - name: Font Testing Page 1239 | url: https://github.com/impallari/Font-Testing-Page 1240 | description: by Pablo Impallari 1241 | - name: Font-To-Width 1242 | url: http://font-to-width.com/ 1243 | description: by Nick Sherman and Chris Lewis 1244 | - name: slabText 1245 | url: https://github.com/freqDec/slabText 1246 | description: by Brian McAllister 1247 | - name: specimenTools 1248 | url: https://github.com/graphicore/specimenTools 1249 | description: by Lasse Fister 1250 | - name: Font tools for web development 1251 | items: 1252 | - name: FontFreeze 1253 | url: https://github.com/MuTsunTsai/fontfreeze 1254 | description: A JavaScript tool by Mu-Tsun Tsai for freezing OpenType features into a font file. Runs entirely in the user's browser without uploading font files to a server. This is accomplished by running fontTools in the user's browser via Pyodide, a Python distribution built in WebAssembly. 1255 | - name: fontkit 1256 | url: https://github.com/foliojs/fontkit 1257 | description: A JavaScript library by Devon Govett for parsing fonts. Supports a wide range of font formats and OpenType features. Does not support variable fonts. 1258 | - name: lib-font 1259 | url: https://github.com/Pomax/lib-font 1260 | description: A JavaScript library by Pomax for inspecting fonts. Supports a wide range of font formats. 1261 | - name: opentype 1262 | discontinued: true 1263 | url: https://github.com/bramstein/opentype 1264 | description: A JavaScript library by Bram Stein for parsing fonts. 1265 | - name: OpenType.js 1266 | url: https://github.com/opentypejs/opentype.js 1267 | description: A popular JavaScript library by Frederik De Bleser for parsing glyph outlines from font binaries. Note that it does not support the complete range of OpenType tables and formats that its name would suggest. 1268 | - name: Type testers 1269 | items: 1270 | - name: Flont 1271 | url: https://flont.chrislewis.codes/ 1272 | description: by Chris Lewis 1273 | - name: Fontsampler 1274 | url: https://underscoretype.github.io/fontsampler-js/ 1275 | description: by Johannes Neumeier 1276 | - name: TDF Type Tester 1277 | url: https://github.com/quitequinn/TypeTester_TDF 1278 | description: by Quinn Keaveney 1279 | - name: Type Neighbor 1280 | url: https://github.com/tiotype/type-neighbor 1281 | description: by Jon Young 1282 | - name: Typeshow 1283 | url: https://github.com/raureif/typeshow 1284 | description: by Frank Rausch 1285 | - name: Custom foundry site design and/or development 1286 | items: 1287 | - name: Chris Lewis 1288 | url: https://chrislewis.codes/ 1289 | description: Clients include [I Love Typography](https://fonts.ilovetypography.com), [DJR](https://djr.com/), [Positype](https://positype.com/), [Laura Worthington](https://lauraworthingtondesign.com/). 1290 | - name: Ashler Design 1291 | url: https://www.ashler.design/ 1292 | description: Clients include [Sudtipos](https://www.sudtipos.com/), [Nova Type](https://novatypefoundry.com/). 1293 | - name: Friends of The Web 1294 | url: https://friendsoftheweb.com/ 1295 | description: Clients include [Frere-Jones Type](https://frerejones.com/), [Kilotype](https://kilotype.de/) 1296 | - name: Hambly Freeman 1297 | url: https://hamblyfreeman.com/ 1298 | description: Clients include [CoType Foundry](https://cotypefoundry.com/). 1299 | - name: Humans & Machines 1300 | url: https://humans-machines.com/ 1301 | description: The complexity-loving, beautiful minds behind [Dinamo](https://abcdinamo.com/news/2020-launch-press-release)'s website. 1302 | - name: Studio Lindeman 1303 | url: https://studiolindeman.com/ 1304 | description: Clients include [I Love Typography](https://fonts.ilovetypography.com), [A2-Type](https://studiolindeman.com/a2-type/). 1305 | - name: Kenneth Ormandy 1306 | url: https://kennethormandy.com/ 1307 | description: Clients include [I Love Typography](https://fonts.ilovetypography.com), [Alanna Munro](https://alannamunro.com/). 1308 | - name: Village One 1309 | url: https://www.village.one/ 1310 | description: Clients include [TypeMates](https://www.typemates.com/), [HvD Fonts](https://www.hvdfonts.com/). 1311 | - name: See also… 1312 | description: More lists of type design resources. 1313 | items: 1314 | - name: Font-Utilities 1315 | url: https://github.com/RoelN/Font-Utilities 1316 | description: by Roel Nieskens 1317 | - name: Awesome Typography 1318 | url: https://github.com/Jolg42/awesome-typography 1319 | description: by Joël Galeran (an extensive list of digital font tools and technology) 1320 | - name: Velvetyne's Tools & Resources 1321 | url: https://velvetyne.fr/about/ressources/ 1322 | description: A list of type design resources and open-source type foundries. 1323 | - name: Mota Italic's Type Design Resources 1324 | url: https://www.motaitalic.com/info/type-design-resources/ 1325 | - name: Tools for font designers 1326 | url: https://typeheist.co/blog/handy-tools-for-font-designers/ 1327 | - name: Type links by Rosalie Wagner 1328 | url: http://rosaliewagner.com/type-links/ 1329 | -------------------------------------------------------------------------------- /_includes/item.html: -------------------------------------------------------------------------------- 1 | 2 |

3 | {{ item.name }} 4 | {%- if item.offline == true %} 5 | (offline) 6 | {%- elsif item.discontinued == true %} 7 | (discontinued) 8 | {%- endif %} 9 |

10 | 11 | {%- if item.description %} 12 | 13 |
14 | 15 | {{ item.description | markdownify }} 16 |
17 | 18 | {%- endif %} 19 | 20 | {%- if item.data %} 21 | 22 | 27 | 28 | {%- endif %} 29 | 30 | {%- if item.links %} 31 | 32 | 37 | 38 | {%- endif %} 39 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Type Design Resources 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 |
67 |
68 | 69 |

Type Design Resources

70 | 71 |

A growing, public, collaborative collection of type design resources. Everything from learning the basics to running your own foundry.

72 | 73 |
74 | 75 |
76 | 77 |
78 | 79 |

To contribute, post an issue or make a pull request on the Github repo, or email

80 | 81 |
82 | 83 |
84 | 85 |
86 | 87 | {%- for cat in site.data.data.categories %} 88 |
89 |

90 |
{{ cat.name }}
91 | {{ cat.description | markdownify }} 92 |

93 | 94 | 95 | {%- if cat.items %} 96 |
    97 | 98 | {%- if cat.sort == false %} 99 | {%- assign items = cat.items %} 100 | {%- else %} 101 | {%- assign items = cat.items | sort_natural: "name" %} 102 | {%- endif %} 103 | 104 | {%- for item in items %} 105 |
  • 106 | {% include item.html item=item %} 107 |
  • 108 | {%- endfor %} 109 |
110 | {%- endif %} 111 | 112 | {%- for subcat in cat.subcategories %} 113 |
114 |

115 |
{{ subcat.name }}
116 | {{ subcat.description | markdownify }} 117 |

118 | 119 |
    120 | 121 | {%- if subcat.sort == false %} 122 | {%- assign items = subcat.items %} 123 | {%- else %} 124 | {%- assign items = subcat.items | sort_natural: "name" %} 125 | {%- endif %} 126 | 127 | {%- for item in items %} 128 |
  • 129 | {% include item.html item=item %} 130 |
  • 131 | {%- endfor %} 132 |
133 | 134 |
135 | {%- endfor %} 136 | 137 |
138 | {%- endfor %} 139 | 140 |
141 | 142 |
143 | 144 | 158 | 159 |
160 | 161 | 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /css/styles.css: -------------------------------------------------------------------------------- 1 | /* CUSTOM RESET (mostly based on Josh Comeau's reset) 2 | https://www.joshwcomeau.com/css/custom-css-reset/ 3 | */ 4 | 5 | @media screen and (prefers-reduced-motion: no-preference) { 6 | html { 7 | scroll-behavior: smooth; 8 | } 9 | } 10 | *, *::before, *::after { 11 | box-sizing: border-box; 12 | } 13 | * { 14 | margin: 0; 15 | padding: 0; 16 | font: inherit; 17 | appearance: none; 18 | border: unset; 19 | scroll-margin-top: 4rem; 20 | color: inherit; 21 | background: transparent; 22 | hyphens: inherit; 23 | font-synthesis: none; 24 | } 25 | body { 26 | /* 27 | font-smoothing: auto applies faux bold to all fonts on modern browsers, 28 | but we want the font to render as intended by the typeface designer. 29 | (Note: Chrome applies font-smoothing: auto up to font-size: 161px) 30 | */ 31 | -webkit-font-smoothing: antialiased; 32 | -moz-osx-font-smoothing: grayscale; 33 | overflow-wrap: break-word; 34 | line-height: inherit; 35 | hyphens: none; 36 | } 37 | p { 38 | hyphens: auto; 39 | } 40 | em { 41 | font-style: italic; 42 | } 43 | strong { 44 | font-weight: bold; 45 | } 46 | button { 47 | cursor: pointer; 48 | } 49 | img, picture, video, canvas, svg, iframe { 50 | display: block; 51 | width: 100%; 52 | height: auto; 53 | } 54 | a { 55 | color: inherit; 56 | text-decoration: inherit; 57 | } 58 | *:focus-visible, *:focus-visible * { 59 | outline: none; 60 | color: var(--signal) !important; 61 | } 62 | 63 | /* FONTS */ 64 | 65 | @font-face { 66 | font-family: Isenheim-Light; 67 | src: url(../fonts/Isenheim_Fin.woff2) format('woff2'); 68 | font-display: block; 69 | } 70 | @font-face { 71 | font-family: Isenheim-Regular; 72 | src: url(../fonts/Isenheim_Regulier.woff2) format('woff2'); 73 | font-display: block; 74 | } 75 | 76 | /* VARIABLES */ 77 | :root { 78 | --fg: #000; 79 | --bg: #fff; 80 | --bg2: #ddd; 81 | --signal: #f8e; 82 | --signalClear: #f8e0; 83 | --pageMargin: max(1.25rem, 5vw); 84 | --underlineThickness: .125em; 85 | --paraGap: .5em; 86 | --itemGap: 1em; 87 | } 88 | @media (prefers-color-scheme: dark) { 89 | :root { 90 | --fg: #fff; 91 | --bg: #000; 92 | --bg2: #222; 93 | --signal: #f0a; 94 | --signalClear: #f070; 95 | } 96 | } 97 | 98 | /* MAIN LAYOUT */ 99 | 100 | :root { 101 | font-family: 'Sofia Sans', sans-serif; 102 | font-weight: normal; 103 | line-height: 1.2; 104 | line-height: 1.3; 105 | font-size: 1rem; 106 | color: var(--fg); 107 | background-color: var(--bg); 108 | } 109 | @media (min-width: 500px) { 110 | :root { 111 | font-size: 1.125rem; 112 | } 113 | } 114 | div.wrapper { 115 | padding: var(--pageMargin); 116 | } 117 | div.wrapper, main section { 118 | display: flex; 119 | flex-direction: column; 120 | gap: var(--itemGap); 121 | } 122 | 123 | div.wrapper > * { 124 | width: 100%; 125 | max-width: 44em; 126 | /* margin: 0 auto;*/ 127 | display: flex; 128 | flex-direction: column; 129 | gap: var(--itemGap); 130 | } 131 | 132 | hr { 133 | border-top: 1px solid var(--fg); 134 | padding: 0; 135 | max-width: unset; 136 | margin: min(6vw, 4em) 0; 137 | } 138 | header { 139 | /* padding-top: min(4.5vw, 6rem);*/ 140 | padding-top: 1em; 141 | } 142 | header > p:first-of-type { 143 | font-family: 'Spline Sans Mono', monospace; 144 | font-weight: 340; 145 | font-size: 5.5vw; 146 | font-size: 1.4em; 147 | font-size: min(5.5vw, 1.4em); 148 | line-height: 1.4; 149 | hyphens: none; 150 | } 151 | section.intro { 152 | /* background-color: var(--signal);*/ 153 | border: 2px solid var(--signal); 154 | padding: 1.25em; 155 | } 156 | section.intro a { 157 | text-decoration-line: underline; 158 | text-decoration-color: var(--signal); 159 | text-decoration-thickness: var(--underlineThickness); 160 | } 161 | h1 { 162 | font-family: Isenheim-Light, serif; 163 | font-size: min(18vw, 9em); 164 | line-height: .9; 165 | letter-spacing: -.02em; 166 | } 167 | 168 | /* NAV */ 169 | 170 | nav { 171 | display: none; 172 | flex-direction: column; 173 | gap: var(--paraGap); 174 | position: fixed; 175 | top: 0; 176 | left: 0; 177 | right: 0; 178 | bottom: 0; 179 | width: 100vw; 180 | height: 100vh; 181 | background-color: var(--bg); 182 | padding: var(--pageMargin); 183 | overflow-y: scroll; 184 | } 185 | nav a { 186 | display: block; 187 | text-decoration: none; 188 | box-sizing: content-box; 189 | border-left: .5em solid transparent; 190 | padding-left: .5em; 191 | } 192 | nav .active > a { 193 | /* background-color: var(--signal);*/ 194 | border-left: .5em solid var(--signal); 195 | } 196 | nav ul ul li { 197 | margin-left: 1em; 198 | } 199 | nav li { 200 | display: block; 201 | list-style-type: none; 202 | } 203 | nav ul, nav > ul > li { 204 | display: contents; 205 | } 206 | nav ul.categories { 207 | font-size: 1.2em; 208 | } 209 | nav ul.subcategories { 210 | font-size: 1rem; 211 | } 212 | @media (min-width: 1300px) { 213 | body { 214 | display: flex; 215 | justify-content: space-between; 216 | } 217 | nav { 218 | max-width: 30rem; 219 | display: flex; 220 | position: sticky; 221 | order: 2; 222 | padding-left: 0; 223 | height: 100vh; 224 | } 225 | label[for=navButton] { 226 | display: none; 227 | } 228 | } 229 | label[for=navButton] { 230 | width: calc(var(--pageMargin) * 3); 231 | height: calc(var(--pageMargin) * 3); 232 | position: fixed; 233 | z-index: 99; 234 | top: 0; 235 | right: 0; 236 | color: var(--fg); 237 | background-image: linear-gradient(45deg, var(--signalClear), var(--signalClear), var(--signal)); 238 | text-align: center; 239 | content: '+'; 240 | line-height: calc(var(--pageMargin) * 2); 241 | font-size: 1.5rem; 242 | } 243 | #navButton { 244 | display: none; 245 | } 246 | #navButton:checked + label[for=navButton] { 247 | transform: rotate(45deg); 248 | background-image: unset; 249 | } 250 | #navButton:checked ~ nav { 251 | display: flex; 252 | } 253 | li.navBackToTop a { 254 | /* box-sizing: border-box;*/ 255 | } 256 | li.navBackToTop a { 257 | box-sizing: content-box; 258 | text-decoration: none; 259 | display: block; 260 | position: fixed; 261 | bottom: var(--pageMargin); 262 | right: var(--pageMargin); 263 | background-color: var(--signal); 264 | width: 1.8em; 265 | height: 1.8em; 266 | border-radius: 1.8em; 267 | line-height: 1.8em; 268 | text-align: center; 269 | border-style: none; 270 | padding: 0; 271 | } 272 | 273 | /* MAIN */ 274 | 275 | h2 { 276 | font-family: 'Spline Sans Mono', monospace; 277 | font-weight: 340; 278 | font-size: 1.8em; 279 | margin-top: var(--itemGap); 280 | background-color: var(--signal); 281 | padding: var(--paraGap); 282 | display: flex; 283 | flex-direction: column; 284 | gap: var(--paraGap); 285 | } 286 | h2 p { 287 | font-weight: 440; 288 | font-size: .8rem; 289 | } 290 | h2 a { 291 | text-decoration-color: var(--bg); 292 | } 293 | h3 { 294 | margin-top: var(--paraGap); 295 | font-weight: 400; 296 | font-size: 1.4em; 297 | display: flex; 298 | flex-direction: column; 299 | gap: var(--paraGap); 300 | } 301 | h3 p { 302 | font-weight: 400; 303 | font-size: 1rem; 304 | } 305 | h4 { 306 | font-size: 1.2em; 307 | } 308 | a[href] { 309 | text-decoration-line: underline; 310 | text-decoration-color: var(--signal); 311 | text-decoration-thickness: var(--underlineThickness); 312 | hyphens: none; 313 | } 314 | ul.items { 315 | display: flex; 316 | flex-direction: column; 317 | gap: var(--itemGap); 318 | } 319 | li.item { 320 | padding: 1em; 321 | border: 1px solid var(--fg); 322 | display: flex; 323 | flex-direction: column; 324 | gap: var(--paraGap); 325 | } 326 | ul.data { 327 | display: flex; 328 | gap: var(--paraGap); 329 | } 330 | ul.data li { 331 | list-style-type: none; 332 | margin: 0; 333 | font-style: italic; 334 | } 335 | ul.data li + li::before { 336 | content: "/"; 337 | padding-right: var(--paraGap); 338 | } 339 | .description { 340 | display: flex; 341 | flex-direction: column; 342 | gap: var(--paraGap); 343 | } 344 | .links { 345 | display: flex; 346 | flex-direction: row; 347 | gap: 0 var(--paraGap); 348 | flex-wrap: wrap; 349 | } 350 | .offline, .abandoned { 351 | text-decoration-line: line-through; 352 | } 353 | 354 | /* FOOTER */ 355 | 356 | footer strong { 357 | font-family: Isenheim-Regular, serif; 358 | font-weight: 400; 359 | font-size: min(18vw, 9em); 360 | line-height: .9; 361 | letter-spacing: -.02em; 362 | font-size: 3em; 363 | display: block; 364 | padding-bottom: .5rem; 365 | } 366 | -------------------------------------------------------------------------------- /fonts/Isenheim_Fin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinpenner/type-design-resources/9e12c2685099333977388462feb82221d0fff75e/fonts/Isenheim_Fin.woff2 -------------------------------------------------------------------------------- /fonts/Isenheim_Regulier.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinpenner/type-design-resources/9e12c2685099333977388462feb82221d0fff75e/fonts/Isenheim_Regulier.woff2 -------------------------------------------------------------------------------- /img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinpenner/type-design-resources/9e12c2685099333977388462feb82221d0fff75e/img/apple-touch-icon.png -------------------------------------------------------------------------------- /img/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinpenner/type-design-resources/9e12c2685099333977388462feb82221d0fff75e/img/screenshot.png -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | -------------------------------------------------------------------------------- /jekyll-server.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # macOS: Before you can run this shell script, you may need to set it to open 4 | # in Terminal, and run `chmod +x jekyll-server.sh` to make it executable. 5 | 6 | # A series of ancient runes that represents the folder this script is in 7 | cd "${0%/*}" 8 | 9 | # Get local network IP (macOS only right now) 10 | if [[ "$OSTYPE" == "darwin"* ]]; then 11 | localip=$(ipconfig getifaddr en0) 12 | elif [[ "$OSTYPE" == "linux-gnu"* ]]; then 13 | localip="" 14 | elif [[ "$OSTYPE" == "cygwin" ]]; then 15 | localip="" 16 | elif [[ "$OSTYPE" == "msys" ]]; then 17 | localip="" 18 | elif [[ "$OSTYPE" == "win32" ]]; then 19 | localip="" 20 | elif [[ "$OSTYPE" == "freebsd"* ]]; then 21 | localip="" 22 | else 23 | localip="" 24 | fi 25 | 26 | # Start Jekyll! 27 | if [[ "$localip" != "" ]]; then 28 | bundle exec jekyll serve --livereload --open-url --host ${localip} 29 | else 30 | bundle exec jekyll serve --livereload --open-url 31 | fi -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | let autoScrollAllowed = true; 2 | 3 | window.addEventListener('load', event=>{ 4 | 5 | // Mobile: hide nav when nav item is clicked 6 | document.querySelectorAll("nav a").forEach(el=>{ 7 | el.addEventListener('click', event=>{ 8 | document.getElementById('navButton').checked = false; 9 | // Pause auto scroll so it doesn't conflict with scrolling to anchor 10 | autoScrollAllowed = false; 11 | setTimeout(()=>{autoScrollAllowed=true},2000); 12 | }); 13 | }); 14 | 15 | // Highlight currently visible section(s) in nav 16 | const sectionScrollObserver = new IntersectionObserver(observers => { 17 | observers.forEach(observer => { 18 | const id = observer.target.getAttribute('id'); 19 | const navItem = document.querySelector(`nav a[href="#${id}"]`).parentElement; 20 | if (observer.intersectionRatio > 0) { 21 | navItem.classList.add('active'); 22 | } else { 23 | navItem.classList.remove('active'); 24 | } 25 | }); 26 | }); 27 | document.querySelectorAll('section[id]').forEach(section => { 28 | sectionScrollObserver.observe(section); 29 | }); 30 | 31 | // Scroll nav with page 32 | document.addEventListener('scroll', event => { 33 | if (autoScrollAllowed) { 34 | setScrollProgress( 35 | document.querySelector('nav'), 36 | getScrollProgress(document.documentElement) 37 | ); 38 | } 39 | }); 40 | 41 | // Open external links in a new tab 42 | document.querySelectorAll('a[href]').forEach(el=>{ 43 | if (el.getAttribute('href').startsWith('https://') 44 | || el.getAttribute('href').startsWith('http://') 45 | || el.getAttribute('href').startsWith('mailto:')) { 46 | el.target = "_blank"; 47 | } 48 | }); 49 | 50 | }); 51 | 52 | function getScrollProgress(el) { 53 | const progress = el.scrollTop/(el.scrollHeight-(el.clientHeight || el.offsetHeight)); 54 | return progress; 55 | } 56 | 57 | function setScrollProgress(el, yProgress) { 58 | const yPos = yProgress*(el.scrollHeight-(el.clientHeight || el.offsetHeight)); 59 | el.scroll(0, yPos); 60 | } --------------------------------------------------------------------------------