charcoal-ios
charcoal-ios copied to clipboard
Design system library by pixiv
charcoal-ios ― PIXIV Design System
Usage
SwiftUI
Text("Hello")
.charcoalTypography20Bold()
Button("OK") {}
.charcoalPrimaryButton(size: .medium)
UIKit
Storyboard とコードから利用可能です。
let label = CharcoalTypography20()
label.isBold = true
label.text = "Hello"
let button = CharcoalPrimaryMButton()
button.setTitle("OK", for: .normal)
Dynamic Type
charcoal-ios はデフォルトで Dynamic Type をサポートしています。この機能を無効にしたい場合は、以下の手順をご参照ください。
SwiftUI
.environment(.sizeCategory, .large)
を使用して Dynamic Type レベルを固定します。
Button("Default Button M") {}
.charcoalDefaultButton(size: .medium)
.environment(\.sizeCategory, .large)
UIKit
デフォルトでは、CharocalUIKitはUITraitCollectionのpreferredContentSizeCategory属性に従いますので、UITraitCollectionを変更することでSizeCategoryを指定できます。
let trait = UITraitCollection(preferredContentSizeCategory: .large)
setOverrideTraitCollection(trait, forChild: viewController)
その他にも、CharcoalConfig.configUIKit.fixedSizeCategory
を使用して Dynamic Type レベルを固定します。
CharcoalConfig.configUIKit.fixedSizeCategory = .large
Installation
Swift Package Manager を使ってライブラリをインストールすることができます。
dependencies: [
.package(url: "https://github.com/pixiv/charcoal-ios", .upToNextMajor(from: "1.0.0"))
]
Requirements
- iOS 14+
- macOS 11+
Documentation
Development
Configuration
Xcode configuration DebugMaxDeploymentTarget
は、自動化テストの際に IPHONEOS_DEPLOYMENT_TARGET
を指定するためだけに使用されます。
SwiftGen
Generate Assets
Run swiftgen
command in the charcoal-ios
project folder.
swift run --package-path BuildTools swiftgen
SwiftLint
swift run --package-path BuildTools swiftlint
Code Format
swift run -c release --package-path BuildTools swiftformat .