Links match the approved look (#448) #562

Closed
kayg wants to merge 0 commits from issue/448-links-parity into dev
Owner

Not to be merged without kayg. Closes nothing new: it fixes the last deviations of the shipped links from the approved mockup (#448, #449, #450; mockup PR #457).

I measured the approved mockup (https://preview.calternal.cloud/links.html) against the app (origin/dev, train w2) on the same note: a link to an existing note, a never-written note, a note in the Trash, one deleted for good, a day, a photo, a file, a tag, the hover pill and the caret pill. Chromium and WebKit, 1440 and 390, light and dark. Sheet with every value is on #448.

Two link rules deviated, both fixed:

  • The gap after the kind icon: .28em in the app, .3em approved (web links .24em vs .26em). About a third of a pixel.
  • The 70% of notes that are not there (never written, Trash, deleted): the app mixed ink into the paper in oklab, which comes out about 8 levels darker than the mockup's opacity .7 (light red channel 90 vs 97.6, dark 168 vs 176). Now mixed in sRGB, which is exactly how opacity blends. The words and icon are still 6.1:1 light and 8.4:1 dark over paper (needs 4.5 and 3).

Everything else matched: icon size (.9em, .78em for web), padding, radius, transparent edge, no underline, accent text, tag colour, the lit pill's edge and fill, font size and family.

Not changed, for kayg to judge (not link rules, or not a clear approval):

  • The lit pill on a missing link: the mockup has no lift shadow and, with the caret inside, an ink icon (accent on hover); the app lifts it and uses the accent icon, the same as a working link. The mockup looks inconsistent here, so I left it.
  • Light body weight 460 against the mockup's 410 (#492, the whole page), and the page ink tokens ((31,27,23) vs (43,39,35) light; (244,239,233) vs (237,230,221) dark). Both are the app's own tokens.
  • The pill's right padding (the last glyph touching the pill's right border) is on issue/469-narrow-handle; not touched here.

Test: links-parity.spec.ts pins the approved numbers (box, icon, gap, 70%, lit form) light and dark. Also run: links, links-look, missing-links on chromium-390, chromium-1440, webkit-390, webkit-1440 (110 passed with the parity dump); contrast and link-contrast (contrast project) pass; svelte-check 0 errors.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ

Not to be merged without kayg. Closes nothing new: it fixes the last deviations of the shipped links from the approved mockup (#448, #449, #450; mockup PR #457). I measured the approved mockup (https://preview.calternal.cloud/links.html) against the app (origin/dev, train w2) on the same note: a link to an existing note, a never-written note, a note in the Trash, one deleted for good, a day, a photo, a file, a tag, the hover pill and the caret pill. Chromium and WebKit, 1440 and 390, light and dark. Sheet with every value is on #448. Two link rules deviated, both fixed: - The gap after the kind icon: .28em in the app, .3em approved (web links .24em vs .26em). About a third of a pixel. - The 70% of notes that are not there (never written, Trash, deleted): the app mixed ink into the paper in oklab, which comes out about 8 levels darker than the mockup's opacity .7 (light red channel 90 vs 97.6, dark 168 vs 176). Now mixed in sRGB, which is exactly how opacity blends. The words and icon are still 6.1:1 light and 8.4:1 dark over paper (needs 4.5 and 3). Everything else matched: icon size (.9em, .78em for web), padding, radius, transparent edge, no underline, accent text, tag colour, the lit pill's edge and fill, font size and family. Not changed, for kayg to judge (not link rules, or not a clear approval): - The lit pill on a missing link: the mockup has no lift shadow and, with the caret inside, an ink icon (accent on hover); the app lifts it and uses the accent icon, the same as a working link. The mockup looks inconsistent here, so I left it. - Light body weight 460 against the mockup's 410 (#492, the whole page), and the page ink tokens ((31,27,23) vs (43,39,35) light; (244,239,233) vs (237,230,221) dark). Both are the app's own tokens. - The pill's right padding (the last glyph touching the pill's right border) is on `issue/469-narrow-handle`; not touched here. Test: `links-parity.spec.ts` pins the approved numbers (box, icon, gap, 70%, lit form) light and dark. Also run: links, links-look, missing-links on chromium-390, chromium-1440, webkit-390, webkit-1440 (110 passed with the parity dump); contrast and link-contrast (contrast project) pass; svelte-check 0 errors. 🤖 Generated with [Claude Code](https://claude.ai/code) https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
Links match the approved look: icon gap .3em, the 70% of missing links mixed like opacity (#448)
Some checks failed
CI / server (pull_request) Successful in 28s
CI / rust (pull_request) Successful in 2m26s
CI / web (pull_request) Failing after 28s
e133019d50
Measured the approved mockup (links.html, #457) against the app in Chromium and WebKit, light and
dark, at 1440 and 390. Two link rules deviated: the gap after the kind icon (.28em, approved .3em;
web .24em, approved .26em) and the 70% of notes that are not there, which was mixed in oklab and
came out about 8 levels darker than the mockup's opacity .7 (now mixed in sRGB, the same blend).
Everything else matched. links-parity.spec.ts pins the approved box, icon, gap, 70% and lit form.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
Author
Owner

Landed in train y, #565.

Landed in train y, #565.
kayg closed this pull request 2026-10-17 20:10:25 +00:00
Some checks failed
CI / server (pull_request) Successful in 28s
CI / rust (pull_request) Successful in 2m26s
CI / web (pull_request) Failing after 28s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal!562
No description provided.