// // ContrastDisplayContext.swift // DynamicColorExample // // Created by Yannick LORIOT on 26/11/2016. // Copyright © 2016 Yannick LORIOT. All rights reserved. // import Foundation #if os(iOS) || os(tvOS) || os(watchOS) import UIKit #elseif os(OSX) import AppKit #endif extension DynamicColor { /** Used to describe the context of display of 2 colors. Based on WCAG: https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast */ public enum ContrastDisplayContext { /** A standard text in a normal context. */ case standard /** A large text in a normal context. You can look here for the definition of "large text": https://www.w3.org/TR/2008/REC-WCAG20-20081211/#larger-scaledef */ case standardLargeText /** A standard text in an enhanced context. Enhanced means that you want to be accessible (and AAA compliant in WCAG) */ case enhanced /** A large text in an enhanced context. Enhanced means that you want to be accessible (and AAA compliant in WCAG) You can look here for the definition of "large text": https://www.w3.org/TR/2008/REC-WCAG20-20081211/#larger-scaledef */ case enhancedLargeText var minimumContrastRatio: CGFloat { switch self { case .standard: return 4.5 case .standardLargeText: return 3.0 case .enhanced: return 7.0 case .enhancedLargeText: return 4.5 } } } }