migrate-media-screen.ts — tailwindcss Source File
Architecture documentation for migrate-media-screen.ts, a typescript file in the tailwindcss codebase. 9 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR b1548999_24c2_f98a_628a_e4dd9606794b["migrate-media-screen.ts"] 9b5d2e3d_392e_c654_c350_1352ed70f5e8["resolve-config.ts"] b1548999_24c2_f98a_628a_e4dd9606794b --> 9b5d2e3d_392e_c654_c350_1352ed70f5e8 0ed24ba5_7c39_3f5a_fdbb_f973a617a172["resolveConfig"] b1548999_24c2_f98a_628a_e4dd9606794b --> 0ed24ba5_7c39_3f5a_fdbb_f973a617a172 af1a6ece_0432_a556_fd63_8cb4a91f12ad["plugin-api.ts"] b1548999_24c2_f98a_628a_e4dd9606794b --> af1a6ece_0432_a556_fd63_8cb4a91f12ad 09dea224_4143_d043_b336_121f3fdb8f12["screens-config.ts"] b1548999_24c2_f98a_628a_e4dd9606794b --> 09dea224_4143_d043_b336_121f3fdb8f12 f0ae2c26_da7d_2117_70b3_216a8890f916["buildMediaQuery"] b1548999_24c2_f98a_628a_e4dd9606794b --> f0ae2c26_da7d_2117_70b3_216a8890f916 7fd72d4c_e95c_d849_1002_1e1c9d8aca1a["design-system.ts"] b1548999_24c2_f98a_628a_e4dd9606794b --> 7fd72d4c_e95c_d849_1002_1e1c9d8aca1a c056448b_f7a2_9149_54e8_f0f8470fe3aa["default-map.ts"] b1548999_24c2_f98a_628a_e4dd9606794b --> c056448b_f7a2_9149_54e8_f0f8470fe3aa bf2992f6_4a37_8536_70f8_94b13631027d["DefaultMap"] b1548999_24c2_f98a_628a_e4dd9606794b --> bf2992f6_4a37_8536_70f8_94b13631027d ba54c7c3_7b1e_9984_bfef_a693a3df2d84["postcss"] b1548999_24c2_f98a_628a_e4dd9606794b --> ba54c7c3_7b1e_9984_bfef_a693a3df2d84 2a2fbf55_42db_0140_9db5_094f5369e747["migrate-media-screen.test.ts"] 2a2fbf55_42db_0140_9db5_094f5369e747 --> b1548999_24c2_f98a_628a_e4dd9606794b 67f80607_3a88_f275_79a1_b9557100d939["migrate.ts"] 67f80607_3a88_f275_79a1_b9557100d939 --> b1548999_24c2_f98a_628a_e4dd9606794b style b1548999_24c2_f98a_628a_e4dd9606794b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { type Plugin, type Root } from 'postcss'
import { resolveConfig } from '../../../../tailwindcss/src/compat/config/resolve-config'
import type { Config } from '../../../../tailwindcss/src/compat/plugin-api'
import { buildMediaQuery } from '../../../../tailwindcss/src/compat/screens-config'
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
import { DefaultMap } from '../../../../tailwindcss/src/utils/default-map'
export function migrateMediaScreen({
designSystem,
userConfig,
}: {
designSystem?: DesignSystem | null
userConfig?: Config | null
} = {}): Plugin {
function migrate(root: Root) {
if (!designSystem || !userConfig) return
let { resolvedConfig } = resolveConfig(designSystem, [
{ base: '', config: userConfig, reference: false, src: undefined },
])
let screens = resolvedConfig?.theme?.screens || {}
let mediaQueries = new DefaultMap<string, string | null>((name) => {
let value = designSystem?.resolveThemeValue(`--breakpoint-${name}`, true) ?? screens?.[name]
if (typeof value === 'string') return `(width >= theme(--breakpoint-${name}))`
return value ? buildMediaQuery(value) : null
})
// First migrate `@screen md` to `@media screen(md)`
root.walkAtRules('screen', (node) => {
node.name = 'media'
node.params = `screen(${node.params})`
})
// Then migrate the `screen(…)` function
root.walkAtRules((rule) => {
if (rule.name !== 'media') return
let screen = rule.params.match(/screen\(([^)]+)\)/)
if (!screen) return
let value = mediaQueries.get(screen[1])
if (!value) return
rule.params = value
})
}
return {
postcssPlugin: '@tailwindcss/upgrade/migrate-media-screen',
OnceExit: migrate,
}
}
Domain
Subdomains
Functions
Dependencies
Imported By
Source
Frequently Asked Questions
What does migrate-media-screen.ts do?
migrate-media-screen.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the UpgradeToolkit domain, Codemods subdomain.
What functions are defined in migrate-media-screen.ts?
migrate-media-screen.ts defines 1 function(s): migrateMediaScreen.
What does migrate-media-screen.ts depend on?
migrate-media-screen.ts imports 9 module(s): DefaultMap, buildMediaQuery, default-map.ts, design-system.ts, plugin-api.ts, postcss, resolve-config.ts, resolveConfig, and 1 more.
What files import migrate-media-screen.ts?
migrate-media-screen.ts is imported by 2 file(s): migrate-media-screen.test.ts, migrate.ts.
Where is migrate-media-screen.ts in the architecture?
migrate-media-screen.ts is located at packages/@tailwindcss-upgrade/src/codemods/css/migrate-media-screen.ts (domain: UpgradeToolkit, subdomain: Codemods, directory: packages/@tailwindcss-upgrade/src/codemods/css).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free