1 | #!/usr/bin/env node
|
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 | "use strict" ;
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 | const termkit = require( '..' ) ;
|
37 | const term = termkit.terminal ;
|
38 |
|
39 |
|
40 | const colors = {
|
41 |
|
42 | red: 'e10718' ,
|
43 | rry: 'ed420e' ,
|
44 | ry: 'fa8116' ,
|
45 | yyr: 'fea918' ,
|
46 |
|
47 |
|
48 | yellow: 'fdca19' ,
|
49 | yyg: 'ffe919' ,
|
50 | yg: 'cfde3d' ,
|
51 | ggy: '7ebd3a' ,
|
52 |
|
53 |
|
54 | green: '009c5f' ,
|
55 | ggb: '008b78' ,
|
56 | gb: '00748b' ,
|
57 | bbg: '015a9c' ,
|
58 |
|
59 |
|
60 | blue: '4548a5' ,
|
61 | bbr: '512d85' ,
|
62 | br: '7b1760' ,
|
63 | rrb: 'a81e51' ,
|
64 | } ;
|
65 |
|
66 |
|
67 |
|
68 | var i , r , g , b ;
|
69 |
|
70 |
|
71 | term.bold( '\n=== Hering colors 24 bits ===\n\n' ) ;
|
72 |
|
73 | Object.keys( colors ).forEach( color => {
|
74 | term.bgColorRgbHex( colors[ color ] , ' ' ) ;
|
75 | } ) ;
|
76 |
|
77 | term.styleReset( '\n' ) ;
|
78 |
|
79 |
|
80 |
|
81 | term.bold( '\n=== Hering colors 256 colors ===\n\n' ) ;
|
82 |
|
83 | Object.keys( colors ).forEach( color => {
|
84 | var rgba = termkit.hexToRgba( colors[ color ] ) ;
|
85 |
|
86 |
|
87 | var r = Math.floor( rgba.r * 6 / 256 + 2 * Number.EPSILON ) ;
|
88 | var g = Math.floor( rgba.g * 6 / 256 + 2 * Number.EPSILON ) ;
|
89 | var b = Math.floor( rgba.b * 6 / 256 + 2 * Number.EPSILON ) ;
|
90 | var c = Math.floor( 16 + r * 36 + g * 6 + b ) ;
|
91 |
|
92 | term.bgColor256( c , ' ' ) ;
|
93 | } ) ;
|
94 |
|
95 | term.styleReset( '\n' ) ;
|
96 |
|
97 |
|
98 |
|
99 | term.bold( '\n=== 256 RGB matching, 24 bits, 256 HSL matching ===\n\n' ) ;
|
100 |
|
101 |
|
102 | Object.keys( colors ).forEach( color => {
|
103 | var rgba = termkit.hexToRgba( colors[ color ] ) ;
|
104 |
|
105 |
|
106 | var r = Math.floor( rgba.r * 6 / 256 + 2 * Number.EPSILON ) ;
|
107 | var g = Math.floor( rgba.g * 6 / 256 + 2 * Number.EPSILON ) ;
|
108 | var b = Math.floor( rgba.b * 6 / 256 + 2 * Number.EPSILON ) ;
|
109 | var c = Math.floor( 16 + r * 36 + g * 6 + b ) ;
|
110 |
|
111 | term.bgColor256( c , ' ' ) ;
|
112 | } ) ;
|
113 |
|
114 | term.styleReset( '\n' ) ;
|
115 |
|
116 | Object.keys( colors ).forEach( color => {
|
117 | term.bgColorRgbHex( colors[ color ] , ' ' ) ;
|
118 | } ) ;
|
119 |
|
120 | term.styleReset( '\n' ) ;
|
121 |
|
122 |
|
123 | Object.keys( colors ).forEach( color => {
|
124 | var rgba = termkit.hexToRgba( colors[ color ] ) ;
|
125 | var c = term.registerForRgb( rgba , 16 , 255 , 1 ) ;
|
126 | term.bgColor256( c , ' ' ) ;
|
127 | } ) ;
|
128 |
|
129 | term.styleReset( '\n' ) ;
|
130 |
|
131 |
|
132 |
|
133 | const colors256 = {
|
134 | ry: {r:5,g:2,b:0} ,
|
135 | green: {r:1,g:4,b:1} ,
|
136 | blue: {r:0,g:1,b:4} ,
|
137 |
|
138 | gb: {r:0,g:3,b:3} ,
|
139 | } ;
|
140 |
|
141 | term.bold( '\n=== RGB 0..5 ===\n\n' ) ;
|
142 |
|
143 | Object.keys( colors ).forEach( color => {
|
144 | var rgba = termkit.hexToRgba( colors[ color ] ) ;
|
145 |
|
146 |
|
147 | var rFloat = rgba.r * 6 / 256 ;
|
148 | var gFloat = rgba.g * 6 / 256 ;
|
149 | var bFloat = rgba.b * 6 / 256 ;
|
150 | var r = Math.floor( rgba.r * 6 / 256 + 2 * Number.EPSILON ) ;
|
151 | var g = Math.floor( rgba.g * 6 / 256 + 2 * Number.EPSILON ) ;
|
152 | var b = Math.floor( rgba.b * 6 / 256 + 2 * Number.EPSILON ) ;
|
153 | var c = Math.floor( 16 + r * 36 + g * 6 + b ) ;
|
154 | term.bgColor256( c , ' ' ) ;
|
155 | term.bgColorRgbHex( colors[ color ] , ' ' ) ;
|
156 |
|
157 | if ( colors256[ color ] ) {
|
158 | var c2 = Math.floor( 16 + colors256[ color ].r * 36 + colors256[ color ].g * 6 + colors256[ color ].b ) ;
|
159 | term.bgColor256( c2 , ' ' ) ;
|
160 | term( " %s: %f %f %f -> %f %f %f" , color , r , g , b , colors256[ color ].r , colors256[ color ].g , colors256[ color ].b ) ;
|
161 | }
|
162 | else {
|
163 | term.bgColor256( c , ' ' ) ;
|
164 | term( " %s: %f %f %f" , color , r , g , b ) ;
|
165 | }
|
166 |
|
167 | term.column( 35 , "(%f %f %f)" , rFloat , gFloat , bFloat ) ;
|
168 |
|
169 | term ( '\n' ) ;
|
170 | } ) ;
|
171 |
|
172 | term.styleReset( '\n' ) ;
|
173 |
|
174 |
|
175 |
|
176 | term.styleReset( '\n' ) ;
|
177 | term( 'Reset...\n' ) ;
|
178 |
|