SPB Git forge

spb/ka-macos

Public
3commits 1branches 0releases
6.1 MBsize
maindefault branch
1 mo agolast push
Swift 98.3% Shell 1.7%
1.6 KB · 35 lines swift
Raw Blame History
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// KAFonts.swift — les polices OFFICIELLES des sites du Groupe KA (tokens.css) :3// display Space Grotesk · micro-étiquettes JetBrains Mono (embarquées, OFL).4// Le corps de texte reste SF (équivalent d'Inter côté macOS).5// Spec : app iOS KA (~/Desktop/KA/KA/Design/KAFonts.swift).6import SwiftUI7import CoreText89enum KAFont {10    /// Enregistre les TTF embarquées dans le bundle SPM — à appeler UNE fois11    /// au démarrage (avant le premier rendu SwiftUI).12    static func register() {13        for name in ["SpaceGrotesk-Regular", "SpaceGrotesk-Medium", "SpaceGrotesk-Bold",14                     "JetBrainsMono-Regular", "JetBrainsMono-Bold"] {15            guard let url = Bundle.module.url(forResource: name, withExtension: "ttf",16                                              subdirectory: "Fonts") else { continue }17            CTFontManagerRegisterFontsForURL(url as CFURL, .process, nil)18        }19    }2021    /// Display « Space Grotesk » — titres, wordmarks, chiffres héros22    static func display(_ size: CGFloat, _ weight: Font.Weight = .bold) -> Font {23        switch weight {24        case .bold, .heavy, .black: return .custom("SpaceGrotesk-Bold", size: size)25        case .medium, .semibold: return .custom("SpaceGrotesk-Medium", size: size)26        default: return .custom("SpaceGrotesk-Regular", size: size)27        }28    }2930    /// Micro-étiquettes « JetBrains Mono » — kickers, compteurs, puces31    static func mono(_ size: CGFloat, bold: Bool = true) -> Font {32        .custom(bold ? "JetBrainsMono-Bold" : "JetBrainsMono-Regular", size: size)33    }34}35