Skip to content

Commit

Permalink
feat: review raw tokens for typography (#51)
Browse files Browse the repository at this point in the history
Signed-off-by: Pierre-Yves Lapersonne <[email protected]>
  • Loading branch information
pylapp committed Aug 6, 2024
1 parent 6c310d3 commit c8f18eb
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 6 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- [Library] Add raw tokens and semantic tokens for typography ([#51](https://github.com/Orange-OpenSource/ouds-ios/issues/51))
- [Showcase] Publication of comment on issues about new alpha build upload on TestFlight ([#56](https://github.com/Orange-OpenSource/ouds-ios/issues/56))
- [Library] Add raw tokens and semantic tokens for border ([#30](https://github.com/Orange-OpenSource/ouds-ios/issues/30))
- [Library] Define Swift Package architecture of library and tokens (raw and semantic) ([#33](https://github.com/Orange-OpenSource/ouds-ios/issues/33))
Expand Down
12 changes: 6 additions & 6 deletions OUDS/Core/Tokens/RawTokens/Sources/TypographyRawTokens.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ public typealias TypographyFontParagraphSpacingRawToken = Int

public struct TypographyCompositeRawToken {

let family: TypographyFontFamilyRawToken
let size: TypographyFontSizeRawToken
let lineHeight: TypographyFontLineHeightRawToken
let weight: TypographyFontWeightRawToken
public let family: TypographyFontFamilyRawToken
public let size: TypographyFontSizeRawToken
public let lineHeight: TypographyFontLineHeightRawToken
public let weight: TypographyFontWeightRawToken
// TODO: How to deal "letter spacing"?
let paragraphSpacing: TypographyFontParagraphSpacingRawToken
public let paragraphSpacing: TypographyFontParagraphSpacingRawToken
}

// MARK: - Raw tokens
Expand Down Expand Up @@ -74,7 +74,7 @@ public enum TypographyRawTokens {
public static let fontLineHeight550: TypographyFontLineHeightRawToken = 28
public static let fontLineHeight650: TypographyFontLineHeightRawToken = 32
public static let fontLineHeight750: TypographyFontLineHeightRawToken = 36
public static let fontLineHeight850: TypographyFontLineHeightRawToken = 10
public static let fontLineHeight850: TypographyFontLineHeightRawToken = 40
public static let fontLineHeight950: TypographyFontLineHeightRawToken = 44
public static let fontLineHeight1050: TypographyFontLineHeightRawToken = 48
public static let fontLineHeight1150: TypographyFontLineHeightRawToken = 52
Expand Down
92 changes: 92 additions & 0 deletions OUDS/Core/Tokens/RawTokens/Tests/TypographyRawTokensTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
//
// Software Name: OUDS iOS
// SPDX-FileCopyrightText: Copyright (c) Orange SA
// SPDX-License-Identifier: MIT
//
// This software is distributed under the MIT license,
// the text of which is available at https://opensource.org/license/MIT/
// or see the "LICENSE" file for more details.
//
// Authors: See CONTRIBUTORS.txt
// Software description: A SwiftUI components library with code examples for Orange Unified Design System
//

import XCTest
import OUDSTokensRaw

/// The aim of this tests class is to look for regressions in **typography raw tokens**.
/// Because these values will be at least generated through an external tool, is it not relevant to test each token values.
/// Indeed, each future generation of Swift code may break theses tests because there are new values.
/// However, in the semantics of typography raw tokens, there will be some unchanged things like relationships between tokens.
/// Thus this tests class just checks if such relationships are still here whatever the values at the end.
final class TypographyRawTokensTests: XCTestCase {

/// Whatever the values are, font sizes raw tokens must keep their order relationships
func testOrderRelationshipFontSizes() throws {
XCTAssertLessThan(TypographyRawTokens.fontSize100, TypographyRawTokens.fontSize150)
XCTAssertLessThan(TypographyRawTokens.fontSize150, TypographyRawTokens.fontSize175)
XCTAssertLessThan(TypographyRawTokens.fontSize175, TypographyRawTokens.fontSize200)
XCTAssertLessThan(TypographyRawTokens.fontSize200, TypographyRawTokens.fontSize250)
XCTAssertLessThan(TypographyRawTokens.fontSize250, TypographyRawTokens.fontSize300)
XCTAssertLessThan(TypographyRawTokens.fontSize300, TypographyRawTokens.fontSize350)
XCTAssertLessThan(TypographyRawTokens.fontSize350, TypographyRawTokens.fontSize450)
XCTAssertLessThan(TypographyRawTokens.fontSize450, TypographyRawTokens.fontSize550)
XCTAssertLessThan(TypographyRawTokens.fontSize550, TypographyRawTokens.fontSize650)
XCTAssertLessThan(TypographyRawTokens.fontSize650, TypographyRawTokens.fontSize750)
XCTAssertLessThan(TypographyRawTokens.fontSize750, TypographyRawTokens.fontSize850)
XCTAssertLessThan(TypographyRawTokens.fontSize850, TypographyRawTokens.fontSize950)
XCTAssertLessThan(TypographyRawTokens.fontSize950, TypographyRawTokens.fontSize1050)
XCTAssertLessThan(TypographyRawTokens.fontSize1050, TypographyRawTokens.fontSize1150)
XCTAssertLessThan(TypographyRawTokens.fontSize1150, TypographyRawTokens.fontSize1250)
XCTAssertLessThan(TypographyRawTokens.fontSize1250, TypographyRawTokens.fontSize1450)
XCTAssertLessThan(TypographyRawTokens.fontSize1450, TypographyRawTokens.fontSize1850)
}

/// Whatever the values are, font line heights raw tokens must keep their order relationships
func testOrderRelationshipFontLineHeights() throws {
XCTAssertLessThan(TypographyRawTokens.fontLineHeight250, TypographyRawTokens.fontLineHeight350)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight350, TypographyRawTokens.fontLineHeight450)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight450, TypographyRawTokens.fontLineHeight550)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight550, TypographyRawTokens.fontLineHeight650)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight650, TypographyRawTokens.fontLineHeight750)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight750, TypographyRawTokens.fontLineHeight850)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight850, TypographyRawTokens.fontLineHeight950)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight950, TypographyRawTokens.fontLineHeight1050)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight1050, TypographyRawTokens.fontLineHeight1150)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight1150, TypographyRawTokens.fontLineHeight1250)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight1250, TypographyRawTokens.fontLineHeight1350)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight1350, TypographyRawTokens.fontLineHeight1450)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight1450, TypographyRawTokens.fontLineHeight1850)
XCTAssertLessThan(TypographyRawTokens.fontLineHeight1850, TypographyRawTokens.fontLineHeight2050)
}

