Skip to content

UX improvements - code block and file tree icons, instead of text and gray iconography#1304

Draft
IEvangelist wants to merge 7 commits into
mainfrom
dapine/add-icons-plugin
Draft

UX improvements - code block and file tree icons, instead of text and gray iconography#1304
IEvangelist wants to merge 7 commits into
mainfrom
dapine/add-icons-plugin

Conversation

@IEvangelist

@IEvangelist IEvangelist commented Jun 26, 2026

Copy link
Copy Markdown
Member

Also fixed many legacy apphost.ts occurrences.

Before

image

After

image

…yment documentation

fix(docs): refine code block titles for clarity in Python and JavaScript sections

style(css): enhance site styles with new file tree icon size and abbr cursor

feat(docs): introduce Kubernetes clusters deployment guide with Helm integration

feat(unocss): add UnoCSS configuration for Starlight icons support
Copilot AI review requested due to automatic review settings June 26, 2026 16:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

@IEvangelist IEvangelist enabled auto-merge (squash) June 26, 2026 16:24
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Frontend HTML artifact ready

The latest frontend build uploaded the frontend-dist artifact for PR #1304. Use the VS Code button below to open this PR with GitHub Artifacts Explorer and browse the built HTML locally.

VS Code: Open PR #1304 artifacts

This comment updates automatically when a new frontend build artifact is uploaded.

IEvangelist and others added 3 commits June 26, 2026 13:16
… chunks resolve it

ec.config.mjs loaded pluginIcon from starlight-plugin-icons using a URL resolved
against import.meta.url. During the build's prerender phase Astro bundles this
config into dist/.prerender/chunks/, which moves import.meta.url away from the
project root, so the ./node_modules/...expressive-code.ts URL pointed at a
non-existent path. The import threw and the <Code> component renderer silently
fell back to a default Expressive Code config, producing a different asset hash
than the markdown renderer. Pages then referenced EC stylesheet/script files
that were never emitted (404s), which broke code-block styling/icons and caused
header/cookie layout instability that timed out the Playwright UI-regression
tests.

Resolve the plugin source from process.cwd() (the project root) so the path
stays valid in both the integration and bundled prerender contexts, keeping a
single EC config and a single emitted asset bundle.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The 'homepage header actions stay reachable at zoomed and reflow widths'
desktop test repeatedly navigates home -> install-cli -> home across narrow
widths. Starlight's view transitions animate those navigations, and in
headless Chromium a transition started on the second homepage visit can stall
the compositor (requestAnimationFrame stops firing), freezing the whole page
so every header action becomes unclickable and the click times out.

Disable motion for the test so Starlight skips the view-transition animations,
keeping the page interactive across the repeated navigations. This matches the
existing reduced-motion pattern already used in integrations-gallery.spec.ts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@IEvangelist IEvangelist marked this pull request as draft June 27, 2026 14:39
auto-merge was automatically disabled June 27, 2026 14:39

Pull request was converted to draft

…ilds

PR #1304 added starlight-plugin-icons but icons disappeared in two scenarios:

1. CI (missing icon CSS): uno.config.ts uses only presetStarlightIcons, whose
   CSS is driven entirely by .starlight-icons/safelist.json. That file was
   gitignored, so on a fresh CI clone UnoCSS read an empty safelist and emitted
   zero i-material-icon-theme:* rules - the injected icon spans rendered at 0x0
   (invisible). Vendoring safelist.json guarantees UnoCSS generates the icon CSS
   on a fresh clone (verified: 70 entries -> 68 icon rules with SVG data-URIs;
   empty safelist -> 0 bytes).

2. Local/offline (no icon data): getMaterialIconsData() does an unconditional
   network fetch and returns undefined on failure, so resolveIcon injects no
   span at all. A pnpm patch makes it fall back to the vendored .starlight-icons
   cache (upstreamed as Rettend/starlight-plugin-icons#9), and the icon data is
   now committed so the fallback always has data.

Changes:
- Vendor src/frontend/.starlight-icons (icon data + safelist.json); un-ignore
  the dir in .gitignore.
- Add pnpm patch patches/starlight-plugin-icons@1.1.6.patch and register it in
  pnpm-workspace.yaml / pnpm-lock.yaml (frozen-lockfile install verified).
- Ignore Playwright blob-report/.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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