Playground v2

Where things are perfectly broken — this serves as an experimental sandbox to learn and grow without limitations.

Introduction

Hello there. This is where experiments sprout and blossom. Some even become features! Or they may become bugs that then become features. Or they... well yea, stuff happens.

Ctr-f TODO to quickly find things I'm working on implementation. Likely in order of top to bottom.

Typography Check

Have you heard of a "pangram story"? Supposedly they're pretty good tests for typography.

The Curious Fox's Evening

The quick brown fox, feeling uncharacteristically reflective, juggled a dozen quirky phrases before breakfast. He zipped across the meadow, vexing lazy dogs and dazzling every jittery jay perched on the crooked fence. By noon, he had questioned the value of his own velocity — how fast is fast enough, really, when time keeps leaping ahead?

As twilight arrived, the fox paused beside a pond shimmering with violet light. "Zoe's zebra quilt" he murmured, remembering the oddest gift he'd ever received, stitched from every hue and letter imaginable. He traced the embroidered alphabets with his paw — A through Z, upper and lower case — and decided perhaps the world wasn't made to be outrun, only read carefully.

The Typographer's Tale

A joyful mix of vowels and consonants spilled across the designer's desk, each waiting for its moment in print. "Pack my box with five dozen liquor jugs", she whispered — the old standby — then laughed, unsatisfied. She needed something wilder, something that stretched the tails of the g, y, and q without breaking the harmony of the line.

She tried again: "Jovial zebras quickly faxed quirky diplomas while vexed owls judged the kerning". Better. The counters breathed, the ligatures sang, and the spacing shimmered like music. The typeface, for a fleeting second, felt alive.

Pangram Prose

Sphinx of black quartz, judge my vow! A phrase both noble and nonsensical, yet it tests every serif and stroke. Jackdaws love my big sphinx of quartz — another line that rolls through diagonals, bowls, and crossbars. The typist's fingers flutter like a pianist's, exploring how each curve meets its neighbor.

Meanwhile, the jaded wizard quickly vexes the bold dwarf. The vowels glow, the descenders dip, and punctuation pirouettes between words: commas, colons, semicolons — all demand balance. For font makers, this is meditation in motion: every line a microcosm of contrast, texture, and rhythm.

Testing MDX

This section is here to make sure we can render richer MDX content cleanly, including interactive examples, figures, and code blocks.

Jakub

These first examples are my rendition of Details That Make Interfaces Feel Better by Jakub.

Make Text Crispy

On macOS, text rendering can sometimes appear heavier than intended.

Subpixel rendering

Default font smoothing uses subpixel antialiasing on macOS.

Antialiased rendering

Grayscale antialiasing produces thinner, crisper light text.

Setting -webkit-font-smoothing: antialiased or just antialiased in Tailwind makes text render slightly thinner and crisper.

The best way to apply this is to add it to the entire layout. That way it applies to all of the text elements in your app.

Tabular Numbers

If your numbers shift when they update, use font-variant-numeric: tabular-nums. In Tailwind, use tabular-nums.

Default
1000
Tabular
1000
Press play to compare how the digits hold their width.

It makes the digits equal width. Keep in mind that some fonts change the look of numerals when this property is enabled.

Align Optically, Not Geometrically

Aligning items geometrically works great most of the time, but there are instances where it just looks off. When that happens, it is best to align items optically instead.

For example, when a button has both text and an icon, it is better to have a slightly smaller padding on the side of the icon to optically align the content.

Change the alignment mode to compare the play icon inside a circular button. In this version, only the icon is optically aligned.

This often happens with icons. While a lot of icon packs already account for this, there are shapes that still need to be optically aligned. I usually fix it by adjusting margin or padding depending on the container.

Change the alignment mode and click the button to see the difference.

For icons, the best way to fix it is in the svg itself, so no additional margin or padding needs to be added.

Images

Pretty
Pretty but slow to load
Stuffs
Stuffs
Saturday Vibes
Saturday Vibes (from Tenor)
Elephant at sunset
An elephant at sunset

Video

Example 1 from MDN

Example 2 from MDN

Tabs

HTML is the structure. It gives the browser the bones: headings, paragraphs, buttons, figures, and enough semantic shape for everything else to have a place to live.

Tabbed Text and Code Blocks

TypeScript version with an explicit User type.

Callouts

And nesting callouts

and this continues the paragraph.

This is another quote that is long enough to be on multiple lines. Let's see how it looks. And just to make sure it's long enough, I'll add some more text. Just a bit more.

but also without any variant

This is another quote that is long enough to be on multiple lines. Let's see how it looks. And just to make sure it's long enough, I'll add some more text. Just a bit more.

and nested

Level-one reply

Level-two reply

Level-three reply

and now a quote with a caption:

