A simple and reusable flexbox component for Svelte.
- Sane defaults.
- Simple API.
- Reactive props.
- Minimal size.
This package requires at least [email protected]
to work, as it makes use of the style directives feature introduced in the 3.46.x
version.
This package is available on NPM, and you can install it with npm
or yarn
:
npm install svelte-flex
yarn add svelte-flex
Import the Flex
component and use it in your Svelte project.
<script>
import Flex from 'svelte-flex';
</script>
<Flex>
<div>Flexbox child!</div>
<div>Flexbox child!</div>
<div>Flexbox child!</div>
</Flex>
All props are optional (as they all have default values).
Prop | Possible Values | Default Value |
---|---|---|
direction |
'row' | 'column' |
'row' |
align |
'start' | 'center' | 'end' | 'stretch' |
'center' |
justify |
'start' | 'center' | 'end' | 'around' | 'between' | 'evenly' |
'center' |
reverse |
true | false |
false |
Check out the test suite if you're unsure what CSS styles are applied by these props.
The props are reactive, meaning that if they are dynamically updated, the component will update in response.
Any additional props you provide to Flex
will be spread onto the root element. This includes custom CSS classes, which will be applied after the flex classes:
Input
<Flex class="my-custom-class" aria-label="flex-boi">
<span>Flex child</span>
</Flex>
HTML Output
<div class="flex flex-direction--row flex-align--center flex-justify--center my-custom-class" aria-label="flex-boi">
<span>Flex child</span>
</div>
Feel free to file an issue or open a pull request. Ensure that you add tests for any new functionality.
👌 Built by Dave Lunny.