Skip to content

feat(editor): unify SerializeReference window design and keyboard nav#150

Merged
VPDPersonal merged 15 commits into
mainfrom
feat/serialize-reference-window-redesign
Jul 23, 2026
Merged

feat(editor): unify SerializeReference window design and keyboard nav#150
VPDPersonal merged 15 commits into
mainfrom
feat/serialize-reference-window-redesign

Conversation

@VPDPersonal

Copy link
Copy Markdown
Owner

Summary

  • Welcome rebuilt on the glass-card idiom: hero links, sample cards with two-state install markers, unified hover transitions.
  • Project References / Asset References brought to one audit design: flat entry rows with absolute dividers, composite headers splitting missing / migration / required counts, a colour legend (amber = missing, blue = pending migration).
  • Keyboard navigation on every tab: ↑/↓ move a focus ring over rows/cards, Enter activates, Esc drops focus; the Excluded Folders list also takes Enter/Del; key hints live in the window footer.
  • ✨ Audit entries got real affordances: selectable/copyable text, a context menu (Open in Asset References / Open in Prefab Mode / Select in Project), start-elided asset paths so the file name stays visible.
  • ♻️ Settings tab rebuilt on the window design system (static card headers, flat rows, custom scrollbar, notes); the Unity-native pages restructured under Preferences → Aspid.FastTools with SerializeReference / Type Selector / Welcome subpages.
  • 🎨 TypeSelector picker chrome tied to the card accents: hover/selection fills, row dividers, search-border accent.
  • 📝 QA checklists (EN + RU) extended with the new behaviours; settings paths updated.

Notes for review

  • ⚠️ Editor-only UI throughout — no runtime assemblies touched (the lone SerializeReferenceSharedSettings.asset diff is a serialized-field touch).
  • ♻️ One merge from main mid-branch (pipeline tooling update) — its noise is not part of the redesign.
🇷🇺 Описание на русском

Summary

  • Welcome пересобрана на glass-card-идиоме: hero-ссылки, карточки сэмплов с двухфазным маркером установки, единые hover-переходы.
  • Project References / Asset References приведены к единому дизайну аудита: плоские строки с абсолютными разделителями, составные шапки с раздельными счётчиками missing / migration / required, цветовая легенда (янтарный = missing, синий = pending migration).
  • Клавиатурная навигация на каждой вкладке: ↑/↓ двигают фокус-кольцо по строкам/карточкам, Enter активирует, Esc сбрасывает фокус; список Excluded Folders также принимает Enter/Del; подсказки клавиш — в футере окна.
  • ✨ Записи аудита получили нормальные аффордансы: выделяемый/копируемый текст, контекст-меню (Open in Asset References / Open in Prefab Mode / Select in Project), элизия путей с начала — имя файла всегда видно.
  • ♻️ Вкладка Settings пересобрана на дизайн-системе окна (статические шапки карточек, плоские строки, кастомный скроллбар, заметки); нативные страницы Unity реструктурированы под Preferences → Aspid.FastTools с подстраницами SerializeReference / Type Selector / Welcome.
  • 🎨 Хром TypeSelector-пикера привязан к акцентам карточек: заливки hover/selection, разделители строк, акцент рамки поиска.
  • 📝 QA-чеклисты (EN + RU) дополнены новыми поведениями; пути настроек обновлены.

Notes for review

  • ⚠️ Только editor-UI — runtime-сборки не тронуты (единственный дифф SerializeReferenceSharedSettings.asset — сериализованное поле).
  • ♻️ Один merge из main посреди ветки (обновление pipeline-тулинга) — его шум не относится к редизайну.

VPDPersonal and others added 14 commits July 22, 2026 00:56
- rebuild sample rows as glass cards whose whole header line is one flat gradient button (References "Fix all" idiom): title left, verb pinned right, soft accent hover glow
- imported samples get a direct error-accent Remove action (confirm dialog + AssetDatabase.DeleteAsset) instead of the old whole-row reimport pill
- add an accent underline sweep riding the header divider, triggered from the header button hover via a card modifier class; red on Remove cards
- keep the animated title inside the brand green family and drop the hero blurb's opaque plate plus dead standalone-window leftovers (duplicate dots background, :root bg token override, manual hover recolor)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiKFbkrKkZRZuXKT7f933W
- own titleContent and a MinWindowSize floor in CreateGUI so every window instance gets them, including panes restored from saved layouts that never pass through Reveal
- add Documentation / GitHub / Asset Store quick links under the hero blurb, styled after the footer link
- mark not-yet-imported samples with a brand-blue dot ahead of the title (unread-marker idiom) that turns import-green while the header verb is hovered; drop the decorative Import chevron
- seat the hover sweep exactly on the divider line and dim inactive tab underlines to the card-border tone so the active green owns the hierarchy

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiKFbkrKkZRZuXKT7f933W
- sample card state dot now covers both states: brand-blue while not imported, green once imported (was: dot only for missing samples)
- hover/sweep transitions unified to the shared 0.25s ease-out beat across Welcome and Settings cards

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R82xNiuEFN7fFmDPzpJMfz
…d row divider

