mvm_core_ui/MVMCoreUI/Styles/Padding.swift
2021-04-06 16:54:36 -04:00

64 lines
2.5 KiB
Swift

//
// Padding.swift
// MVMCoreUI
//
// Created by Kevin Christiano on 4/1/20.
// Copyright © 2020 Verizon Wireless. All rights reserved.
//
/// Padding is a multiple based on the number 4.
public struct Padding {
public static let OneHalf: CGFloat = 2
public static let One: CGFloat = 4
public static let Two: CGFloat = 8
public static let Three: CGFloat = 12
public static let Four: CGFloat = 16
public static let Five: CGFloat = 24
public static let Eight: CGFloat = 32
public static let Ten: CGFloat = 40
public static let Twelve: CGFloat = 48
public static let Eighteen: CGFloat = 72
public struct Component {
public static let Standard: CGFloat = 24
public static let HorizontalMarginSpacing: CGFloat = 16
public static let LargeHorizontalMarginSpacing: CGFloat = 32
public static let VerticalMarginSpacing: CGFloat = 24
public static let LargeVerticalMarginSpacing: CGFloat = 32
public static let HorizontalGutterSpacing: CGFloat = 12
public static let LargeHorizontalGutterSpacing: CGFloat = 24
public static var horizontalPaddingForApplicationWidth: CGFloat {
horizontalPaddingForSize(MVMCoreUISplitViewController.getApplicationViewWidth())
}
public static var verticalPaddingForApplicationWidth: CGFloat {
verticalPaddingForSize(MVMCoreUISplitViewController.getApplicationViewWidth())
}
public static var gutterForApplicationWidth: CGFloat {
gutterFor(size: MVMCoreUISplitViewController.getApplicationViewWidth())
}
public static func horizontalPaddingForSize(_ size: CGFloat) -> CGFloat {
let sizeObject = MFSizeObject(standardSize: HorizontalMarginSpacing)!
return sizeObject.getValueBased(onSize: size)
}
public static func verticalPaddingForSize(_ size: CGFloat) -> CGFloat {
MFSizeObject(scalingStandardSize: VerticalMarginSpacing)?.getValueBased(onSize: size) ?? VerticalMarginSpacing
}
public static func gutterFor(size: CGFloat) -> CGFloat {
let sizeObject = MFSizeObject(standardSize: HorizontalGutterSpacing)!
return sizeObject.getValueBased(onSize: size)
}
public static func columnFor(size: CGFloat) -> CGFloat {
return (size - (3.0 * gutterFor(size: size)) - (2.0 * horizontalPaddingForSize(size))) / 4.0
}
}
}