Noora ⭐️

命令行界面 (CLI) 虽然由于终端功能的限制在图形化方面有所欠缺,但仍然可以从跨各种命令的精心设计和一致的美学中获益匪浅。这通常是图形用户界面 (GUI) 中设计系统所扮演的角色,但在终端环境中,这在很大程度上仍未被探索。

长期以来,Tuist 的终端体验一直缺乏设计系统,导致诸如间距不一致、信息过载和难以解析的输出等问题。这种情况促使我们创建了 SwiftTerminal,一个专门为 Swift 驱动的 CLI 设计的设计系统。

Noora 提供了一套美观、可定制且统一的设计系统,用于打造终端体验。它凝结了我们在构建 Tuist CLI 方面的丰富经验。我们很高兴与 Swift 社区分享它,旨在使构建终端体验成为一个令人愉悦的过程。

注意

该项目目前处于早期开发阶段。我们的计划是创建一个基本组件集,然后根据我们从社区收到的反馈对其进行迭代。

用法

Noora 添加为项目的依赖项

import PackageDescription

let package = Package(
    name: "Noora",
    platforms: [.macOS("12.0")],
    products: [
     /** Your products **/
    ],
    dependencies: [
      .package(url: "https://github.com/tuist/Noora", .upToNextMajor(from: "0.15.0")),
    ],
    targets: [
      /** Your targets **/
    ]
)

然后你就可以开始使用 Noora 了。你需要首先创建一个 Noora 实例,然后每个可用的组件都表示为 Noora 实例中的一个函数。

Noora().yesOrNoChoicePrompt(
  title: "Authentication",
  question: "Would you like to authenticate?",
  defaultAnswer: true,
  description: "Authentication is required to use some CLI features."
)

文档

查看我们的文档以查看组件及其用法。

开发

使用 Tuist

  1. 克隆仓库:git clone https://github.com/tuist/Noora.git
  2. 生成项目:tuist generate

使用 Swift Package Manager

  1. 克隆仓库:git clone https://github.com/tuist/Noora.git
  2. 使用 Xcode 打开 Package.swift 文件

文档

要查看组件及其用法,请访问文档网站