- assign-picker chrome (focused-search frame, row hover/selection, magnifier and breadcrumb hovers) follows the host card accent via a new card-level --migrate modifier: amber on broken-type cards, info on [MovedFrom] migration cards
- picker rows rebuilt as a transparent shell plus a 22px content wrapper painting a shared row_bg variable, because DynamicHeight virtualization ignores item margins and padding; the pinned-block divider is now its own hairline element with 4px air on both sides instead of a border that curved with the row radius
- attached picker footer becomes a rounded pill level with the header strip

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R82xNiuEFN7fFmDPzpJMfz
- Arrow keys walk a flat focus ring over every actionable element (Rescan, Fix all headers, Smart Fix / Migrate rows, entry rows); Enter activates, Escape clears; the open type picker keeps the keyboard.
- AspidGradientButton gains a Highlighted flag driving its hover visual (accent overlay + label tint) programmatically; mouse hover and the flag compose.
- Focused Fix all headers also light their card's divider sweep, so keyboard focus renders identically to mouse hover; plain rows take the hover fill via a --focused class.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sdu159BPL33aGCGkCUsjZf
Co-Authored-By: Claude <noreply@anthropic.com>
- make entry-row path/rid/field labels selectable; row jump skips when the click ends a text selection
- add right-click menu on entry rows: Open in Asset References, Open in Prefab Mode, Select in Project (built-in Copy removed)
- group Required violations by asset with entry/file counters; split overview header counts across helpers

Co-Authored-By: Claude <noreply@anthropic.com>
- add keyboard nav ring (arrows/Enter/Esc) over rescan, document headers, node bands, action rows and orphan clears
- add band divider + accent hover sweep to node cards; flatten Migrate/Smart Fix gradient pills into accent action rows
- split overview headline into per-kind counts, add amber/blue accent legend shown when both tones are on screen
- make footer paths/rids selectable with start-elided paths; retint picker chrome via row_bg variable per card accent

Co-Authored-By: Claude <noreply@anthropic.com>
- Arrow keys walk a focus ring over the sample header buttons (Enter activates, Escape clears), matching the references tabs
- Highlight drives AspidGradientButton.Highlighted plus the card divider sweep; the ring rebuilds after Import/Remove keeping the slot

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stem

- glass section cards with flat scope-striped rows and a keyboard focus ring (↑/↓/Enter/←/→/Del/Esc) over every control
- underlined Settings header with description; scope legend moved up from the reset footer; reset row aligned to the left grid
- excluded-folders list rebuilt as flat add/remove rows with neutral hover; branded scrollbar and window-footer hints
- exclude Assets/DevTests from scans in the dev project's shared settings

Co-Authored-By: Claude <noreply@anthropic.com>
- rename both settings tree nodes to Aspid.FastTools; the References section card to SerializeReference
- add per-area Preferences child pages (SerializeReference, Type Selector, Welcome) via BuildAreaProviderPage; AddSection accepts a null title for them
- append the version footer to every provider page as a surface sibling so its hairline spans edge to edge; AspidWindowFooter gains a keys-hint-less constructor (UxmlElement keeps the public default one)

Co-Authored-By: Claude <noreply@anthropic.com>
Add checklist items (EN+RU) for the branch's new behaviors: keyboard
navigation across all tabs, audit entry context menu and copyable
start-elided paths, header legend with split counts. Update settings
surface paths to the new Aspid.FastTools menu structure and fix the
stale legend-location note in the settings stylesheet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L3B4bMTPpd7FUmzJCt2Kfc
@VPDPersonal VPDPersonal added type: feature New feature or capability status: work-in-progress Draft / not ready for review area: editor Editor-only code area: docs Repository documentation (README, CHANGELOG, docs/) labels Jul 23, 2026
… tabs

Address a code-review pass over the window keyboard-navigation redesign.

Correctness:
- Settings nav no longer dies after a reset-button click — the editing-control
  guard matched Button (which derives from TextElement); it now targets
  text/slider editing controls specifically.
- Collapsed document bands drop their hidden node members out of the ring, so
  up/down skip them and Enter can't activate an off-screen node.
- A mouse pass over a keyboard-focused Welcome card keeps its divider sweep lit
  (the MouseLeave now guards on nav focus like the two audit tabs).

Cleanup:
- Extract the ~90-line focus ring into a shared NavRing (Welcome / Asset /
  Project / Settings) and the header hover-sweep mirror into HoverSweep.
- Extract BuildCountText / MakeSelectable / the amber-blue legend into a shared
  SerializeReferenceAuditUI used by both audit tabs.
- Resolve a group's constraint + [MovedFrom] migration once (GroupMigration)
  instead of 2-3x per render.
- Make AspidSettingsUI members internal (internal class must not expose public
  members).

Verified: Unity recompile clean, no errors or warnings.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013koTN9rufYUFQVZxCZs4kV
@VPDPersonal
VPDPersonal marked this pull request as ready for review July 23, 2026 20:57
@github-actions github-actions Bot added status: needs-review Ready for review and removed status: work-in-progress Draft / not ready for review labels Jul 23, 2026
@VPDPersonal
VPDPersonal merged commit 7d93e00 into main Jul 23, 2026
5 checks passed
@VPDPersonal
VPDPersonal deleted the feat/serialize-reference-window-redesign branch July 23, 2026 21:13
@github-actions github-actions Bot removed the status: needs-review Ready for review label Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: docs Repository documentation (README, CHANGELOG, docs/) area: editor Editor-only code type: feature New feature or capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant