NiceComponents

NiceComponents 是一个简单的库,提供一些美观的 SwiftUI 组件,帮助你快速启动你的下一个项目。🚀

使用一些合理的默认组件快速开始你的原型设计,然后稍后回来定制你的应用程序的外观和感觉——所有操作都在一个地方完成。

用法

示例项目

你可以克隆并运行示例项目,查看所有默认组件的示例,以及一个更定制化的登录屏幕的示例,以及如何定制每个组件的演示。

原型设计

当你刚开始你的项目时,你应该能够通过直接使用我们的开箱即用组件获得一些不错的结果。

NiceComponents 由几个基本部分组成

import NiceComponents

struct DemoView: View {
    var body: some View {
        NiceText("I'm a nice big title!", style: .screenTitle)
        
        NiceButton("And I'm a nice little button", style: .primary) {
            doTheThing()
        }
    }
}

我们提供以下文本和按钮样式,助你入门

定制组件

当你准备开始在你自己的组件上添加你的个性化风格时,你有几个选项,这取决于你想要改变多少。

在启动时设置全局配置

如果你想更改*所有*组件实例,或更改全局变量,如你的 ColorTheme 或 ColorStyle,我们建议创建一个自定义配置,你可以在你的应用程序首次启动时设置它。请注意,一旦你设置了这个配置,你将无法更新它。

在多个自定义应用于同一组件的情况下,*最具体的*自定义将优先。

import NiceComponents

@main struct ExampleApp: App {
   init() {
        var newConfig = Config()
       
       newConfig.bodyTextStyle = NiceTextStyle(
           color: Color(hex: "FFA71A"),
           size: 16
       )
       Config.current = newConfig
   }
}

扩展现有组件

如果你想创建一个新组件,或扩展一个现有组件,你所需要做的就是添加一个新的样式

extension NiceTextStyle {
    static var bodyBold: NiceTextStyle {
        Config.current.bodyTextStyle
            .with(weight: .bold)
    }
}

定制组件的单个实例

如果你只需要更改一次性的 UI 元素,每个样式都带有一个方便的 mutator 函数,允许你定制它。

    NiceText(
        "Customize it with `with`", 
        style: .body.with(weight: .semibold)
    )

    NiceText(
        "Customize it with `with`", 
        style: NiceTextStyle(
            color: Color(hex: "FFA71A")
            with: .body,
            font: "Impact",
            size: 20
        )
    )
}

设置颜色调色板

除了能够定制或扩展 NiceComponents 提供的每个预设样式外,我们还提供了两种更改你的颜色调色板的方法。

你可以在创建自定义 Config 时通过将 ColorTheme 和/或 ColorStyle 传递到构造函数中来设置它们。

ColorTheme

在这两个选项中,ColorTheme 是更通用的选项,允许你一次性更改应用于各种不同组件和位置的颜色。这里的命名和用法很大程度上受到了出色的 Material Design 调色板的影响。

ColorTheme 采用你在资源目录中声明的颜色,并赋予它们不与特定 UI 元素绑定的语义含义。

我们建议在资源目录中声明你的颜色,并从那里拉取它们,以使支持浅色和深色模式变得轻而易举。

ColorStyle

ColorStyle 语义化地描述默认应用于所有组件的颜色,这里的更改将优先于对 ColorTheme 所做的更改,但如果未指定,则默认为你的 ColorTheme。

在大多数情况下,你可能只需更改你的 ColorTheme 并允许这些更改级联到不同的 UI 元素中即可,但如果你需要更多地控制特定按钮等元素的颜色,这里就是你的地方。

定制你的 TextStyle

如果你想全局更改你的应用程序中的字体,你可以更改 Config 的 textStyle,所有预设样式都将尊重你的新样式。

请注意,只有 bodyText 将使用默认的 textStyle 大小和粗细。

安装

NiceComponents 通过 **Swift Package Manager** 提供。要安装它,请按照以下步骤操作

  1. 在 Xcode 中,点击 **File**,然后 **Swift Package Manager**,然后 **Add Package Dependency**
  2. 选择你的项目
  3. 在搜索栏中输入此 URL git@github.com:steamclock/niceComponents.git

使用 CI 构建

由于 NiceComponents 使用一些宏来自动为某些类生成初始化器,你可能需要在你的 xcodebuild 调用中添加 `-skipMacroValidation` 以使其工作。

从 Nice Components 1.0 迁移

鉴于从 Nice Components 1 到 2 的更改的大小和范围,迁移可能是一个相当大的过程。好消息是,很多工作可以通过使用好用的“查找和替换”来完成。

要迁移,你将需要

  1. 更改对组件的任何引用,例如 PrimaryButton、BodyText 等,以使用 NiceText 和 NiceButton
  2. 将你创建的任何自定义组件更改为自定义样式,扩展 NiceTextStyle 或 NiceButtonStyle
  3. 更新你的 Config 以使用新的 NiceButtonStyle 和 NiceTextStyles。