Prompt file imported from 3270io/3270Web (
.github/prompts/ux-ui.prompt.md). Copyright stays with the author.
UX / UI Change Prompt
When to use
- Adding or modifying a modal, button, or control in
web/templates/orweb/static/. - Changing the terminal screen layout or 3270 field styles.
- Updating the log viewer, workflow controls, or keyboard-shortcut panel.
- Fixing a visual regression reported against the rendered screen or a modal.
Inputs
- Goal:
- Scope: (e.g.,
web/templates/screen.html,web/static/keys.js) - Files:
- Constraints: (e.g., must work without a JS bundler, must not break the terminal grid layout)
Prompt
Follow the conventions in .github/copilot-instructions.md and .github/instructions/frontend.instructions.md.
Implement the UI change described by: .
Rules:
- Write plain ES6. No npm dependencies, no bundler, no TypeScript.
- Do not move 3270 field
<input>generation out ofinternal/render/html_renderer.gointo templates. - New state-mutating actions must call a JSON endpoint (not a form POST) and handle errors in JS.
- All
fetchPOST calls rely on the browser sending theOriginheader automatically; do not add a custom CSRF token mechanism. - Preserve the monospace grid layout so 3270 field positions remain accurate. Do not change the
font-familyor cell dimensions without an explicit requirement. - Keep existing endpoint paths (
/logs,/screen,/key, etc.) unchanged.
Produce a minimal diff covering only .
Done looks like
-
go test ./...passes (Go handler side unchanged or tested) - No new npm/node dependencies introduced
- Existing JS files edited in-place (no new files unless clearly necessary)
- Terminal grid layout visually intact (monospace, correct cell sizing)
- New JS functions follow the existing naming and
fetch-based pattern -
go vet ./...reports no new issues - Diff is scoped to
web/only (unless a new JSON endpoint was required)
