// GENERATED by Design/build_tokens.py from Design/tokens.json. Do not edit by hand. import SwiftUI public enum Palette { /// Venster-achtergrond; het 'huis' van het apparaat public static let surfaceChassis = Color.dynamic(light: 0xCBC8C0, dark: 0x1C1B19) /// Geborsteld metaal, bovenkant van de verloop public static let surfaceMetalHigh = Color.dynamic(light: 0xE3E1DB, dark: 0x3B3A36) /// Geborsteld metaal, onderkant van de verloop public static let surfaceMetalLow = Color.dynamic(light: 0xBDBAB2, dark: 0x262522) /// Frontplaat van mat plastic; zijbalk en bedieningspanelen public static let surfacePanel = Color.dynamic(light: 0xE2DFD5, dark: 0x2B2A27) /// Verzonken vlak: invoervelden, display-vensters public static let surfaceWell = Color.dynamic(light: 0xB4B1A8, dark: 0x131211) /// Cassette-label crème: lijsten met transcripties en woordenboek public static let surfacePaper = Color.dynamic(light: 0xEEE9D9, dark: 0x232220) /// Toetsdop, bovenkant public static let surfaceKeyHigh = Color.dynamic(light: 0xE6E3DA, dark: 0x44433F) /// Toetsdop, onderkant public static let surfaceKeyLow = Color.dynamic(light: 0xCBC8BF, dark: 0x33322F) /// Ingedrukte toets public static let surfaceKeyPressed = Color.dynamic(light: 0xBEBBB2, dark: 0x2A2927) /// Wijzerplaat van de VU-meter (blijft crème in beide afwerkingen) public static let surfaceMeterFace = Color.dynamic(light: 0xEFE6C8, dark: 0xD8CEA6) /// Geselecteerde rij in een lijst public static let surfaceSelection = Color.dynamic(light: 0xD4CDB2, dark: 0x3A3828) /// Displayglas van de teller; donker in beide afwerkingen public static let surfaceDisplay = Color.dynamic(light: 0x1B1A18, dark: 0x0E0D0C) /// Gedoofd segment op het displayglas public static let displaySegmentUnlit = Color.dynamic(light: 0x3A3320, dark: 0x2A2415) /// Hoofdtekst en wijzer public static let inkPrimary = Color.dynamic(light: 0x1E1D1B, dark: 0xECE8DC) /// Secundaire tekst public static let inkSecondary = Color.dynamic(light: 0x403D38, dark: 0xC4BFB2) /// Zeefdruk-labels en hulptekst public static let inkTertiary = Color.dynamic(light: 0x4D4A44, dark: 0xABA79B) /// Uitgeschakeld; nooit voor essentiële tekst public static let inkDisabled = Color.dynamic(light: 0x8F8B82, dark: 0x6B685F) /// Tekst op rode of donkere vulling; crème in beide afwerkingen public static let inkInverse = Color.dynamic(light: 0xF4EFE3, dark: 0xF4EFE3) /// Schaal, cijfers en wijzer op de wijzerplaat; vast donker in beide afwerkingen public static let inkOnMeter = Color.dynamic(light: 0x1E1D1B, dark: 0x1E1D1B) /// ENIGE accent: opnamelampje, REC-toets, piek-LED. Nooit voor lopende tekst public static let accentRecord = Color.dynamic(light: 0xC8281E, dark: 0xCC2A20) /// Lampje uit public static let accentRecordUnlit = Color.dynamic(light: 0x7A2E28, dark: 0x4A1F1B) /// Niveau-segment, brandend public static let levelGreen = Color.dynamic(light: 0x5E9E48, dark: 0x6DB556) /// Niveau-segment, waarschuwing, gecorrigeerd woord public static let levelAmber = Color.dynamic(light: 0xD9A023, dark: 0xE5B032) /// Groen segment, uit public static let levelGreenUnlit = Color.dynamic(light: 0xA8B79C, dark: 0x26331F) /// Amber segment, uit public static let levelAmberUnlit = Color.dynamic(light: 0xCDBA8A, dark: 0x3D3418) /// Naad tussen panelen, donkere helft public static let lineSeamDark = Color.dynamic(light: 0x8C8981, dark: 0x0A0A09) /// Naad tussen panelen, lichte helft public static let lineSeamLight = Color.dynamic(light: 0xF3F1EB, dark: 0x45433F) /// Fijne scheidingslijn, zeefdruk-kader public static let lineHairline = Color.dynamic(light: 0xA9A69D, dark: 0x3A3834) /// Toetsenbord-focus public static let lineFocus = Color.dynamic(light: 0x1E1D1B, dark: 0xECE8DC) } public enum Opacity { /// Amber markering achter een gecorrigeerd woord public static let mark: Double = 0.3 /// Uitgeschakelde bediening public static let disabled: Double = 0.45 /// Gedoofde lampjes gebruiken eigen 'unlit'-kleuren, geen transparantie public static let unlit: Double = 1.0 /// Ingedrukte REC-toets: het rood dooft licht public static let pressedRecord: Double = 0.85 /// Lichtvlekje op een brandend lampje public static let specularOn: Double = 0.6 /// Lichtvlekje op een gedoofd lampje public static let specularOff: Double = 0.3 /// Kleine opschriften op de wijzerplaat public static let caption: Double = 0.75 } public enum FontFamily: String { case chrome = "Helvetica Neue" case text = "SF Pro Text" case mono = "SF Mono" } public enum Typography { /// Zeefdruk-label public static let label = TextStyle(family: .chrome, size: 10, weight: 500, tracking: 0.09, line: 12, caps: true, tabular: false) /// Schaalmarkeringen en eenheden public static let labelSmall = TextStyle(family: .chrome, size: 9, weight: 500, tracking: 0.1, line: 11, caps: true, tabular: false) /// Opschrift op toetsen public static let control = TextStyle(family: .chrome, size: 11, weight: 500, tracking: 0.06, line: 14, caps: true, tabular: false) /// Paneelkop public static let heading = TextStyle(family: .chrome, size: 12, weight: 500, tracking: 0.12, line: 16, caps: true, tabular: false) /// Standaardtekst public static let body = TextStyle(family: .text, size: 13, weight: 400, tracking: 0, line: 18, caps: false, tabular: false) /// Transcript public static let reading = TextStyle(family: .text, size: 15, weight: 400, tracking: 0, line: 22, caps: false, tabular: false) /// Bijschriften public static let meta = TextStyle(family: .text, size: 11, weight: 400, tracking: 0, line: 14, caps: false, tabular: false) /// Teller public static let counter = TextStyle(family: .mono, size: 22, weight: 500, tracking: 0, line: 26, caps: false, tabular: true) /// Tijdstip in een rij public static let counterSmall = TextStyle(family: .mono, size: 12, weight: 500, tracking: 0, line: 16, caps: false, tabular: true) /// Woordenboekregels public static let code = TextStyle(family: .mono, size: 12, weight: 400, tracking: 0, line: 18, caps: false, tabular: false) } public enum Segment { /// Hoogte van een getekend segmentcijfer public static let digitHeight: CGFloat = 36 /// Breedte van een segmentcijfer public static let digitWidth: CGFloat = 20 /// Dikte van één segment public static let thickness: CGFloat = 4 /// Ruimte tussen segmenten public static let gap: CGFloat = 1 /// Schuinte in graden; 0 = rechtop public static let slant: CGFloat = 0 /// Afstand van cijfer tot cijfer public static let advance: CGFloat = 26 /// Breedte van een dubbele punt of punt public static let colonWidth: CGFloat = 10 } public enum Space { public static let s0: CGFloat = 0 public static let s1: CGFloat = 2 public static let s2: CGFloat = 4 public static let s3: CGFloat = 8 public static let s4: CGFloat = 12 public static let s5: CGFloat = 16 public static let s6: CGFloat = 24 public static let s7: CGFloat = 32 public static let s8: CGFloat = 48 } public enum Layout { /// Minimale vensterbreedte public static let windowMinWidth: CGFloat = 800 /// Minimale vensterhoogte public static let windowMinHeight: CGFloat = 560 /// Standaard vensterbreedte public static let windowDefaultWidth: CGFloat = 1080 /// Standaard vensterhoogte public static let windowDefaultHeight: CGFloat = 700 /// Breedte zijbalk public static let sidebarWidth: CGFloat = 232 /// Breedte instellingenvenster public static let settingsWidth: CGFloat = 560 /// Binnenmarge van een paneel (= space.5) public static let panelPadding: CGFloat = 16 /// Afstand tussen panelen (= space.4) public static let panelGap: CGFloat = 12 } public enum Size { /// Standaardhoogte van toets of veld public static let controlHeight: CGFloat = 28 /// Minimale breedte van een toets public static let keyMinWidth: CGFloat = 56 /// REC-toets, breedte public static let keyRecWidth: CGFloat = 64 /// REC-toets, hoogte public static let keyRecHeight: CGFloat = 44 /// Standaard lampje public static let lampDiameter: CGFloat = 10 /// Opnamelampje public static let lampLarge: CGFloat = 14 /// Tuimelschakelaar, breedte public static let switchWidth: CGFloat = 40 /// Tuimelschakelaar, hoogte public static let switchHeight: CGFloat = 22 /// Rij in transcriptielijst public static let rowHeight: CGFloat = 40 /// Klein pictogram public static let iconSmall: CGFloat = 16 /// Normaal pictogram public static let iconMedium: CGFloat = 20 /// Minimaal klikdoel public static let hitMin: CGFloat = 24 } public enum Radius { /// Panelen en velden: scherpe randen public static let none: CGFloat = 0 /// Toetsranden: bijna scherp public static let sharp: CGFloat = 1 /// Toetsen, velden public static let sm: CGFloat = 2 /// Grote panelen public static let md: CGFloat = 4 /// Rand van de VU-meter public static let bezel: CGFloat = 6 /// Lampjes: rond public static let lamp: CGFloat = 999 } public enum Border { /// Fijne lijn public static let hairline: CGFloat = 1 /// Naad: 1 donkere lijn boven, 1 lichte lijn eronder, leest als gegraveerde groef public static let seam: CGFloat = 2 /// Rand om de VU-meter public static let bezel: CGFloat = 3 /// Focusring, 2 pt offset public static let focus: CGFloat = 2 } public enum Shadows { /// Toets in rust: lichtvang boven, donkere onderrand, valschaduw public static let keyRaised: [ShadowLayer] = [ ShadowLayer(inset: true, x: 0, y: 1, blur: 0, spread: 0, hex: 0xFFFFFF, alphaLight: 0.65, alphaDark: 0.1), ShadowLayer(inset: true, x: 0, y: -1, blur: 0, spread: 0, hex: 0x000000, alphaLight: 0.25, alphaDark: 0.55), ShadowLayer(inset: false, x: 0, y: 2, blur: 2, spread: 0, hex: 0x000000, alphaLight: 0.35, alphaDark: 0.6), ] /// Ingedrukte toets: dop 1 pt omlaag, geen valschaduw public static let keyPressed: [ShadowLayer] = [ ShadowLayer(inset: true, x: 0, y: 2, blur: 4, spread: 0, hex: 0x000000, alphaLight: 0.5, alphaDark: 0.7), ShadowLayer(inset: true, x: 0, y: 0, blur: 0, spread: 1, hex: 0x000000, alphaLight: 0.35, alphaDark: 0.6), ] public static let keyPressedOffset: CGFloat = 1 /// Verzonken vlak met lichtvang op de onderlip public static let well: [ShadowLayer] = [ ShadowLayer(inset: true, x: 0, y: 1, blur: 3, spread: 0, hex: 0x000000, alphaLight: 0.4, alphaDark: 0.7), ShadowLayer(inset: false, x: 0, y: 1, blur: 0, spread: 0, hex: 0xFFFFFF, alphaLight: 0.55, alphaDark: 0.07), ] /// Frontplaat boven het chassis public static let panel: [ShadowLayer] = [ ShadowLayer(inset: true, x: 0, y: 1, blur: 0, spread: 0, hex: 0xFFFFFF, alphaLight: 0.6, alphaDark: 0.08), ShadowLayer(inset: false, x: 0, y: 3, blur: 8, spread: 0, hex: 0x000000, alphaLight: 0.22, alphaDark: 0.55), ] /// Brandend lampje: kleine gloed, alleen voor lampjes en nooit voor tekst public static let lampOn: [ShadowLayer] = [ ShadowLayer(inset: false, x: 0, y: 0, blur: 6, spread: 1, hex: 0xCC2A20, alphaLight: 0.45, alphaDark: 0.55), ShadowLayer(inset: true, x: 0, y: -1, blur: 1, spread: 0, hex: 0x000000, alphaLight: 0.35, alphaDark: 0.45), ] } public enum Texture { public static let brushedGrainLight: Double = 0.035 public static let brushedGrainDark: Double = 0.05 } public enum MeterTokens { /// 0 VU = -20 dBFS (RMS) public static let vuReferenceDbfs: Double = -20 /// Onderkant van de schaal in VU public static let vuMin: Double = -20 /// Bovenkant van de schaal in VU; vanaf 0 VU rood public static let vuMax: Double = 3 /// Hoek tussen minimale en maximale stand public static let vuArcDegrees: Double = 90 /// Breedte van de meter public static let vuWidth: Double = 260 /// Hoogte van de meter public static let vuHeight: Double = 150 /// Dikte van de wijzer public static let vuNeedleWidth: Double = 1.5 /// Genummerde schaalmarkeringen public static let vuTicks: [Int] = [-20, -10, -7, -5, -3, 0, 3] /// Draaipunt van de wijzer, onder de onderrand van de wijzerplaat public static let vuPivotOffset: Double = 22 /// Straal van de schaalboog vanaf het draaipunt public static let vuScaleRadius: Double = 142 /// Lengte van de wijzer public static let vuNeedleLength: Double = 146 /// Lengte van een genummerde streep public static let vuTickMajor: Double = 11 /// Lengte van een gewone streep public static let vuTickMinor: Double = 6 /// Afstand van de schaalboog tot de cijfers public static let vuLabelInset: Double = 24 /// Dikte van de rode band vanaf 0 VU public static let vuRedBandWidth: Double = 5 /// Aantal segmenten: 8 groen, 3 amber, 1 rood public static let ledSegments: Int = 12 /// Segment in pt (breedte x hoogte) public static let ledSegmentWidth: CGFloat = 6 public static let ledSegmentHeight: CGFloat = 14 /// Ruimte tussen segmenten public static let ledGap: Double = 2 /// Piek-LED blijft zo lang branden public static let peakHoldSeconds: Double = 1.0 } public enum Motion { /// Geen overgang public static let durationInstant: Double = 0.0 /// Toets in/uit public static let durationFast: Double = 0.06 /// Standaardovergang public static let durationBase: Double = 0.12 /// Paneel of venster public static let durationSlow: Double = 0.22 /// Toetsen: direct, zonder veer public static let easingMechanical: (Double, Double, Double, Double) = (0.2, 0, 0, 1) /// Overige overgangen public static let easingStandard: (Double, Double, Double, Double) = (0.4, 0, 0.2, 1) /// Toets indrukken public static let keyPress: Double = 0.05 /// Toets loslaten public static let keyRelease: Double = 0.09 /// Lampje aan public static let lampOn: Double = 0.03 /// Lampje uit: dooft langzaam, als een gloeidraad public static let lampOff: Double = 0.2 /// VU-ballistiek: 300 ms om de stand te bereiken public static let needleResponse: Double = 0.3 /// Veerdemping; geeft ongeveer 1,5 % overschot public static let needleDamping: Double = 0.8 /// Verversing van de wijzer public static let needleUpdateHz: Double = 60 }