206 lines
7.1 KiB
ObjectPascal
206 lines
7.1 KiB
ObjectPascal
// 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<string, TMaterialColors>;
|
|
{$ELSE}
|
|
TMaterialColorsList = TDictionary<string, TMaterialColors>;
|
|
{$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.
|