3.1 KiB
Flowbite-Svelte Upgrade Notes (December 2025)
Overview
This document tracks the process of upgrading the Flowbite-Svelte UI library within the Aether SvelteKit project. The primary goal is to determine if a compatible version exists for Svelte 5 and Tailwind CSS v4, and to plan for its integration or replacement if necessary.
Current Status (Pre-Upgrade)
- Flowbite-Svelte Version: v1.28.1 (as per
package.jsonat commit90ee6bb1) - Target Version: v1.30.0 (or newest compatible)
- Initial Issue (Pre-Rollback): Previous attempts to update
flowbite-svelte(and other packages) indicated peer dependency conflicts. Earlier versions offlowbite-svelte(compatible with Tailwind v3) required Svelte v4, which conflicted with the project's Svelte v5. - Current Re-evaluation: After rolling back to commit
90ee6bb1and updating SkeletonLabs (which failed the build due to other reasons),npm installsucceeded withflowbite-svelte@1.28.1present inpackage.json. This implies it can install alongside Svelte 5 and Tailwind 4. However, its runtime compatibility and rendering correctness with Svelte 5 (runes mode) and Tailwind CSS v4 remain untested. - Svelte Version: Svelte 5 (runes mode)
- Tailwind CSS Version: v4.1.10
Phase 1: Research and Planning (No Code Changes Yet)
Goal
Determine if Flowbite-Svelte has a version that is explicitly compatible with Svelte 5 (runes mode) and Tailwind CSS v4, and to identify any breaking changes or migration paths.
Steps
- Thoroughly Review Flowbite-Svelte Changelog:
- Link:
https://github.com/themesberg/flowbite-svelte/blob/main/CHANGELOG.md - Action: Read the changelog for versions from
1.28.1up to the latest stable release (e.g.,1.30.0or newer). - Goal: Look for specific mentions of Svelte 5 support, "runes mode" compatibility, or compatibility with Tailwind CSS v4. Note any breaking changes or migration instructions related to Svelte version or component API changes.
- Link:
Expected Outcome of Phase 1
A clear understanding of Flowbite-Svelte's compatibility with our current stack. This will inform the decision on whether to attempt an upgrade or if abandoning it (and creating custom replacements) is necessary. The expectation is that if a version is compatible, any breaking changes to component APIs (like renaming Modal to Dialog) will be identified.
Phase 2: Execution (After Approval)
Steps (To be detailed after Phase 1)
- If a compatible version exists:
- Update
package.jsonto the compatible version. - Run
npm install. - Run
npm run buildandnpm run devand thoroughly check for errors and visual regressions. - Apply any necessary code changes based on identified breaking changes (e.g., component name changes like
ModaltoDialog).
- Update
- If no compatible version exists or issues persist:
- Decision: Abandon Flowbite-Svelte.
- Action: Systematically replace its components with custom-built Svelte/Tailwind components, starting with critical ones like
Modal(using ourelement_modal_v1.svelteif not using Skeleton'sDialog).