-
Notifications
You must be signed in to change notification settings - Fork 947
/
MDCPalettes.h
223 lines (158 loc) · 8.85 KB
/
MDCPalettes.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
// 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