File tree 2 files changed +64
-3
lines changed
2 files changed +64
-3
lines changed Original file line number Diff line number Diff line change 1
1
import plugin from 'tailwindcss/plugin'
2
2
import { normalize } from 'tailwindcss/lib/util/dataTypes'
3
3
4
- export = plugin ( function containerQueries ( { matchVariant, theme } ) {
4
+ export = plugin ( function containerQueries ( { matchUtilities , matchVariant, theme } ) {
5
5
let values : Record < string , string > = theme ( 'containers' ) ?? { }
6
6
7
7
function parseValue ( value : string ) : {
@@ -55,9 +55,28 @@ export = plugin(function containerQueries({ matchVariant, theme }) {
55
55
}
56
56
}
57
57
58
+ matchUtilities (
59
+ {
60
+ container : ( value , { modifier } ) => {
61
+ return {
62
+ 'container-type' : value ,
63
+ 'container-name' : modifier ,
64
+ }
65
+ } ,
66
+ } ,
67
+ {
68
+ values : {
69
+ DEFAULT : 'inline' ,
70
+ block : 'block' ,
71
+ inline : 'inline' ,
72
+ } ,
73
+ modifiers : true ,
74
+ }
75
+ )
76
+
58
77
matchVariant (
59
78
'@' ,
60
- ( { value = '' , modifier } ) => {
79
+ ( value = '' , { modifier } ) => {
61
80
let parsed = parseValue ( value )
62
81
63
82
return parsed !== null ? `@container ${ modifier ?? '' } ${ parsed . raw } ` : [ ]
Original file line number Diff line number Diff line change @@ -6,7 +6,9 @@ it('container queries', () => {
6
6
content : [
7
7
{
8
8
raw : html `
9
- <div>
9
+ <div
10
+ class= "container container-block container-inline container/sidebar container-block/sidebar container-inline/sidebar container-[block] container-[block]/sidebar"
11
+ >
10
12
<div class= "@md:underline" > </ div>
11
13
<div class= "@md/container1:underline" > </ div>
12
14
<div class= "@md/container2:underline" > </ div>
@@ -54,6 +56,46 @@ it('container queries', () => {
54
56
55
57
return run ( input , config ) . then ( ( result ) => {
56
58
expect ( result . css ) . toMatchFormattedCss ( css `
59
+ .block {
60
+ display : block;
61
+ }
62
+
63
+ .container {
64
+ container-type : inline;
65
+ }
66
+
67
+ .container-block {
68
+ container-type : block;
69
+ }
70
+
71
+ .container-inline {
72
+ container-type : inline;
73
+ }
74
+
75
+ .container\/sidebar {
76
+ container-type : inline;
77
+ container-name : sidebar;
78
+ }
79
+
80
+ .container-block\/sidebar {
81
+ container-type : block;
82
+ container-name : sidebar;
83
+ }
84
+
85
+ .container-inline\/sidebar {
86
+ container-type : inline;
87
+ container-name : sidebar;
88
+ }
89
+
90
+ .container-\[block \] {
91
+ container-type : block;
92
+ }
93
+
94
+ .container-\[block\]\/sidebar {
95
+ container-type : block;
96
+ container-name : sidebar;
97
+ }
98
+
57
99
@container (min-width : 280px ) and (max-width : 300px ) {
58
100
.\@\[\(min-width\:_280px\)_and_\(max-width\:_300px\)\]\:underline {
59
101
text-decoration-line : underline;
You can’t perform that action at this time.
0 commit comments