alpha
Login
or
Join now
jeremy.herve.bzh
/
skypress
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
A calm place to write long-form, and publish it to the open social web.
skypress.blog/
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
skypress
/
src
/
pages
/
at
acf903d824ef9bb2164067a772906c8dfb29831a
1 folder
14 files
Jeremy Herve
Add /write route and writing-first chrome styles
9d ago
acf903d8
[author]
Keep mention hover icons from reflowing following text The previous version animated the icon pseudo-elements' width 0 -> 0.85em on hover, which pushed any text after the mention sideways (only unnoticed because the test mention ended its paragraph). Reserve the icon width + margin permanently (invisible at rest via opacity 0) and animate only opacity + transform on hover — neither affects layout, so following text stays put. Same technique the author handle link uses. Color stays var(--sun)/currentColor, i.e. the per-publication theme accent. Verified in-browser: trailing text holds its x-position between rest and hover while both icons fade in.
1 week ago
404.astro
Add global 404 page for SP12
2 weeks ago
500.astro
Add 500 page for SP12
2 weeks ago
_404.meta.test.ts
Underscore-prefix colocated page tests so Astro ignores them The 404, 500, and [author]/index meta tests lived under src/pages/ without the leading underscore. Astro's file router imports every .ts in src/pages/ during static-path collection, so the prerender server evaluated these files, their top-level 'vitest' import threw outside the runner, and the Cloudflare prerender server 500'd the build. Rename them with a leading underscore (matching the existing [slug] tests) so Astro skips them as routes while vitest's src/**/*.test.ts glob still discovers them. See AGENTS.md constraint #8.
2 weeks ago
_500.meta.test.ts
Underscore-prefix colocated page tests so Astro ignores them The 404, 500, and [author]/index meta tests lived under src/pages/ without the leading underscore. Astro's file router imports every .ts in src/pages/ during static-path collection, so the prerender server evaluated these files, their top-level 'vitest' import threw outside the runner, and the Cloudflare prerender server 500'd the build. Rename them with a leading underscore (matching the existing [slug] tests) so Astro skips them as routes while vitest's src/**/*.test.ts glob still discovers them. See AGENTS.md constraint #8.
2 weeks ago
_index.handlestart.test.ts
Fix handle CTA overflowing and clipping the Start button on mobile The landing CTA row is a flexbox holding the input field (flex: 1) and the Start button. Flex items default to min-width: auto, which forbids shrinking below the content's intrinsic width — and the <input> carries a large intrinsic floor (~241px). On narrow phones the field couldn't shrink, so the row grew past its container and pushed Start off the right edge (reproduced at <=320px CSS px, where it overflowed by 44px and rendered as "Star..."). Add min-width: 0 to both flex children so the field — and the input nested inside it — can collapse to fit the available width. Guarded by a source-level regression test, matching the _index.phase.test.ts pattern (the runner is pinned to jsdom for the WP block suites, so rendering through astro/container isn't viable).
2 weeks ago
_index.phase.test.ts
Underscore-prefix colocated tests under src/pages/ so the build prerenders Astro's file router imports every .ts under src/pages/ during static-path collection to find getStaticPaths/endpoint handlers. The colocated *.test.ts guards there ran their top-level `import … from 'vitest'` during that import, which throws outside the vitest runner — surfacing as the Cloudflare prerender server returning 500 ("Vitest failed to access its internal state") and breaking `astro build` / `npm run deploy`. The two .meta.test.ts files added with the recent OG work (7f1cffe, 24b64f5) joined index.phase.test.ts under src/pages/ and tipped the build over. Prefix the three files with `_` so Astro ignores them as routes, while vitest's `src/**/*.test.ts` glob still discovers them. Each test reads its sibling .astro via import.meta.url, so the in-place rename keeps every relative path working and preserves the colocated-test convention. Record the rule as constraint #8 in AGENTS.md so future page tests follow it.
2 weeks ago
_index.stacking.test.ts
Fix account menu dropdown stacking on the home page The signed-in account dropdown (Dashboard/Write/Profile) appeared see-through and was unclickable on mobile. It was not a transparency issue: .masthead, .hero, and .showcase are sibling stacking contexts all at z-index: 2, so the later-in-DOM .hero painted on top of the entire masthead — including the dropdown, whose own z-index: 5 is confined to the masthead's context. The hero text bled over the dropdown and the hero intercepted its taps. Bump .masthead to z-index: 3 so its context (dropdown included) paints above .hero and .showcase. Add a source-level regression test pinning the stacking order.
2 weeks ago
_write.meta.test.ts
Add /write route and writing-first chrome styles
1 week ago
client-metadata.json.ts
Serve OAuth client metadata from a worker route (fix prod 404) Production returned `invalid_client_metadata … Not Found` for https://skypress.blog/client-metadata.json: the static public/.json served locally and on the first deploy but 404'd at the deployed origin (Cloudflare Workers Static Assets serving the bare .json proved unreliable). Replace the static file with a worker route (src/pages/client-metadata.json.ts, prerender = false) that always runs. It generates the document from the request origin, so client_id always equals the fetched URL (apex/www/preview all work) and redirect_uris is `<origin>/editor/` — keeping the trailing slash the atproto client needs to match Cloudflare's canonical /editor/ path. Verified on workerd (astro preview): /client-metadata.json -> 200 application/json, origin-derived; /editor/ and reading routes unaffected.
2 weeks ago
dashboard.astro
Merge branch 'provider-logos-in-publications' into trunk
2 weeks ago
editor.astro
Show header + skeleton while the dashboard and editor islands load The dashboard and editor mount browser-only React islands (client:only — auth and the WordPress editor can't render server-side, per Decisions 0001/0003/0004). Until their JS bundle loaded, the slot="fallback" was a bare, left-aligned "Loading…", so the page had no shape and hydration popped the full UI into an empty viewport. Render the durable page chrome in the fallback instead: a logo-only header reusing the global .app-bar classes (matching AppBar's status === 'loading' state, so the swap to the live bar is seamless) plus a content skeleton that mirrors each loaded layout, so hydration doesn't reflow. The header omits nav/identity because auth state isn't known before the island runs. A new shared LoadingScene.astro carries both variants. The fallback is plain server-rendered markup (not inside the island's DOM), so the component's scoped styles reach it. The skeleton shimmer respects prefers-reduced-motion, and the region is marked aria-busy with a visually-hidden "Loading…" label. Drops the now-unused .editor-shell__loading rule.
2 weeks ago
index.astro
Replace the SkyPress mark with the new winged-sun logo Swap the hand-drawn type-block mark for the new winged-sun logo across the favicon and every in-app spot (Logo.astro, AppBar, LoadingScene). The mark now lives once in src/lib/brand/skypress-mark.ts as inline SVG whose paths use fill="currentColor", so it follows the surrounding color (the --sun token, which lightens in dark mode) instead of being locked to one orange. A single source avoids duplicating the path data across the Astro/React island boundary. The favicon keeps the static-orange public/skypress-logo.svg, since a favicon can't inherit currentColor. This drops the landing-only sun->moon easter-egg: the new logo is a sun with no moon variant and only one asset was provided. Its night/dusk swap styles in index.astro and the three tests that locked it are removed.
2 weeks ago
lexicon.astro
Refocus the lexicon page on the format SkyPress actually owns The page documented the community standard.site lexicons field-by-field, in two hand-authored tables, as if they were SkyPress's own. They're not (Decision 0005), and spelling out someone else's schema invites drift and overstates what SkyPress defines. Drop that interop section and its tables; keep only an honest list of the records publishing writes, with a pointer out to standard.site. The one format SkyPress does own, blog.skypress.content.gutenberg, was described only by its schema, which is abstract about what blocks look like. Add a worked example built from a real published record (the Potato buns recipe) showing the repeating name / attributes / innerBlocks shape and the $type discriminator, so the structure is concrete. Add a short self-hosting section pointing to the source repo, since the records living in the reader's own account is the whole point and the project is meant to be run anywhere.
2 weeks ago
write.astro
Add /write route and writing-first chrome styles
1 week ago