Svelte Create Modals (CRUD) - Flowbite Svelte Blocks
Get started with a collection of modal components with form input elements to create new data models inside your dashboard based on Tailwind CSS.;
Default modal #
Use this free example to show a modal component with a form inside when creating a new instance of a product inside your application.
- Svelte
<script lang="ts">
import { Section } from 'flowbite-svelte-blocks';
import { Label, Input, Button, Modal, Textarea, Select } from 'flowbite-svelte';
let defaultModal = false;
const handleSubmit = () => {
alert('Form submited.');
};
let selected;
let countries = [
{ value: 'tv', name: 'TV/Monitors' },
{ value: 'pc', name: 'PC' },
{ value: 'phone', name: 'Phones' }
];
</script>
<Section classSection="h-96">
<div class="flex justify-center m-5">
<Button on:click={() => (defaultModal = true)}>Create product</Button>
</div>
<Modal title="Add Product" bind:open={defaultModal} autoclose class="min-w-full">
<form on:submit={handleSubmit}>
<div class="grid gap-4 mb-4 sm:grid-cols-2">
<div>
<Label for="name" class="mb-2">Name</Label>
<Input type="text" id="name" placeholder="Type product name" required />
</div>
<div>
<Label for="brand" class="mb-2">Brand</Label>
<Input type="text" id="brand" placeholder="Product brand" required />
</div>
<div>
<Label for="price" class="mb-2">Price</Label>
<Input type="text" id="price" placeholder="$29999" required />
</div>
<div>
<Label
>Category
<Select class="mt-2" items={countries} bind:value={selected} required />
</Label>
</div>
<div class="sm:col-span-2">
<Label for="description" class="mb-2">Description</Label>
<Textarea id="description" placeholder="Your description here" rows="4" name="description" required />
</div>
<Button type="submit" class="w-52">
<svg class="mr-1 -ml-1 w-6 h-6" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10 5a1 1 0 011 1v3h3a1 1 0 110 2h-3v3a1 1 0 11-2 0v-3H6a1 1 0 110-2h3V6a1 1 0 011-1z" clip-rule="evenodd" /></svg>
Add new product
</Button>
</div>
</form>
</Modal>
</Section>