Bootstrap 5 Components for Svelte 4+

Sveltestrap is a library designed to simplify the integration of Bootstrap 5 components into your Svelte applications. It eliminates the need for Bootstrap component classes, the inclusion of Bootstrap's JavaScript, and reliance on jQuery.

This open-source software is freely available under the permissive MIT license. It draws inspiration from the reactstrap library for React.

Please note that Sveltestrap does not directly embed Bootstrap style. To use Bootstrap themes effectively, you must include Bootstrap 5 CSS using one of the methods outlined below.

Note If you looking for Svelte 3.x support, you can use the original sveltestrap package.

Join the Community


Install

# npm
> npm install svelte @sveltestrap/sveltestrap

# pnpm
> pnpm install svelte @sveltestrap/sveltestrap

# yarn
> yarn add svelte @sveltestrap/sveltestrap

Bootstrap CSS

It's essential to note that Bootstrap 5 components do not come with Bootstrap styles preloaded, so you'll need to add the stylesheet manually. Here's how you can add them:

  1. Add to your apps static index.html file

    <head>
      <link
     rel="stylesheet"
     href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
      />
    </head>
    
  2. Add to your main App.svelte file

    <svelte:head>
      <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
    </svelte:head>
    
  3. Import the styles directly in your CSS bundle

<style>
  @import 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css';
</style>
  1. Use the provided Styles component
<script>
  import { Styles } from '@sveltestrap/sveltestrap';
</script>

<Styles />

Then use Sveltestrap components in your svelte component:

<script>
  import { Button, Col, Row } from '@sveltestrap/sveltestrap';
</script>

<Row>
  <Col>
    <Button color="primary" outline>Hello World!</Button>
  </Col>
</Row>

Bootstrap Icons

If you want to use the Icon component, you also must include a link to Bootstrap Icon CSS, for example:

Include it in your app's App.svelte:

<svelte:head>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
</svelte:head>

or you can include it in your app's index.html:

<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css"
/>

or the Styles component includes the Bootstrap Icon CSS by default:

<script>
  import { Styles } from '@sveltestrap/sveltestrap';
</script>

<Styles />

Using Sapper

If you are using Sveltestrap with Sapper, it's recommended you import the component source directly. Note that this issue does not affect SvelteKit.

<script>
  import { Button, Col, Row } from '@sveltestrap/sveltestrap/src';
</script>

<Row>
  <Col>
    <Button color="primary" outline>Hello World!</Button>
  </Col>
</Row>

If you prefer the @sveltestrap/sveltestrap import, you can move the package to devDependencies block in your package.json so that sapper will parse the es bundle

"devDependencies": {
  "@sveltestrap/sveltestrap": "*.*.*",
  ...
},

Sponsors

Maintainers

Contributors

Top categories

svelte logo

Want a Svelte site built?

Hire a Svelte developer
Loading Svelte Themes