Mx-Iris/WelcomeKit

Xcode-like welcome panel

★ 2Forks 0SwiftGitHub ↗Compare
appkitmacoswelcome-window

README

WelcomeKit

Important

WelcomeKit now lives in UIFoundation, and this repository is archived. It is kept read-only for history; development continues there behind the opt-in SPM trait WelcomePanel.

The Xcode-style welcome window — app icon, name and version above a short action list on the left, a recent-project list on the right.

Migrating

Replace the dependency:

.package(
    url: "https://github.com/Mx-Iris/UIFoundation",
    from: "0.13.0",
    traits: ["WelcomePanel"]
)

The API is the same shape, with everything nested under one top-level symbol instead of six:

WelcomeKit UIFoundation
WelcomePanelController WelcomePanelController (unchanged)
WelcomeConfiguration WelcomePanelController.Configuration
WelcomeStyle WelcomePanelController.Style
WelcomeAction WelcomePanelController.Action
WelcomePanelDataSource WelcomePanelController.DataSource
WelcomePanelDelegate WelcomePanelController.Delegate

Most call sites need no change at all, since the nested names resolve through implicit member syntax:

let panel = WelcomePanelController(configuration: .init(style: .xcode26))
panel.dataSource = self
panel.delegate = self
panel.showWindow(nil)

Two behavioural differences worth knowing:

  • .xcode26 was rebuilt. Here it was .xcode15's geometry with the backdrop removed, matching no shipping Xcode. In UIFoundation it is a measured replica of Xcode 26's own welcome window — 20 pt corners, an .fullScreenUI material behind both panes, a 36 pt bold title, capsule action rows, and the blue icon glow Xcode draws in dark mode.
  • Two .xcode26 bugs are fixed: the close button had no glyph and action rows had no pressed state, because both checks here were written as style == .xcode15.

Full guide: Documentations/WelcomePanel.md. How the Xcode 26 style was measured: Researchs/Xcode26-WelcomeWindow-Internals.md.

Screenshots

Xcode14Style

Xcode15Style

Contributors

Mx-Iris

Issues