Skip to content

Comments

chore(deps): update dependency tailwindcss to v4#58

Closed
renovate[bot] wants to merge 1 commit intomainfrom
renovate/major-tailwindcss-monorepo
Closed

chore(deps): update dependency tailwindcss to v4#58
renovate[bot] wants to merge 1 commit intomainfrom
renovate/major-tailwindcss-monorepo

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Mar 5, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
tailwindcss (source) ^3.4.17 -> ^4.0.9 age adoption passing confidence

Release Notes

tailwindlabs/tailwindcss (tailwindcss)

v4.0.9

Compare Source

Fixed
  • Make JS APIs available to plugins and configs in the Standalone CLI (#​15934)
  • Vite: Don't crash when importing a virtual module from JavaScript that ends in .css (#​16780)
  • Fix an issue where @reference "…" would sometimes omit keyframe animations (#​16774)
  • Ensure z-*! utilities are properly marked as !important (#​16795)
  • Read UTF-8 CSS files that start with a byte-order mark (BOM) (#​16796)
  • Ensure nested functions in selectors used with JavaScript plugins are not truncated (#​16802)
Changed
  • Emit variable fallbacks when using @reference "…" instead of duplicate CSS variable declarations (#​16774)

v4.0.8

Compare Source

Added
  • Allow @import with theme(…) options for stylesheets that contain more than just @theme rules (#​16514)
Fixed
  • Don't add !important to CSS variable declarations when using the important modifier (#​16668)
  • Vite: Ignore files and directories specified in your .gitignore file when using automatic source detection(#​16631)
  • Vite: Don't rely on the module graph for detecting candidates to ensure setups with multiple Vite builds work as expected (#​16631)
  • Vite: Ensure Astro production builds always contain classes used in client-only components (#​16631)
  • Vite: Always scan raw file contents for utility classes before any other transforms have been applied to ensure utility classes are scanned without any additional escaping (#​16631)
  • Ensure utilities with more declarations are always sorted before utilities with fewer declarations when utilities only define CSS variables (#​16715)
  • Only include translate-z-px utilities once in compiled CSS (#​16718)
Changed

v4.0.7

Compare Source

Fixed
  • Export tailwindcss/lib/util/flattenColorPalette.js for backward compatibility (#​16411)
  • Fix sorting of numeric utility suggestions when they have different magnitudes (#​16414)
  • Show suggestions for fractions in IntelliSense (#​16353)
  • Don’t replace _ in suggested theme keys (#​16433)
  • Ensure --default-outline-width can be used to change the outline-width value of the outline utility (#​16469)
  • Ensure drop shadow utilities don't inherit unexpectedly (#​16471)
  • Export config and plugin types from tailwindcss/plugin for backward compatibility (#​16505)
  • Ensure JavaScript plugins that emit nested rules referencing the utility name work as expected (#​16539)
  • Statically link Visual Studio redistributables in @tailwindcss/oxide Windows builds (#​16602)
  • Ensure that Next.js splat routes are scanned for classes (#​16457)
  • Pin exact version of tailwindcss in @tailwindcss/* packages (#​16623)
  • Upgrade: Report errors when updating dependencies (#​16504)
  • Upgrade: Ensure a darkMode JS config setting with block syntax converts to use @slot (#​16507)
  • Upgrade: Ensure the latest version of tailwindcss and @tailwindcss/postcss are installed when upgrading (#​16620)

v4.0.6

Compare Source

Fixed
  • Revert change to no longer include theme variables that aren't used in compiled CSS (#​16403)
  • Upgrade: Don't migrate blur to blur-sm when used with Next.js <Image placeholder="blur" /> (#​16405)

v4.0.5

Compare Source

Added
  • Add @theme static option for always including theme variables in compiled CSS (#​16211)
Fixed
  • Remove rogue console.log from @tailwindcss/vite (#​16307)
Changed
  • Don't include theme variables that aren't used in compiled CSS (#​16211)

v4.0.4

Compare Source

Fixed
  • Fix a crash when setting JS theme values to null (#​16210)
  • Ensure escaped underscores in CSS variables in arbitrary values are properly unescaped (#​16206)
  • Ensure that the containers JS theme key is added to the --container-* namespace (#​16169)
  • Ensure theme @keyframes are generated even if an --animation-* variable spans multiple lines (#​16237)
  • Vite: Skip parsing stylesheets with the ?commonjs-proxy flag (#​16238)
  • Fix order-first and order-last for Firefox (#​16266)
  • Fix support for older instruction sets on Linux x64 builds of the standalone CLI (#​16244)
  • Ensure NODE_PATH is respected when resolving JavaScript and CSS files (#​16274)
  • Ensure Node addons are packaged correctly with FreeBSD builds (#​16277)
  • Fix an issue where @variant inside a referenced stylesheet could cause a stack overflow (#​16300)

v4.0.3

Compare Source

Fixed
  • Fix incorrect removal of @import url(); (#​16144)

v4.0.2

Compare Source

Fixed
  • Only generate positive grid-cols-* and grid-rows-* utilities (#​16020)
  • Ensure escaped theme variables are handled correctly (#​16064)
  • Ensure we process Tailwind CSS features when only using @reference or @variant (#​16057)
  • Refactor gradient implementation to work around prettier/prettier#17058 (#​16072)
  • Vite: Ensure hot-reloading works with SolidStart setups (#​16052)
  • Vite: Fix a crash when starting the development server in SolidStart setups (#​16052)
  • Vite: Don't rebase URLs that appear to be aliases (#​16078)
  • Vite: Transform <style> blocks in HTML files (#​16069)
  • Prevent camel-casing CSS custom properties added by JavaScript plugins (#​16103)
  • Do not emit @keyframes in @theme reference (#​16120)
  • Discard invalid declarations when parsing CSS (#​16093)
  • Do not emit empty CSS rules and at-rules (#​16121)
  • Handle @variant when at the top-level of a stylesheet (#​16129)

v4.0.1

Compare Source

Added
  • Include :open pseudo-class in existing open variant (#​15349)
Fixed
  • Remove invalid min-w/h-none utilities (#​15845)
  • Discard CSS variable shorthand utilities that don't use valid CSS variables (#​15738)
  • Ensure font-size utilities with none modifier have a line-height set e.g. text-sm/none (#​15921)
  • Ensure font-size utilities with unknown modifier don't generate CSS (#​15921)
  • Don’t suggest font weight utilities more than once (#​15857)
  • Suggest container query variants (#​15857)
  • Disable bare value suggestions when not using the --spacing variable (#​15857)
  • Ensure suggested classes are properly sorted (#​15857)
  • Don’t look at .gitignore files outside initialized repos (#​15941)
  • Find utilities when using the Svelte class shorthand syntax across multiple lines (#​15974)
  • Find utilities when using the Angular class shorthand syntax (#​15974)
  • Find utilities when using functions inside arrays (#​15974)
  • Ensure that @tailwindcss/browser does not pollute the global namespace (#​15978)
  • Ensure that tailwind-merge is not scanned when using the Vite plugin (#​16005)
  • Ensure CSS theme variables are available within shadow roots (#​15975)
  • Fix crash when project lives in the / directory (#​15988)
  • Ensure custom variants have a non-empty selector list (#​16009)
  • Upgrade: Ensure JavaScript config files on different drives are correctly migrated (#​15927)
  • Upgrade: Migrate leading-[1] to leading-none (#​16004)
  • Upgrade: Do not migrate arbitrary leading utilities to bare values (#​16004)

v4.0.0

Compare Source

Added

Start using Tailwind CSS v4.0 today by installing it in a new project, or playing with it directly in the browser on Tailwind Play.

For existing projects, we've published a comprehensive upgrade guide and built an automated upgrade tool to get you on the latest version as quickly and painlessly as possible.

For a deep-dive into everything that's new, check out the announcement post.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from colinaaa as a code owner March 5, 2025 05:12
@renovate renovate bot added the bot:renovate This is from bot 'renovate' label Mar 5, 2025
@changeset-bot
Copy link

changeset-bot bot commented Mar 5, 2025

⚠️ No Changeset found

Latest commit: 7c1ec03

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@colinaaa colinaaa closed this Mar 5, 2025
@renovate
Copy link
Contributor Author

renovate bot commented Mar 5, 2025

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 4.x releases. But if you manually upgrade to 4.x then Renovate will re-enable minor and patch updates automatically.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/major-tailwindcss-monorepo branch March 5, 2025 05:35
upupming added a commit that referenced this pull request Jan 4, 2026
<!--
  Thank you for submitting a pull request!

We appreciate the time and effort you have invested in making these
changes. Please ensure that you provide enough information to allow
others to review your pull request.

Upon submission, your pull request will be automatically assigned with
reviewers.

If you want to learn more about contributing to this project, please
visit:
https://github.com/lynx-family/lynx-stack/blob/main/CONTRIBUTING.md.
-->

<!-- The AI summary below will be auto-generated - feel free to replace
it with your own. -->

Solves #2045

An example log from our examples/react package is as below.

First screen:

<details>

```log
[BackgroundThread Component Render] name: Fragment, uniqID: undefined, __id: undefined
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #1: __CreatePage("0", 0) => page#10
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #2: __GetElementUniqueID(page#10) => 10
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #3: __SetCSSId([page#10], 0)
main-thread.js:3460 [MainThread Component Render] name: App
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #4: __CreateView(10) => view#11
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #5: __CreateView(10) => view#12
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #6: __SetClasses(view#12, "Background")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #7: __AppendElement(view#11, view#12) => view#12
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #8: __CreateView(10) => view#13
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #9: __SetClasses(view#13, "App")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #10: __AppendElement(view#11, view#13) => view#13
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #11: __CreateView(10) => view#14
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #12: __SetClasses(view#14, "Banner")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #13: __AppendElement(view#13, view#14) => view#14
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #14: __CreateWrapperElement(10) => wrapper#15
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #15: __AppendElement(view#14, wrapper#15) => wrapper#15
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #16: __CreateText(10) => text#16
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #17: __SetClasses(text#16, "Title")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #18: __SetAttribute(text#16, "text", "React")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #19: __AppendElement(view#14, text#16) => text#16
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #20: __CreateText(10) => text#17
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #21: __SetClasses(text#17, "Subtitle")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #22: __SetAttribute(text#17, "text", "on Lynx")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #23: __AppendElement(view#14, text#17) => text#17
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #24: __CreateView(10) => view#18
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #25: __SetClasses(view#18, "Content")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #26: __AppendElement(view#13, view#18) => view#18
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #27: __CreateImage(10) => image#19
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #28: __SetClasses(image#19, "Arrow")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #29: __AppendElement(view#18, image#19) => image#19
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #30: __CreateText(10) => text#20
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #31: __SetClasses(text#20, "Description")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #32: __SetAttribute(text#20, "text", "Tap the logo and have fun!")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #33: __AppendElement(view#18, text#20) => text#20
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #34: __CreateText(10) => text#21
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #35: __SetClasses(text#21, "Hint")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #36: __AppendElement(view#18, text#21) => text#21
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #37: __CreateRawText("Edit") => raw-text#22
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #38: __AppendElement(text#21, raw-text#22) => raw-text#22
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #39: __CreateWrapperElement(10) => wrapper#23
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #40: __AppendElement(text#21, wrapper#23) => wrapper#23
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #41: __CreateRawText("to see updates!") => raw-text#24
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #42: __AppendElement(text#21, raw-text#24) => raw-text#24
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #43: __CreateView(10) => view#25
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #44: __SetInlineStyles(view#25, "flex:1")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #45: __AppendElement(view#13, view#25) => view#25
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #46: __AppendElement(page#10, view#11) => view#11
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #47: __SetAttribute(image#19, "src", "http://1.1.1.1:3000/static/image/arrow.aee54ba7.png")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #48: __CreateView(10) => view#26
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #49: __SetClasses(view#26, "Logo")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #50: __ReplaceElement(view#26, wrapper#15)
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #51: __AddEvent(view#26, "bindEvent", "tap", "-3:0:")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #52: __CreateImage(10) => image#27
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #53: __SetClasses(image#27, "Logo--lynx")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #54: __AppendElement(view#26, image#27) => image#27
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #55: __SetAttribute(image#27, "src", "http://1.1.1.1:3000/static/image/lynx-logo.620eb8d1.png")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #56: __CreateText(10) => text#28
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #57: __SetInlineStyles(text#28, "font-style:italic;color:rgba(255, 255, 255, 0.85)")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #58: __ReplaceElement(text#28, wrapper#23)
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #59: __CreateRawText("") => raw-text#29
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #60: __SetAttribute(raw-text#29, "text", " src/App.tsx ")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #61: __AppendElement(text#28, raw-text#29) => raw-text#29
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #62: __OnLifecycleEvent(["rLynxFirstScreen", {"root":"{\"id\":-1,\"type\":\"root\",\"children\":[{\"id\":-5,\"type\":\"__snapshot_835da_b8ae7_1\",\"values\":[\"http://1.1.1.1:3000/static/image/arrow.aee54ba7.png\"],\"children\":[{\"id\":-3,\"type\":\"__snapshot_835da_b8ae7_2\",\"values\":[\"-3:0:\"],\"children\":[{\"id\":-2,\"type\":\"__snapshot_835da_b8ae7_4\",\"values\":[\"http://1.1.1.1:3000/static/image/lynx-logo.620eb8d1.png\"]}]},{\"id\":-4,\"type\":\"__snapshot_835da_b8ae7_5\",\"children\":[{\"id\":-6,\"type\":null,\"values\":[\" src/App.tsx \"]}]}]}]}","jsReadyEventIdSwap":{}}])
background.js:11351 [rspeedy-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay disabled.
background.js:3564 [HMR] Waiting for update signal from WDS...
background.js:4476 [BackgroundThread Component Render] name: App, uniqID: __snapshot_835da_b8ae7_1, __id: 2
background.js:4476 [BackgroundThread Component Render] name: Fragment, uniqID: __snapshot_835da_b8ae7_1, __id: 2
background.js:214 Hello, ReactLynx
background.js:8011 [ReactLynxDebug] MTS -> BTS OnLifecycleEvent:
{
  "root": {
    "id": -1,
    "type": "root",
    "children": [
      {
        "id": -5,
        "type": "__snapshot_835da_b8ae7_1",
        "values": [
          "http://1.1.1.1:3000/static/image/arrow.aee54ba7.png"
        ],
        "children": [
          {
            "id": -3,
            "type": "__snapshot_835da_b8ae7_2",
            "values": [
              "-3:0:"
            ],
            "children": [
              {
                "id": -2,
                "type": "__snapshot_835da_b8ae7_4",
                "values": [
                  "http://1.1.1.1:3000/static/image/lynx-logo.620eb8d1.png"
                ]
              }
            ]
          },
          {
            "id": -4,
            "type": "__snapshot_835da_b8ae7_5",
            "children": [
              {
                "id": -6,
                "type": null,
                "values": [
                  " src/App.tsx "
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "jsReadyEventIdSwap": {}
}
main-thread.js:5801 [ReactLynxDebug] BTS -> MTS updateMainThread:
{
  "data": {
    "patchList": [
      {
        "snapshotPatch": [],
        "id": 2
      }
    ]
  },
  "patchOptions": {
    "isHydration": true,
    "reloadVersion": 0,
    "pipelineOptions": {
      "pipelineID": "0x16c567000_29",
      "needTimestamps": true,
      "pipelineOrigin": "reactLynxHydrate",
      "dsl": "reactLynx",
      "stage": "hydrate"
    }
  }
}
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #63: __FlushElementTree(page#10, {"pipelineOptions":{"pipelineID":"0x16c567000_29","needTimestamps":true,"pipelineOrigin":"reactLynxHydrate","dsl":"reactLynx","stage":"hydrate"}})

```

</details>

Next update:

<details>

```log
[BackgroundThread Component Render] name: App, uniqID: __snapshot_835da_b8ae7_1, __id: -5
main-thread.js:5801 [ReactLynxDebug] BTS -> MTS updateMainThread:
{
  "data": {
    "patchList": [
      {
        "id": 3,
        "snapshotPatch": [
          {
            "op": "RemoveChild",
            "parentId": -3,
            "childId": -2
          },
          {
            "op": "CreateElement",
            "type": "__snapshot_835da_b8ae7_3",
            "id": 7
          },
          {
            "op": "SetAttributes",
            "id": 7,
            "values": [
              "http://1.1.1.1:3000/static/image/react-logo.75eb3837.png"
            ]
          },
          {
            "op": "InsertBefore",
            "parentId": -3,
            "childId": 7,
            "beforeId": null
          }
        ]
      }
    ]
  },
  "patchOptions": {
    "reloadVersion": 0,
    "pipelineOptions": {
      "pipelineID": "0x16c567000_30",
      "needTimestamps": false,
      "pipelineOrigin": "updateTriggeredByBts",
      "dsl": "reactLynx",
      "stage": "update"
    }
  }
}
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #64: __RemoveElement(view#26, image#27) => image#27
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #65: __CreateImage(10) => image#30
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #66: __SetClasses(image#30, "Logo--react")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #67: __SetAttribute(image#30, "src", "http://1.1.1.1:3000/static/image/react-logo.75eb3837.png")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #68: __AppendElement(view#26, image#30) => image#30
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #69: __FlushElementTree(page#10, {"pipelineOptions":{"pipelineID":"0x16c567000_30","needTimestamps":false,"pipelineOrigin":"updateTriggeredByBts","dsl":"reactLynx","stage":"update"}})
```

</details>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Enhanced debug logging: structured, dual-thread API-call, lifecycle
and hydration traces when debug mode is enabled.
* **Tests**
* Added and expanded tests and snapshots to validate richer logging,
API-call sequences, and hydration traces.
* **Chores**
* Development-only error messages now include a troubleshooting hint
recommending the debug-mode option for easier diagnosis.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

## Checklist

<!--- Check and mark with an "x" -->

- [x] Tests updated (or not required).
- [ ] Documentation updated (or not required).
- [x] Changeset added, and when a BREAKING CHANGE occurs, it needs to be
clearly marked (or not required).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot:renovate This is from bot 'renovate'

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant