Skip to content

chore: fix the Laravel ASCII SVG so that its characters perfectly align to columns#58702

Merged
taylorotwell merged 1 commit intolaravel:12.xfrom
markjaquith:laravel-ascii-align-to-grid
Feb 9, 2026
Merged

chore: fix the Laravel ASCII SVG so that its characters perfectly align to columns#58702
taylorotwell merged 1 commit intolaravel:12.xfrom
markjaquith:laravel-ascii-align-to-grid

Conversation

@markjaquith
Copy link
Contributor

The old Laravel Logo ASCII text SVG was rendered as a single path, with repeated instructions for drawing the 1s and the 0s, and then a series of relative movements to position the renderer for the next character. Because of floating point rounding, this long series of repeated moves produced compounding "drift", causing each successive row of the binary characters to drift to the left, instead of all characters aligning to a perfect terminal grid.

The new file consolidates rendering of the 1 and the 0, and forces the alignment of each character to conform to a strict grid, in absolute space, instead of a series of compounding relative movements from the position of the previous character.

Here's an example of the compounding drift in the old file:

CleanShot 2026-02-08 at 03 24 08@2x

Note

As a result of the more DRY rendering which is necessary to fix the drift issues, the new SVG is also 81.6% smaller (From 484,749 bytes to 89,023 bytes) — but that was purely coincidental. 👀

If, however, there is interest in further size reduction, I have a version that renders the same SVG using JavaScript and it's 3,816 bytes (99.2% smaller).

The old SVG had floating point "drift" which caused each successive row
of the binary characters to drift to the left. The new file uses DRY
rendering of the 1 and the 0, and forces the alignment of each character
to conform to a strict grid, in absolute space, instead of a series of
compounding relative movements from the position of the previous
character.
@taylorotwell taylorotwell merged commit fc2e636 into laravel:12.x Feb 9, 2026
73 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments