// SPDX-License-Identifier: LGPL-3.0-linking-exception { Material Design color pallete from https://material.google.com/style/color.html#color-color-palette } {******************************* CONTRIBUTOR(S) ****************************** - Edivando S. Santos Brasil | mailedivando@gmail.com (Compatibility with delphi VCL 11/2018) ***************************** END CONTRIBUTOR(S) *****************************} unit MaterialColors; {$I bgracontrols.inc} {$IFDEF FPC} {$MODESWITCH ADVANCEDRECORDS} {$ENDIF} interface uses Classes, SysUtils, BGRABitmap, BGRABitmapTypes, {$IFDEF FPC}FGL{$ELSE}Generics.Collections{$ENDIF}; type { TMaterialColors } TMaterialColors = record M50: TBGRAPixel; M100: TBGRAPixel; M200: TBGRAPixel; M300: TBGRAPixel; M400: TBGRAPixel; M500: TBGRAPixel; M600: TBGRAPixel; M700: TBGRAPixel; M800: TBGRAPixel; M900: TBGRAPixel; A100: TBGRAPixel; A200: TBGRAPixel; A400: TBGRAPixel; A700: TBGRAPixel; procedure Create(aM50, aM100, aM200, aM300, aM400, aM500, aM600, aM700, aM800, aM900, aA100, aA200, aA400, aA700: string); end; {$IFDEF FPC} TMaterialColorsList = TFPGMap; {$ELSE} TMaterialColorsList = TDictionary; {$ENDIF} procedure MaterialColorsListStr(AList: TStrings); var MaterialBlack: TBGRAPixel; MaterialWhite: TBGRAPixel; MaterialRed, MaterialPink, MaterialPurple, MaterialDeepPurple, MaterialIndigo, MaterialBlue, MaterialLightBlue, MaterialCyan, MaterialTeal, MaterialGreen, MaterialLightGreen, MaterialLime, MaterialYellow, MaterialAmber, MaterialOrange, MaterialDeepOrange, MaterialBrown, MaterialGrey, MaterialBlueGrey: TMaterialColors; MaterialColorsList: TMaterialColorsList; implementation procedure MaterialColorsListStr(AList: TStrings); begin with AList do begin Add('Red'); Add('Pink'); Add('Purple'); Add('Deep Purple'); Add('Indigo'); Add('Blue'); Add('Light Blue'); Add('Cyan'); Add('Teal'); Add('Green'); Add('Light Green'); Add('Lime'); Add('Yellow'); Add('Amber'); Add('Orange'); Add('Deep Orange'); Add('Brown'); Add('Grey'); Add('Blue Grey'); end; end; { TMaterialColors } procedure TMaterialColors.Create(aM50, aM100, aM200, aM300, aM400, aM500, aM600, aM700, aM800, aM900, aA100, aA200, aA400, aA700: string); begin self.M50 := StrToBGRA(aM50); self.M100 := StrToBGRA(aM100); self.M200 := StrToBGRA(aM200); self.M300 := StrToBGRA(aM300); self.M400 := StrToBGRA(aM400); self.M500 := StrToBGRA(aM500); self.M600 := StrToBGRA(aM600); self.M700 := StrToBGRA(aM700); self.M800 := StrToBGRA(aM800); self.M900 := StrToBGRA(aM900); self.A100 := StrToBGRA(aA100); self.A200 := StrToBGRA(aA200); self.A400 := StrToBGRA(aA400); self.A700 := StrToBGRA(aA700); end; initialization MaterialBlack := BGRABlack; MaterialWhite := BGRAWhite; MaterialRed.Create('#FFEBEE', '#FFCDD2', '#EF9A9A', '#E57373', '#EF5350', '#F44336', '#E53935', '#D32F2F', '#C62828', '#B71C1C', '#FF8A80', '#FF5252', '#FF1744', '#D50000'); MaterialPink.Create('#FCE4EC', '#F8BBD0', '#F48FB1', '#F06292', '#EC407A', '#E91E63', '#D81B60', '#C2185B', '#AD1457', '#880E4F', '#FF80AB', '#FF4081', '#F50057', '#C51162'); MaterialPurple.Create('#F3E5F5', '#E1BEE7', '#CE93D8', '#BA68C8', '#AB47BC', '#9C27B0', '#8E24AA', '#7B1FA2', '#6A1B9A', '#4A148C', '#EA80FC', '#E040FB', '#D500F9', '#AA00FF'); MaterialDeepPurple.Create('#EDE7F6', '#D1C4E9', '#B39DDB', '#9575CD', '#7E57C2', '#673AB7', '#5E35B1', '#512DA8', '#4527A0', '#311B92', '#B388FF', '#7C4DFF', '#651FFF', '#6200EA'); MaterialIndigo.Create('#E8EAF6', '#C5CAE9', '#9FA8DA', '#7986CB', '#5C6BC0', '#3F51B5', '#3949AB', '#303F9F', '#283593', '#1A237E', '#8C9EFF', '#536DFE', '#3D5AFE', '#304FFE'); MaterialBlue.Create('#E3F2FD', '#BBDEFB', '#90CAF9', '#64B5F6', '#42A5F5', '#2196F3', '#1E88E5', '#1976D2', '#1565C0', '#0D47A1', '#82B1FF', '#448AFF', '#2979FF', '#2962FF'); MaterialLightBlue.Create('#E1F5FE', '#B3E5FC', '#81D4FA', '#4FC3F7', '#29B6F6', '#03A9F4', '#039BE5', '#0288D1', '#0277BD', '#01579B', '#80D8FF', '#40C4FF', '#00B0FF', '#0091EA'); MaterialCyan.Create('#E0F7FA', '#B2EBF2', '#80DEEA', '#4DD0E1', '#26C6DA', '#00BCD4', '#00ACC1', '#0097A7', '#00838F', '#006064', '#84FFFF', '#18FFFF', '#00E5FF', '#00B8D4'); MaterialTeal.Create('#E0F2F1', '#B2DFDB', '#80CBC4', '#4DB6AC', '#26A69A', '#009688', '#00897B', '#00796B', '#00695C', '#004D40', '#A7FFEB', '#64FFDA', '#1DE9B6', '#00BFA5'); MaterialGreen.Create('#E8F5E9', '#C8E6C9', '#A5D6A7', '#81C784', '#66BB6A', '#4CAF50', '#43A047', '#388E3C', '#2E7D32', '#1B5E20', '#B9F6CA', '#69F0AE', '#00E676', '#00C853'); MaterialLightGreen.Create('#F1F8E9', '#DCEDC8', '#C5E1A5', '#AED581', '#9CCC65', '#8BC34A', '#7CB342', '#689F38', '#558B2F', '#33691E', '#CCFF90', '#B2FF59', '#76FF03', '#64DD17'); MaterialLime.Create('#F9FBE7', '#F0F4C3', '#E6EE9C', '#DCE775', '#D4E157', '#CDDC39', '#C0CA33', '#AFB42B', '#9E9D24', '#827717', '#F4FF81', '#EEFF41', '#C6FF00', '#AEEA00'); MaterialYellow.Create('#FFFDE7', '#FFF9C4', '#FFF59D', '#FFF176', '#FFEE58', '#FFEB3B', '#FDD835', '#FBC02D', '#F9A825', '#F57F17', '#FFFF8D', '#FFFF00', '#FFEA00', '#FFD600'); MaterialAmber.Create('#FFF8E1', '#FFECB3', '#FFE082', '#FFD54F', '#FFCA28', '#FFC107', '#FFB300', '#FFA000', '#FF8F00', '#FF6F00', '#FFE57F', '#FFD740', '#FFC400', '#FFAB00'); MaterialOrange.Create('#FFF3E0', '#FFE0B2', '#FFCC80', '#FFB74D', '#FFA726', '#FF9800', '#FB8C00', '#F57C00', '#EF6C00', '#E65100', '#FFD180', '#FFAB40', '#FF9100', '#FF6D00'); MaterialDeepOrange.Create('#FBE9E7', '#FFCCBC', '#FFAB91', '#FF8A65', '#FF7043', '#FF5722', '#F4511E', '#E64A19', '#D84315', '#BF360C', '#FF9E80', '#FF6E40', '#FF3D00', '#DD2C00'); MaterialBrown.Create('#EFEBE9', '#D7CCC8', '#BCAAA4', '#A1887F', '#8D6E63', '#795548', '#6D4C41', '#5D4037', '#4E342E', '#3E2723', '', '', '', ''); MaterialGrey.Create('#FAFAFA', '#F5F5F5', '#EEEEEE', '#E0E0E0', '#BDBDBD', '#9E9E9E', '#757575', '#616161', '#424242', '#212121', '', '', '', ''); MaterialBlueGrey.Create('#ECEFF1', '#CFD8DC', '#B0BEC5', '#90A4AE', '#78909C', '#607D8B', '#546E7A', '#455A64', '#37474F', '#263238', '', '', '', ''); MaterialColorsList := TMaterialColorsList.Create; with MaterialColorsList do begin Add('Red', MaterialRed); Add('Pink', MaterialPink); Add('Purple', MaterialPurple); Add('Deep Purple', MaterialDeepPurple); Add('Indigo', MaterialIndigo); Add('Blue', MaterialBlue); Add('Light Blue', MaterialLightBlue); Add('Cyan', MaterialCyan); Add('Teal', MaterialTeal); Add('Green', MaterialGreen); Add('Light Green', MaterialLightGreen); Add('Lime', MaterialLime); Add('Yellow', MaterialYellow); Add('Amber', MaterialAmber); Add('Orange', MaterialOrange); Add('Deep Orange', MaterialDeepOrange); Add('Brown', MaterialBrown); Add('Grey', MaterialGrey); Add('Blue Grey', MaterialBlueGrey); end; finalization MaterialColorsList.Free; end.