diff --git a/color_multi_tool.jinja b/color_multi_tool.jinja index 7a3e1b7..ecaf21a 100644 --- a/color_multi_tool.jinja +++ b/color_multi_tool.jinja @@ -1,604 +1,3 @@ -{% set _nameMap = { - '_rgb': [ - { 'color': 'aliceblue', - 'r': 240, - 'g': 248, - 'b': 255, }, - { 'color': 'antiquewhite', - 'r': 250, - 'g': 235, - 'b': 215, }, - { 'color': 'aqua', - 'r': 0, - 'g': 255, - 'b': 255, }, - { 'color': 'aquamarine', - 'r': 127, - 'g': 255, - 'b': 212, }, - { 'color': 'azure', - 'r': 240, - 'g': 255, - 'b': 255, }, - { 'color': 'beige', - 'r': 245, - 'g': 245, - 'b': 220, }, - { 'color': 'bisque', - 'r': 255, - 'g': 228, - 'b': 196, }, - { 'color': 'black', - 'r': 0, - 'g': 0, - 'b': 0, }, - { 'color': 'blanchedalmond', - 'r': 255, - 'g': 235, - 'b': 205, }, - { 'color': 'blue', - 'r': 0, - 'g': 0, - 'b': 255, }, - { 'color': 'blueviolet', - 'r': 138, - 'g': 43, - 'b': 226, }, - { 'color': 'brown', - 'r': 165, - 'g': 42, - 'b': 42, }, - { 'color': 'burlywood', - 'r': 222, - 'g': 184, - 'b': 135, }, - { 'color': 'cadetblue', - 'r': 95, - 'g': 158, - 'b': 160, }, - { 'color': 'chartreuse', - 'r': 127, - 'g': 255, - 'b': 0, }, - { 'color': 'chocolate', - 'r': 210, - 'g': 105, - 'b': 30, }, - { 'color': 'coral', - 'r': 255, - 'g': 127, - 'b': 80, }, - { 'color': 'cornflowerblue', - 'r': 100, - 'g': 149, - 'b': 237, }, - { 'color': 'cornsilk', - 'r': 255, - 'g': 248, - 'b': 220, }, - { 'color': 'crimson', - 'r': 220, - 'g': 20, - 'b': 60, }, - { 'color': 'cyan', - 'r': 0, - 'g': 255, - 'b': 255, }, - { 'color': 'darkblue', - 'r': 0, - 'g': 0, - 'b': 139, }, - { 'color': 'darkcyan', - 'r': 0, - 'g': 139, - 'b': 139, }, - { 'color': 'darkgoldenrod', - 'r': 184, - 'g': 134, - 'b': 11, }, - { 'color': 'darkgray', - 'r': 169, - 'g': 169, - 'b': 169, }, - { 'color': 'darkgreen', - 'r': 0, - 'g': 100, - 'b': 0, }, - { 'color': 'darkgrey', - 'r': 169, - 'g': 169, - 'b': 169, }, - { 'color': 'darkkhaki', - 'r': 189, - 'g': 183, - 'b': 107, }, - { 'color': 'darkmagenta', - 'r': 139, - 'g': 0, - 'b': 139, }, - { 'color': 'darkolivegreen', - 'r': 85, - 'g': 107, - 'b': 47, }, - { 'color': 'darkorange', - 'r': 255, - 'g': 140, - 'b': 0, }, - { 'color': 'darkorchid', - 'r': 153, - 'g': 50, - 'b': 204, }, - { 'color': 'darkred', - 'r': 139, - 'g': 0, - 'b': 0, }, - { 'color': 'darksalmon', - 'r': 233, - 'g': 150, - 'b': 122, }, - { 'color': 'darkseagreen', - 'r': 143, - 'g': 188, - 'b': 143, }, - { 'color': 'darkslateblue', - 'r': 72, - 'g': 61, - 'b': 139, }, - { 'color': 'darkslategray', - 'r': 47, - 'g': 79, - 'b': 79, }, - { 'color': 'darkslategrey', - 'r': 47, - 'g': 79, - 'b': 79, }, - { 'color': 'darkturquoise', - 'r': 0, - 'g': 206, - 'b': 209, }, - { 'color': 'darkviolet', - 'r': 148, - 'g': 0, - 'b': 211, }, - { 'color': 'deeppink', - 'r': 255, - 'g': 20, - 'b': 147, }, - { 'color': 'deepskyblue', - 'r': 0, - 'g': 191, - 'b': 255, }, - { 'color': 'dimgray', - 'r': 105, - 'g': 105, - 'b': 105, }, - { 'color': 'dimgrey', - 'r': 105, - 'g': 105, - 'b': 105, }, - { 'color': 'dodgerblue', - 'r': 30, - 'g': 144, - 'b': 255, }, - { 'color': 'firebrick', - 'r': 178, - 'g': 34, - 'b': 34, }, - { 'color': 'floralwhite', - 'r': 255, - 'g': 250, - 'b': 240, }, - { 'color': 'forestgreen', - 'r': 34, - 'g': 139, - 'b': 34, }, - { 'color': 'fuchsia', - 'r': 255, - 'g': 0, - 'b': 255, }, - { 'color': 'gainsboro', - 'r': 220, - 'g': 220, - 'b': 220, }, - { 'color': 'ghostwhite', - 'r': 248, - 'g': 248, - 'b': 255, }, - { 'color': 'gold', - 'r': 255, - 'g': 215, - 'b': 0, }, - { 'color': 'goldenrod', - 'r': 218, - 'g': 165, - 'b': 32, }, - { 'color': 'gray', - 'r': 128, - 'g': 128, - 'b': 128, }, - { 'color': 'green', - 'r': 0, - 'g': 128, - 'b': 0, }, - { 'color': 'greenyellow', - 'r': 173, - 'g': 255, - 'b': 47, }, - { 'color': 'grey', - 'r': 128, - 'g': 128, - 'b': 128, }, - { 'color': 'honeydew', - 'r': 240, - 'g': 255, - 'b': 240, }, - { 'color': 'hotpink', - 'r': 255, - 'g': 105, - 'b': 180, }, - { 'color': 'indianred', - 'r': 205, - 'g': 92, - 'b': 92, }, - { 'color': 'indigo', - 'r': 75, - 'g': 0, - 'b': 130, }, - { 'color': 'ivory', - 'r': 255, - 'g': 255, - 'b': 240, }, - { 'color': 'khaki', - 'r': 240, - 'g': 230, - 'b': 140, }, - { 'color': 'lavender', - 'r': 230, - 'g': 230, - 'b': 250, }, - { 'color': 'lavenderblush', - 'r': 255, - 'g': 240, - 'b': 245, }, - { 'color': 'lawngreen', - 'r': 124, - 'g': 252, - 'b': 0, }, - { 'color': 'lemonchiffon', - 'r': 255, - 'g': 250, - 'b': 205, }, - { 'color': 'lightblue', - 'r': 173, - 'g': 216, - 'b': 230, }, - { 'color': 'lightcoral', - 'r': 240, - 'g': 128, - 'b': 128, }, - { 'color': 'lightcyan', - 'r': 224, - 'g': 255, - 'b': 255, }, - { 'color': 'lightgoldenrodyellow', - 'r': 250, - 'g': 250, - 'b': 210, }, - { 'color': 'lightgray', - 'r': 211, - 'g': 211, - 'b': 211, }, - { 'color': 'lightgreen', - 'r': 144, - 'g': 238, - 'b': 144, }, - { 'color': 'lightgrey', - 'r': 211, - 'g': 211, - 'b': 211, }, - { 'color': 'lightpink', - 'r': 255, - 'g': 182, - 'b': 193, }, - { 'color': 'lightsalmon', - 'r': 255, - 'g': 160, - 'b': 122, }, - { 'color': 'lightseagreen', - 'r': 32, - 'g': 178, - 'b': 170, }, - { 'color': 'lightskyblue', - 'r': 135, - 'g': 206, - 'b': 250, }, - { 'color': 'lightslategray', - 'r': 119, - 'g': 136, - 'b': 153, }, - { 'color': 'lightslategrey', - 'r': 119, - 'g': 136, - 'b': 153, }, - { 'color': 'lightsteelblue', - 'r': 176, - 'g': 196, - 'b': 222, }, - { 'color': 'lightyellow', - 'r': 255, - 'g': 255, - 'b': 224, }, - { 'color': 'lime', - 'r': 0, - 'g': 255, - 'b': 0, }, - { 'color': 'limegreen', - 'r': 50, - 'g': 205, - 'b': 50, }, - { 'color': 'linen', - 'r': 250, - 'g': 240, - 'b': 230, }, - { 'color': 'magenta', - 'r': 255, - 'g': 0, - 'b': 255, }, - { 'color': 'maroon', - 'r': 128, - 'g': 0, - 'b': 0, }, - { 'color': 'mediumaquamarine', - 'r': 102, - 'g': 205, - 'b': 170, }, - { 'color': 'mediumblue', - 'r': 0, - 'g': 0, - 'b': 205, }, - { 'color': 'mediumorchid', - 'r': 186, - 'g': 85, - 'b': 211, }, - { 'color': 'mediumpurple', - 'r': 147, - 'g': 112, - 'b': 219, }, - { 'color': 'mediumseagreen', - 'r': 60, - 'g': 179, - 'b': 113, }, - { 'color': 'mediumslateblue', - 'r': 123, - 'g': 104, - 'b': 238, }, - { 'color': 'mediumspringgreen', - 'r': 0, - 'g': 250, - 'b': 154, }, - { 'color': 'mediumturquoise', - 'r': 72, - 'g': 209, - 'b': 204, }, - { 'color': 'mediumvioletred', - 'r': 199, - 'g': 21, - 'b': 133, }, - { 'color': 'midnightblue', - 'r': 25, - 'g': 25, - 'b': 112, }, - { 'color': 'mintcream', - 'r': 245, - 'g': 255, - 'b': 250, }, - { 'color': 'mistyrose', - 'r': 255, - 'g': 228, - 'b': 225, }, - { 'color': 'moccasin', - 'r': 255, - 'g': 228, - 'b': 181, }, - { 'color': 'navajowhite', - 'r': 255, - 'g': 222, - 'b': 173, }, - { 'color': 'navy', - 'r': 0, - 'g': 0, - 'b': 128, }, - { 'color': 'navyblue', - 'r': 0, - 'g': 0, - 'b': 128, }, - { 'color': 'oldlace', - 'r': 253, - 'g': 245, - 'b': 230, }, - { 'color': 'olive', - 'r': 128, - 'g': 128, - 'b': 0, }, - { 'color': 'olivedrab', - 'r': 107, - 'g': 142, - 'b': 35, }, - { 'color': 'orange', - 'r': 255, - 'g': 165, - 'b': 0, }, - { 'color': 'orangered', - 'r': 255, - 'g': 69, - 'b': 0, }, - { 'color': 'orchid', - 'r': 218, - 'g': 112, - 'b': 214, }, - { 'color': 'palegoldenrod', - 'r': 238, - 'g': 232, - 'b': 170, }, - { 'color': 'palegreen', - 'r': 152, - 'g': 251, - 'b': 152, }, - { 'color': 'paleturquoise', - 'r': 175, - 'g': 238, - 'b': 238, }, - { 'color': 'palevioletred', - 'r': 219, - 'g': 112, - 'b': 147, }, - { 'color': 'papayawhip', - 'r': 255, - 'g': 239, - 'b': 213, }, - { 'color': 'peachpuff', - 'r': 255, - 'g': 218, - 'b': 185, }, - { 'color': 'peru', - 'r': 205, - 'g': 133, - 'b': 63, }, - { 'color': 'pink', - 'r': 255, - 'g': 192, - 'b': 203, }, - { 'color': 'plum', - 'r': 221, - 'g': 160, - 'b': 221, }, - { 'color': 'powderblue', - 'r': 176, - 'g': 224, - 'b': 230, }, - { 'color': 'purple', - 'r': 128, - 'g': 0, - 'b': 128, }, - { 'color': 'red', - 'r': 255, - 'g': 0, - 'b': 0, }, - { 'color': 'rosybrown', - 'r': 188, - 'g': 143, - 'b': 143, }, - { 'color': 'royalblue', - 'r': 65, - 'g': 105, - 'b': 225, }, - { 'color': 'saddlebrown', - 'r': 139, - 'g': 69, - 'b': 19, }, - { 'color': 'salmon', - 'r': 250, - 'g': 128, - 'b': 114, }, - { 'color': 'sandybrown', - 'r': 244, - 'g': 164, - 'b': 96, }, - { 'color': 'seagreen', - 'r': 46, - 'g': 139, - 'b': 87, }, - { 'color': 'seashell', - 'r': 255, - 'g': 245, - 'b': 238, }, - { 'color': 'sienna', - 'r': 160, - 'g': 82, - 'b': 45, }, - { 'color': 'silver', - 'r': 192, - 'g': 192, - 'b': 192, }, - { 'color': 'skyblue', - 'r': 135, - 'g': 206, - 'b': 235, }, - { 'color': 'slateblue', - 'r': 106, - 'g': 90, - 'b': 205, }, - { 'color': 'slategray', - 'r': 112, - 'g': 128, - 'b': 144, }, - { 'color': 'slategrey', - 'r': 112, - 'g': 128, - 'b': 144, }, - { 'color': 'snow', - 'r': 255, - 'g': 250, - 'b': 250, }, - { 'color': 'springgreen', - 'r': 0, - 'g': 255, - 'b': 127, }, - { 'color': 'steelblue', - 'r': 70, - 'g': 130, - 'b': 180, }, - { 'color': 'tan', - 'r': 210, - 'g': 180, - 'b': 140, }, - { 'color': 'teal', - 'r': 0, - 'g': 128, - 'b': 128, }, - { 'color': 'thistle', - 'r': 216, - 'g': 191, - 'b': 216, }, - { 'color': 'tomato', - 'r': 255, - 'g': 99, - 'b': 71, }, - { 'color': 'turquoise', - 'r': 64, - 'g': 224, - 'b': 208, }, - { 'color': 'violet', - 'r': 238, - 'g': 130, - 'b': 238, }, - { 'color': 'wheat', - 'r': 245, - 'g': 222, - 'b': 179, }, - { 'color': 'white', - 'r': 255, - 'g': 255, - 'b': 255, }, - { 'color': 'whitesmoke', - 'r': 245, - 'g': 245, - 'b': 245, }, - { 'color': 'yellow', - 'r': 255, - 'g': 255, - 'b': 0, }, - { 'color': 'yellowgreen', - 'r': 154, - 'g': 205, - 'g': 50, }, - { 'color': 'homeassistant', - 'r': 24, - 'b': 188, - 'g': 242, }, - ], -} -%} - {% macro random_name() %} {#- This will return one of the official color names recognized by Home Assistant @@ -725,7 +124,7 @@ {{- R -}},{{- G -}},{{- B -}} {% endmacro %} -{% macro rgb2xy(rgbl) %} +{% macro rgb2xy(rgb_formatted_list) %} {#- This will return a CSV string that will convert to a list in the x,y format from the rgb list provided. @@ -795,7 +194,7 @@ {{- X -}},{{- Y -}} {% endmacro %} -{% macro xy2rgb(xyl) %} +{% macro xy2rgb(xy_formatted_list) %} {#- This will return a CSV string that will convert to a list in the rgb format from the xy list provided. @@ -868,7 +267,7 @@ {{- R -}},{{- G -}},{{- B -}} {% endmacro %} -{% macro hs2rgb(hsl) %} +{% macro hs2rgb(hs_formatted_list) %} {#- This will return a CSV string that will convert to a list in the rgb format from the xy list provided. @@ -946,7 +345,7 @@ {{- R -}},{{- G -}},{{- B -}} {% endmacro %} -{% macro rgb2hs(rgbl) %} +{% macro rgb2hs(rgb_formatted_list) %} {#- This will return a CSV string that will convert to a list in the x,y format from the rgb list provided. @@ -1014,7 +413,7 @@ {{- H -}},{{- S -}} {% endmacro %} -{% macro hs2xy(hsl) %} +{% macro hs2xy(hs_formatted_list) %} {#- This will return a CSV string that will convert to a list in the hs format from the xy list provided. @@ -1050,52 +449,647 @@ {{- X -}},{{- Y -}} {% endmacro %} -{% macro xy2hs(xyl) %} +{% macro xy2hs(xy_formatted_list) %} +{#- + This will return a CSV string that will convert to a list in the hs format + from the xy list provided. + Be sure to convert this to a list when you use it on the other end + because it arrives as a CSV string. + This converter uses other templates provided in this Custom Jinja Template. + Brightness is assumed to be 100% + + SAMPLE USAGE: + {% from 'color_multi_tool.jinja' import xy2hs %} + {% set _xy2hs = xy2hs(xyl).split(",") | list -%} + {{ [_xy2hs[0]|float|round(3),_xy2hs[1]|float|round(3)] }} + + REMEMBER: + Everything returned from a macro template is a string, so for + conventional usage of colors the result needs to be converted to a + list as shown in the example above. +-#} +{#- First a test to make sure this is a list -#} +{%- if xyl is list -%} + {%- set _xy2rgb = xy2rgb(xyl).split(",") | list -%} + {%- set _xy2rgb_list = [_xy2rgb[0]|int(0),_xy2rgb[1]|int(0),_xy2rgb[2]|int(0)] -%} + {%- set _rgb2hs = rgb2hs(_xy2rgb_list).split(",") | list -%} + {%- set _rgb2hs_list = [_rgb2hs[0]|float(0)|round(3),_rgb2hs[1]|float(0)|round(3)] -%} +{#- Calculated output -#} + {%- set H = _rgb2hs_list[0] | float(0.0) | round(3) -%} + {%- set S = _rgb2hs_list[1] | float(0.0) | round(3) -%} +{%- else -%} + {#- Input was not a list -#} + {%- set H = 0.0 -%} + {%- set S = 0.0 -%} +{%- endif -%} +{{- H -}},{{- S -}} +{% endmacro %} + +{#- COLOR NAME TO RGB MAP DATA. DO NOT CHANGE BELOW THIS LINE: -#} +{% set _nameMap = { + '_rgb': [ + { 'color': 'aliceblue', + 'r': 240, + 'g': 248, + 'b': 255, }, + { 'color': 'antiquewhite', + 'r': 250, + 'g': 235, + 'b': 215, }, + { 'color': 'aqua', + 'r': 0, + 'g': 255, + 'b': 255, }, + { 'color': 'aquamarine', + 'r': 127, + 'g': 255, + 'b': 212, }, + { 'color': 'azure', + 'r': 240, + 'g': 255, + 'b': 255, }, + { 'color': 'beige', + 'r': 245, + 'g': 245, + 'b': 220, }, + { 'color': 'bisque', + 'r': 255, + 'g': 228, + 'b': 196, }, + { 'color': 'black', + 'r': 0, + 'g': 0, + 'b': 0, }, + { 'color': 'blanchedalmond', + 'r': 255, + 'g': 235, + 'b': 205, }, + { 'color': 'blue', + 'r': 0, + 'g': 0, + 'b': 255, }, + { 'color': 'blueviolet', + 'r': 138, + 'g': 43, + 'b': 226, }, + { 'color': 'brown', + 'r': 165, + 'g': 42, + 'b': 42, }, + { 'color': 'burlywood', + 'r': 222, + 'g': 184, + 'b': 135, }, + { 'color': 'cadetblue', + 'r': 95, + 'g': 158, + 'b': 160, }, + { 'color': 'chartreuse', + 'r': 127, + 'g': 255, + 'b': 0, }, + { 'color': 'chocolate', + 'r': 210, + 'g': 105, + 'b': 30, }, + { 'color': 'coral', + 'r': 255, + 'g': 127, + 'b': 80, }, + { 'color': 'cornflowerblue', + 'r': 100, + 'g': 149, + 'b': 237, }, + { 'color': 'cornsilk', + 'r': 255, + 'g': 248, + 'b': 220, }, + { 'color': 'crimson', + 'r': 220, + 'g': 20, + 'b': 60, }, + { 'color': 'cyan', + 'r': 0, + 'g': 255, + 'b': 255, }, + { 'color': 'darkblue', + 'r': 0, + 'g': 0, + 'b': 139, }, + { 'color': 'darkcyan', + 'r': 0, + 'g': 139, + 'b': 139, }, + { 'color': 'darkgoldenrod', + 'r': 184, + 'g': 134, + 'b': 11, }, + { 'color': 'darkgray', + 'r': 169, + 'g': 169, + 'b': 169, }, + { 'color': 'darkgreen', + 'r': 0, + 'g': 100, + 'b': 0, }, + { 'color': 'darkgrey', + 'r': 169, + 'g': 169, + 'b': 169, }, + { 'color': 'darkkhaki', + 'r': 189, + 'g': 183, + 'b': 107, }, + { 'color': 'darkmagenta', + 'r': 139, + 'g': 0, + 'b': 139, }, + { 'color': 'darkolivegreen', + 'r': 85, + 'g': 107, + 'b': 47, }, + { 'color': 'darkorange', + 'r': 255, + 'g': 140, + 'b': 0, }, + { 'color': 'darkorchid', + 'r': 153, + 'g': 50, + 'b': 204, }, + { 'color': 'darkred', + 'r': 139, + 'g': 0, + 'b': 0, }, + { 'color': 'darksalmon', + 'r': 233, + 'g': 150, + 'b': 122, }, + { 'color': 'darkseagreen', + 'r': 143, + 'g': 188, + 'b': 143, }, + { 'color': 'darkslateblue', + 'r': 72, + 'g': 61, + 'b': 139, }, + { 'color': 'darkslategray', + 'r': 47, + 'g': 79, + 'b': 79, }, + { 'color': 'darkslategrey', + 'r': 47, + 'g': 79, + 'b': 79, }, + { 'color': 'darkturquoise', + 'r': 0, + 'g': 206, + 'b': 209, }, + { 'color': 'darkviolet', + 'r': 148, + 'g': 0, + 'b': 211, }, + { 'color': 'deeppink', + 'r': 255, + 'g': 20, + 'b': 147, }, + { 'color': 'deepskyblue', + 'r': 0, + 'g': 191, + 'b': 255, }, + { 'color': 'dimgray', + 'r': 105, + 'g': 105, + 'b': 105, }, + { 'color': 'dimgrey', + 'r': 105, + 'g': 105, + 'b': 105, }, + { 'color': 'dodgerblue', + 'r': 30, + 'g': 144, + 'b': 255, }, + { 'color': 'firebrick', + 'r': 178, + 'g': 34, + 'b': 34, }, + { 'color': 'floralwhite', + 'r': 255, + 'g': 250, + 'b': 240, }, + { 'color': 'forestgreen', + 'r': 34, + 'g': 139, + 'b': 34, }, + { 'color': 'fuchsia', + 'r': 255, + 'g': 0, + 'b': 255, }, + { 'color': 'gainsboro', + 'r': 220, + 'g': 220, + 'b': 220, }, + { 'color': 'ghostwhite', + 'r': 248, + 'g': 248, + 'b': 255, }, + { 'color': 'gold', + 'r': 255, + 'g': 215, + 'b': 0, }, + { 'color': 'goldenrod', + 'r': 218, + 'g': 165, + 'b': 32, }, + { 'color': 'gray', + 'r': 128, + 'g': 128, + 'b': 128, }, + { 'color': 'green', + 'r': 0, + 'g': 128, + 'b': 0, }, + { 'color': 'greenyellow', + 'r': 173, + 'g': 255, + 'b': 47, }, + { 'color': 'grey', + 'r': 128, + 'g': 128, + 'b': 128, }, + { 'color': 'honeydew', + 'r': 240, + 'g': 255, + 'b': 240, }, + { 'color': 'hotpink', + 'r': 255, + 'g': 105, + 'b': 180, }, + { 'color': 'indianred', + 'r': 205, + 'g': 92, + 'b': 92, }, + { 'color': 'indigo', + 'r': 75, + 'g': 0, + 'b': 130, }, + { 'color': 'ivory', + 'r': 255, + 'g': 255, + 'b': 240, }, + { 'color': 'khaki', + 'r': 240, + 'g': 230, + 'b': 140, }, + { 'color': 'lavender', + 'r': 230, + 'g': 230, + 'b': 250, }, + { 'color': 'lavenderblush', + 'r': 255, + 'g': 240, + 'b': 245, }, + { 'color': 'lawngreen', + 'r': 124, + 'g': 252, + 'b': 0, }, + { 'color': 'lemonchiffon', + 'r': 255, + 'g': 250, + 'b': 205, }, + { 'color': 'lightblue', + 'r': 173, + 'g': 216, + 'b': 230, }, + { 'color': 'lightcoral', + 'r': 240, + 'g': 128, + 'b': 128, }, + { 'color': 'lightcyan', + 'r': 224, + 'g': 255, + 'b': 255, }, + { 'color': 'lightgoldenrodyellow', + 'r': 250, + 'g': 250, + 'b': 210, }, + { 'color': 'lightgray', + 'r': 211, + 'g': 211, + 'b': 211, }, + { 'color': 'lightgreen', + 'r': 144, + 'g': 238, + 'b': 144, }, + { 'color': 'lightgrey', + 'r': 211, + 'g': 211, + 'b': 211, }, + { 'color': 'lightpink', + 'r': 255, + 'g': 182, + 'b': 193, }, + { 'color': 'lightsalmon', + 'r': 255, + 'g': 160, + 'b': 122, }, + { 'color': 'lightseagreen', + 'r': 32, + 'g': 178, + 'b': 170, }, + { 'color': 'lightskyblue', + 'r': 135, + 'g': 206, + 'b': 250, }, + { 'color': 'lightslategray', + 'r': 119, + 'g': 136, + 'b': 153, }, + { 'color': 'lightslategrey', + 'r': 119, + 'g': 136, + 'b': 153, }, + { 'color': 'lightsteelblue', + 'r': 176, + 'g': 196, + 'b': 222, }, + { 'color': 'lightyellow', + 'r': 255, + 'g': 255, + 'b': 224, }, + { 'color': 'lime', + 'r': 0, + 'g': 255, + 'b': 0, }, + { 'color': 'limegreen', + 'r': 50, + 'g': 205, + 'b': 50, }, + { 'color': 'linen', + 'r': 250, + 'g': 240, + 'b': 230, }, + { 'color': 'magenta', + 'r': 255, + 'g': 0, + 'b': 255, }, + { 'color': 'maroon', + 'r': 128, + 'g': 0, + 'b': 0, }, + { 'color': 'mediumaquamarine', + 'r': 102, + 'g': 205, + 'b': 170, }, + { 'color': 'mediumblue', + 'r': 0, + 'g': 0, + 'b': 205, }, + { 'color': 'mediumorchid', + 'r': 186, + 'g': 85, + 'b': 211, }, + { 'color': 'mediumpurple', + 'r': 147, + 'g': 112, + 'b': 219, }, + { 'color': 'mediumseagreen', + 'r': 60, + 'g': 179, + 'b': 113, }, + { 'color': 'mediumslateblue', + 'r': 123, + 'g': 104, + 'b': 238, }, + { 'color': 'mediumspringgreen', + 'r': 0, + 'g': 250, + 'b': 154, }, + { 'color': 'mediumturquoise', + 'r': 72, + 'g': 209, + 'b': 204, }, + { 'color': 'mediumvioletred', + 'r': 199, + 'g': 21, + 'b': 133, }, + { 'color': 'midnightblue', + 'r': 25, + 'g': 25, + 'b': 112, }, + { 'color': 'mintcream', + 'r': 245, + 'g': 255, + 'b': 250, }, + { 'color': 'mistyrose', + 'r': 255, + 'g': 228, + 'b': 225, }, + { 'color': 'moccasin', + 'r': 255, + 'g': 228, + 'b': 181, }, + { 'color': 'navajowhite', + 'r': 255, + 'g': 222, + 'b': 173, }, + { 'color': 'navy', + 'r': 0, + 'g': 0, + 'b': 128, }, + { 'color': 'navyblue', + 'r': 0, + 'g': 0, + 'b': 128, }, + { 'color': 'oldlace', + 'r': 253, + 'g': 245, + 'b': 230, }, + { 'color': 'olive', + 'r': 128, + 'g': 128, + 'b': 0, }, + { 'color': 'olivedrab', + 'r': 107, + 'g': 142, + 'b': 35, }, + { 'color': 'orange', + 'r': 255, + 'g': 165, + 'b': 0, }, + { 'color': 'orangered', + 'r': 255, + 'g': 69, + 'b': 0, }, + { 'color': 'orchid', + 'r': 218, + 'g': 112, + 'b': 214, }, + { 'color': 'palegoldenrod', + 'r': 238, + 'g': 232, + 'b': 170, }, + { 'color': 'palegreen', + 'r': 152, + 'g': 251, + 'b': 152, }, + { 'color': 'paleturquoise', + 'r': 175, + 'g': 238, + 'b': 238, }, + { 'color': 'palevioletred', + 'r': 219, + 'g': 112, + 'b': 147, }, + { 'color': 'papayawhip', + 'r': 255, + 'g': 239, + 'b': 213, }, + { 'color': 'peachpuff', + 'r': 255, + 'g': 218, + 'b': 185, }, + { 'color': 'peru', + 'r': 205, + 'g': 133, + 'b': 63, }, + { 'color': 'pink', + 'r': 255, + 'g': 192, + 'b': 203, }, + { 'color': 'plum', + 'r': 221, + 'g': 160, + 'b': 221, }, + { 'color': 'powderblue', + 'r': 176, + 'g': 224, + 'b': 230, }, + { 'color': 'purple', + 'r': 128, + 'g': 0, + 'b': 128, }, + { 'color': 'red', + 'r': 255, + 'g': 0, + 'b': 0, }, + { 'color': 'rosybrown', + 'r': 188, + 'g': 143, + 'b': 143, }, + { 'color': 'royalblue', + 'r': 65, + 'g': 105, + 'b': 225, }, + { 'color': 'saddlebrown', + 'r': 139, + 'g': 69, + 'b': 19, }, + { 'color': 'salmon', + 'r': 250, + 'g': 128, + 'b': 114, }, + { 'color': 'sandybrown', + 'r': 244, + 'g': 164, + 'b': 96, }, + { 'color': 'seagreen', + 'r': 46, + 'g': 139, + 'b': 87, }, + { 'color': 'seashell', + 'r': 255, + 'g': 245, + 'b': 238, }, + { 'color': 'sienna', + 'r': 160, + 'g': 82, + 'b': 45, }, + { 'color': 'silver', + 'r': 192, + 'g': 192, + 'b': 192, }, + { 'color': 'skyblue', + 'r': 135, + 'g': 206, + 'b': 235, }, + { 'color': 'slateblue', + 'r': 106, + 'g': 90, + 'b': 205, }, + { 'color': 'slategray', + 'r': 112, + 'g': 128, + 'b': 144, }, + { 'color': 'slategrey', + 'r': 112, + 'g': 128, + 'b': 144, }, + { 'color': 'snow', + 'r': 255, + 'g': 250, + 'b': 250, }, + { 'color': 'springgreen', + 'r': 0, + 'g': 255, + 'b': 127, }, + { 'color': 'steelblue', + 'r': 70, + 'g': 130, + 'b': 180, }, + { 'color': 'tan', + 'r': 210, + 'g': 180, + 'b': 140, }, + { 'color': 'teal', + 'r': 0, + 'g': 128, + 'b': 128, }, + { 'color': 'thistle', + 'r': 216, + 'g': 191, + 'b': 216, }, + { 'color': 'tomato', + 'r': 255, + 'g': 99, + 'b': 71, }, + { 'color': 'turquoise', + 'r': 64, + 'g': 224, + 'b': 208, }, + { 'color': 'violet', + 'r': 238, + 'g': 130, + 'b': 238, }, + { 'color': 'wheat', + 'r': 245, + 'g': 222, + 'b': 179, }, + { 'color': 'white', + 'r': 255, + 'g': 255, + 'b': 255, }, + { 'color': 'whitesmoke', + 'r': 245, + 'g': 245, + 'b': 245, }, + { 'color': 'yellow', + 'r': 255, + 'g': 255, + 'b': 0, }, + { 'color': 'yellowgreen', + 'r': 154, + 'g': 205, + 'g': 50, }, + { 'color': 'homeassistant', + 'r': 24, + 'b': 188, + 'g': 242, }, + ], +} -%} + {#- - This will return a CSV string that will convert to a list in the hs format - from the xy list provided. - Be sure to convert this to a list when you use it on the other end - because it arrives as a CSV string. - This converter uses other templates provided in this Custom Jinja Template. - Brightness is assumed to be 100% - - SAMPLE USAGE: - {% from 'color_multi_tool.jinja' import xy2hs %} - {% set _xy2hs = xy2hs(xyl).split(",") | list -%} - {{ [_xy2hs[0]|float|round(3),_xy2hs[1]|float|round(3)] }} - - REMEMBER: - Everything returned from a macro template is a string, so for - conventional usage of colors the result needs to be converted to a - list as shown in the example above. --#} -{#- First a test to make sure this is a list -#} -{%- if xyl is list -%} - {%- set _xy2rgb = xy2rgb(xyl).split(",") | list -%} - {%- set _xy2rgb_list = [_xy2rgb[0]|int(0),_xy2rgb[1]|int(0),_xy2rgb[2]|int(0)] -%} - {%- set _rgb2hs = rgb2hs(_xy2rgb_list).split(",") | list -%} - {%- set _rgb2hs_list = [_rgb2hs[0]|float(0)|round(3),_rgb2hs[1]|float(0)|round(3)] -%} -{#- Calculated output -#} - {%- set H = _rgb2hs_list[0] | float(0.0) | round(3) -%} - {%- set S = _rgb2hs_list[1] | float(0.0) | round(3) -%} -{%- else -%} - {#- Input was not a list -#} - {%- set H = 0.0 -%} - {%- set S = 0.0 -%} -{%- endif -%} -{{- H -}},{{- S -}} -{% endmacro %} - +TESTING CODE FOR DEVELOPER TAB TO TEST THIS CUSTOMK JINJA: - - - - - - - -{#- -Testing Code for developer console: {% from 'color_multi_tool.jinja' import random_name, random_xy, random_hs, random_rgb, name2rgb, rgb2xy, xy2rgb, hs2rgb, rgb2hs, xy2hs, hs2xy %} macro random name: {{ random_name() }} macro random xy list: {% set _rxy = random_xy().split(",") | list -%}