Restored from the original mckoss.com, where this page was first published in December 2005. In 2026 the font was converted to a modern TrueType and web font, so the demos below work in today’s browsers. The 2005 version of the font was missing six characters ([ \ ] ^ _ and the backtick); those were restored from the copy of the font in my NY Subway Tile Sign model.

Created for the Apple II program The Terminal

Copyright (c) 1980 Michael C. Koss

Alice's Adventures in Wonderland, in the 3x5 font

In 1980 I wrote a terminal emulator for the Apple II. At the time, the Apple II could only display upper case characters. I used the hi-res display (280 x 192 pixels!) to display my own character set. In order to come close to showing an 80-column display, I created a truly tiny font, displaying the full ASCII character set (upper and lower case).

I created a font within a 3x5 pixel dimension, allowing the display of 32 lines of 70 characters each. The font definitely takes some training and getting used to (especially recognition of characters that use descenders); but I found it to be quite readable after a while.

This image shows an enlargement of the original font:

The original font, enlarged

Download the Font

The table below is drawn in the font, live in your browser, so it should look like the image above, plus the six restored characters:

! " # $ % & '
( ) * + , - . /
0 1 2 3 4 5 6 7
8 9 : ; < = > ?
@ A B C D E F G
H I J K L M N O
P Q R S T U V W
X Y Z [ \ ] ^ _
` a b c d e f g
h i j k l m n o
p q r s t u v w
x y z { | } ~

Further, you can actually read the entire text of Alice’s Adventures in Wonderland in it, shown below as it would have looked on a green-screen monitor: 32 lines of 70 characters on the Apple II’s 280 x 192 hi-res screen. Pages draw at about 1,500 characters per second, roughly what a 1 MHz 6502 could manage for this font: each character takes up to 10 read-modify-writes of screen memory, about 400 to 700 cycles in all. Use Prev and Next, or the arrow keys, to turn the pages.

Addendum (2026): 3x5 Fonts in Tile

Tiny fonts on a 3x5 grid have stayed with me. My NY Subway Tile Sign on MakerWorld lets you 3D print your own sign in the style of the tile signs in the New York subway. It includes a 3x5 block font made only of whole “tiles,” and a second font that adds triangular half-tiles to make it easier to read. It’s a customizable model for a three-color printer (also on Thingiverse). The model uses this same font, with a few digits and letters squared off to suit the tiles.

A 3D-printed tile sign showing the full character set in blue tiles on white, with a black border

The full character set, 3D printed as a tile sign in the half-tile version of the font

That sign uses a second member of the family, Tiny 3x5 Bias, which smooths the letters with triangular half-tiles and lets a few wide letters (M, W, m and w) use four columns. It’s proportionally spaced, and includes the card suits ♠♡♢♣. It’s available as a web font too:

! " # $ % & '
( ) * + , - . /
0 1 2 3 4 5 6 7
8 9 : ; < = > ?
@ A B C D E F G
H I J K L M N O
P Q R S T U V W
X Y Z [ \ ] ^ _
` a b c d e f g
h i j k l m n o
p q r s t u v w
x y z { | } ~ ♠
♡ ♢ ♣

Tiny Tiles

For signs and headings, Tiny Tiles is Tiny 3x5 Bias drawn as tiles, like the printed sign: dark letter tiles on light tiles, with grout between them. Each letter carries its own tile grid and fits flush against its neighbors, so a word comes out as one continuous tiled panel. It’s a color font, which current browsers display in full color; it looks best large.

Tiny 3x5 Bias and Tiny Tiles are released under the MIT License.

Using the Fonts

On a Mac

  1. Download the .ttf file.
  2. Double-click it to open it in Font Book, then click Install.

The font then appears in the font menus of your apps.

On Windows

  1. Download the .ttf file.
  2. Double-click it to open the font viewer, then click Install.

You can also drag the file onto Settings > Personalization > Fonts.

On Linux

mkdir -p ~/.local/share/fonts
cp mckoss-tiny.ttf ~/.local/share/fonts/
fc-cache -f

Tiny Tiles is a color font. Most current apps show it in color; where color fonts aren’t supported, you’ll see the letter shapes in a single color with no tile grid.

On a Web Page

The easiest way is to link to the fonts on this site. Add this to your page’s <head>:

<link rel="stylesheet" href="https://mckoss.com/fonts/tiny-fonts.css">

or import it from your own stylesheet:

@import url("https://mckoss.com/fonts/tiny-fonts.css");

That declares all three fonts: MCKoss Tiny, MCKoss Tiny Bias, and MCKoss Tiny Tiles. Loading fonts from another site normally runs into the browser’s cross-origin (CORS) rules, but this site is served by GitHub Pages, which allows it for every file. This page loads its fonts with that same link.

If you’d rather not depend on this site, copy the .woff2 files to your own site and declare them yourself:

@font-face {
  font-family: "MCKoss Tiny";
  src: url("/fonts/mckoss-tiny.woff2") format("woff2");
}

Then use the font like any other. The pixel fonts look sharpest at sizes that are multiples of 6px:

.tiny {
  font-family: "MCKoss Tiny", monospace;
  font-size: 24px;      /* a multiple of 6px keeps every pixel crisp */
  line-height: 24px;
}
<p class="tiny">Hello from 1980!</p>

Tiny Tiles looks best large. Start the text with a thin space (&thinsp;, one column of tiles) to balance the spacing column after the last letter:

.tile-sign {
  font-family: "MCKoss Tiny Tiles";
  font-size: 96px;
  line-height: 1;
  white-space: pre;     /* keep runs of spaces */
}
<h1 class="tile-sign">&thinsp;Hello!</h1>

To change its colors, override the palette with @font-palette-values. The colors are numbered 0 (grout), 1 (background tiles), 2 (letters), and 3 (red suits):

@font-palette-values --dark-grout {
  font-family: "MCKoss Tiny Tiles";
  override-colors: 0 #555555;
}

.tile-sign {
  font-palette: --dark-grout;
}