mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-03-02 03:30:04 +00:00
## Summary Migrate from `@iconify/tailwind` (Tailwind 3 JS plugin) to `@iconify/tailwind4` (native Tailwind 4 CSS plugin), moving all config into CSS directives. ## Changes - **What**: Replace `addDynamicIconSelectors()` JS plugin with `@plugin "@iconify/tailwind4"` CSS directive. Move `boxShadow` theme extension into `@theme` block. Delete both `tailwind.config.ts` files and the runtime `iconCollection.ts` module. - **Dependencies**: `@iconify/tailwind` removed, `@iconify/tailwind4` added ## Review Focus - `from-folder` path resolution in monorepo context (paths relative to project root) - SVG auto-cleanup behavior of `from-folder` vs the previous manual `iconCollection.ts` loader - Removal of `@config` directive and both tailwind config files — all config now in CSS ## Files | File | Change | |------|--------| | `pnpm-workspace.yaml` | Swap catalog entry | | `packages/design-system/package.json` | Swap dep, remove `tailwind-config` export | | `packages/design-system/src/css/style.css` | Add `@plugin`, `--shadow-interface` theme token, remove `@config` | | `packages/design-system/tailwind.config.ts` | Deleted | | `packages/design-system/src/iconCollection.ts` | Deleted | | `tailwind.config.ts` | Deleted | | `tsconfig.json`, `components.json` | Remove stale references | | `knip.config.ts` | Ignore `@iconify-json/lucide` (CSS-consumed, not JS-imported) | | Docs | Updated `CONTRIBUTING.md` and `icons/README.md` | ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8724-feat-migrate-from-iconify-tailwind-to-iconify-tailwind4-3006d73d36508144a9b3e7ae73448f98) by [Unito](https://www.unito.io) --------- Co-authored-by: Amp <amp@ampcode.com> Co-authored-by: GitHub Action <action@github.com>
75 lines
1.8 KiB
JSON
75 lines
1.8 KiB
JSON
{
|
|
"extends": [],
|
|
"overrides": [
|
|
{
|
|
"files": ["*.vue", "**/*.vue"],
|
|
"customSyntax": "postcss-html"
|
|
}
|
|
],
|
|
"rules": {
|
|
"import-notation": "string",
|
|
"font-family-no-missing-generic-family-keyword": true,
|
|
"declaration-property-value-no-unknown": [
|
|
true,
|
|
{
|
|
"typesSyntax": {
|
|
"radial-gradient()": "| <any-value>"
|
|
},
|
|
"ignoreProperties": {
|
|
"speak": ["none"],
|
|
"app-region": ["drag", "no-drag"],
|
|
"/^(width|height)$/": ["/^v-bind/"]
|
|
}
|
|
}
|
|
],
|
|
"color-function-notation": "modern",
|
|
"shorthand-property-no-redundant-values": true,
|
|
"selector-pseudo-element-colon-notation": "double",
|
|
"no-duplicate-selectors": true,
|
|
"font-weight-notation": "numeric",
|
|
"length-zero-no-unit": true,
|
|
"color-no-invalid-hex": true,
|
|
"number-max-precision": 4,
|
|
"property-no-vendor-prefix": true,
|
|
"value-no-vendor-prefix": true,
|
|
"selector-no-vendor-prefix": true,
|
|
"media-feature-name-no-vendor-prefix": true,
|
|
"selector-max-universal": 1,
|
|
"selector-max-type": 2,
|
|
"declaration-block-no-duplicate-properties": true,
|
|
"block-no-empty": true,
|
|
"no-descending-specificity": null,
|
|
"no-duplicate-at-import-rules": true,
|
|
"at-rule-no-unknown": [
|
|
true,
|
|
{
|
|
"ignoreAtRules": [
|
|
"tailwind",
|
|
"apply",
|
|
"layer",
|
|
"config",
|
|
"theme",
|
|
"reference",
|
|
"plugin",
|
|
"custom-variant",
|
|
"utility"
|
|
]
|
|
}
|
|
],
|
|
"function-no-unknown": [
|
|
true,
|
|
{
|
|
"ignoreFunctions": ["theme", "v-bind", "from-folder", "from-json"]
|
|
}
|
|
]
|
|
},
|
|
"ignoreFiles": [
|
|
"node_modules/**",
|
|
"dist/**",
|
|
"playwright-report/**",
|
|
"public/**",
|
|
"src/lib/litegraph/**"
|
|
],
|
|
"files": ["**/*.css", "**/*.vue"]
|
|
}
|