FAQ and Tips - Flowbite Svelte
Tips for your apps.
Does Flowbite-Svelte work on Svelte 5? #
You can find the progress report for Flowbite-Svelte on Svelte 5.
For Svelte 5: Runes, we need to rewrite and you can find most of the components at Svelte 5 UI Lib which is a beta version.
Svelte key blocks #
Svelte key blocks destroy and recreate their contents when the value of an expression changes. This can be useful when you are using SvelteKit (group) routing.
For example, if you have a following group routing:
├── (app)
│ ├── +layout.svelte
│ ├── +page.svelte
│ ├── about
│ │ └── +page.svelte
│ ├── contact
│ │ └── +page.svelte
│ ├── orders
│ │ └── +page.svelte
│ └── profile
│ └── +page.svelte
└── +layout.svelte
The following example shows how to add navigation using the key blocks:
- Svelte
// src/routes/(app)/+layout.svelte
<script>
import { page } from '$app/stores';
import { Navbar, NavLi, NavUl } from 'flowbite-svelte';
$: activeUrl = $page.url.pathname;
</script>
{#key activeUrl}
<Navbar let:hidden let:toggle>
<NavUl {hidden} {activeUrl}>
<NavLi href="/">Home</NavLi>
<NavLi href="/about">About</NavLi>
<NavLi href="/contact">Contact</NavLi>
<NavLi href="/orders">Orders</NavLi>
<NavLi href="/profile">Profile</NavLi>
</NavUl>
</Navbar>
{/key}
<slot />
My compiled CSS size is more than 120K. How can I make it smaller? #
First build the current setting and check the CSS size.
pnpm build
Then run the following command to see your compiled CSS sizes.
find .svelte-kit/output/client/_app/immutable -type f -name "*.css" -exec du -h {} +
To purge the CSS files, you can use vite-plugin-tailwind-purgecss
.
Installation #
pnpm i -D vite-plugin-tailwind-purgecss
vite.config.ts #
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vitest/config';
import { purgeCss } from 'vite-plugin-tailwind-purgecss';
export default defineConfig({
plugins: [sveltekit(), purgeCss()],
test: {
include: ['src/**/*.{test,spec}.{js,ts}']
}
});
Run pnpm build
and run the same command to see the compiled CSS size.
find .svelte-kit/output/client/_app/immutable -type f -name "*.css" -exec du -h {} +