Skip to content

refactor(hig): hero icons, link buttons, spacing sweep#993

Merged
datlechin merged 4 commits intomainfrom
refactor/hig-phase-5
May 4, 2026
Merged

refactor(hig): hero icons, link buttons, spacing sweep#993
datlechin merged 4 commits intomainfrom
refactor/hig-phase-5

Conversation

@datlechin
Copy link
Copy Markdown
Member

Summary

Phase 5 polish. Three categories of mechanical fixes plus one minor keyboard shortcut addition.

Commits

  1. refactor(hero-icons) — 9 hardcoded .font(.system(size: 40-64)) hero icons (empty/success/error/feature-gate states) move to .font(.largeTitle).imageScale(.large).symbolRenderingMode(.hierarchical). Sites:

    • OnboardingContentView.swift:152 — get-started checkmark
    • FeedbackView.swift:279 — submission success
    • ProFeatureGate.swift:42 — feature-gate icon
    • ExportSuccessView.swift:26 — export success
    • MainEditorContentView.swift:746 — empty-tabs state
    • ImportSuccessView.swift:23,27 — success / partial-success states
    • ImportErrorView.swift:17 — import failure
    • QuerySuccessView.swift:21 — query success

    This adds Dynamic Type compliance (icons scale with the user's text-size setting) and gives them the canonical SF Symbols depth treatment.

  2. refactor(buttons) — five .plain + manual tint/foreground callsites become .buttonStyle(.link) (or .borderless for cancel-style):

    • MainStatusBarView.swift:120 — "Fetch All" in the row-cap warning
    • ColumnVisibilityPopover.swift:66,73 — "Show All" / "Hide All" in popover header (already done in phase 4 cleanup)
    • OnboardingContentView.swift:175 — "Skip" in onboarding
    • FeedbackView.swift:308 — "Close" after feedback submission
  3. refactor(spacing) — 8 files: spacing: 5spacing: 4, spacing: 14spacing: 12, padding(.horizontal, 5)padding(.horizontal, 6). Brings 5pt-grid drift onto Apple's 8pt grid. Files: AIChatMessageView, TypeBadge, WelcomeLeftPanel, ImportDialog, EditableFieldView, FavoriteRowView, RedisKeyTreeView, ExecutionIndicatorView. Also: ConnectionFormView+Footer.swift Cancel button gains .keyboardShortcut(.cancelAction) so Esc closes the form.

Net change

  • +39 / -24 lines, 13 files
  • 4 commits

Out of scope (intentional)

  • ER Diagram Canvas font sizes (6 sites): .font(.system(size: 8/10/11/12)) for Canvas-drawn ER node text. Canvas drawing doesn't compose with Dynamic Type the way SwiftUI views do — node row heights are fixed in ERDiagramLayout, so Dynamic Type would overflow. Needs a layout-grid rework to fix properly. Filed separately.
  • ERDiagramToolbar floating glass card: moving to native NSToolbar or canvas safe-area inset is an architectural change, not a polish. Filed separately.
  • ConnectionFormView footer → .toolbar { confirmationAction / cancellationAction }: would require wrapping in NavigationStack and routing actions through SwiftUI toolbar placements. Real architectural change with visible UX impact. Minimal-improvement applied (cancelAction keyboard shortcut); full refactor deferred.
  • DashboardToolbarView and AIChatPanelView headers — match macOS Tahoe toolbar height: visual polish, no HIG violation.
  • spacing: 10 and padding(10) cluster: kept as-is. Apple itself uses 10pt in many places (it's between the 8pt cluster and 12pt group), and switching mechanically to 8 or 12 would change the visual feel of toolbars and rows that are tuned right.

Test plan

  • Onboarding flow: get-started page checkmark icon scales with System Settings → Display → Text Size
  • Feedback panel after submission: success icon renders with hierarchical depth
  • Export sheet: success state icon renders correctly
  • Import a file with errors: warning triangle is yellow with hierarchical fill; success path shows green checkmark
  • Run a query that produces no results: success view renders correctly
  • Open main editor with no tabs: empty-state icon renders with quaternary tint
  • Status bar "Fetch All" link is accent-colored, clickable, underlines on hover
  • Column visibility popover: Show All / Hide All buttons are accent links
  • Onboarding "Skip" button is an accent-colored link
  • Feedback success "Close" is a borderless cancel-style button
  • Connection Form: pressing Esc dismisses (cancelAction works)
  • Visual check on Welcome panel, AI chat messages, sidebar rows: spacing tightens slightly but layout still reads correctly
  • swiftlint lint --strict passes (verified locally)

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@datlechin datlechin changed the title refactor(hig): phase 5 — hero icons, link buttons, spacing sweep refactor(hig): hero icons, link buttons, spacing sweep May 4, 2026
@datlechin datlechin merged commit 8fe8091 into main May 4, 2026
2 checks passed
@datlechin datlechin deleted the refactor/hig-phase-5 branch May 4, 2026 17:08
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