Skip to content

Commit e7895a7

Browse files
Merge pull request #1 from MichaelAllenWarner/decoration-utilities
Add `text-decoration-color` utilities (including opacity utilities)
2 parents 0e0d712 + 4af9015 commit e7895a7

6 files changed

+71
-1
lines changed

src/corePlugins.js

+25
Original file line numberDiff line numberDiff line change
@@ -1801,6 +1801,31 @@ export let corePlugins = {
18011801
})
18021802
},
18031803

1804+
textDecorationColor: ({ matchUtilities, theme, corePlugins }) => {
1805+
matchUtilities(
1806+
{
1807+
decoration: (value) => {
1808+
if (!corePlugins('textDecorationOpacity')) {
1809+
return {
1810+
'text-decoration-color': toColorValue(value),
1811+
}
1812+
}
1813+
1814+
return withAlphaVariable({
1815+
color: value,
1816+
property: 'text-decoration-color',
1817+
variable: '--tw-decoration-opacity',
1818+
})
1819+
},
1820+
},
1821+
{ values: flattenColorPalette(theme('backgroundColor')), type: 'color' }
1822+
)
1823+
},
1824+
1825+
textDecorationOpacity: createUtilityPlugin('textDecorationOpacity', [
1826+
['decoration-opacity', ['--tw-decoration-opacity']],
1827+
]),
1828+
18041829
fontSmoothing: ({ addUtilities }) => {
18051830
addUtilities({
18061831
'.antialiased': {

stubs/defaultConfig.stub.js

+2
Original file line numberDiff line numberDiff line change
@@ -787,6 +787,8 @@ module.exports = {
787787
2: '2',
788788
},
789789
textColor: ({ theme }) => theme('colors'),
790+
textDecorationColor: ({ theme }) => theme('colors'),
791+
textDecorationOpacity: ({ theme }) => theme('opacity'),
790792
textIndent: ({ theme }) => ({
791793
...theme('spacing'),
792794
}),

tests/arbitrary-values.test.css

+25
Original file line numberDiff line numberDiff line change
@@ -807,6 +807,31 @@
807807
.text-opacity-\[var\(--value\)\] {
808808
--tw-text-opacity: var(--value);
809809
}
810+
.decoration-\[black\] {
811+
--tw-decoration-opacity: 1;
812+
text-decoration-color: rgb(0 0 0 / var(--tw-decoration-opacity));
813+
}
814+
.decoration-\[rgb\(123\2c 123\2c 123\)\] {
815+
--tw-decoration-opacity: 1;
816+
text-decoration-color: rgb(123 123 123 / var(--tw-decoration-opacity));
817+
}
818+
.decoration-\[rgb\(123\2c _123\2c _123\)\] {
819+
--tw-decoration-opacity: 1;
820+
text-decoration-color: rgb(123 123 123 / var(--tw-decoration-opacity));
821+
}
822+
.decoration-\[rgb\(123_123_123\)\] {
823+
--tw-decoration-opacity: 1;
824+
text-decoration-color: rgb(123 123 123 / var(--tw-decoration-opacity));
825+
}
826+
.decoration-\[color\:var\(--color\)\] {
827+
text-decoration-color: var(--color);
828+
}
829+
.decoration-opacity-\[0\.8\] {
830+
--tw-decoration-opacity: 0.8;
831+
}
832+
.decoration-opacity-\[var\(--value\)\] {
833+
--tw-decoration-opacity: var(--value);
834+
}
810835
.placeholder-\[var\(--placeholder\)\]::placeholder {
811836
color: var(--placeholder);
812837
}

tests/arbitrary-values.test.html

+9
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,15 @@
297297
<div class="text-opacity-[0.8]"></div>
298298
<div class="text-opacity-[var(--value)]"></div>
299299

300+
<div class="decoration-[black]"></div>
301+
<div class="decoration-[rgb(123,123,123)]"></div>
302+
<div class="decoration-[rgb(123,_123,_123)]"></div>
303+
<div class="decoration-[rgb(123_123_123)]"></div>
304+
<div class="decoration-[color:var(--color)]"></div>
305+
306+
<div class="decoration-opacity-[0.8]"></div>
307+
<div class="decoration-opacity-[var(--value)]"></div>
308+
300309
<div class="placeholder-[var(--placeholder)]"></div>
301310

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

tests/basic-usage.test.css

+7
Original file line numberDiff line numberDiff line change
@@ -773,6 +773,13 @@
773773
.underline {
774774
text-decoration: underline;
775775
}
776+
.decoration-green-300 {
777+
--tw-decoration-opacity: 1;
778+
text-decoration-color: rgb(134 239 172 / var(--tw-decoration-opacity));
779+
}
780+
.decoration-opacity-50 {
781+
--tw-decoration-opacity: 0.5;
782+
}
776783
.antialiased {
777784
-webkit-font-smoothing: antialiased;
778785
-moz-osx-font-smoothing: grayscale;

tests/basic-usage.test.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,10 @@
159159
<div class="text-center"></div>
160160
<div class="indent-6 -indent-12"></div>
161161
<div class="text-indigo-500"></div>
162-
<div class="underline"></div>
163162
<div class="text-opacity-10"></div>
163+
<div class="underline"></div>
164+
<div class="decoration-green-300"></div>
165+
<div class="decoration-opacity-50"></div>
164166
<div class="overflow-ellipsis truncate"></div>
165167
<div class="uppercase"></div>
166168
<div class="transform transform-gpu transform-none"></div>

0 commit comments

Comments
 (0)