aboutsummaryrefslogtreecommitdiff
path: root/themes
Commit message (Collapse)AuthorAgeFilesLines
* feat(theme-studio): pin the remaining chrome at absolute heightsCraig Jennings32 hours1-2/+4
| | | | | | tab-bar, tab-line, line-number, and line-number-current-line join mode-line in the chrome height seeds (apply_modeline_height_default generalized to apply_chrome_height_defaults), each pinned at absolute 130 so no bar or gutter tracks a buffer's enlarged default face. header-line and mode-line-inactive stay unseeded on purpose: both inherit mode-line, so the pin reaches them through the chain and their own value would duplicate state. The line-number pair is seeded individually because the generated theme's explicit specs leave their :inherit unspecified at runtime. header-line, tab-bar, and tab-line also join the UI faces table, so all chrome heights are editable through the size column; the mock-completeness gate exempts the three faces the mock deliberately doesn't draw. WIP.json reconciled and the theme regenerated; every chrome face resolves :height 130 in the live daemon, pins and inherit chains both.
* fix(theme-studio): pin mode-line at an absolute heightCraig Jennings34 hours1-2/+2
| | | | | | | | | | | mode-line's :height was unspecified, so a buffer that remaps its default face larger (the nov reading view) inflated its modeline with it. Seed an absolute 130 (1/10pt) on mode-line — build_uimap gains apply_modeline_height_default, mirroring the hover-box default — and set it in WIP.json. Also drop the stray :height 2 from mode-line-inactive (a JSON integral-float collapse that rendered inactive bars at 0.2pt); inactive now inherits mode-line's height. Theme regenerated and loaded live; the editable-height spec covers making this tunable in the studio.
* chore(theme): WIP theme snapshotCraig Jennings34 hours1-63/+69
|
* chore(theme): WIP theme snapshotCraig Jennings43 hours1-22/+33
|
* chore(theme-studio): commit WIP theme snapshotCraig Jennings4 days1-4/+11
|
* docs: normalize generated-file headers and prune obvious commentsCraig Jennings6 days1-1/+1
| | | | The theme-studio and browser-choice generators now stamp their output with a header that names the authoritative source and says to regenerate rather than hand-edit. I regenerated both files to match. I also deleted six obvious "describe the next form" comments, replaced two stale placeholders in titlecase.el and an incomplete FIXME in org-checklist.el with real rationale, and condensed early-init's header and Commentary.
* fix(theme-studio): darken the EAT diff line backgroundsCraig Jennings6 days1-0/+2
| | | | | | The added and removed line backgrounds in Claude Code diffs read too bright. I added eat-term-color-22 (added green) and eat-term-color-52 (removed red) to the WIP theme at about half their former brightness: #005F00 to #002f00, #5F0000 to #2f0000. EAT uses each face's foreground as the palette value for both text and background paint, so darkening the foreground darkens the diff background. The green index is confirmed. The red is the symmetric counterpart. The brighter within-line word-highlight shades are different indices, left until I sample them live.
* chore(theme): WIP set nerd-icons-completion-dir-face to goldCraig Jennings6 days1-0/+1
| | | | Gold completing-read folders against the silver file and dirvish icons. The nerd-icons-config override is what lets this face win over the global dir advice.
* chore(theme): WIP palette pass over nerd-icons and dirvish facesCraig Jennings7 days1-40/+39
| | | | Region background to #424f5e, highlight distant-foreground, a few ui face locks, plus a sweep of the nerd-icons color palette (the d/l/alt variants) and several dirvish faces (file-modes, free-space, hl-line, inactive).
* fix(theme): ansi-color-bright-magenta inherits magenta, not itselfCraig Jennings8 days1-60/+61
| | | | The bright-magenta face was self-referential, so it resolved to no color and difftastic's bright-magenta string literals rendered near-black. Point it at ansi-color-magenta like the other bright faces. Also a broader WIP ansi/palette pass.
* chore(theme): save WIP theme stateCraig Jennings8 days1-25/+25
|
* chore(theme): save WIP theme stateCraig Jennings8 days1-2/+24
|
* chore(theme-studio): update WIP theme snapshotCraig Jennings10 days1-38/+38
|
* chore(theme): update WIP theme capturesCraig Jennings11 days1-5/+5
|
* chore(theme-studio): restyle WIP orderless-match facesCraig Jennings14 days1-4/+4
| | | | New foregrounds plus italic slant on orderless-match-face-0..3; source flips default to user.
* chore(theme-studio): save WIP working stateCraig Jennings2026-06-201-14/+19
|
* chore(theme-studio): save WIP working stateCraig Jennings2026-06-201-5/+20
|
* chore(theme-studio): commit WIP theme edits and migrated working stateCraig Jennings2026-06-191-3/+3
| | | | | | hl-line inherits highlight, mode-line-inactive inherits mode-line, and the dashboard title gains :height 1.15. WIP.json is reserialized under the expanded face model added this session.
* chore(theme-studio): update WIP theme region, mode-line-highlight, pearl facesCraig Jennings2026-06-181-8/+9
|
* wip(theme): snapshot WIP theme and daneel palette draftCraig Jennings2026-06-161-156/+464
|
* chore(theme): update WIP theme buildCraig Jennings2026-06-151-103/+115
|
* refactor(themes): retire dupre, fall back to modus-vivendiCraig Jennings2026-06-155-1193/+0
| | | | WIP, the theme-studio export, is the active theme. dupre was only the fallback and a structural reference. Move the fallback to the built-in modus-vivendi, guaranteed present everywhere this config loads. Delete the three dupre files plus its test and palette assets, and fix the stale comments that pointed at dupre-faces.el for the auto-dim and org-keyword faces (those moved to org-faces-config.el). Repoint the dupre-clear-theme spec's palette reference to git history.
* chore(theme-studio): refresh WIP theme export and deployed themeCraig Jennings2026-06-151-36/+80
| | | | Latest theme-studio tuning pass: updated theme.json export and the regenerated themes/WIP-theme.el it deploys.
* chore(themes): track generated theme outputsCraig Jennings2026-06-141-0/+539
| | | | Drop the theme-theme.el ignore and check in WIP-theme.el, so the deployable themes the studio generates live in the repo. The studio JSON sources stay ignored as scratch.
* fix(dupre): make diff-changed and diff-refine-changed legibleCraig Jennings2026-06-072-3/+3
| | | | | | diff-refine-changed rendered the default foreground (#f0fef0) on the bright-gold yellow-1 (#ffd700) at WCAG contrast 1.35, unreadable wherever the face is a plain background, not inside diff-mode's own foreground overlay. diff-changed was weak too at 2.78. Both now use the default foreground on the dark amber yellow-2 (#875f00), already in dupre's palette, for a contrast of 5.49. diff-refine-changed keeps its bold weight so it stays stronger than diff-changed. A WCAG-contrast test guards both faces from dropping below 4.5.
* fix(dupre): make org headings and the document title non-boldCraig Jennings2026-05-261-5/+9
| | | | org-level-1..4 inherit dupre-heading-1..4, which set :weight bold, so org headings rendered bold. I overrode the weight to normal on the org-level faces themselves rather than on dupre-heading-*, so the info-manual, markdown, and shr headings that also inherit those faces keep their bold. I also dropped the bold from org-document-title for consistency.
* fix(dupre): flush org src-block delimiter lines with the backgroundCraig Jennings2026-05-261-2/+2
| | | | org-block-begin-line and org-block-end-line carried a bg+1 (#252321) background, so the #+begin_src and #+end_src lines showed a lighter box that matched neither the block body nor the normal background. I pointed both at the theme background so the delimiter lines sit flush, keeping their gray foreground.
* fix(dupre): pin org keyword and priority faces to a uniform heightCraig Jennings2026-05-261-26/+32
| | | | | | A level-2 heading's whole line carries org-level-2 (height 157). org layers that level face onto a bare TODO keyword, but drops it when the heading has a priority cookie, so the keyword fell back to the body height (143). The same keyword rendered at 157 without a cookie and 143 with one, which read as inconsistent keyword sizes across the Linear and todo views. I gave org-todo, org-done, and the dupre-org-* keyword and priority faces an explicit :height of 143 so they no longer float with the heading face. The height is absolute on purpose. A float would re-inherit the level height inside the face list and bring the inconsistency back. Keywords now render at the body height everywhere, a step down from the heading title.
* fix(dupre): tone down the org TODO and warning redsCraig Jennings2026-05-261-2/+2
| | | | | | org-todo was intense-red (#ff2a00), the brightest red in the palette. Every TODO-state keyword that isn't in org-todo-keyword-faces falls back to org-todo. So the Linear states (IN-PROGRESS, BACKLOG-PRIORITIZED, and the rest) all rendered in that hot red, and the whole view shouted. I moved org-todo to red-1 (#a7502d) and org-warning to red (#d47c59). They're distinct now, so an overdue deadline reads a shade warmer than a plain keyword. intense-red stays reserved for the FAILED face.
* feat(dupre): darken the theme background to #0d0b0aCraig Jennings2026-05-261-2/+2
| | | | The previous #151311 was already the palette's darkest entry. #0d0b0a is about 40% darker again. Both bg and bg+0 move together because bg+0 feeds hl-line, which should stay equal to the background.
* fix(theme): register dupre faces so org status colors are themedCraig Jennings2026-05-251-0/+60
| | | | | | | | The dupre theme defined its own faces (dupre-accent, the headings, and the org status faces) only through custom-theme-set-faces, never defface. That leaves them unregistered, so they render through :inherit but silently fail when applied directly as a text property. org-todo-keyword-faces and org-priority-faces apply faces that way, so the org keyword and priority colors never showed as dupre tones. I added a defface registration block to dupre-faces.el for all of dupre's own faces, so they're real faces. The theme still sets their colors. Then I pointed org-todo-keyword-faces and org-priority-faces (in org-config.el) at named dupre-org-* faces, each the closest palette color to its former hard-coded name, and gave each a dimmed variant that auto-dim-config.el swaps in for unfocused windows. A keyword in a dimmed window now shows a darker shade of its own color rather than flat gray or full brightness. A regression test asserts dupre's faces stay registered, since that was the latent bug behind all of this.
* feat(auto-dim): dim non-selected windows via auto-dim-other-buffersCraig Jennings2026-05-251-0/+10
| | | | | | | | I added auto-dim-config, a module that loads my local auto-dim-other-buffers fork and dims windows that don't have focus so the selected window stands out. A non-selected window drops to a pure-black background with faded gray text. The dimmed faces live in the dupre theme (themes/dupre-faces.el) so they track theme switches, and the module remaps default, the font-lock faces, and org-block onto them so syntax-highlighted code fades too rather than staying lit. Fringe is left out because dimming it forces a full-frame refresh that flickers on this non-pgtk build. dim-on-focus-out is nil, so tabbing to a browser or terminal on Hyprland doesn't dim the whole frame. vterm and agent windows don't dim either, because the terminal paints its own per-cell colors past the face remap. I'm keeping that, since the agent's output stays readable while I work in code on the other side. The module loads after the theme, carries a load-graph header, joins the header-contract allowlist, and the inventory moves to 103 of 103 classified.
* fix(dashboard): center the banner subtitle and color the navigator and itemsCraig Jennings2026-05-221-1/+1
| | | | | | The banner subtitle sat left of center because dashboard-banner-title-offset was 5, which over-shifts. I dropped it to 3, which lines the subtitle up under the banner image. The navigator and the recentf/project/bookmark list rendered in the default near-white. I set dashboard-items-face to steel+2 so they pick up a theme color, and the section headers stay blue via dashboard-heading. The navigator and the items share dashboard-items-face, because the navigator is drawn with a dashboard-items-face overlay that wins over its per-button dashboard-navigator face, so they take one color by design here.
* chore(themes): regenerate dupre palette preview from palette.elCraig Jennings2026-05-223-175/+156
| | | | | | The committed palette PNG had drifted from the theme. It labeled steel as "cyan", invented magenta colors the palette never had, and left out blue+2. There was no generator, so the preview and the source diverged silently. I added gen-palette-preview.py, which parses the (name "#hex") pairs straight out of dupre-palette.el and emits the preview HTML grouped one row per color family. I regenerated the HTML and the PNG from it, so all 32 colors show with square swatches at 2x, columns aligned, and nothing drifts from palette.el again.
* fix(org-drill): switch from local load-path to VC package installCraig Jennings2026-01-271-0/+0
| | | | | Use :vc to install org-drill from GitHub instead of :load-path to local clone. Add dupre color palette reference image.
* chore(theme): add color palette reference filesCraig Jennings2026-01-262-0/+223
| | | | | - show-palette.sh: terminal script displaying colors with ANSI true color - dupre-color-palette.html: visual HTML reference for all theme colors
* feat(theme): restructure dupre-theme into modular architectureCraig Jennings2026-01-263-123/+1006
| | | | | | | | | | | | Split monolithic theme into three files following modus-themes pattern: - dupre-palette.el: 30 base colors + 28 semantic mappings - dupre-faces.el: 150+ face definitions organized by package - dupre-theme.el: thin entry point that loads palette and faces Applied 60-30-10 color design rule: - 60% neutrals (grays for comments, metadata, lower headings) - 30% signature blue (#67809c) for keywords, links, directories - 10% accents (gold for h1, green for strings, terracotta for functions)
* changing repositoriesCraig Jennings2025-10-121-0/+149