YAHEW!
A FIELD GUIDE TO THE OLD WEB

Sources: The custom cursor I · Decoration

← Back to the The custom cursor plate

Chrome. Every bevel, color and metric on this page is a value read out of 98.css v0.1.21 (MIT, Copyright 2020 Jordan Scales), captured at reference/1-decoration/custom-cursor/98css/. The window frames, buttons, close boxes and sunken fields are its numbers, including the 16 by 14 close box that the game is built around. 98.css ships no taskbar, so the strip along the bottom of the desktop is a recreation built from the same bevel and type rules, not a reproduction of anything Microsoft drew. The bevel order lifted from it is four one-pixel edges in a fixed sequence: white then #dfdfdf on the top left, #808080 then #0a0a0a on the bottom right, with an outer shadow of #0a0a0a rather than black, and a press swaps the pairs without moving anything a pixel. That is a field mark of the window chrome, not of the cursor, so it lives here rather than in the panel above. No Microsoft artwork, sound or font binary is in this repository. The desktop is #008080, which is the W3C and HTML 4.01 named color teal; that is this plate's choice of ground and not a claim about what Windows 98 shipped with. One consequence of quoting 98.css exactly: its title-bar text is white at 11px bold, and against the light end of the active gradient (#1084d0) that measures 4.0:1, while against the inactive one (#b5b5b5) it measures 2.1:1. Both are under the 4.5:1 WCAG AA threshold. They are 98.css's own values, repainting them would make the specimen wrong, so they stand and are named here instead. An audit of all 216 text nodes on this page finds no other failure, and nothing a reader or a player needs exists only inside a title bar.

Type. public/fonts/MSSansSerif.woff2 is a clean-room FontStruct recreation, not Microsoft's font. Verbatim as its license requires: The FontStruction "MS Sans Serif" (https://fontstruct.com/fontstructions/show/1384746) by "lou" is licensed under a Creative Commons Attribution Share Alike license (http://creativecommons.org/licenses/by-sa/3.0/). Its 11px on 13px metrics were checked against the FONTINFO block of sserife.fon on the build machine, which is Microsoft's file and is deliberately not in this repo.

Cursors. The pointing hand in round 2 is squiddy22-linkselect.cur by Squiddy22, published on rw-designer.com on 5 May 2007 under Attribution Required (CC BY), shipped unmodified and served with no CSS hotspot coordinates at all. The effective click point is then (0,0), which is both the number written in the file's own header and the top-left fallback, so this page cannot tell you which of the two the browser used and does not claim to. The five-pixel gap to the drawn fingertip is the same either way, and that gap is the round. The other six real files in the strip above are by Squiddy22, Vlasta and chrisyco, same gallery, same license, each credited and linked. Every other cursor in the game is original artwork generated for this plate by curfmt/make-cur.py and curfmt/make-cur-128.mjs, which write valid .cur bytes. Two of those hotspot numbers are measurements out of real files: round 1's (2,2) is the number vlasta-smooth-arrow.cur declares, and round 3's (16,16) is the Advanced Crosshair number. Two are not measurements of anything: the 128 px cursor's (120,120) and the proof file's (21,25) were picked by us to make the offset large enough to see, and no file in the corpus declares either, because every file in the corpus is 32 by 32. Nothing from cursors-4u.com is used: that site is all rights reserved, verified 2026-08-04.

Recreation versus emulation, stated plainly. Nothing here emulates Windows or a browser of the period. The window chrome reproduces measured values from 98.css. The hotspot failure is not simulated on the mouse path: the offsets are declared in the cursor file's own header or in the CSS rule, and the browser applies them, so the click really does land where the file says rather than where the arrow is drawn. Hit testing is ordinary DOM hit testing with no forgiveness radius and no correction. Two things on this page are ours rather than the browser's, and they are labeled as such: the 128 px band across the top of round 4 recreates a clampdown that browsers really do apply near their own chrome, and the keyboard MouseKeys pointer applies the round's declared offset by hand, because a hotspot cannot lie to a keyboard and the mode would otherwise be a way around the lesson.

Sound. The real Windows 98 sounds, rehosted from a public archive of them: DING, CHORD, TADA, CHIMES. They are Microsoft's, credited here rather than claimed. The one-second tick is still a single oscillator, because Windows never shipped a ticking clock. The period way to make a page click was an invisible EMBED with MASTERSOUND, purely so JavaScript had an object to call .play() on.

Claims deliberately absent. That users or authors complained in writing about wrong hotspots between 1998 and 2005: searched, not found. That Internet Explorer 4 had url() cursors: the 1999-05-08 MSDN snapshot lists keywords only, and url() is marked "Internet Explorer 6 Public Preview and later". What Netscape 4 did with the property. The date Blink or WebKit adopted the 128 px limit, which is attributed to Mozilla only because Chromium's history pages return 403. Any statistic about how many sites used custom cursors: the corpus is 141 files from six authors on one gallery, and it measures a gallery, not the web. That any statistic on this page describes the period: the corpus spans 2006 to 2026, and 79 of its 141 files were uploaded in July and August 2026, so every count quoted above is cut to the 62 files from the four sets published in 2006 and 2007 and says so out loud. The 2026 sets are measured in the reference folder and are not evidence about the old web.

← Back to the The custom cursor plate · The directory