Skip to content

Theme-Pulsar: refresh for Stash v0.31 (2.0) - #790

Open
nexalapp wants to merge 1 commit into
stashapp:mainfrom
nexalapp:theme-pulsar-refresh
Open

nexalapp wants to merge 1 commit into
stashapp:mainfrom
nexalapp:theme-pulsar-refresh

Conversation

@nexalapp

@nexalapp nexalapp commented Oct 4, 2026 •

Copy link
Copy Markdown

A refresh of Pulsar for Stash v0.31, made inside the existing Theme-Pulsar.css (no new stylesheet). It keeps the theme's identity: an aurora backdrop under frosted cards, sidebar and settings panel, the dark top bar with the uppercase STASH wordmark, white text, blue primary buttons with a red Delete, the bold duration on the cover, counts right-aligned on the card, and the near-black performer header.

What changed

  • Backdrop: the original Aphonus image, redrawn in CSS: nine radial gradients fitted to the image after the extra blur the design calls for (average colour difference about ΔE 2 at desktop, tablet and phone sizes). It is painted on a square layer cropped like a cover-fitted photo, so it frames the same way on any screen, is crisp at any size, and makes no external request (imgur also refused the image to headless Chrome in testing). The original image URLs are listed in a comment with how to switch to one.
  • Glass: cards, toolbar boxes, menus and the settings panel are a darkened tint with a backdrop blur and a 1px white hairline, so white text passes WCAG AA on every part of the gradient. The text shadow on titles and names is gone.
  • Colour and shape: the palette moves into variables; one blue (#1b74b9 fill, #7cc4f5 text) replaces three; one radius scale (6 / 8 / 12).
  • Top bar: pinned again (the theme had un-pinned it, so it scrolled away while Stash's filter sidebar and player stayed pinned below where it had been).
  • Toolbar (Stash v0.29+): dark boxes share a 34px height (no stray red hairline); the filter-sidebar toggle no longer hangs off the page; the filter drawer is frosted.
  • Pagination: centred with the result count on the same row; the floating bottom pagination is kept.
  • Cards: counts sit under the description instead of being pulled up over it (the old negative margin overlapped the text since v0.29); the old fixed card widths (scene cards at least 300px, performer cards at most 230px) are gone, so the size slider works again; covers fill at 16:9 and portraits at 2:3; studio chip top-left; hover lifts the card and brightens its edge, selection is a light-blue ring; the heart matches the select checkbox; studio and tag logos sit in a 16:9 box. A global negative margin on every primary button now only applies to the card counts.
  • Home page: carousel arrows inside the page and centred on the cards; studio, scene and performer cards share one width and the grid's 14px gap; every card in a row is the same height.
  • Performer page: full-bleed portrait fading into the near-black header.
  • Scene page: 32px title, blue active tab with an underline, a circle behind the big play button; performers sit two per row in the details panel.
  • Settings: the two-column restyle and checkbox switches were written for the earlier settings page and no longer lined up with v0.31 (descriptions ran off the panel and controls overlapped their labels). The frosted panel and menu placement stay; the settings use Stash's own layout with blue switches.

Version 1.8.1 → 2.0. README gains a short description and screenshots.

Screenshots

Taken on an empty Stash v0.31.1 with demo content: fictional titles and names, and openly licensed photos blurred heavily so no one is identifiable (credits on the screenshots branch).

Scenes Scene
Scenes Scene
Performer Studios

Scenes on a phone A scene on a phone

Testing

Tested on Stash v0.31.1 (Docker) in Chrome at 1440×900 and 390×844, on a real library of several thousand scenes and on an empty instance with demo content: home carousels, scene, performer, studio and tag grids with the size slider, the filter sidebar and selection toolbar, scene, performer and studio pages, settings (tasks and interface), dialogs and the Theme Switch menu. Validated with node validate.js --ci.

AI disclosure

This change was written with Claude (Anthropic) in Claude Code, from a design mockup. I reviewed the code and tested it on my own Stash install before submitting.

🤖 Generated with Claude Code

@nexalapp
nexalapp force-pushed the theme-pulsar-refresh branch from 4481052 to 21fa077 Compare October 5, 2026 03:12
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@nexalapp
nexalapp force-pushed the theme-pulsar-refresh branch from 21fa077 to 9df125b Compare October 5, 2026 15:14

This branch has not been deployed

No deployments
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