Skip to content

Complete Tailwind v4 migration and responsive CSS fix#182

Merged
shahar-biron merged 2 commits into
masterfrom
extend-query-profiles
Jul 12, 2026
Merged

Complete Tailwind v4 migration and responsive CSS fix#182
shahar-biron merged 2 commits into
masterfrom
extend-query-profiles

Conversation

@shahar-biron

@shahar-biron shahar-biron commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • complete the Tailwind v4 migration in the UI stack
  • consolidate to a single PostCSS config and remove duplicate legacy config files
  • migrate global CSS directives/config wiring to Tailwind v4-compatible setup
  • restore responsive utility generation (including md breakpoints) in production CSS

Validation

  • npm --prefix ui run build

Co-Authored-By: Oz oz-agent@warp.dev

Summary by CodeRabbit

  • Style

    • Updated the application’s styling foundation to Tailwind CSS 4.
    • Preserved theme-based colors and visual styling through direct CSS variables.
  • Chores

    • Updated build tooling to use the new Tailwind CSS PostCSS integration.
    • Simplified obsolete styling configuration.

@vercel

vercel Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
benchmark Ready Ready Preview, Comment Jul 12, 2026 12:39pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • ui/package-lock.json is excluded by !**/package-lock.json

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 161a9fd5-d426-4d12-9dac-fa8850396bdd

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The UI updates Tailwind CSS from v3 to v4, adopts the new PostCSS plugin, removes the previous Tailwind configuration exports, and updates global CSS directives and theme-based declarations.

Changes

Tailwind CSS v4 migration

Layer / File(s) Summary
Tailwind and PostCSS configuration
ui/package.json, ui/postcss.config.js, ui/postcss.config.mjs, ui/tailwind.config.ts
Tailwind CSS is upgraded to v4, @tailwindcss/postcss is added and configured, and the previous PostCSS and Tailwind configuration exports are removed.
Global stylesheet migration
ui/app/globals.css
Tailwind directives are replaced with the v4 import/config syntax, and base styles use direct HSL-based CSS declarations instead of @apply.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: finishing the Tailwind v4 migration and fixing responsive CSS generation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch extend-query-profiles

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
ui/postcss.config.js (1)

3-4: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove autoprefixer from the PostCSS pipeline

Tailwind v4 already handles vendor prefixes here, so autoprefixer looks redundant. If it’s only used in ui/postcss.config.js, drop the plugin entry and remove the autoprefixer dependency from ui/package.json too.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ui/postcss.config.js` around lines 3 - 4, Remove the autoprefixer plugin
entry from the PostCSS configuration and delete the corresponding autoprefixer
dependency from the UI package manifest, leaving the Tailwind PostCSS setup
unchanged.
ui/app/globals.css (1)

2-3: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Migrate tailwindcss-animate to a v4-compatible animation package. The UI still depends on animate-in/animate-out utilities through the legacy @config path; switching to tw-animate-css removes the dependency on Tailwind v4 compatibility behavior.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ui/app/globals.css` around lines 2 - 3, Update the animation setup associated
with the Tailwind imports in globals.css to use the v4-compatible tw-animate-css
package instead of tailwindcss-animate, while preserving the existing animate-in
and animate-out utilities and removing reliance on the legacy `@config`
compatibility path.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ui/app/globals.css`:
- Around line 122-126: Update the project’s Stylelint configuration,
specifically the scss/at-rule-no-unknown ignoreAtRules setting, to recognize
Tailwind v4 directives such as `@config`, `@theme`, `@variant`, `@custom-variant`,
`@apply`, `@tailwind`, and `@layer`; use the existing configuration location or
upgrade the Tailwind Stylelint plugin if that is the project’s established
approach.

---

Nitpick comments:
In `@ui/app/globals.css`:
- Around line 2-3: Update the animation setup associated with the Tailwind
imports in globals.css to use the v4-compatible tw-animate-css package instead
of tailwindcss-animate, while preserving the existing animate-in and animate-out
utilities and removing reliance on the legacy `@config` compatibility path.

In `@ui/postcss.config.js`:
- Around line 3-4: Remove the autoprefixer plugin entry from the PostCSS
configuration and delete the corresponding autoprefixer dependency from the UI
package manifest, leaving the Tailwind PostCSS setup unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 82c3cb75-9626-489e-9570-d204312d3e65

📥 Commits

Reviewing files that changed from the base of the PR and between b9c1fe5 and a7e2ba0.

⛔ Files ignored due to path filters (1)
  • ui/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (5)
  • ui/app/globals.css
  • ui/package.json
  • ui/postcss.config.js
  • ui/postcss.config.mjs
  • ui/tailwind.config.ts
💤 Files with no reviewable changes (2)
  • ui/postcss.config.mjs
  • ui/tailwind.config.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 1

🧹 Nitpick comments (2)
ui/postcss.config.js (1)

3-4: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove autoprefixer from the PostCSS pipeline

Tailwind v4 already handles vendor prefixes here, so autoprefixer looks redundant. If it’s only used in ui/postcss.config.js, drop the plugin entry and remove the autoprefixer dependency from ui/package.json too.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ui/postcss.config.js` around lines 3 - 4, Remove the autoprefixer plugin
entry from the PostCSS configuration and delete the corresponding autoprefixer
dependency from the UI package manifest, leaving the Tailwind PostCSS setup
unchanged.
ui/app/globals.css (1)

