Skip to content

Standardize publication, inventory and dialog rendering - #17

Merged
EiffL merged 9 commits into
mainfrom
feat/consistent-astra-rendering
Sep 8, 2026
Merged

EiffL merged 9 commits into
mainfrom
feat/consistent-astra-rendering

Conversation

@EiffL

@EiffL EiffL commented Sep 8, 2026 •

Copy link
Copy Markdown
Member

Make article inline text and popovers the shared rendering reference for inventory and record dialogs. The theme now delegates component presentation to Astra UI and the brand adapter, removing roughly 800 lines of duplicate styles and host-specific overrides. This also removes the old outer popover padding that doubled the inset when combined with the refactored card.

  • Render inline references, evidence links and values with the shared primitive, preserving authored links and interactions. Remove the remaining insight-glyph size override so article references and viewer glyphs share one treatment.
  • Consume the brand's direct --astra-* colour contract and bundled serif fonts, including Newsreader italic, throughout the article and book themes; remove remote Google Fonts stylesheets and use the existing brand monospace stack.
  • Mount record dialogs outside article prose and opt inventory, dialogs and popovers into the shared host-style boundary.
  • Use the updated Astra UI preview workflow and published brand package for the paper and its accompanying playground; the workflow is pinned to Astra UI #21.
  • Extend the existing MyST patch with document class/theme-attribute props so brand tokens are available before hydration in both themes. Verify that the blocking theme loader preserves the server-selected scheme.

The pinned UI also supplies the same folded-corner paper document glyph across inline references, inventories and viewers, retaining the brand’s semantic stroke colour.

Validation with published UI 0.0.5 and brand 0.0.3: 134 tests; all workspace typechecks; production article and book builds. Reapplied all patches from clean package sources with npm run postinstall. The coordinated Astra UI Chromium fixture passes with this stylesheet in light/dark mode and with 16px/20px host roots; this is CSS integration coverage, not a full application end-to-end test.

Depends on LightconeResearch/astra-ui#20 and https://github.com/LightconeResearch/brand/pull/3. Dependencies and lockfiles now use published @astra-spec/ui 0.0.5 and @lightcone-research/brand 0.0.3. Both upstream releases are available, and the dependency-related test failure is resolved. No package version is bumped here.

Coordinated PRs: Astra UI #20, brand #3, theme #17, JupyterLab #21, VS Code #3.

@github-actions

github-actions Bot commented Sep 8, 2026 •

Copy link
Copy Markdown
Contributor

Lightcone previews: Paper · Playground — inventory, viewers, dialogs and glyphs

d2535ca · @astra-spec/ui 0.0.5 from 9c940eb · Lightcone brand 0.0.3 · astra-theme d2535ca · content 3735fcc · MySTRA https://github.com/LightconeResearch/MySTRA/releases/download/v0.0.8/mystra.mjs

@EiffL
EiffL marked this pull request as ready for review September 8, 2026 19:17
Comment thread .github/workflows/preview.yml
Comment thread patches/@myst-theme+site+1.3.1.patch
The stylesheet purge dropped rules for classes the renderers still emit, and
the shared inline primitive leaked its token affordance onto surfaces that are
not tokens. Restore what was lost, scope the affordance, and add a contract
test so a future purge cannot silently orphan a class.

- Hand the evidence row's underline back to the insight name. The row is a
  flex label that happens to be a preview trigger, so the shared underline and
  inset were wrapping the "prior insight" tag as well, and the primitive's
  glyph margin was doubling with the row's own gap.
- Restore `.astra-ref-anchor` and `.astra-ref-citation`. Both classes are
  still written into the DOM, so the sub-analysis anchor was stacking a second
  prose-link underline on its token and the parenthetical citation could wrap
  away from the reference it follows.
- Brand the error boundary in both themes. MyST's stock boundary hands
  Document no brand props, so every --astra-* token was undefined on 404 and
  unhandled-error pages, which lost the palette and the serif faces now that
  the tokens no longer carry literal fallbacks.
- Give the brand root contract one home in LIGHTCONE_BRAND_CLASS and
  ASTRA_THEME_ATTRIBUTES rather than repeating the strings across the themes,
  the portals and the theme scope.
- Check the inline reference kinds against the primitive's own union, drop
  three class names nothing has styled, and correct the comment claiming the
  brand package bundles a monospace face — it bundles the three editorial
  faces, and identifiers fall back to the platform mono.

Validation: 135 tests, workspace typecheck, production article and book builds.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AnRM1C3r6cK6ZPBm9LsFF6
@EiffL
EiffL merged commit aad5c2d into main Sep 8, 2026
1 check passed
EiffL added a commit that referenced this pull request Sep 10, 2026
Resolves conflicts with the shared-UI rendering work from PR #17:

- root.tsx: keep the bundled stylesheets in <head> so embedded sessions can
  prefix them, while adopting main's brand class and theme attributes and
  dropping the Google Fonts links now that the brand package bundles them.
- AstraOutput: wrap the prefixed decision link in main's InlineReference.
- @myst-theme/site patch: regenerated against the pristine 1.3.1 sources so
  it carries both the useLocalStorage option and main's themeAttributes.
- README: keep both the embedding contract and the shared-rendering notes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VbuPkemydX136SpURMmW1S
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.

1 participant