@@ -50,9 +50,27 @@ export const ringRule: UtilityRule = (parsed, config) => {
5050 if ( parsed . utility === 'ring' ) {
5151 // Handle ring-inset
5252 if ( parsed . value === 'inset' ) {
53- return { '--tw -ring-inset' : 'inset' } as Record < string , string >
53+ return { '--hw -ring-inset' : 'inset' } as Record < string , string >
5454 }
5555
56+ // Check if this is a ring color (e.g., ring-sky-500)
57+ if ( parsed . value ) {
58+ const parts = parsed . value . split ( '-' )
59+ if ( parts . length >= 2 ) {
60+ const colorName = parts . slice ( 0 , - 1 ) . join ( '-' )
61+ const shade = parts [ parts . length - 1 ]
62+ const colorValue = config . theme . colors [ colorName ]
63+ if ( typeof colorValue === 'object' && colorValue [ shade ] ) {
64+ return { '--hw-ring-color' : colorValue [ shade ] } as Record < string , string >
65+ }
66+ // Also check if it's a direct color value (like custom colors)
67+ if ( config . theme . colors [ parsed . value ] ) {
68+ return { '--hw-ring-color' : config . theme . colors [ parsed . value ] } as Record < string , string >
69+ }
70+ }
71+ }
72+
73+ // Handle ring width
5674 const widths : Record < string , string > = {
5775 0 : '0' ,
5876 1 : '1px' ,
@@ -63,9 +81,9 @@ export const ringRule: UtilityRule = (parsed, config) => {
6381 }
6482 const width = parsed . value ? widths [ parsed . value ] || parsed . value : widths . DEFAULT
6583 return {
66- '--tw -ring-offset-shadow' : 'var(--tw -ring-inset) 0 0 0 var(--tw -ring-offset-width) var(--tw -ring-offset-color)' ,
67- '--tw -ring-shadow' : `var(--tw -ring-inset) 0 0 0 calc(${ width } + var(--tw -ring-offset-width)) var(--tw -ring-color)` ,
68- 'box-shadow' : 'var(--tw -ring-offset-shadow), var(--tw -ring-shadow), var(--tw -shadow, 0 0 #0000)' ,
84+ '--hw -ring-offset-shadow' : 'var(--hw -ring-inset) 0 0 0 var(--hw -ring-offset-width) var(--hw -ring-offset-color)' ,
85+ '--hw -ring-shadow' : `var(--hw -ring-inset) 0 0 0 calc(${ width } + var(--hw -ring-offset-width)) var(--hw -ring-color)` ,
86+ 'box-shadow' : 'var(--hw -ring-offset-shadow), var(--hw -ring-shadow), var(--hw -shadow, 0 0 #0000)' ,
6987 } as Record < string , string >
7088 }
7189
@@ -77,7 +95,7 @@ export const ringRule: UtilityRule = (parsed, config) => {
7795 4 : '4px' ,
7896 8 : '8px' ,
7997 }
80- return { '--tw -ring-offset-width' : widths [ parsed . value ] || parsed . value } as Record < string , string >
98+ return { '--hw -ring-offset-width' : widths [ parsed . value ] || parsed . value } as Record < string , string >
8199 }
82100
83101 if ( parsed . utility === 'ring-offset-color' || ( parsed . utility === 'ring-offset' && parsed . value ) ) {
@@ -90,7 +108,7 @@ export const ringRule: UtilityRule = (parsed, config) => {
90108 const shade = parts [ parts . length - 1 ]
91109 const colorValue = config . theme . colors [ colorName ]
92110 if ( typeof colorValue === 'object' && colorValue [ shade ] ) {
93- return { '--tw -ring-offset-color' : colorValue [ shade ] } as Record < string , string >
111+ return { '--hw -ring-offset-color' : colorValue [ shade ] } as Record < string , string >
94112 }
95113 }
96114 }
@@ -112,9 +130,9 @@ export const spaceRule: UtilityRule = (parsed, config) => {
112130
113131 return {
114132 properties : {
115- '--tw -space-x-reverse' : '0' ,
116- 'margin-right' : `calc(${ spacing } * var(--tw -space-x-reverse))` ,
117- 'margin-left' : `calc(${ spacing } * calc(1 - var(--tw -space-x-reverse)))` ,
133+ '--hw -space-x-reverse' : '0' ,
134+ 'margin-right' : `calc(${ spacing } * var(--hw -space-x-reverse))` ,
135+ 'margin-left' : `calc(${ spacing } * calc(1 - var(--hw -space-x-reverse)))` ,
118136 } as Record < string , string > ,
119137 childSelector : '> :not([hidden]) ~ :not([hidden])' ,
120138 }
@@ -133,9 +151,9 @@ export const spaceRule: UtilityRule = (parsed, config) => {
133151
134152 return {
135153 properties : {
136- '--tw -space-y-reverse' : '0' ,
137- 'margin-top' : `calc(${ spacing } * calc(1 - var(--tw -space-y-reverse)))` ,
138- 'margin-bottom' : `calc(${ spacing } * var(--tw -space-y-reverse))` ,
154+ '--hw -space-y-reverse' : '0' ,
155+ 'margin-top' : `calc(${ spacing } * calc(1 - var(--hw -space-y-reverse)))` ,
156+ 'margin-bottom' : `calc(${ spacing } * var(--hw -space-y-reverse))` ,
139157 } as Record < string , string > ,
140158 childSelector : '> :not([hidden]) ~ :not([hidden])' ,
141159 }
@@ -192,9 +210,9 @@ export const divideRule: UtilityRule = (parsed, config) => {
192210
193211 return {
194212 properties : {
195- '--tw -divide-x-reverse' : '0' ,
196- 'border-right-width' : `calc(${ width } * var(--tw -divide-x-reverse))` ,
197- 'border-left-width' : `calc(${ width } * calc(1 - var(--tw -divide-x-reverse)))` ,
213+ '--hw -divide-x-reverse' : '0' ,
214+ 'border-right-width' : `calc(${ width } * var(--hw -divide-x-reverse))` ,
215+ 'border-left-width' : `calc(${ width } * calc(1 - var(--hw -divide-x-reverse)))` ,
198216 } as Record < string , string > ,
199217 childSelector : '> :not([hidden]) ~ :not([hidden])' ,
200218 }
@@ -212,9 +230,9 @@ export const divideRule: UtilityRule = (parsed, config) => {
212230
213231 return {
214232 properties : {
215- '--tw -divide-y-reverse' : '0' ,
216- 'border-top-width' : `calc(${ width } * calc(1 - var(--tw -divide-y-reverse)))` ,
217- 'border-bottom-width' : `calc(${ width } * var(--tw -divide-y-reverse))` ,
233+ '--hw -divide-y-reverse' : '0' ,
234+ 'border-top-width' : `calc(${ width } * calc(1 - var(--hw -divide-y-reverse)))` ,
235+ 'border-bottom-width' : `calc(${ width } * var(--hw -divide-y-reverse))` ,
218236 } as Record < string , string > ,
219237 childSelector : '> :not([hidden]) ~ :not([hidden])' ,
220238 }
@@ -257,24 +275,24 @@ export const gradientStopsRule: UtilityRule = (parsed, config) => {
257275 if ( parsed . utility === 'from' && parsed . value ) {
258276 const color = getColor ( parsed . value )
259277 return {
260- '--tw -gradient-from' : color ,
261- '--tw -gradient-to' : 'rgb(255 255 255 / 0)' ,
262- '--tw -gradient-stops' : 'var(--tw -gradient-from), var(--tw -gradient-to)' ,
278+ '--hw -gradient-from' : color ,
279+ '--hw -gradient-to' : 'rgb(255 255 255 / 0)' ,
280+ '--hw -gradient-stops' : 'var(--hw -gradient-from), var(--hw -gradient-to)' ,
263281 } as Record < string , string >
264282 }
265283
266284 if ( parsed . utility === 'via' && parsed . value ) {
267285 const color = getColor ( parsed . value )
268286 return {
269- '--tw -gradient-to' : 'rgb(255 255 255 / 0)' ,
270- '--tw -gradient-stops' : `var(--tw -gradient-from), ${ color } , var(--tw -gradient-to)` ,
287+ '--hw -gradient-to' : 'rgb(255 255 255 / 0)' ,
288+ '--hw -gradient-stops' : `var(--hw -gradient-from), ${ color } , var(--hw -gradient-to)` ,
271289 } as Record < string , string >
272290 }
273291
274292 if ( parsed . utility === 'to' && parsed . value ) {
275293 const color = getColor ( parsed . value )
276294 return {
277- '--tw -gradient-to' : color ,
295+ '--hw -gradient-to' : color ,
278296 } as Record < string , string >
279297 }
280298}
0 commit comments