/// Whatever the values are, font paragraph spacings raw tokens must keep their order relationships
func testOrderRelationshipFontParagraphSpacings() throws {
XCTAssertLessThan(TypographyRawTokens.fontParagraphSpacing100, TypographyRawTokens.fontParagraphSpacing200)
XCTAssertLessThan(TypographyRawTokens.fontParagraphSpacing200, TypographyRawTokens.fontParagraphSpacing300)
XCTAssertLessThan(TypographyRawTokens.fontParagraphSpacing300, TypographyRawTokens.fontParagraphSpacing400)
}

/// Whatever the values are, typographies must keep their order relationships
func testOrderRelationshipComposites() throws {
XCTAssertLessThan(TypographyRawTokens.typeRegular150.size, TypographyRawTokens.typeRegular175.size)
XCTAssertLessThan(TypographyRawTokens.typeRegular175.size, TypographyRawTokens.typeRegular200.size)
XCTAssertLessThan(TypographyRawTokens.typeRegular200.size, TypographyRawTokens.typeRegular250.size)
XCTAssertLessThan(TypographyRawTokens.typeBold150.size, TypographyRawTokens.typeBold175.size)
XCTAssertLessThan(TypographyRawTokens.typeBold175.size, TypographyRawTokens.typeBold200.size)
XCTAssertLessThan(TypographyRawTokens.typeBold200.size, TypographyRawTokens.typeBold250.size)
XCTAssertLessThan(TypographyRawTokens.typeBold250.size, TypographyRawTokens.typeBold300.size)
XCTAssertLessThan(TypographyRawTokens.typeBold300.size, TypographyRawTokens.typeBold350.size)
XCTAssertLessThan(TypographyRawTokens.typeBold350.size, TypographyRawTokens.typeBold450.size)
XCTAssertLessThan(TypographyRawTokens.typeBold450.size, TypographyRawTokens.typeBold550.size)
XCTAssertLessThan(TypographyRawTokens.typeBold550.size, TypographyRawTokens.typeBold650.size)
XCTAssertLessThan(TypographyRawTokens.typeBold650.size, TypographyRawTokens.typeBold750.size)
XCTAssertLessThan(TypographyRawTokens.typeBold750.size, TypographyRawTokens.typeBold850.size)
XCTAssertLessThan(TypographyRawTokens.typeBold850.size, TypographyRawTokens.typeBold950.size)
XCTAssertLessThan(TypographyRawTokens.typeBold950.size, TypographyRawTokens.typeBold1050.size)
XCTAssertLessThan(TypographyRawTokens.typeBold1050.size, TypographyRawTokens.typeBold1150.size)
XCTAssertLessThan(TypographyRawTokens.typeBold1150.size, TypographyRawTokens.typeBold1250.size)
XCTAssertLessThan(TypographyRawTokens.typeBold1250.size, TypographyRawTokens.typeBold1450.size)
XCTAssertLessThan(TypographyRawTokens.typeBold1450.size, TypographyRawTokens.typeBold1850.size)
}
}

0 comments on commit c8f18eb

Please sign in to comment.