Skip to content

Commit 2c794b0

Browse files
ehsun-shclaude
andcommitted
Wear the mark in the menubar
The stand-in it replaces was a generic starburst in --accent: a glyph that said "instrument" and nothing about which one. The tight crop, not the padded app icon. Two pieces of artwork for two jobs — the icon is squared and padded because an operating system draws it in a tile of its own, and beside type that padding reads as the mark having drifted away from the words. Sized to 13px against a cap height the browser reports as 10px. 15 and 17 were tried side by side on both grounds: at 15 the mark starts to outweigh the words and at 17 it is a badge with a caption. This is chrome on a surface used fifty times an hour, and the mark's job is to identify the window rather than to be looked at. It sits outside both ground blocks, unlike every other colour in the file. The spectral ramp *is* the identity here, and re-deriving it per ground would be re-deriving the brand — which is also why only the wordmark ever needed a light and a dark cut, and what differed there was its text. Screenshots regenerated: they carried neither the mark nor the Spectrum tab, and a front page that has drifted from the build is wrong rather than merely old. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 969c2e1 commit 2c794b0

4 files changed

Lines changed: 44 additions & 8 deletions

File tree

docs/images/studio-graphite.png

456 Bytes
Loading

docs/images/studio-paper.png

544 Bytes
Loading

src/maiman/studio/index.html

Lines changed: 19 additions & 8 deletions
Large diffs are not rendered by default.

tests/test_studio.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,3 +629,28 @@ def test_the_page_carries_the_current_mark() -> None:
629629
f"the studio page carries a stale copy of assets/{name}. "
630630
f'Re-inline it as a data URI on the <link rel="icon"> for {size}.'
631631
)
632+
633+
634+
def test_the_menubar_wears_the_mark() -> None:
635+
"""And it is the tight crop, not the padded app icon.
636+
637+
Two different pieces of artwork for two different jobs. The icon is squared
638+
and padded because an operating system draws it in a tile of its own; the
639+
menubar sets it beside type, where that padding reads as the mark having
640+
drifted away from the words. Picking either one for both is the mistake this
641+
guards.
642+
"""
643+
text = STUDIO.read_text(encoding="utf-8")
644+
expected = base64.b64encode((ROOT / "assets" / "logo-mark-tight.png").read_bytes()).decode(
645+
"ascii"
646+
)
647+
assert (
648+
f'class="brand-mark" alt="" aria-hidden="true" src="data:image/png;base64,{expected}"'
649+
in text
650+
), (
651+
"the menubar carries a stale copy of assets/logo-mark-tight.png. "
652+
"Re-inline it as the .brand-mark data URI."
653+
)
654+
# Decorative: the name is right beside it in text, so announcing the mark
655+
# too would have a screen reader say the product twice.
656+
assert 'class="brand-mark" alt="" aria-hidden="true"' in text

0 commit comments

Comments
 (0)