この記事では、Tailwind CSS ソース コードの buildDesignSystem 関数を分析します。
design-system.ts から選択された DesignSystem タイプ
export type DesignSystem = { theme: Theme utilities: Utilities variants: Variants invalidCandidates: Set<string> // Whether to mark utility declarations as !important important: boolean getClassOrder(classes: string[]): [string, bigint | null][] getClassList(): ClassEntry[] getVariants(): VariantEntry[] parseCandidate(candidate: string): Candidate[] parseVariant(variant: string): Variant | null compileAstNodes(candidate: Candidate): ReturnType<typeof compileAstNodes> getVariantOrder(): Map<Variant, number> resolveThemeValue(path: string): string | undefined // Used by IntelliSense candidatesToCss(classes: string[]): (string | null)[] }
この記事の執筆時点では、design-system.ts には約 144 の LOC があります。
DefaultMap ユーティリティ関数によって返された値が designSystem でどのように使用されるかについて説明します。
let parsedVariants = new DefaultMap((variant) => parseVariant(variant, designSystem)) let parsedCandidates = new DefaultMap((candidate) => Array.from(parseCandidate(candidate, designSystem)), ) let compiledAstNodes = new DefaultMap<Candidate>((candidate) => compileAstNodes(candidate, designSystem), )
これらの変数は、次に示すように designSystem オブジェクトで使用されます。
parseCandidate(candidate: string) { return parsedCandidates.get(candidate) }, parseVariant(variant: string) { return parsedVariants.get(variant) }, compileAstNodes(candidate: Candidate) { return compiledAstNodes.get(candidate) },
ユーティリティとバリアントは、createUtilities と createVariants によって返される値です。
candidateToCss、getVariantOrder、resolveThemeValue などのキーには、さらなる分析が必要な関数実装があります。
Think Throo では、オープンソース プロジェクトで使用される高度なコードベース アーキテクチャの概念を教えることを使命としています。
Next.js/React の高度なアーキテクチャ概念を実践してコーディング スキルを 10 倍にし、ベスト プラクティスを学び、実稼働レベルのプロジェクトを構築します。
私たちはオープンソースです — https://github.com/thinkthroo/thinkthroo (スターを付けてください!)
当社では、Web 開発およびテクニカル ライティング サービスも提供しています。詳細については、hello@thinkthroo.com までお問い合わせください。
https://github.com/tailwindlabs/tailwindcss/blob/next/packages/tailwindcss/src/design-system.ts
https://github.com/tailwindlabs/tailwindcss/blob/c01b8254e822d4f328674357347ca0532f1283a0/packages/tailwindcss/src/index.ts#L319
以上がTailwind CSS ソース コードの buildDesignSystem fn。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。