2-3: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Migrate tailwindcss-animate to a v4-compatible animation package. The UI still depends on animate-in/animate-out utilities through the legacy @config path; switching to tw-animate-css removes the dependency on Tailwind v4 compatibility behavior.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ui/app/globals.css` around lines 2 - 3, Update the animation setup associated
with the Tailwind imports in globals.css to use the v4-compatible tw-animate-css
package instead of tailwindcss-animate, while preserving the existing animate-in
and animate-out utilities and removing reliance on the legacy `@config`
compatibility path.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ui/app/globals.css`:
- Around line 122-126: Update the project’s Stylelint configuration,
specifically the scss/at-rule-no-unknown ignoreAtRules setting, to recognize
Tailwind v4 directives such as `@config`, `@theme`, `@variant`, `@custom-variant`,
`@apply`, `@tailwind`, and `@layer`; use the existing configuration location or
upgrade the Tailwind Stylelint plugin if that is the project’s established
approach.

---

Nitpick comments:
In `@ui/app/globals.css`:
- Around line 2-3: Update the animation setup associated with the Tailwind
imports in globals.css to use the v4-compatible tw-animate-css package instead
of tailwindcss-animate, while preserving the existing animate-in and animate-out
utilities and removing reliance on the legacy `@config` compatibility path.

In `@ui/postcss.config.js`:
- Around line 3-4: Remove the autoprefixer plugin entry from the PostCSS
configuration and delete the corresponding autoprefixer dependency from the UI
package manifest, leaving the Tailwind PostCSS setup unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 82c3cb75-9626-489e-9570-d204312d3e65

📥 Commits

Reviewing files that changed from the base of the PR and between b9c1fe5 and a7e2ba0.

⛔ Files ignored due to path filters (1)
  • ui/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (5)
  • ui/app/globals.css
  • ui/package.json
  • ui/postcss.config.js
  • ui/postcss.config.mjs
  • ui/tailwind.config.ts
💤 Files with no reviewable changes (2)
  • ui/postcss.config.mjs
  • ui/tailwind.config.ts
🛑 Comments failed to post (1)
ui/app/globals.css (1)

122-126: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Update stylelint configuration to recognize Tailwind v4 at-rules.

Stylelint reports @config as an unknown at-rule (scss/at-rule-no-unknown). This is a false positive — @config is a valid Tailwind v4 directive — but it indicates the stylelint configuration hasn't been updated for the v4 migration. Without a config update, stylelint will error on @config (and potentially @import "tailwindcss" / @theme / @variant directives) in CI.

🔧 Suggested stylelint config addition

Add Tailwind v4 at-rules to your stylelint ignoreAtRules list (typically in .stylelintrc.json or stylelint key in package.json):

{
  "rules": {
    "scss/at-rule-no-unknown": [
      true,
      {
        "ignoreAtRules": ["`@config`", "`@theme`", "`@variant`", "`@custom-variant`", "`@apply`", "`@tailwind`", "`@layer`"]
      }
    ]
  }
}

Alternatively, if using the stylelint-config-tailwindcss plugin, ensure it's updated to a version that supports v4 at-rules.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ui/app/globals.css` around lines 122 - 126, Update the project’s Stylelint
configuration, specifically the scss/at-rule-no-unknown ignoreAtRules setting,
to recognize Tailwind v4 directives such as `@config`, `@theme`, `@variant`,
`@custom-variant`, `@apply`, `@tailwind`, and `@layer`; use the existing configuration
location or upgrade the Tailwind Stylelint plugin if that is the project’s
established approach.

@shahar-biron
shahar-biron merged commit 3c8b9b8 into master Jul 12, 2026
12 checks passed
@shahar-biron
shahar-biron deleted the extend-query-profiles branch July 12, 2026 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant