Build Status Platforms

暮色 (Dusk)

Dusk 是一个小型框架,旨在帮助在 macOS 上支持深色模式。 它对于使用全窗口主题或需要支持早期操作系统的应用程序尤其有用。

这个项目的完成很大程度上得益于两位人士的辛勤工作。

Paulo Andrade 关于 《采用深色模式和旧版 Mac》 的文章对于理解如何子类化 NSColor 非常有帮助。

Daniel Jalkut 发表了一个关于 在 macOS 上采用深色模式 的精彩系列文章。 他提出的许多想法,甚至一些代码,都被应用到了这个项目中。

集成

Swift 包管理器

dependencies: [
    .package(url: "https://github.com/ChimeHQ/Dusk", from: "1.1.4")
]

DynamicColor

一个方便的 NSColor 子类,使在无法将颜色存储在资源目录中时更容易使用动态颜色。 它提供了两个 API,一个模仿 NSColor(name:dynamicProvider:),另一个让您可以更轻松地定义 NSColor 实例的浅色和深色变体。

DynamicColor(name: "uniqueColorName") { (appearance) in 
    ...
}

DynamicColor(name: "uniqueColorName", lightColor: NSColor.white, darkColor: NSColor.black)

AppearanceObserver

一个非常简单的类,它将观察有效的外观更改并在触发时发布通知。 当在 NSApplication 委托中创建用于应用程序范围的通知时非常有用。

NSAppearance 扩展

查询

appearance.isDark

appearance.oppositeAppearance

NSAppearance.withCurrent(.aqua) {
    ...
}

贡献与协作

我很乐意听到您的声音! 通过 issue 或 pull request 与我联系。

我更喜欢协作,并且如果您有类似的项目,我很乐意找到合作的方式。

为了提高可访问性,我更喜欢使用制表符进行缩进。 但是,我宁愿您使用您想要的系统并提交 PR,也不愿因为空格而犹豫不决。

通过参与本项目,您同意遵守《贡献者行为准则》