The truth may be puzzling. It may take some work to grapple with. It may be counterintuitive. It may contradict deeply held prejudices. It may not be consonant with what we desperately want to be true. But our preferences do not determine what's true. We have a method, and that method helps us to reach not absolute truth, only asymptotic approaches to the truth — never there, just closer and closer, always finding vast new oceans of undiscovered possibilities. Cleverly designed experiments are the key.

Carl Sagan, in "Wonder and Skepticism", from the Skeptical Inquirer Volume 19, Issue 1 (January-February 1995)

Basic Text Formatting

This text is italicized.

This text is bold.

~This text is not strikethrough.~

This text is strikethrough.

This text is bold and italicized.

Compound Formatting

This is bold and italicized text.

This is bold and strikethrough text.

This is a blockquote with bold text.

Here is a list with different formatting:

  1. Bold Item
  2. Italicized Item
  3. Strikethrough Item
  4. Bold and Italicized Item

TODO: Extended Formatting

H_2_O

X^2

Spoilers

Don't you just hate ?

Also,

How about with... markup? .

TODO: absolutely failing —

...how about a formatting spoiler?

This is an internal link example.

This is an external link example.

This is an internal anchor link example.

This is an internal link to file example.

This is an external link to file example.

Lists

Unordered List

  • Item 1
    • Sub-item 1
    • Sub-item 2
  • Item 2
    • Sub-item 1
    • Sub-item 2
      • Sub-sub-item 1
      • Sub-sub-item 2
  • Item 3

Ordered List

  1. First item
    1. Sub-item 1
    2. Sub-item 2
  2. Second item
    1. Sub-item 1
    2. Sub-item 2
      1. Sub-sub-item 1
      2. Sub-sub-item 2
  3. Third item

Headers

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dignissim arcu sit amet ullamcorper malesuada. Phasellus quis posuere sem, nec euismod nisi. Quisque a risus fermentum, venenatis elit ac, mattis magna. Nulla facilisi. Donec mauris leo, viverra et erat at, sollicitudin interdum mi. Phasellus cursus orci vel eleifend viverra. Curabitur eleifend tristique ipsum eu sagittis. Quisque vitae augue cursus, luctus nisi vitae, mattis neque. Aenean euismod erat sed eros consequat, sed elementum justo luctus. Cras faucibus id ex in ornare. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;

Header 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dignissim arcu sit amet ullamcorper malesuada. Phasellus quis posuere sem, nec euismod nisi. Quisque a risus fermentum, venenatis elit ac, mattis magna. Nulla facilisi. Donec mauris leo, viverra et erat at, sollicitudin interdum mi. Phasellus cursus orci vel eleifend viverra. Curabitur eleifend tristique ipsum eu sagittis. Quisque vitae augue cursus, luctus nisi vitae, mattis neque. Aenean euismod erat sed eros consequat, sed elementum justo luctus. Cras faucibus id ex in ornare. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;

Header 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dignissim arcu sit amet ullamcorper malesuada. Phasellus quis posuere sem, nec euismod nisi. Quisque a risus fermentum, venenatis elit ac, mattis magna. Nulla facilisi. Donec mauris leo, viverra et erat at, sollicitudin interdum mi. Phasellus cursus orci vel eleifend viverra. Curabitur eleifend tristique ipsum eu sagittis. Quisque vitae augue cursus, luctus nisi vitae, mattis neque. Aenean euismod erat sed eros consequat, sed elementum justo luctus. Cras faucibus id ex in ornare. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;

Excerpt

This should have an id of excerpt-1 if mark excerpt plugin is active.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dignissim arcu sit amet ullamcorper malesuada. Phasellus quis posuere sem, nec euismod nisi. Quisque a risus fermentum, venenatis elit ac, mattis magna. Nulla facilisi. Donec mauris leo, viverra et erat at, sollicitudin interdum mi. Phasellus cursus orci vel eleifend viverra. Curabitur eleifend tristique ipsum eu sagittis. Quisque vitae augue cursus, luctus nisi vitae, mattis neque. Aenean euismod erat sed eros consequat, sed elementum justo luctus. Cras faucibus id ex in ornare. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;

This is a really long one ugh, like really really long to test wrapping and the sort (should be at Header 3 depth)

Mauris ac convallis ligula. Phasellus nec ultricies libero, vel bibendum nunc. Ut id nibh leo. Pellentesque cursus nunc non facilisis ultrices. Praesent vel fermentum nibh. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam quis vulputate sapien, vitae vehicula odio. Nunc eget ante vitae nibh aliquet euismod. Vestibulum sagittis lacinia urna, nec dapibus purus sollicitudin in. Proin accumsan arcu leo, id egestas tellus tristique vel. Mauris ultricies luctus maximus. Nullam blandit lacinia felis, sed placerat sem sagittis varius. Sed ut arcu nec massa molestie fermentum vitae quis sem. Etiam id urna quis ipsum volutpat tempus et vel felis.

