@@ -49,6 +49,14 @@ describe('preset-mini color utils', () => {
4949 colorMix : 'color-mix(in hsl, oklch(95% 0.10 var(--hue)), oklch(100% 0 360))' ,
5050 colorMixUnoAlpha : 'color-mix(in hsl, oklch(95% 0.10 var(--hue) / %alpha), oklch(100% 0 360))' ,
5151 colorMixDosAlpha : 'color-mix(in srgb, oklch(95% 0.10 var(--hue) / %alpha) 30%, oklch(100% 0 360 / %alpha))' ,
52+ brand : {
53+ 'dark-blue' : {
54+ 'DEFAULT' : '#123456' ,
55+ 'foo-bar' : {
56+ baz : '#fedcba' ,
57+ } ,
58+ } ,
59+ } ,
5260 } ,
5361 } ,
5462 symbols,
@@ -133,6 +141,26 @@ describe('preset-mini color utils', () => {
133141 prop : 'color-mix(in srgb, oklch(95% 0.10 var(--hue) / 0.2) 30%, oklch(100% 0 360 / 0.2))' ,
134142 } )
135143
144+ // nested color with dash in key name (with DEFAULT)
145+ expect ( fn ( 'brand-dark-blue' ) ) . eql ( {
146+ '--un-v-opacity' : 1 ,
147+ 'prop' : 'rgb(18 52 86 / var(--un-v-opacity))' ,
148+ } )
149+
150+ expect ( fn ( 'brand-dark-blue/50' ) ) . eql ( {
151+ prop : 'rgb(18 52 86 / 0.5)' ,
152+ } )
153+
154+ // deeply nested color with multiple dashed keys
155+ expect ( fn ( 'brand-dark-blue-foo-bar-baz' ) ) . eql ( {
156+ '--un-v-opacity' : 1 ,
157+ 'prop' : 'rgb(254 220 186 / var(--un-v-opacity))' ,
158+ } )
159+
160+ expect ( fn ( 'brand-dark-blue-foo-bar-baz/25' ) ) . eql ( {
161+ prop : 'rgb(254 220 186 / 0.25)' ,
162+ } )
163+
136164 // invalid
137165 expect ( fn ( 'hex-invalid' ) ) . eql ( { } )
138166 expect ( fn ( '5px' ) ) . eql ( undefined )
0 commit comments