@@ -828,3 +828,205 @@ it('works with opacity values defined as a placeholder or a function in when col
828828 ` )
829829 } )
830830} )
831+
832+ it ( 'The disableColorOpacityUtilitiesByDefault flag disables the color opacity plugins and removes their variables' , ( ) => {
833+ let config = {
834+ future : {
835+ disableColorOpacityUtilitiesByDefault : true ,
836+ } ,
837+ content : [
838+ {
839+ raw : html `
840+ <div
841+ class= "divide-blue-300 border-blue-300 bg-blue-300 text-blue-300 placeholder-blue-300 ring-blue-300"
842+ > </ div>
843+ <div
844+ class= "divide-blue-300/50 border-blue-300/50 bg-blue-300/50 text-blue-300/50 placeholder-blue-300/50 ring-blue-300/50"
845+ > </ div>
846+ <div
847+ class= "divide-blue-300/[var(--my-opacity)] border-blue-300/[var(--my-opacity)] bg-blue-300/[var(--my-opacity)] text-blue-300/[var(--my-opacity)] placeholder-blue-300/[var(--my-opacity)] ring-blue-300/[var(--my-opacity)]"
848+ > </ div>
849+ <div
850+ class= "divide-opacity-50 border-opacity-50 bg-opacity-50 text-opacity-50 placeholder-opacity-50 ring-opacity-50"
851+ > </ div>
852+ ` ,
853+ } ,
854+ ] ,
855+ }
856+
857+ return run ( '@tailwind utilities' , config ) . then ( ( result ) => {
858+ expect ( result . css ) . toMatchCss ( css `
859+ .divide-blue-300 > : not ([hidden ]) ~ : not ([hidden ]) {
860+ border-color : # 93c5fd ;
861+ }
862+ .divide-blue-300\/50 > : not ([hidden ]) ~ : not ([hidden ]) {
863+ border-color : rgb (147 197 253 / 0.5 );
864+ }
865+ .divide-blue-300\/\[var\(--my-opacity \)\] > : not ([hidden ]) ~ : not ([hidden ]) {
866+ border-color : rgb (147 197 253 / var (--my-opacity ));
867+ }
868+ .border-blue-300 {
869+ border-color : # 93c5fd ;
870+ }
871+ .border-blue-300\/50 {
872+ border-color : rgb (147 197 253 / 0.5 );
873+ }
874+ .border-blue-300\/\[var\(--my-opacity \)\] {
875+ border-color : rgb (147 197 253 / var (--my-opacity ));
876+ }
877+ .bg-blue-300 {
878+ background-color : # 93c5fd ;
879+ }
880+ .bg-blue-300\/50 {
881+ background-color : rgb (147 197 253 / 0.5 );
882+ }
883+ .bg-blue-300\/\[var\(--my-opacity \)\] {
884+ background-color : rgb (147 197 253 / var (--my-opacity ));
885+ }
886+ .text-blue-300 {
887+ color : # 93c5fd ;
888+ }
889+ .text-blue-300\/50 {
890+ color : rgb (147 197 253 / 0.5 );
891+ }
892+ .text-blue-300\/\[var\(--my-opacity \)\] {
893+ color : rgb (147 197 253 / var (--my-opacity ));
894+ }
895+ .placeholder-blue-300 ::placeholder {
896+ color : # 93c5fd ;
897+ }
898+ .placeholder-blue-300\/50 ::placeholder {
899+ color : rgb (147 197 253 / 0.5 );
900+ }
901+ .placeholder-blue-300\/\[var\(--my-opacity \)\]::placeholder {
902+ color : rgb (147 197 253 / var (--my-opacity ));
903+ }
904+ .ring-blue-300 {
905+ --tw-ring-color : # 93c5fd ;
906+ }
907+ .ring-blue-300\/50 {
908+ --tw-ring-color : rgb (147 197 253 / 0.5 );
909+ }
910+ .ring-blue-300\/\[var\(--my-opacity \)\] {
911+ --tw-ring-color : rgb (147 197 253 / var (--my-opacity ));
912+ }
913+ ` )
914+ } )
915+ } )
916+
917+ it ( 'You can re-enable any opacity plugin even when disableColorOpacityUtilitiesByDefault is enabled' , ( ) => {
918+ let config = {
919+ future : {
920+ disableColorOpacityUtilitiesByDefault : true ,
921+ } ,
922+ corePlugins : {
923+ backgroundOpacity : true ,
924+ borderOpacity : true ,
925+ divideOpacity : true ,
926+ placeholderOpacity : true ,
927+ ringOpacity : true ,
928+ textOpacity : true ,
929+ } ,
930+ content : [
931+ {
932+ raw : html `
933+ <div
934+ class= "divide-blue-300 border-blue-300 bg-blue-300 text-blue-300 placeholder-blue-300 ring-blue-300"
935+ > </ div>
936+ <div
937+ class= "divide-blue-300/50 border-blue-300/50 bg-blue-300/50 text-blue-300/50 placeholder-blue-300/50 ring-blue-300/50"
938+ > </ div>
939+ <div
940+ class= "divide-blue-300/[var(--my-opacity)] border-blue-300/[var(--my-opacity)] bg-blue-300/[var(--my-opacity)] text-blue-300/[var(--my-opacity)] placeholder-blue-300/[var(--my-opacity)] ring-blue-300/[var(--my-opacity)]"
941+ > </ div>
942+ <div
943+ class= "divide-opacity-50 border-opacity-50 bg-opacity-50 text-opacity-50 placeholder-opacity-50 ring-opacity-50"
944+ > </ div>
945+ ` ,
946+ } ,
947+ ] ,
948+ }
949+
950+ return run ( '@tailwind utilities' , config ) . then ( ( result ) => {
951+ expect ( result . css ) . toMatchCss ( css `
952+ .divide-blue-300 > : not ([hidden ]) ~ : not ([hidden ]) {
953+ --tw-divide-opacity : 1 ;
954+ border-color : rgb (147 197 253 / var (--tw-divide-opacity ));
955+ }
956+ .divide-blue-300\/50 > : not ([hidden ]) ~ : not ([hidden ]) {
957+ border-color : rgb (147 197 253 / 0.5 );
958+ }
959+ .divide-blue-300\/\[var\(--my-opacity \)\] > : not ([hidden ]) ~ : not ([hidden ]) {
960+ border-color : rgb (147 197 253 / var (--my-opacity ));
961+ }
962+ .divide-opacity-50 > : not ([hidden ]) ~ : not ([hidden ]) {
963+ --tw-divide-opacity : 0.5 ;
964+ }
965+ .border-blue-300 {
966+ --tw-border-opacity : 1 ;
967+ border-color : rgb (147 197 253 / var (--tw-border-opacity ));
968+ }
969+ .border-blue-300\/50 {
970+ border-color : rgb (147 197 253 / 0.5 );
971+ }
972+ .border-blue-300\/\[var\(--my-opacity \)\] {
973+ border-color : rgb (147 197 253 / var (--my-opacity ));
974+ }
975+ .border-opacity-50 {
976+ --tw-border-opacity : 0.5 ;
977+ }
978+ .bg-blue-300 {
979+ --tw-bg-opacity : 1 ;
980+ background-color : rgb (147 197 253 / var (--tw-bg-opacity ));
981+ }
982+ .bg-blue-300\/50 {
983+ background-color : rgb (147 197 253 / 0.5 );
984+ }
985+ .bg-blue-300\/\[var\(--my-opacity \)\] {
986+ background-color : rgb (147 197 253 / var (--my-opacity ));
987+ }
988+ .bg-opacity-50 {
989+ --tw-bg-opacity : 0.5 ;
990+ }
991+ .text-blue-300 {
992+ --tw-text-opacity : 1 ;
993+ color : rgb (147 197 253 / var (--tw-text-opacity ));
994+ }
995+ .text-blue-300\/50 {
996+ color : rgb (147 197 253 / 0.5 );
997+ }
998+ .text-blue-300\/\[var\(--my-opacity \)\] {
999+ color : rgb (147 197 253 / var (--my-opacity ));
1000+ }
1001+ .text-opacity-50 {
1002+ --tw-text-opacity : 0.5 ;
1003+ }
1004+ .placeholder-blue-300 ::placeholder {
1005+ --tw-placeholder-opacity : 1 ;
1006+ color : rgb (147 197 253 / var (--tw-placeholder-opacity ));
1007+ }
1008+ .placeholder-blue-300\/50 ::placeholder {
1009+ color : rgb (147 197 253 / 0.5 );
1010+ }
1011+ .placeholder-blue-300\/\[var\(--my-opacity \)\]::placeholder {
1012+ color : rgb (147 197 253 / var (--my-opacity ));
1013+ }
1014+ .placeholder-opacity-50 ::placeholder {
1015+ --tw-placeholder-opacity : 0.5 ;
1016+ }
1017+ .ring-blue-300 {
1018+ --tw-ring-opacity : 1 ;
1019+ --tw-ring-color : rgb (147 197 253 / var (--tw-ring-opacity ));
1020+ }
1021+ .ring-blue-300\/50 {
1022+ --tw-ring-color : rgb (147 197 253 / 0.5 );
1023+ }
1024+ .ring-blue-300\/\[var\(--my-opacity \)\] {
1025+ --tw-ring-color : rgb (147 197 253 / var (--my-opacity ));
1026+ }
1027+ .ring-opacity-50 {
1028+ --tw-ring-opacity : 0.5 ;
1029+ }
1030+ ` )
1031+ } )
1032+ } )
0 commit comments