@@ -92,46 +92,33 @@ describe('style/Colors', () => {
9292 } ) ;
9393
9494 it ( 'should handle color that does not exist in `uilib`' , ( ) => {
95- expect ( uut . getColorTint ( '#F1BE0B' , 10 ) ) . toEqual ( '#8D7006 ' ) ; //
96- expect ( uut . getColorTint ( '#F1BE0B' , 20 ) ) . toEqual ( '#BE9609 ' ) ; //
97- expect ( uut . getColorTint ( '#F1BE0B' , 30 ) ) . toEqual ( '#F1BE0B' ) ; //
98- expect ( uut . getColorTint ( '#F1BE0B' , 40 ) ) . toEqual ( '#F6CC37 ' ) ; //
99- expect ( uut . getColorTint ( '#F1BE0B' , 50 ) ) . toEqual ( '#F8D868 ' ) ; //
100- expect ( uut . getColorTint ( '#F1BE0B' , 60 ) ) . toEqual ( '#FAE599 ' ) ; //
101- expect ( uut . getColorTint ( '#F1BE0B' , 70 ) ) . toEqual ( '#FDF1C9 ' ) ; //
102- expect ( uut . getColorTint ( '#F1BE0B' , 80 ) ) . toEqual ( '#FFFEFA ' ) ; //
95+ expect ( uut . getColorTint ( '#F1BE0B' , 10 ) ) . toEqual ( '#7D6716 ' ) ;
96+ expect ( uut . getColorTint ( '#F1BE0B' , 20 ) ) . toEqual ( '#B49013 ' ) ;
97+ expect ( uut . getColorTint ( '#F1BE0B' , 30 ) ) . toEqual ( '#F1BE0B' ) ;
98+ expect ( uut . getColorTint ( '#F1BE0B' , 40 ) ) . toEqual ( '#EBC642 ' ) ;
99+ expect ( uut . getColorTint ( '#F1BE0B' , 50 ) ) . toEqual ( '#E7CF79 ' ) ;
100+ expect ( uut . getColorTint ( '#F1BE0B' , 60 ) ) . toEqual ( '#E9DBAA ' ) ;
101+ expect ( uut . getColorTint ( '#F1BE0B' , 70 ) ) . toEqual ( '#F1EBD5 ' ) ;
102+ expect ( uut . getColorTint ( '#F1BE0B' , 80 ) ) . toEqual ( '#FEFDFB ' ) ;
103103 } ) ;
104104
105105 it ( 'should round down tint level to the nearest one' , ( ) => {
106- expect ( uut . getColorTint ( '#F1BE0B' , 75 ) ) . toEqual ( '#FDF1C9 ' ) ;
107- expect ( uut . getColorTint ( '#F1BE0B' , 25 ) ) . toEqual ( '#BE9609 ' ) ;
106+ expect ( uut . getColorTint ( '#F1BE0B' , 75 ) ) . toEqual ( '#F1EBD5 ' ) ;
107+ expect ( uut . getColorTint ( '#F1BE0B' , 25 ) ) . toEqual ( '#B49013 ' ) ;
108108 expect ( uut . getColorTint ( '#F1BE0B' , 35 ) ) . toEqual ( '#F1BE0B' ) ;
109109 } ) ;
110110
111111 it ( 'should handle out of range tint levels and round them to the nearest one in range' , ( ) => {
112- expect ( uut . getColorTint ( '#F1BE0B' , 3 ) ) . toEqual ( '#8D7006 ' ) ;
113- expect ( uut . getColorTint ( '#F1BE0B' , 95 ) ) . toEqual ( '#FFFEFA ' ) ;
112+ expect ( uut . getColorTint ( '#F1BE0B' , 3 ) ) . toEqual ( '#7D6716 ' ) ;
113+ expect ( uut . getColorTint ( '#F1BE0B' , 95 ) ) . toEqual ( '#FEFDFB ' ) ;
114114 } ) ;
115115 } ) ;
116116
117117 describe ( 'generateColorPalette' , ( ) => {
118118 const baseColor = '#3F88C5' ;
119- const tints = [ '#193852 ' , '#255379 ' , '#316EA1 ' , '#3F88C5' , '#66A0D1 ' , '#8DB9DD ' , '#B5D1E9 ' , '#DCE9F4 ' ] ;
119+ const tints = [ '#233748 ' , '#2F526F ' , '#376E9B ' , '#3F88C5' , '#6CA0CB ' , '#97B8D3 ' , '#BED0E0 ' , '#E1E9EF ' ] ;
120120 const baseColorLight = '#DCE9F4' ;
121121 const tintsLight = [ '#1A3851' , '#265278' , '#326D9F' , '#4187C3' , '#68A0CF' , '#8EB8DC' , '#B5D1E8' , '#DCE9F4' ] ;
122- const saturationLevels = [ - 10 , - 10 , - 20 , - 20 , - 25 , - 25 , - 25 , - 25 , - 20 , - 10 ] ;
123- const tintsSaturationLevels = [
124- '#1E384D' ,
125- '#2D5271' ,
126- '#466C8C' ,
127- '#3F88C5' ,
128- '#7F9EB8' ,
129- '#A0B7CB' ,
130- '#C1D0DD' ,
131- '#E2E9EE'
132- ] ;
133- // const tintsSaturationLevelsDarkest = ['#162837', '#223F58', '#385770', '#486E90', '#3F88C5', '#7C9CB6', '#9AB2C6', '#B7C9D7', '#D3DFE9', '#F0F5F9'];
134- // const tintsAddDarkestTints = ['#12283B', '#1C405E', '#275881', '#3270A5', '#3F88C5', '#629ED0', '#86B4DA', '#A9CAE5', '#CCDFF0', '#EFF5FA'];
135122
136123 it ( 'should memoize calls for generateColorPalette' , ( ) => {
137124 uut . getColorTint ( baseColor , 20 ) ;
@@ -163,21 +150,6 @@ describe('style/Colors', () => {
163150 expect ( palette ) . toEqual ( tintsLight ) ;
164151 } ) ;
165152
166- it ( 'should generateColorPalette with adjustSaturation option true and saturationLevels 8 array' , ( ) => {
167- const palette = uut . generateColorPalette ( baseColor , { adjustSaturation : true , saturationLevels} ) ;
168- expect ( palette . length ) . toBe ( 8 ) ;
169- expect ( palette ) . toContain ( baseColor ) ; // adjusting baseColor tint as well
170- expect ( palette ) . toEqual ( tintsSaturationLevels ) ;
171- } ) ;
172-
173- // it('should generateColorPalette with adjustSaturation option true and saturationLevels 10 array and addDarkestTints true', () => {
174- // const options = {adjustSaturation: true, saturationLevels, addDarkestTints: true};
175- // const palette = uut.generateColorPalette(baseColor, options);
176- // expect(palette.length).toBe(10);
177- // expect(palette).toContain(baseColor); // adjusting baseColor tint as well
178- // expect(palette).toEqual(tintsSaturationLevelsDarkest);
179- // });
180-
181153 it ( 'should generateColorPalette with avoidReverseOnDark option false not reverse on light mode (default)' , ( ) => {
182154 const palette = uut . generateColorPalette ( baseColor , { avoidReverseOnDark : false } ) ;
183155 expect ( palette . length ) . toBe ( 8 ) ;
@@ -199,12 +171,36 @@ describe('style/Colors', () => {
199171 expect ( palette ) . toEqual ( tints ) ;
200172 } ) ;
201173
202- // it('should generateColorPalette with addDarkestTints option true return 10 tints with 9 lightness increment', () => {
203- // const palette = uut.generateColorPalette(baseColor, {addDarkestTints: true});
204- // expect(palette.length).toBe(10);
205- // expect(palette).toContain(baseColor);
206- // expect(palette).toEqual(tintsAddDarkestTints);
207- // });
174+ it ( 'should generateColorPalette with addDarkestTints option true return 10 tints with saturation curve' , ( ) => {
175+ const palette = uut . generateColorPalette ( baseColor , { addDarkestTints : true } ) ;
176+ const expected = [ '#1B2732' , '#283F52' , '#325776' , '#38709F' , '#3F88C5' , '#689DCA' , '#90B3D0' , '#B3C9DB' , '#D4DFE8' , '#F2F5F7' ] ;
177+ expect ( palette . length ) . toBe ( 10 ) ;
178+ expect ( palette ) . toContain ( baseColor ) ;
179+ expect ( palette ) . toEqual ( expected ) ;
180+ } ) ;
181+
182+ it ( 'should not apply saturation curve when base color saturation is below threshold' , ( ) => {
183+ const lowSatColor = '#7A8A8A' ;
184+ const rawPalette = [ '#323939' , '#4A5454' , '#626F6F' , '#7A8A8A' , '#95A2A2' , '#B0BABA' , '#CBD2D2' , '#E7EAEA' ] ;
185+ const palette = uut . generateColorPalette ( lowSatColor ) ;
186+ expect ( palette ) . toEqual ( rawPalette ) ;
187+ } ) ;
188+
189+ it ( 'should not apply curve when adjustSaturation is false' , ( ) => {
190+ const rawPalette = [ '#193852' , '#255379' , '#316EA1' , '#3F88C5' , '#66A0D1' , '#8DB9DD' , '#B5D1E9' , '#DCE9F4' ] ;
191+ const palette = uut . generateColorPalette ( baseColor , { adjustSaturation : false } ) ;
192+ expect ( palette ) . toEqual ( rawPalette ) ;
193+ } ) ;
194+
195+ it ( 'should apply legacy saturationLevels when provided' , ( ) => {
196+ const saturationLevels = [ - 10 , - 10 , - 20 , - 20 , - 25 , - 25 , - 25 , - 25 ] ;
197+ const expected = [ '#1E384D' , '#2D5271' , '#466C8C' , '#3F88C5' , '#7F9EB8' , '#A0B7CB' , '#C1D0DD' , '#E2E9EE' ] ;
198+ const palette = uut . generateColorPalette ( baseColor , { adjustSaturation : true , saturationLevels} ) ;
199+ expect ( palette . length ) . toBe ( 8 ) ;
200+ expect ( palette ) . toContain ( baseColor ) ;
201+ expect ( palette ) . toEqual ( expected ) ;
202+ } ) ;
203+
208204 } ) ;
209205
210206 describe ( 'generateDesignTokens' , ( ) => {
0 commit comments