Skip to content

Commit d22604a

Browse files
xiBreadadamwathan
andauthored
Add remaining text-decoration utilities (#6004)
* Add `text-decoration-style` utilities * Add remaining `text-decoration` utilities * Add test for default underline offset * Remove text-underline-position, don't rename underline utilities, remove DEFAULT values for decoration thickness and underline offset * Add auto/from-font values, update tests Co-authored-by: Adam Wathan <[email protected]>
1 parent 70853ba commit d22604a

6 files changed

+83
-2
lines changed

src/corePlugins.js

+27-2
Original file line numberDiff line numberDiff line change
@@ -1396,8 +1396,10 @@ export let corePlugins = {
13961396

13971397
boxDecorationBreak: ({ addUtilities }) => {
13981398
addUtilities({
1399-
'.decoration-slice': { 'box-decoration-break': 'slice' },
1400-
'.decoration-clone': { 'box-decoration-break': 'clone' },
1399+
'.decoration-slice': { 'box-decoration-break': 'slice' }, // Deprecated
1400+
'.decoration-clone': { 'box-decoration-break': 'clone' }, // Deprecated
1401+
'.box-decoration-slice': { 'box-decoration-break': 'slice' },
1402+
'.box-decoration-clone': { 'box-decoration-break': 'clone' },
14011403
})
14021404
},
14031405

@@ -1655,6 +1657,7 @@ export let corePlugins = {
16551657
textDecoration: ({ addUtilities }) => {
16561658
addUtilities({
16571659
'.underline': { 'text-decoration': 'underline' },
1660+
'.overline': { 'text-decoration': 'overline' },
16581661
'.line-through': { 'text-decoration': 'line-through' },
16591662
'.no-underline': { 'text-decoration': 'none' },
16601663
})
@@ -1671,6 +1674,28 @@ export let corePlugins = {
16711674
)
16721675
},
16731676

1677+
textDecorationStyle: ({ addUtilities }) => {
1678+
addUtilities({
1679+
'.decoration-solid': { 'text-decoration-style': 'solid' },
1680+
'.decoration-double': { 'text-decoration-style': 'double' },
1681+
'.decoration-dotted': { 'text-decoration-style': 'dotted' },
1682+
'.decoration-dashed': { 'text-decoration-style': 'dashed' },
1683+
'.decoration-wavy': { 'text-decoration-style': 'wavy' },
1684+
})
1685+
},
1686+
1687+
textDecorationThickness: createUtilityPlugin(
1688+
'textDecorationThickness',
1689+
[['decoration', ['text-decoration-thickness']]],
1690+
{ type: ['length', 'percentage'] }
1691+
),
1692+
1693+
textUnderlineOffset: createUtilityPlugin(
1694+
'textUnderlineOffset',
1695+
[['underline-offset', ['text-underline-offset']]],
1696+
{ type: ['length', 'percentage'] }
1697+
),
1698+
16741699
fontSmoothing: ({ addUtilities }) => {
16751700
addUtilities({
16761701
'.antialiased': {

stubs/defaultConfig.stub.js

+17
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,23 @@ module.exports = {
798798
},
799799
textColor: ({ theme }) => theme('colors'),
800800
textDecorationColor: ({ theme }) => theme('colors'),
801+
textDecorationThickness: {
802+
auto: 'auto',
803+
'from-font': 'from-font',
804+
0: '0px',
805+
1: '1px',
806+
2: '2px',
807+
4: '4px',
808+
8: '8px',
809+
},
810+
textUnderlineOffset: {
811+
auto: 'auto',
812+
0: '0px',
813+
1: '1px',
814+
2: '2px',
815+
4: '4px',
816+
8: '8px',
817+
},
801818
textIndent: ({ theme }) => ({
802819
...theme('spacing'),
803820
}),

tests/arbitrary-values.test.css

+6
Original file line numberDiff line numberDiff line change
@@ -825,6 +825,12 @@
825825
.decoration-\[var\(--color\)\] {
826826
text-decoration-color: var(--color);
827827
}
828+
.decoration-\[length\:10px\] {
829+
text-decoration-thickness: 10px;
830+
}
831+
.underline-offset-\[10px\] {
832+
text-underline-offset: 10px;
833+
}
828834
.placeholder-\[var\(--placeholder\)\]::placeholder {
829835
color: var(--placeholder);
830836
}

tests/arbitrary-values.test.html

+4
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,10 @@
305305
<div class="decoration-[color:var(--color)]"></div>
306306
<div class="decoration-[var(--color)]"></div>
307307

308+
<div class="decoration-[length:10px]"></div>
309+
310+
<div class="underline-offset-[10px]"></div>
311+
308312
<div class="placeholder-[var(--placeholder)]"></div>
309313

310314
<div class="placeholder-opacity-[var(--placeholder-opacity)]"></div>

tests/basic-usage.test.css

+21
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,12 @@
662662
.decoration-clone {
663663
box-decoration-break: clone;
664664
}
665+
.box-decoration-slice {
666+
box-decoration-break: slice;
667+
}
668+
.box-decoration-clone {
669+
box-decoration-break: clone;
670+
}
665671
.bg-cover {
666672
background-size: cover;
667673
}
@@ -799,6 +805,21 @@
799805
.decoration-red-600 {
800806
text-decoration-color: #dc2626;
801807
}
808+
.decoration-solid {
809+
text-decoration-style: solid;
810+
}
811+
.decoration-1 {
812+
text-decoration-thickness: 1px;
813+
}
814+
.decoration-2 {
815+
text-decoration-thickness: 2px;
816+
}
817+
.underline-offset-1 {
818+
text-underline-offset: 1px;
819+
}
820+
.underline-offset-2 {
821+
text-underline-offset: 2px;
822+
}
802823
.antialiased {
803824
-webkit-font-smoothing: antialiased;
804825
-moz-osx-font-smoothing: grayscale;

tests/basic-usage.test.html

+8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<div class="shadow shadow-md shadow-lg"></div>
3535
<div class="shadow-black shadow-red-500/25 shadow-blue-100/10"></div>
3636
<div class="decoration-clone decoration-slice"></div>
37+
<div class="box-decoration-clone box-decoration-slice"></div>
3738
<div class="box-border"></div>
3839
<div class="clear-left"></div>
3940
<div class="container"></div>
@@ -160,7 +161,14 @@
160161
<div class="text-indigo-500"></div>
161162
<div class="text-opacity-10"></div>
162163
<div class="underline"></div>
164+
<div class="decoration-underline"></div>
163165
<div class="decoration-red-600"></div>
166+
<div class="decoration-solid"></div>
167+
<div class="decoration-1"></div>
168+
<div class="decoration-2"></div>
169+
<div class="underline-offset-1"></div>
170+
<div class="underline-offset-2"></div>
171+
<div class="underline-right"></div>
164172
<div class="overflow-ellipsis truncate"></div>
165173
<div class="uppercase"></div>
166174
<div class="transform transform-gpu transform-none"></div>

0 commit comments

Comments
 (0)