Skip to content

feat(design): targeting-reticle text fields in Watch, Loop & file filter#653

Merged
svenmalvik merged 1 commit into
mainfrom
design-reticle-textfields
Jun 12, 2026
Merged

feat(design): targeting-reticle text fields in Watch, Loop & file filter#653
svenmalvik merged 1 commit into
mainfrom
design-reticle-textfields

Conversation

@svenmalvik

Copy link
Copy Markdown
Collaborator

Summary

Extends the sci-fi corner-bracket targeting reticle (introduced for the New Agent name field in #649) to the remaining text inputs, so every field shares the same focus language.

  • Watch — URL bar (manifold.watch): on focus, the wrapper now grows the four accent corner brackets over its --bg-elevated fill instead of an accent border + glow ring. The sandboxed webview doesn't load theme.css, so this is an inline-style mirror of the global input:focus rule.
  • Loop — config inputs/textareas (manifold.loop): inject the input:focus, textarea:focus reticle rule verbatim from theme.css (with !important to override the inputs' inline background/border) into the webview's injected <style>.
  • File-tree "Filter files…" input: drop the solid box and opt into a reusable .reticle-input resting reticle — dimmed brackets at rest, bright on focus — exactly like the titlebar search. The former titlebar-only resting rule in theme.css is generalized into the shared .reticle-input class.

Token-only and theme-agnostic. Rest states for unfocused fields and the Loop textarea are unchanged.

Testing

  • npm run build:plugins — both plugins bundle clean.
  • npm run typecheck:plugins / typecheck:web — no new errors (web stays at its 37-error baseline; the lone plugin error is the pre-existing ScoreTrend.test.tsx jest-dom baseline, untouched here).
  • Visual: rendered the real edited theme.css + the verbatim plugin-injected CSS / inline styles in Chromium (the same engine the renderer and plugin webviews use) and confirmed each state:
    • File filter: dim resting brackets (no box) at rest → bright reticle on focus.
    • Watch URL bar: brackets paint over the --bg-elevated fill with the border transparent (inline background + backgroundImage coexist correctly).
    • Loop: focused input shows the injected reticle; at-rest textarea is unchanged.

🤖 Generated with Claude Code

Extend the sci-fi corner-bracket reticle (#649) to the remaining text
inputs so they match the New Agent name field.

- Watch URL bar: the focused wrapper now grows the four accent corner
  brackets (over its --bg-elevated fill) instead of an accent border +
  ring. The sandboxed webview lacks theme.css, so this is an inline
  style mirroring the global input:focus rule.
- Loop config inputs/textareas: inject the input:focus reticle rule
  (verbatim from theme.css, !important to beat inline background/border)
  into the loop webview's injected <style>.
- File-tree "Filter files…" input: drop its solid box and opt into a
  reusable .reticle-input resting reticle (dimmed brackets at rest,
  bright on focus) — like the titlebar search. Generalized the former
  .titlebar-search-input resting rule into the shared .reticle-input.

Token-only and theme-agnostic; rest states for unfocused fields and the
loop textarea are unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@svenmalvik svenmalvik requested a review from a team June 11, 2026 21:50
@svenmalvik svenmalvik merged commit d449208 into main Jun 12, 2026
@svenmalvik svenmalvik deleted the design-reticle-textfields branch June 12, 2026 06:36
svenmalvik added a commit that referenced this pull request Jun 12, 2026
## Summary

Follows up on #653, which gave the file filter a resting
**targeting-reticle** edge (dimmed corner brackets when idle,
brightening to full accent on focus) instead of a solid box. This
applies the same treatment to the two remaining prominent text fields:

- **New agent** — the "Agent name (optional)…" input
(`TaskDescriptionField`)
- **New project** — the "Paste the copied project instructions…"
textarea (`NoProjectActions`)

Both now opt into the shared `.reticle-input` class and drop their solid
resting border + filled background:

- `border` → `1px solid transparent` — keeps a border-box for the focus
reticle to paint into without shifting layout
- `background` → `transparent` — the brackets become the field's only
edge

No new tokens or CSS; reuses the `.reticle-input` / `input:focus` /
`textarea:focus` rules already in `theme.css`. `--radius-md` corners
stay square enough for the brackets to render.

## Testing

- `npm test -- NoProjectActions.test.tsx NewAgentForm.test.tsx` → 24/24
pass
- `npm run typecheck:web` → 37 errors, unchanged from baseline (none in
the touched files)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.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.

1 participant