Skip to content

Conversation

@Sqrcz
Copy link
Collaborator

@Sqrcz Sqrcz commented Jan 2, 2026

Summary by CodeRabbit

  • Chores
    • Raised Node requirement (>=22.12.0), updated CI matrix and dependency versions for compatibility.
  • Style / Visual
    • Switched gradient utilities and adjusted several utility-class modifiers, spacing and border utilities to standardize visuals.
  • Documentation
    • Many docs/examples updated to correct utility modifier placement and responsive tokens for consistent rendered samples.
  • Tests
    • Updated tests to reflect visual/class changes.

✏️ Tip: You can customize this high-level summary in your review settings.

Sqrcz added 5 commits January 2, 2026 19:24
- Bump @types/node from 20.19.19 to 20.19.27
- Update @vitejs/plugin-vue from 6.0.1 to 6.0.3
- Upgrade eslint from 9.36.0 to 9.39.2
- Update eslint-plugin-unused-imports from 4.2.0 to 4.3.0
- Upgrade eslint-plugin-vue from 10.5.0 to 10.6.2
- Bump jsdom from 27.0.0 to 27.4.0
- Update vite from 7.1.7 to 7.3.0
- Upgrade vue-tsc from 3.1.0 to 3.2.1
- Bump @tailwindcss/postcss and @tailwindcss/vite from 4.1.14 to 4.1.18
- Upgrade lodash-es from 4.17.21 to 4.17.22
- Update tailwind-merge from 3.3.1 to 3.4.0
- Upgrade tailwindcss from 4.1.14 to 4.1.18
@Sqrcz Sqrcz self-assigned this Jan 2, 2026
@Sqrcz Sqrcz added the 🤖 maintenance dependency updates, releases label Jan 2, 2026
@netlify
Copy link

netlify bot commented Jan 2, 2026

Deploy Preview for sensational-seahorse-8635f8 ready!

Name Link
🔨 Latest commit f36737d
🔍 Latest deploy log https://app.netlify.com/projects/sensational-seahorse-8635f8/deploys/69591cb256d9740008d14089
😎 Deploy Preview https://deploy-preview-420--sensational-seahorse-8635f8.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 2, 2026

📝 Walkthrough

Walkthrough

Widespread Tailwind utility and important-modifier adjustments across docs and components, plus Node/runtime and dependency updates (package.json, .node-version) and CI Node matrix changes. No public API, runtime control-flow, or behavior changes beyond CSS class strings.

Changes

