Skip to content
Playground

Flowbite

Flowbite™ is a registered trademark of Bergside Inc. This website is not affiliated with, endorsed by, or sponsored by Bergside Inc. All rights to the trademark are owned by Bergside Inc.

Terminal window
npm i @sjsf/flowbite3-theme

flowbite-svelte ^1.6.0 is required.

Quickstart - Flowbite Svelte

Register the theme source path by adding the following line to the app.css file:.

@source "../node_modules/@sjsf/flowbite3-theme/dist";

You can connect extra widgets using the following include imports:

// Used by default in the following fields: multiEnumField
import "@sjsf/flowbite3-theme/extra-widgets/checkboxes-include"
import "@sjsf/flowbite3-theme/extra-widgets/date-picker-include"
// Used by default in the following fields: fileField, filesField
import "@sjsf/flowbite3-theme/extra-widgets/file-include"
import "@sjsf/flowbite3-theme/extra-widgets/multi-select-include"
import "@sjsf/flowbite3-theme/extra-widgets/radio-buttons-include"
import "@sjsf/flowbite3-theme/extra-widgets/radio-include"
import "@sjsf/flowbite3-theme/extra-widgets/range-include"
import "@sjsf/flowbite3-theme/extra-widgets/switch-include"
// Used by default in the following fields: tagsField
import "@sjsf/flowbite3-theme/extra-widgets/tags-include"
import "@sjsf/flowbite3-theme/extra-widgets/textarea-include"
import type {
HTMLAttributes,
HTMLButtonAttributes,
HTMLFormAttributes,
} from "svelte/elements";
import type { ButtonType, LayoutType } from "@sjsf/form/fields/exports";
import type {
ButtonGroupProps,
ButtonProps as ButtonPropsUnion,
ButtonToggleGroupProps,
ButtonToggleProps,
CheckboxProps,
DatepickerProps,
FileuploadProps,
HelperProps,
InputProps,
LabelProps,
MultiSelectProps,
RadioProps,
RangeProps,
SelectProps,
TagsProps,
TextareaProps,
ToggleProps,
} from "flowbite-svelte3";
type ButtonProps = Extract<
ButtonPropsUnion,
{ type?: HTMLButtonAttributes["type"] }
>;
export interface UiOptions {
flowbite3Button?: ButtonProps;
flowbite3Buttons?: {
[B in ButtonType]?: ButtonProps;
};
/**
* Overrides the attributes of the description.
*/
descriptionAttributes?: HTMLAttributes<HTMLDivElement>;
/**
* Overrides the attributes of the errors list.
*/
errorsList?: HTMLAttributes<HTMLUListElement>;
form?: HTMLFormAttributes;
flowbite3Help?: HelperProps;
flowbite3Label?: LabelProps;
/**
* Overrides the attributes of any layout component.
*/
layout?: HTMLAttributes<HTMLDivElement>;
/**
* Overrides the attributes of a layout with a specific type.
* This override takes precedence over the `layout` override, but does not replace it.
*/
layouts?: {
[L in LayoutType]?: HTMLAttributes<HTMLDivElement>;
};
flowbite3ButtonGroup?: ButtonGroupProps;
flowbite3SubmitButton?: ButtonProps;
/**
* Overrides the attributes of the field title
*/
titleAttributes?: HTMLAttributes<HTMLDivElement>;
flowbite3Checkbox?: CheckboxProps;
flowbite3Number?: InputProps<number | undefined>;
flowbite3Select?: SelectProps<number>;
flowbite3Text?: InputProps<string | undefined>;
flowbite3Checkboxes?: CheckboxProps;
flowbite3Datepicker?: DatepickerProps;
flowbite3File?: FileuploadProps;
flowbite3MultiSelect?: Omit<MultiSelectProps<number>, "value">;
flowbite3RadioButtons?: Omit<ButtonToggleGroupProps, 'children'>;
flowbite3RadioButtonsItem?: Partial<ButtonToggleProps>;
flowbite3Radio?: RadioProps<number>;
flowbite3Range?: RangeProps;
flowbite3Switch?: ToggleProps;
flowbite3Tags?: Omit<TagsProps, "value">;
flowbite3Textarea?: TextareaProps;
}