Skip to content

Commit 16a910b

Browse files
committed
Add arbitrary value support for vertical-align utilities
1 parent 6816ad6 commit 16a910b

File tree

3 files changed

+72
-26
lines changed

3 files changed

+72
-26
lines changed

src/corePlugins.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -1477,7 +1477,7 @@ export let textAlign = ({ addUtilities }) => {
14771477

14781478
export let textIndent = createUtilityPlugin('textIndent', [['indent', ['text-indent']]])
14791479

1480-
export let verticalAlign = ({ addUtilities }) => {
1480+
export let verticalAlign = ({ addUtilities, matchUtilities }) => {
14811481
addUtilities({
14821482
'.align-baseline': { 'vertical-align': 'baseline' },
14831483
'.align-top': { 'vertical-align': 'top' },
@@ -1488,6 +1488,15 @@ export let verticalAlign = ({ addUtilities }) => {
14881488
'.align-sub': { 'vertical-align': 'sub' },
14891489
'.align-super': { 'vertical-align': 'super' },
14901490
})
1491+
1492+
matchUtilities(
1493+
{
1494+
align: (value) => ({
1495+
'vertical-align': value,
1496+
}),
1497+
},
1498+
{ values: {}, type: 'any' }
1499+
)
14911500
}
14921501

14931502
export let fontFamily = createUtilityPlugin('fontFamily', [['font', ['fontFamily']]], {

tests/arbitrary-values.test.css

+3
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,9 @@
323323
.indent-\[var\(--indent\)\] {
324324
text-indent: var(--indent);
325325
}
326+
.align-\[10em\] {
327+
vertical-align: 10em;
328+
}
326329
.text-\[2\.23rem\] {
327330
font-size: 2.23rem;
328331
}

tests/arbitrary-values.test.html

+59-25
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
<div class="skew-x-[3px]"></div>
5757
<div class="skew-y-[3px]"></div>
5858
<div class="indent-[50%] indent-[var(--indent)]"></div>
59+
<div class="align-[10em]"></div>
5960
<div class="text-[2.23rem]"></div>
6061
<div class="text-[length:var(--font-size)]"></div>
6162
<div class="text-[color:var(--color)]"></div>
@@ -72,10 +73,20 @@
7273
<div class="mt-[clamp(30px,100px)]"></div>
7374
<div class="rounded-[11px]"></div>
7475
<div
75-
class="rounded-t-[var(--radius)] rounded-r-[var(--radius)] rounded-b-[var(--radius)] rounded-l-[var(--radius)]"
76+
class="
77+
rounded-t-[var(--radius)]
78+
rounded-r-[var(--radius)]
79+
rounded-b-[var(--radius)]
80+
rounded-l-[var(--radius)]
81+
"
7682
></div>
7783
<div
78-
class="rounded-tr-[var(--radius)] rounded-br-[var(--radius)] rounded-bl-[var(--radius)] rounded-tl-[var(--radius)]"
84+
class="
85+
rounded-tr-[var(--radius)]
86+
rounded-br-[var(--radius)]
87+
rounded-bl-[var(--radius)]
88+
rounded-tl-[var(--radius)]
89+
"
7990
></div>
8091
<div class="duration-[var(--app-duration)]"></div>
8192
<div class="p-[var(--app-padding)]"></div>
@@ -125,28 +136,51 @@
125136
<div class="accent-[var(--accent-color)]"></div>
126137

127138
<!-- Balancing issues, this is not checking the validity of the actual value, but purely syntax-wise -->
128-
<div class="w-[do-not-generate-this]w-[it-is-invalid-syntax]"></div><!-- INVALID -->
129-
<div class="grid-cols-[[linename],1fr,auto]"></div><!-- VALID -->
130-
<div class="w-[{}]"></div><!-- VALID -->
131-
<div class="w-[{{}}]"></div><!-- VALID -->
132-
<div class="w-[[]]"></div><!-- VALID -->
133-
<div class="w-[[[]]]"></div><!-- VALID -->
134-
<div class="w-[()]"></div><!-- VALID -->
135-
<div class="w-[(())]"></div><!-- VALID -->
136-
<div class="w-[][]"></div><!-- INVALID -->
137-
<div class="w-[)(]"></div><!-- INVALID -->
138-
<div class="w-[}{]"></div><!-- INVALID -->
139-
<div class="w-[][]]"></div><!-- INVALID -->
140-
<div class="w-[)()]"></div><!-- INVALID -->
141-
<div class="w-[}{}]"></div><!-- INVALID -->
142-
<div class="w-['][]']"></div><!-- VALID -->
143-
<div class="w-[')()']"></div><!-- VALID -->
144-
<div class="w-['}{}']"></div><!-- VALID -->
145-
<div class="w-[{[}]]"></div><!-- INVALID -->
146-
<div class="w-[[{]}]"></div><!-- INVALID -->
147-
<div class="w-[{(})]"></div><!-- INVALID -->
148-
<div class="w-[({)}]"></div><!-- INVALID -->
149-
<div class="w-[([)]]"></div><!-- INVALID -->
150-
<div class="w-[[(])]"></div><!-- INVALID -->
139+
<div class="w-[do-not-generate-this]w-[it-is-invalid-syntax]"></div>
140+
<!-- INVALID -->
141+
<div class="grid-cols-[[linename],1fr,auto]"></div>
142+
<!-- VALID -->
143+
<div class="w-[{}]"></div>
144+
<!-- VALID -->
145+
<div class="w-[{{}}]"></div>
146+
<!-- VALID -->
147+
<div class="w-[[]]"></div>
148+
<!-- VALID -->
149+
<div class="w-[[[]]]"></div>
150+
<!-- VALID -->
151+
<div class="w-[()]"></div>
152+
<!-- VALID -->
153+
<div class="w-[(())]"></div>
154+
<!-- VALID -->
155+
<div class="w-[][]"></div>
156+
<!-- INVALID -->
157+
<div class="w-[)(]"></div>
158+
<!-- INVALID -->
159+
<div class="w-[}{]"></div>
160+
<!-- INVALID -->
161+
<div class="w-[][]]"></div>
162+
<!-- INVALID -->
163+
<div class="w-[)()]"></div>
164+
<!-- INVALID -->
165+
<div class="w-[}{}]"></div>
166+
<!-- INVALID -->
167+
<div class="w-['][]']"></div>
168+
<!-- VALID -->
169+
<div class="w-[')()']"></div>
170+
<!-- VALID -->
171+
<div class="w-['}{}']"></div>
172+
<!-- VALID -->
173+
<div class="w-[{[}]]"></div>
174+
<!-- INVALID -->
175+
<div class="w-[[{]}]"></div>
176+
<!-- INVALID -->
177+
<div class="w-[{(})]"></div>
178+
<!-- INVALID -->
179+
<div class="w-[({)}]"></div>
180+
<!-- INVALID -->
181+
<div class="w-[([)]]"></div>
182+
<!-- INVALID -->
183+
<div class="w-[[(])]"></div>
184+
<!-- INVALID -->
151185
</body>
152186
</html>

0 commit comments

Comments
 (0)