octo-deno/make/colors.js
2017-04-22 23:16:47 +03:00

85 lines
No EOL
3.6 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
make.colors = {
colors: function () {
return random.pick([
make.colors.colorRGB,
make.colors.colorHSL,
make.colors.colorKeywords
]);
},
colorRGB: function () {
let values;
switch (random.number(4)) {
case 0:
// Rgb functional notation
if (random.bool()) {
// Ints
values = [random.number(255), random.number(255), random.number(255)];
} else {
// Percents
values = ["%" + random.number(255), "%" + random.number(255), "%" + random.number(255)];
}
return "rgba(" + values.join(',') + ")";
case 1:
// Rgba functional notation
values = [random.number(255), random.number(255), random.number(255), random.float()];
return "rgba(" + values.join(',') + ")";
case 2:
// 4 char hex
return "#" + random.hex(4);
default:
// 8 char hex
return "#" + random.hex(8);
}
},
colorHSL: function () {
let values, opt;
switch (random.number(4)) {
case 0:
values = [random.number(255), "%" + random.number(255), "%" + random.number(255)];
return "hsl(" + values.join(',') + ")";
case 1:
values = [random.number(255), "%" + random.number(255), "%" + random.number(255), "%" + random.number(255)];
return "hsl(" + values.join(',') + ")";
case 2:
opt = random.pick(['deg', 'rad', 'grad', 'turn']);
values = [random.number(255) + opt, "%" + random.number(255), "%" + random.number(255), "%" + random.number(255)];
return "hsl(" + values.join(',') + ")";
default:
values = [random.number(255), "%" + random.number(255), "%" + random.number(255), random.float()];
return "hsl(" + values.join(',') + ")";
}
},
colorKeywords: function () {
return random.pick([
"lime", "red", "blue", "invert", "currentColor", "ActiveBorder", "ActiveCaption",
"AppWorkspace", "Background", "ButtonFace", "ButtonHighlight", "ButtonShadow",
"ButtonText", "CaptionText", "GrayText", "Highlight", "HighlightText",
"InactiveBorder", "InactiveCaption", "InactiveCaptionText", "InfoBackground",
"InfoText", "Menu", "MenuText", "Scrollbar", "ThreeDDarkShadow", "ThreeDFace",
"ThreeDHighlight", "ThreeDLightShadow", "ThreeDShadow", "Window", "WindowFrame",
"WindowText", "-moz-ButtonDefault", "-moz-ButtonHoverFace", "-moz-ButtonHoverText",
"-moz-CellHighlight", "-moz-CellHighlightText", "-moz-Combobox", "-moz-ComboboxText",
"-moz-Dialog", "-moz-DialogText", "-moz-dragtargetzone", "-moz-EvenTreeRow",
"-moz-Field", "-moz-FieldText", "-moz-html-CellHighlight",
"-moz-html-CellHighlightText", "-moz-mac-accentdarkestshadow",
"-moz-mac-accentdarkshadow", "-moz-mac-accentface",
"-moz-mac-accentlightesthighlight", "-moz-mac-accentlightshadow",
"-moz-mac-accentregularhighlight", "-moz-mac-accentregularshadow",
"-moz-mac-chrome-active", "-moz-mac-chrome-inactive", "-moz-mac-focusring",
"-moz-mac-menuselect", "-moz-mac-menushadow", "-moz-mac-menutextselect",
"-moz-MenuHover", "-moz-MenuHoverText", "-moz-MenuBarText", "-moz-MenuBarHoverText",
"-moz-nativehyperlinktext", "-moz-OddTreeRow", "-moz-win-communicationstext",
"-moz-win-mediatext", "-moz-activehyperlinktext", "-moz-default-background-color",
"-moz-default-color", "-moz-hyperlinktext", "-moz-visitedhyperlinktext"
]);
}
};