Vivamus vel bibendum eros. Nulla varius faucibus ex, nec congue urna ornare sit amet. Pellentesque in elit aliquam est vehicula scelerisque ac vel risus. Nulla facilisis nec mauris ac fringilla. Cras dignissim ultricies vulputate. Nam a odio lorem. Integer sit amet velit libero. Sed convallis ex sit amet nibh blandit, id facilisis velit luctus. Aliquam erat volutpat. Mauris tincidunt lacinia erat, quis pellentesque nisl.

Proin dapibus mollis libero id viverra. Proin efficitur id nunc vitae semper. Aenean feugiat pulvinar eros vitae dictum. Donec tincidunt facilisis fringilla. Sed semper suscipit dictum. Etiam sed quam at sem egestas convallis at quis eros. Mauris et laoreet odio. Ut orci dui, malesuada pretium iaculis id, pretium eget magna. Etiam tellus est, imperdiet in posuere sed, venenatis venenatis eros. Mauris risus est, suscipit eu luctus a, pellentesque nec tellus. Sed quis urna fringilla, vestibulum urna id, dictum arcu. Mauris lectus odio, faucibus eget est at, maximus sodales ipsum.

Header 4

This is a repeat heading from right above, check to see id is different and toc works.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dignissim arcu sit amet ullamcorper malesuada. Phasellus quis posuere sem, nec euismod nisi. Quisque a risus fermentum, venenatis elit ac, mattis magna. Nulla facilisi. Donec mauris leo, viverra et erat at, sollicitudin interdum mi. Phasellus cursus orci vel eleifend viverra. Curabitur eleifend tristique ipsum eu sagittis. Quisque vitae augue cursus, luctus nisi vitae, mattis neque. Aenean euismod erat sed eros consequat, sed elementum justo luctus. Cras faucibus id ex in ornare. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;

Header 5

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dignissim arcu sit amet ullamcorper malesuada. Phasellus quis posuere sem, nec euismod nisi. Quisque a risus fermentum, venenatis elit ac, mattis magna. Nulla facilisi. Donec mauris leo, viverra et erat at, sollicitudin interdum mi. Phasellus cursus orci vel eleifend viverra. Curabitur eleifend tristique ipsum eu sagittis. Quisque vitae augue cursus, luctus nisi vitae, mattis neque. Aenean euismod erat sed eros consequat, sed elementum justo luctus. Cras faucibus id ex in ornare. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;

Header 6

Mauris ac convallis ligula. Phasellus nec ultricies libero, vel bibendum nunc. Ut id nibh leo. Pellentesque cursus nunc non facilisis ultrices. Praesent vel fermentum nibh. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam quis vulputate sapien, vitae vehicula odio. Nunc eget ante vitae nibh aliquet euismod. Vestibulum sagittis lacinia urna, nec dapibus purus sollicitudin in. Proin accumsan arcu leo, id egestas tellus tristique vel. Mauris ultricies luctus maximus. Nullam blandit lacinia felis, sed placerat sem sagittis varius. Sed ut arcu nec massa molestie fermentum vitae quis sem. Etiam id urna quis ipsum volutpat tempus et vel felis.

Vivamus vel bibendum eros. Nulla varius faucibus ex, nec congue urna ornare sit amet. Pellentesque in elit aliquam est vehicula scelerisque ac vel risus. Nulla facilisis nec mauris ac fringilla. Cras dignissim ultricies vulputate. Nam a odio lorem. Integer sit amet velit libero. Sed convallis ex sit amet nibh blandit, id facilisis velit luctus. Aliquam erat volutpat. Mauris tincidunt lacinia erat, quis pellentesque nisl.

Proin dapibus mollis libero id viverra. Proin efficitur id nunc vitae semper. Aenean feugiat pulvinar eros vitae dictum. Donec tincidunt facilisis fringilla. Sed semper suscipit dictum. Etiam sed quam at sem egestas convallis at quis eros. Mauris et laoreet odio. Ut orci dui, malesuada pretium iaculis id, pretium eget magna. Etiam tellus est, imperdiet in posuere sed, venenatis venenatis eros. Mauris risus est, suscipit eu luctus a, pellentesque nec tellus. Sed quis urna fringilla, vestibulum urna id, dictum arcu. Mauris lectus odio, faucibus eget est at, maximus sodales ipsum.

Codeblocks

Inline Code

Because code should exist within words too. Awkward if the next line also had a codeblock (for safety sake, a second codeblocks) and the blocks touched :pensive:

Hmmm

Some backticks for inline.