Skip to content

Lift content onto opaque card surfaces for legibility#9

Merged
Loyale merged 1 commit into
mainfrom
claude/vibrant-ritchie-KKkgZ
May 29, 2026
Merged

Lift content onto opaque card surfaces for legibility#9
Loyale merged 1 commit into
mainfrom
claude/vibrant-ritchie-KKkgZ

Conversation

@Loyale
Copy link
Copy Markdown
Contributor

@Loyale Loyale commented May 29, 2026

Summary

Translucent article cards over the deep-ocean gradient made body text — especially in the notebook post — hard to read. Rework the palette around two distinct layers so the ambient feel survives but content is comfortable to read for long stretches.

Two layers:

  1. Ambient. The ocean gradient + caustic light shafts. Atmosphere. Unchanged.
  2. Content. Opaque card surfaces that visually rise above the water. Where text actually lives.

Palette additions (high-contrast content tokens):

  • --fv-surface #0f1f2a — article cards
  • --fv-surface-soft #142734 — lifted (dataframe headers, callouts, featured boxes)
  • --fv-surface-code #091621 — inset (code wells, notebook inputs)
  • --fv-surface-output #0c1c27 — notebook output wells
  • --fv-surface-border #1d3a4d
  • --fv-text #e6edf3 — ~16:1 contrast on --fv-surface
  • --fv-text-soft #c7d4de
  • --fv-coral bumped from #ff8a65#ff9d7a for better pop on the new surface

Articles are now opaque cards with a soft elevation shadow and a thin bio-cyan light-catch along the top edge (via ::before), so they look like they're catching the light from the rays above. The wider container, padding, and tightened vertical rhythm (paragraph / list / heading spacing) make for cleaner reading.

Code blocks sit inset on the card. Notebook inputs match the code well; outputs sit slightly lifted on --fv-surface-output; dataframes get a clear header / zebra / hover hierarchy with a bright teal underline on the header. Inline code uses a more visible teal pill.

Caustic rays and the ocean gradient are untouched.

Test plan

  • Open /posts/testing-the-deep-with-a-notebook/ after deploy and confirm:
    • Markdown text reads cleanly against the article card
    • Code input cell is visibly distinct from the article surface (inset)
    • print() output sits in its own slightly lifted well
    • DataFrame has a clearly contrasted header, zebra rows, and bright teal underline
    • SVG figure still has its light backing
  • Open the home page and About page — confirm articles read as opaque cards with a subtle top-edge light catch, and the underwater gradient/rays are unchanged behind them
  • Spot-check link / inline-code contrast against the new surface
  • Verify the navbar, tags, buttons, and search input still feel consistent on the new palette

Generated by Claude Code

The previous translucent article fill sat directly over the
deep-ocean gradient, which made body text — especially in
notebooks — hard to read. Rework the palette around two
distinct layers:

  1. Ambient: the ocean gradient + caustic rays. Atmosphere.
  2. Content: opaque card surfaces that visually rise above
     the water. This is where text actually lives.

Palette additions:
- --fv-surface         #0f1f2a   article cards
- --fv-surface-soft    #142734   lifted (dataframe headers, callouts)
- --fv-surface-code    #091621   inset (code wells, notebook inputs)
- --fv-surface-output  #0c1c27   notebook output wells
- --fv-surface-border  #1d3a4d
- --fv-text            #e6edf3   ~16:1 on --fv-surface
- --fv-text-soft       #c7d4de
- --fv-coral           #ff9d7a   slightly warmer for better pop

Articles are now opaque cards with a soft elevation shadow
and a thin bio-cyan light-catch along the top edge (via
::before). Code blocks sit inset on the card, notebook
output cells sit slightly lifted, and dataframes get a
clear header / zebra row hierarchy on top of that.

Body type bumps to --fv-text and tightens spacing rules so
headings, paragraphs, lists, and code blocks read with a
consistent vertical rhythm.

The ambient ocean gradient and caustic light shafts are
unchanged — only the content layer is reworked.
@Loyale Loyale merged commit 600ac56 into main May 29, 2026
1 check failed
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