Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pixiv/charcoal-ios
Design system library by pixiv
https://github.com/pixiv/charcoal-ios
design-system ios swift swiftui ui-library uikit
Last synced: 4 days ago
JSON representation
Design system library by pixiv
- Host: GitHub
- URL: https://github.com/pixiv/charcoal-ios
- Owner: pixiv
- License: apache-2.0
- Created: 2022-12-20T05:29:33.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-31T06:13:08.000Z (14 days ago)
- Last Synced: 2024-10-31T07:18:36.331Z (14 days ago)
- Topics: design-system, ios, swift, swiftui, ui-library, uikit
- Language: Swift
- Homepage: https://pixiv.github.io/charcoal-ios/documentation/charcoal/
- Size: 34.5 MB
- Stars: 59
- Watchers: 4
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# charcoal-ios ― PIXIV Design System
## Usage
### SwiftUI
```swift
Text("Hello")
.charcoalTypography20Bold()Button("OK") {}
.charcoalPrimaryButton(size: .medium)
```### UIKit
Storyboard とコードから利用可能です。
```swift
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 レベルを固定します。
```swift
Button("Default Button M") {}
.charcoalDefaultButton(size: .medium)
.environment(\.sizeCategory, .large)
```#### UIKit
デフォルトでは、CharcoalUIKitはUITraitCollectionのpreferredContentSizeCategory属性に従いますので、UITraitCollectionを変更することでSizeCategoryを指定できます。```swift
let trait = UITraitCollection(preferredContentSizeCategory: .large)setOverrideTraitCollection(trait, forChild: viewController)
```その他にも、`CharcoalConfig.configUIKit.fixedSizeCategory` を使用して Dynamic Type レベルを固定します。
```swift
CharcoalConfig.configUIKit.fixedSizeCategory = .large
```## Installation
Swift Package Manager を使ってライブラリをインストールすることができます。
```swift
dependencies: [
.package(url: "https://github.com/pixiv/charcoal-ios", .upToNextMajor(from: "1.0.0"))
]
```## Requirements
- iOS 14+
- macOS 11+## Documentation
[Documentation](https://pixiv.github.io/charcoal-ios/documentation/charcoal/)
## 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 .
```