A comprehensive Svelte wrapper library for Microsoft FluentUI web components (v2.6.x), providing a seamless way to use FluentUI components in Svelte applications.
- π¨ Complete FluentUI Component Set - Wraps all major FluentUI web components
- π§ TypeScript Support - Full type definitions for all components
- π± Responsive Design - Built-in responsive layout components
- π― Svelte 5 Compatible - Works with the latest Svelte features
- π¨ SCSS & Tailwind CSS - Flexible styling options
- π¦ Tree-shakeable - Import only what you need
npm install svelte-fluentui
<script>
import { Button, TextField, Card } from 'svelte-fluentui'
</script>
<Card>
<TextField placeholder="Enter your name" />
<Button appearance="accent">Submit</Button>
</Card>
Button
- Various button styles and appearancesTextField
- Text input with validationNumberField
- Numeric input controlTextarea
- Multi-line text inputCheckbox
- Checkbox inputRadio
/RadioGroup
- Radio button controlsSwitch
- Toggle switchSelect
- Dropdown selectionCombobox
- Searchable dropdownSlider
- Range slider controlSearch
- Search input field
DataGrid
/DataGridRow
/DataGridCell
- Data table componentsCard
- Content containerBadge
- Status indicatorsProgressBar
- Progress indicationTooltip
- Contextual informationCalendar
- Date picker and calendar
Tabs
/Tab
/TabPanel
- Tab navigationBreadcrumb
/BreadcrumbItem
- Breadcrumb navigationMenu
/MenuItem
- Context menusAppBar
/AppBarItem
- Application barNavMenu
/NavItem
/NavLink
- Navigation componentsAnchor
- Link component
Stack
- Flexible layout containerLayout
- Page layout wrapperHeader
/Footer
/BodyContent
- Layout sectionsSpacer
- Spacing utilityDivider
- Visual separator
Dialog
- Modal dialogsToast
- Notification messagesAccordion
/AccordionItem
- Collapsible content
Listbox
/Option
- List selectionTree
/TreeItem
- Hierarchical dataToolbar
- Action toolbarsPaginator
- Pagination control
<script>
import { TextField, Button, Stack } from 'svelte-fluentui'
let email = ''
let password = ''
</script>
<Stack orientation="vertical" gap="16">
<TextField
bind:value={email}
type="email"
placeholder="Enter email"
required
/>
<TextField
bind:value={password}
type="password"
placeholder="Enter password"
required
/>
<Button appearance="accent">Sign In</Button>
</Stack>
<script>
import { DataGrid, DataGridRow, DataGridCell } from 'svelte-fluentui'
const users = [
{ name: 'Alice', email: 'alice@example.com', role: 'Admin' },
{ name: 'Bob', email: 'bob@example.com', role: 'User' }
]
</script>
<DataGrid>
{#each users as user}
<DataGridRow>
<DataGridCell>{user.name}</DataGridCell>
<DataGridCell>{user.email}</DataGridCell>
<DataGridCell>{user.role}</DataGridCell>
</DataGridRow>
{/each}
</DataGrid>
<script>
import { Layout, Header, NavMenu, NavItem, BodyContent } from 'svelte-fluentui'
</script>
<Layout>
<Header slot="header">
<h1>My App</h1>
</Header>
<NavMenu slot="navigation">
<NavItem href="/">Home</NavItem>
<NavItem href="/about">About</NavItem>
<NavItem href="/contact">Contact</NavItem>
</NavMenu>
<BodyContent>
<!-- Main content here -->
</BodyContent>
</Layout>
Clone the repository and install dependencies:
git clone https://github.com/KeenMate/svelte-fluentui.git
cd svelte-fluentui
npm install
Start the development server:
npm run dev
Visit http://localhost:5173
to see the component showcase and examples.
Build the library:
npm run build
Contributions are welcome! Please feel free to submit a Pull Request.
MIT Β© KeenMate
Built on top of Microsoft FluentUI Web Components v2.6.x.