feat(pi.obsidian-theme): add the Obsidian dark theme - #55
Merged
Merged
Conversation
A deep blue-teal global theme tuned against a measured reference screenshot. The decisive finding was hue, not lightness: the previous canvas had a blue-minus-red lead of 7 (grey) while the reference sits at 21-24, so every surface is now blue-dominant. A band scan also disproved the gradient theory: the reference panels are flat (drift -0.11..-0.23 pts), so hierarchy is carried by real 1px hairlines (#2A4054 / #1C2B3A) and a solid cyan-teal selection fill (#1B4F53, +3.6 pts over a plain row) instead of a wash that measured as nothing. Elevation ladder: #091219 inset, #0F1B26 app, #12202C rails, #0E1A25 reading column, #182835 cards, #1B2C3B fields, #1E3040 raised, #223648 hover. Text: #F2F7FA titles, #C4D2DD body (11.3:1), #8FA3B4 secondary, #6A7E8F hints. Accent #5CD0B8 is reserved for selection, primary actions and focus. Styling only: one global theme (CSS) plus a bilingual info panel. Permissions are limited to ui.panel and ui.theme, with no network, filesystem, clipboard, shell or agent access. The sheet carries no @import, no @font-face and no external URL: its only reference is an inline data: SVG noise tile. Also registers the plugin in both marketplace README tables and raises the panel-chrome coverage assertion from 19 to 20 panel plugins.
|
@511373265 is attempting to deploy a commit to the vastsa's projects Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
A new community theme plugin,
pi.obsidian-theme3.0.0 — a deep blue-teal global theme for PI-Desktop, tuned for long reading sessions.Styling only. It contributes one global theme (CSS) plus a small bilingual info panel; there is no agent tool, no command beyond "open the info panel", and no background work.
Why it looks the way it does
The palette was tuned against a measured reference screenshot rather than by eye, and two plausible-but-wrong theories were discarded along the way:
#2A4054/#1C2B3A, which rise 1.0–2.8 pts off their neighbours) and by a solid cyan-teal selection fill (#1B4F53, +3.6 pts over a plain row). A 13% accent wash measured as nothing and was dropped.Elevation ladder:
#091219inset,#0F1B26app,#12202Crails,#0E1A25reading column,#182835cards,#1B2C3Bfields,#1E3040raised,#223648hover.Text scale:
#F2F7FAtitles,#C4D2DDbody (11.3:1, down from 17:1),#8FA3B4secondary,#6A7E8Fhints. Accent#5CD0B8is reserved for selection, primary actions and focus. No pure black, no pure white.Permissions
ui.panelui.themeNo network, filesystem, clipboard, shell or agent access. The stylesheet contains no
@import, no@font-faceand no external URL — its only reference is an inlinedata:SVG noise tile, so host sanitization has nothing to strip.Contents
manifest.jsoncontributes.themesmain.jsthemes/obsidian.cssrenderer/plugins/shared/appearance/.gitattributeseol=lfso packed bytes match source on every platformVerification
python3 scripts/pack_plugin.py plugins/pi.obsidian-theme→packages/pi.obsidian-theme-3.0.0.piplug, sha256e03fd14a…7fd32e, 61705 bytes; catalogshasummatches the packed file.python3 scripts/rebuild_catalog.py→ catalog grew from 25 to 26 plugins; only the new entry changed.python3 scripts/security_audit.py plugins/pi.obsidian-theme --check-packages→ zero blockers for this plugin. The one manual-review signal isappearance.js:182(setIntervalin the shared appearance adapter), which every plugin in this repo carries.node --test tests/obsidian-theme.test.mjs→ 5/5 pass.node --test tests/*.test.mjs tests/*.test.js plugins/*/test/*.test.mjs(the CI command, run on an LF checkout) → 385/397 pass. The 11 failures reproduce identically on unmodifiedmainat09c832f(380/392): gitlens / terminal integration tests that need a real repo and a native PTY, plus deps-audit scanner tests. Same failing set before and after, so this PR adds 5 passing tests and no regressions.testsworkflow reportsaction_requiredon this PR — GitHub's first-time-contributor approval gate, not a code failure. The only red check is Vercel ("Authorization required to deploy"), which cannot deploy a fork PR.Checklist
id, semanticversionpack_plugin.pysucceedsrebuild_catalog.pyupdatedcatalog.json.piplugsecurity_audit.py --check-packageshas zero blockers for this pluginpanel-chromecoverage assertion raised 19 → 20I have not been able to test via Load dev plugin on this machine, so the panel and the theme picker entry have not been visually confirmed inside the app — the CSS itself is the same sheet that was iterated against screenshots.