| // Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| #import <UIKit/UIKit.h> |
| |
| API_DEPRECATED_BEGIN("🤖👀 Use go/material-ios-branding APIs instead. " |
| "See go/material-ios-tokens guidance for more details. " |
| "This has go/material-ios-migrations#scriptable-potential 🤖👀", |
| ios(12, 12)) |
| |
| /** Tint color name. */ |
| typedef NSString *MDCPaletteTint NS_EXTENSIBLE_STRING_ENUM; |
| |
| /** The name of the tint 50 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint50Name; |
| |
| /** The name of the tint 100 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint100Name; |
| |
| /** The name of the tint 200 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint200Name; |
| |
| /** The name of the tint 300 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint300Name; |
| |
| /** The name of the tint 400 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint400Name; |
| |
| /** The name of the tint 500 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint500Name; |
| |
| /** The name of the tint 600 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint600Name; |
| |
| /** The name of the tint 700 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint700Name; |
| |
| /** The name of the tint 800 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint800Name; |
| |
| /** The name of the tint 900 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteTint _Nonnull MDCPaletteTint900Name; |
| |
| /** Accent color name. */ |
| typedef NSString *MDCPaletteAccent NS_EXTENSIBLE_STRING_ENUM; |
| |
| /** The name of the accent 100 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteAccent _Nonnull MDCPaletteAccent100Name; |
| |
| /** The name of the accent 200 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteAccent _Nonnull MDCPaletteAccent200Name; |
| |
| /** The name of the accent 400 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteAccent _Nonnull MDCPaletteAccent400Name; |
| |
| /** The name of the accent 700 color when creating a custom palette. */ |
| CG_EXTERN const MDCPaletteAccent _Nonnull MDCPaletteAccent700Name; |
| |
| /** |
| A palette of Material colors. |
| |
| Material palettes have a set of named tint colors and an optional set of named accent colors. This |
| class provides access to the pre-defined set of Material palettes. MDCPalette objects are |
| immutable; it is safe to use them from multiple threads in your app. |
| |
| @see https://material.io/go/design-color-theming#color-color-palette |
| */ |
| @interface MDCPalette : NSObject |
| |
| /** The red palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *redPalette; |
| |
| /** The pink palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *pinkPalette; |
| |
| /** The purple palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *purplePalette; |
| |
| /** The deep purple palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *deepPurplePalette; |
| |
| /** The indigo palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *indigoPalette; |
| |
| /** The blue palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *bluePalette; |
| |
| /** The light blue palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *lightBluePalette; |
| |
| /** The cyan palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *cyanPalette; |
| |
| /** The teal palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *tealPalette; |
| |
| /** The green palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *greenPalette; |
| |
| /** The light green palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *lightGreenPalette; |
| |
| /** The lime palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *limePalette; |
| |
| /** The yellow palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *yellowPalette; |
| |
| /** The amber palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *amberPalette; |
| |
| /** The orange palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *orangePalette; |
| |
| /** The deep orange palette. */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *deepOrangePalette; |
| |
| /** The brown palette (no accents). */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *brownPalette; |
| |
| /** The grey palette (no accents). */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *greyPalette; |
| |
| /** The blue grey palette (no accents). */ |
| @property(class, nonatomic, readonly, strong, nonnull) MDCPalette *blueGreyPalette; |
| |
| /** |
| Returns a palette generated from a single target 500 tint color. |
| |
| TODO(ajsecord): Document the algorithm used to generate the palette. |
| |
| @param target500Color The target "500" color in the palette. |
| @return A palette generated with a 500 color matching the target color. |
| */ |
| + (nonnull instancetype)paletteGeneratedFromColor:(nonnull UIColor *)target500Color; |
| |
| /** |
| Returns a palette with a custom set of tints and accents. |
| |
| The tints dictionary must have values for each key matching MDCPaletteTint.*Name. The accents |
| dictionary, if specified, may have entries for each key matching MDCPaletteAccent.*Name. Missing |
| accent values will cause an assert in debug mode and will return +[UIColor clearColor] in release |
| mode when the corresponding property is acccessed. |
| |
| @param tints A dictionary mapping MDCPaletteTint.*Name keys to UIColors. |
| @param accents An optional dictionary mapping MDCPaletteAccent.*Name keys to UIColors. |
| @return An palette containing the custom colors. |
| */ |
| + (nonnull instancetype)paletteWithTints:(nonnull NSDictionary<MDCPaletteTint, UIColor *> *)tints |
| accents: |
| (nullable NSDictionary<MDCPaletteAccent, UIColor *> *)accents; |
| |
| /** |
| Returns an initialized palette object with a custom set of tints and accents. |
| |
| The tints dictionary must have values for each key matching MDCPaletteTint.*Name. The accents |
| dictionary, if specified, may have entries for each key matching MDCPaletteAccent.*Name. Missing |
| accent values will cause an assert in debug mode and will return +[UIColor clearColor] in release |
| mode when the corresponding property is acccessed. |
| |
| @param tints A dictionary mapping MDCPaletteTint.*Name keys to UIColors. |
| @param accents An optional dictionary mapping MDCPaletteAccent.*Name keys to UIColors. |
| @return An initialized MDCPalette object containing the custom colors. |
| */ |
| - (nonnull instancetype)initWithTints:(nonnull NSDictionary<MDCPaletteTint, UIColor *> *)tints |
| accents:(nullable NSDictionary<MDCPaletteAccent, UIColor *> *)accents; |
| |
| /** The 50 tint color, the lightest tint of the palette. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint50; |
| |
| /** The 100 tint color. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint100; |
| |
| /** The 200 tint color. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint200; |
| |
| /** The 300 tint color. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint300; |
| |
| /** The 400 tint color. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint400; |
| |
| /** The 500 tint color, the representative tint of the palette. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint500; |
| |
| /** The 600 tint color. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint600; |
| |
| /** The 700 tint color. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint700; |
| |
| /** The 800 tint color. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint800; |
| |
| /** The 900 tint color, the darkest tint of the palette. */ |
| @property(nonatomic, nonnull, readonly) UIColor *tint900; |
| |
| /** The A100 accent color, the lightest accent color. */ |
| @property(nonatomic, nullable, readonly) UIColor *accent100; |
| |
| /** The A200 accent color. */ |
| @property(nonatomic, nullable, readonly) UIColor *accent200; |
| |
| /** The A400 accent color. */ |
| @property(nonatomic, nullable, readonly) UIColor *accent400; |
| |
| /** The A700 accent color, the darkest accent color. */ |
| @property(nonatomic, nullable, readonly) UIColor *accent700; |
| |
| @end |
| |
| API_DEPRECATED_END |