Cohort / File(s) Summary
Node/runtime manifests
\.node-version, package.json, .github/workflows/node.js.yml
.node-version bumped 18.20.624.12.0; package.json dependency/devDependency upgrades, overrides for esbuild, engines.node>=22.12.0; CI matrix Node versions adjusted and Vite note added.
Button gradient mapping
src/components/FwbButton/composables/useButtonClasses.ts, src/components/FwbButton/tests/Button.spec.ts
Replaced bg-gradient-* utilities with bg-linear-to-* variants across gradient/outline mappings; changed pill rounding token from !rounded-fullrounded-full!; tests updated to assert bg-linear.
Tailwind utility renames / important modifier placement
src/components/*, docs/components/**, docs/components/*/examples/*
Multiple replacements like flex-shrink-0shrink-0, border-[1px]border, !h-fullh-full!, !text-xltext-xl!, !-mb-2-mb-2!, bg-gradient-to-bbg-linear-to-b, etc., across docs and component templates. Purely presentational class changes.
Input/File/Carousel/Jumbotron small edits
src/components/FwbFileInput/composables/useFileInputClasses.ts, src/components/FwbInput/composables/useInputClasses.ts, src/components/FwbCarousel/FwbCarousel.vue, src/components/FwbJumbotron/FwbJumbotron.vue
Replaced border-[1px]border, flex-growgrow, -translate-y-0translate-y-0, max-w-screen-xlmax-w-(--breakpoint-xl); some important-modifier reordering.
Pagination & Table selector syntax
src/components/FwbPagination/FwbPagination.vue, src/components/FwbTable/composables/useTableRowClasses.ts
Converted bracket pseudo-selectors ([&:not(:last-child)], etc.) to not-last:* utility variants (e.g., not-last:mr-3, not-last:border-b) to simplify selectors.
Docs / Examples grouping
docs/components/sidebar*, docs/components/alert.md, docs/components/radio*, docs/components/footer*, docs/components/heading*, docs/components/image*, docs/components/jumbotron/examples/*, docs/components/typography/*
Numerous documentation/example updates to reflect Tailwind utility name and modifier placement changes; no logic or API changes.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • wazeerc

Poem

🐰 I nudged the classes, swapped tokens with delight,

Gradients went linear and Node gained some height.
Docs got a trim and examples took flight,
I hop through the code, nibbling bugs out of sight,
Tiny paws, big tweaks — a rabbit's happy bite. 🥕✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: dependency update' is directly related to the main objective of the pull request, which updates multiple project dependencies across Node.js versions, package.json files, and component styling classes.
✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 71739d6 and f36737d.

📒 Files selected for processing (1)
  • src/components/FwbButton/tests/Button.spec.ts
🔇 Additional comments (2)
src/components/FwbButton/tests/Button.spec.ts (2)

314-314: LGTM! Comment reflects important-modifier positioning.

The comment update aligns with the broader Tailwind utility modifier adjustments mentioned in the PR summary.


347-347: The test assertion correctly reflects the button implementation's use of 'bg-linear' gradient classes.

The button composables use bg-linear-to-r, bg-linear-to-br, and other linear gradient direction classes for all gradient button styles, confirming the test assertion is accurate.


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 and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a24aba2 and 384ed56.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • .node-version
  • package.json
🔇 Additional comments (2)
package.json (1)

83-84: Engine requirements align with .node-version but need verification.

The engine requirements correctly match the Node version specified in .node-version. However, both Node 24.x and NPM 11.x should be verified for availability and stability (see comment on .node-version).

.node-version (1)

1-1: No action needed. Node 24.12.0 is a stable LTS release (codename "Krypton") released on December 10, 2025, and is appropriate for production use.

Likely an incorrect or invalid review comment.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 384ed56 and 36d3385.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • .github/workflows/node.js.yml
  • package.json
🔇 Additional comments (5)
.github/workflows/node.js.yml (1)

17-17: Good documentation of version requirements.

The comments clearly explain why Node 20.x was removed and why 22.12+ is required.

Also applies to: 33-33, 49-49, 65-65

package.json (4)

44-44: Vue 3.5 requirement aligns with VueUse 14.

This peer dependency update is necessary for VueUse 14 compatibility (line 71).


86-86: Engines requirement correctly enforces Vite 7 compatibility.

The minimum Node version of 22.12.0 aligns with Vite 7 requirements and ensures users have a compatible environment.


82-84: Correctly enforces esbuild security fix.

The override to esbuild >=0.25.0 addresses GHSA-67mh-4wv8-2f99, a moderate CORS vulnerability in esbuild's dev server (patched in 0.25.0). This also prevents regressions to older versions affected by CVE-2024-45341 and other related issues.


75-75: Review Flowbite 4.0 breaking changes compatibility and dark mode patterns.

Flowbite upgraded from 3.1.2 to 4.0.1 (major version bump). While Tailwind CSS v4.1.18 is already in place, Flowbite 4.0 introduces significant breaking changes:

  • Major theming overhaul with CSS variables
  • Dark mode handling changes (variants refactored away from dark: prefix toward CSS variables)
  • Component markup, class names, and JS options changes
  • ~50% reduction in HTML classes

The codebase uses extensive dark: prefix patterns throughout components. Verify that these patterns remain compatible with Flowbite 4.0's dark mode approach and test interactive components (modals, dropdowns, datepickers, carousels) for breakage. Review the official Flowbite 4.0 migration guide and ensure component implementations align with v4 structure.

@Sqrcz
Copy link
Collaborator Author

Sqrcz commented Jan 3, 2026

@coderabbitai review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 3, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (2)
package.json (2)

43-43: Peer dependency and engine updates align with the migration requirements.

The Vue ^3.5.x peer dependency and Node >=22.12.0 engine requirement are correctly updated to support VueUse 14 and Vite 7 respectively, as noted in the existing review comment.

Also applies to: 85-85


58-58: Minor dependency updates look safe.

The minor and patch updates (lodash-es, tailwind-merge, jsdom) appear to be low-risk maintenance updates. The VueUse 14 major version update is already covered in the existing review comment at lines 47-49.

Also applies to: 70-71, 75-75, 78-78

🧹 Nitpick comments (2)
package.json (1)

53-53: Run linting to verify ESLint updates don't introduce regressions.

The ESLint and plugin updates are minor/patch versions and should be backward compatible. However, they may include new rules or bug fixes that could flag additional issues.

#!/bin/bash
# Run linting to check for any new issues or errors

npm run lint

Also applies to: 55-56

src/components/FwbButton/tests/Button.spec.ts (1)

347-347: Consider simplifying the gradient check after full v4 migration.

The test currently checks for both gradient and bg-linear class patterns. Since this PR migrates to Tailwind v4, you could simplify this to only check for bg-linear once the migration is complete.

🔎 Suggested simplification
-      expect(classes.some(c => c.includes('gradient') || c.includes('bg-linear'))).toBe(true)
+      expect(classes.some(c => c.includes('bg-linear'))).toBe(true)
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 36d3385 and 71739d6.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (27)
  • docs/components/alert.md
  • docs/components/fileInput.md
  • docs/components/fileInput/examples/FwbFileInputExampleHelper.vue
  • docs/components/footer.md
  • docs/components/footer/examples/FwbFooterExampleWithLogo.vue
  • docs/components/heading.md
  • docs/components/image.md
  • docs/components/jumbotron/examples/FwbJumbotronGradientExample.vue
  • docs/components/radio.md
  • docs/components/radio/examples/FwbRadioExampleListHorizontal.vue
  • docs/components/sidebar.md
  • docs/components/sidebar/examples/FwbSidebarCtaExample.vue
  • docs/components/sidebar/examples/FwbSidebarDropdownExample.vue
  • docs/components/sidebar/examples/FwbSidebarExample.vue
  • docs/components/sidebar/examples/FwbSidebarGroupExample.vue
  • docs/components/sidebar/examples/FwbSidebarLogoExample.vue
  • docs/components/typography/heading/FwbHExampleCustom.vue
  • docs/components/typography/image/FwbImgExampleCustom.vue
  • package.json
  • src/components/FwbButton/composables/useButtonClasses.ts
  • src/components/FwbButton/tests/Button.spec.ts
  • src/components/FwbCarousel/FwbCarousel.vue
  • src/components/FwbFileInput/composables/useFileInputClasses.ts
  • src/components/FwbInput/composables/useInputClasses.ts
  • src/components/FwbJumbotron/FwbJumbotron.vue
  • src/components/FwbPagination/FwbPagination.vue
  • src/components/FwbTable/composables/useTableRowClasses.ts
✅ Files skipped from review due to trivial changes (2)
  • docs/components/fileInput.md
  • docs/components/image.md
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-18T12:11:01.047Z
Learnt from: Sqrcz
Repo: themesberg/flowbite-vue PR: 389
File: src/components/FwbToggle/FwbToggle.vue:0-0
Timestamp: 2025-07-18T12:11:01.047Z
Learning: In the FwbToggle component, the `toggleBallClasses` variable name is misleading - it doesn't style the actual toggle ball/thumb, but rather the label text container. The visual toggle ball is rendered through other means (likely CSS on the toggle track or pseudo-elements).

Applied to files:

  • src/components/FwbButton/composables/useButtonClasses.ts
🔇 Additional comments (29)
src/components/FwbCarousel/FwbCarousel.vue (1)

11-11: LGTM! Good code clarity improvement.

Removing the negative prefix from the zero-value translate utility (-translate-y-0translate-y-0) improves readability while maintaining identical behavior, since -0 = 0.

docs/components/typography/image/FwbImgExampleCustom.vue (1)

5-5: LGTM! Good simplification.

Replacing border-[1px] with the standard border utility is correct and improves consistency. Both produce identical 1px borders, but the standard utility is cleaner and more maintainable.

src/components/FwbInput/composables/useInputClasses.ts (1)

10-10: Line number correction required.

The code snippet shown is located on line 6, not line 10. Line 6 contains const defaultInputClasses = 'block grow w-full p-0 bg-transparent text-inherit ring-offset-0 ring-0 border-0 focus:ring-offset-0 focus:ring-0 focus:border-0 dark:placeholder-gray-400', which correctly uses the Tailwind v4 grow utility (migrated from flex-grow).

The change is verified correct per Tailwind CSS v4 documentation, and search confirms all flex-grow and flex-shrink instances have been migrated across the codebase.

Likely an incorrect or invalid review comment.

package.json (1)

81-83: Remove incorrect reference to non-existent comment.

The esbuild override with >=0.25.0 is appropriate for addressing known Go runtime CVEs in esbuild versions, but the reference to a "previous review comment at lines 47-49" is incorrect—those lines contain devDependency versions, not comments. Remove this false reference and state the security concern directly if needed.

Likely an incorrect or invalid review comment.

docs/components/sidebar/examples/FwbSidebarLogoExample.vue (1)

3-3: Correct Tailwind v4 important modifier syntax.

The change from !h-full to h-full! correctly migrates to Tailwind CSS v4's required syntax where the important modifier must come after the utility name.

docs/components/sidebar/examples/FwbSidebarGroupExample.vue (1)

3-3: Correct Tailwind v4 important modifier syntax.

The migration from !h-full to h-full! properly aligns with Tailwind v4's syntax requirement.

docs/components/alert.md (1)

210-210: Correct Tailwind v4 utility name.

The update from flex-shrink-0 to shrink-0 follows Tailwind v4's utility naming convention where flex-shrink-* classes are replaced with the shorter shrink-* form.

src/components/FwbFileInput/composables/useFileInputClasses.ts (2)

5-5: Simplified border utility.

Removing the explicit border-[1px] in favor of border is correct since Tailwind's default border utility already applies a 1px border width, making the code cleaner.


9-9: Correct Tailwind v4 important modifier syntax.

The change from !-mb-2 to -mb-2! correctly positions the important modifier at the end of the utility name, as required by Tailwind v4.

src/components/FwbJumbotron/FwbJumbotron.vue (1)

55-55: The CSS variable --breakpoint-xl is not defined in the codebase.

While the max-w-(--breakpoint-xl) syntax is valid Tailwind v4, the referenced CSS custom property --breakpoint-xl does not exist in your theme configuration, style files, or Flowbite v4.0.1 package. This means the utility class will not resolve correctly. Either define the variable in your theme or revert to using standard Tailwind breakpoints like max-w-screen-xl.

Likely an incorrect or invalid review comment.

docs/components/sidebar/examples/FwbSidebarDropdownExample.vue (1)

3-3: LGTM! Correct Tailwind v4 migration.

The important modifier has been correctly moved to the end of the utility class (!h-fullh-full!), which aligns with Tailwind CSS v4 requirements.

Based on library documentation, Tailwind v4 requires the ! modifier to be placed after the utility name.

docs/components/jumbotron/examples/FwbJumbotronGradientExample.vue (1)

43-43: LGTM! Correct Tailwind v4 gradient syntax.

The gradient utility has been correctly updated from bg-gradient-to-b to bg-linear-to-b, which is the new Tailwind CSS v4 syntax for linear gradients.

Based on library documentation, Tailwind v4 introduced new gradient utilities: bg-linear-*, bg-radial-*, and bg-conic-*.

docs/components/fileInput/examples/FwbFileInputExampleHelper.vue (1)

7-7: LGTM! Correct Tailwind v4 migration.

The important modifier has been correctly moved to the end of the utility class (!mt-1mt-1!), consistent with Tailwind CSS v4 syntax requirements.

docs/components/radio/examples/FwbRadioExampleListHorizontal.vue (1)

7-7: LGTM! Correct Tailwind v4 migration.

The important modifier has been consistently moved to the end of the utility class (!m-0m-0!) across all four list items, aligning with Tailwind CSS v4 syntax requirements.

Also applies to: 15-15, 23-23, 31-31

docs/components/sidebar/examples/FwbSidebarExample.vue (1)

3-3: LGTM! Correct Tailwind v4 migration.

The important modifier has been correctly moved to the end of the utility class (!h-fullh-full!), which aligns with Tailwind CSS v4 requirements. Verification confirms no remaining old-style important modifiers, gradient syntax, or opacity utilities in the codebase.

src/components/FwbButton/tests/Button.spec.ts (1)

314-316: LGTM! Comment updated for Tailwind v4 syntax.

The comment correctly reflects the new important modifier placement (suffix instead of prefix). The test appropriately checks for the class name without the modifier.

docs/components/footer/examples/FwbFooterExampleWithLogo.vue (1)

4-4: LGTM! Updated to Tailwind v4 CSS variable syntax.

The change from max-w-screen-xl to max-w-(--breakpoint-xl) correctly uses the new parentheses syntax for CSS variables in Tailwind v4 (replacing the previous bracket syntax).

docs/components/footer.md (1)

59-59: LGTM! Documentation updated to match implementation.

The documentation correctly reflects the Tailwind v4 CSS variable syntax change from max-w-screen-xl to max-w-(--breakpoint-xl), consistent with the example component.

docs/components/radio.md (1)

129-160: LGTM! Important modifier correctly moved to suffix.

All four list items have been consistently updated from !m-0 to m-0!, correctly implementing Tailwind v4's breaking change where the important modifier must now come after the utility name.

src/components/FwbTable/composables/useTableRowClasses.ts (1)

4-4: Excellent refactor using Tailwind v4's not-last: variant!

The change from arbitrary selector syntax [&:not(:last-child)]:border-b to the native not-last:border-b variant is much cleaner and more maintainable while preserving the exact same functionality. This is a great example of leveraging Tailwind v4's new variant capabilities.

src/components/FwbPagination/FwbPagination.vue (1)

355-355: Correct Tailwind v4 migration for not-last selector.

The not-last: variant is the proper Tailwind v4 replacement for the verbose [&:not(:last-child)]: arbitrary selector syntax. This aligns with Tailwind v4's built-in pseudo-class variants.

src/components/FwbButton/composables/useButtonClasses.ts (4)

61-93: Correct Tailwind v4 gradient utility migration.

The bg-gradient-to-* utilities have been properly migrated to bg-linear-to-* per Tailwind v4's expanded gradient syntax. The direction suffixes (-r, -br, -bl, -l) are preserved correctly.


97-104: Outline gradient classes correctly updated.

The outline gradient button variants properly use the new bg-linear-to-br syntax.


228-228: Correct important modifier placement for Tailwind v4.

Moving ! from prefix (!rounded-full) to suffix (rounded-full!) is required by Tailwind v4's breaking change for the important modifier syntax.


242-242: Correct opacity utility migration using slash syntax.

The old group-hover:bg-opacity-0 utility is replaced with explicit group-hover:bg-white/0 and dark:group-hover:bg-gray-900/0. This follows Tailwind v4's removal of standalone opacity utilities in favor of the slash syntax for color opacity.

docs/components/heading.md (1)

136-136: Documentation correctly updated for Tailwind v4 important modifier syntax.

The example now demonstrates the trailing ! syntax (text-xl!) required by Tailwind v4.

docs/components/typography/heading/FwbHExampleCustom.vue (1)

2-2: Correct Tailwind v4 important modifier syntax.

docs/components/sidebar/examples/FwbSidebarCtaExample.vue (1)

3-3: Correct Tailwind v4 important modifier placement.

The h-full! syntax properly uses the trailing important modifier required by Tailwind v4.

docs/components/sidebar.md (1)

38-38: Correct Tailwind v4 utility name migration throughout documentation.

All flex-shrink-0 utilities have been properly updated to shrink-0 per Tailwind v4's simplified naming convention. This change is consistent across all sidebar documentation examples.

@Sqrcz Sqrcz merged commit d01c14d into themesberg:main Jan 3, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖 maintenance dependency updates, releases

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant