diff options
| author | Philipp Tanlak <philipp.tanlak@gmail.com> | 2025-11-24 20:54:57 +0100 |
|---|---|---|
| committer | Philipp Tanlak <philipp.tanlak@gmail.com> | 2025-11-24 20:57:48 +0100 |
| commit | b1e2c8fd5cb5dfa46bc440a12eafaf56cd844b1c (patch) | |
| tree | 49d360fd6cbc6a2754efe93524ac47ff0fbe0f7d /node_modules/tailwindcss/src/util/transformThemeValue.js | |
Docs
Diffstat (limited to 'node_modules/tailwindcss/src/util/transformThemeValue.js')
| -rw-r--r-- | node_modules/tailwindcss/src/util/transformThemeValue.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/node_modules/tailwindcss/src/util/transformThemeValue.js b/node_modules/tailwindcss/src/util/transformThemeValue.js new file mode 100644 index 0000000..2469612 --- /dev/null +++ b/node_modules/tailwindcss/src/util/transformThemeValue.js @@ -0,0 +1,62 @@ +import postcss from 'postcss' +import isPlainObject from './isPlainObject' + +export default function transformThemeValue(themeSection) { + if (['fontSize', 'outline'].includes(themeSection)) { + return (value) => { + if (typeof value === 'function') value = value({}) + if (Array.isArray(value)) value = value[0] + + return value + } + } + + if (themeSection === 'fontFamily') { + return (value) => { + if (typeof value === 'function') value = value({}) + let families = Array.isArray(value) && isPlainObject(value[1]) ? value[0] : value + return Array.isArray(families) ? families.join(', ') : families + } + } + + if ( + [ + 'boxShadow', + 'transitionProperty', + 'transitionDuration', + 'transitionDelay', + 'transitionTimingFunction', + 'backgroundImage', + 'backgroundSize', + 'backgroundColor', + 'cursor', + 'animation', + ].includes(themeSection) + ) { + return (value) => { + if (typeof value === 'function') value = value({}) + if (Array.isArray(value)) value = value.join(', ') + + return value + } + } + + // For backwards compatibility reasons, before we switched to underscores + // instead of commas for arbitrary values. + if (['gridTemplateColumns', 'gridTemplateRows', 'objectPosition'].includes(themeSection)) { + return (value) => { + if (typeof value === 'function') value = value({}) + if (typeof value === 'string') value = postcss.list.comma(value).join(' ') + + return value + } + } + + return (value, opts = {}) => { + if (typeof value === 'function') { + value = value(opts) + } + + return value + } +} |