Handy Svelte components for the whole family
TL;DR:
To override all Svelte Utils default colors, set the following with CSS:
.svelte-utils-theme-background {
background-color: red;
}
.svelte-utils-theme-color {
color: white;
}
npm i svelte-utils
import { Button, Form, Spinner } from 'svelte-utils';
<Button
onClick={buttonHandler}
icon="/lock.svg"
backgroundColor="red">
Confirm
</Button>
Common use parameters
(event) => Promisepath to imagehex, rgba, etc.Control state with
booleanbooleanbooleanboolean<Form
onDone={async function() {}}
buttonIcon="/lock.svg"
handleSubmit={async function(data, ev) {
console.log(data); // { name: 'Joe Blogs' }
return postJSON(`/api/save`, data);
}}
buttonText="Submit Form">
<div class="title">This is a form title</div>
<div class="description">It looks like you're new here</div>
<div class="input">
<label for="name">Name</label>
<input
type="text"
id="name"
name="name"
placeholder="Joe Bloggs"
required />
</div>
</Form>
Automatic styling will be applied for:
Form > .titleForm > .descriptionForm > labelForm > div.input *Common use parameters
(data, ev) => Promise(handleSubmitRes) => Promisestring<slot />The first argument for
handleSubmitwill be a Key-Value-Store (object) with keys based on the inputnameattribute.For
input[type=checkbox]elements, the value is an array of checked values
Rejected promises should contain a
messageproperty which will be shown on the form
Other parameters
stringstringboolean<Spinner black={true} size="50px" />
Parameters
boolean (default is false - will display a white spinner)px value<Sprite
spritesheetUrl="https://i.stack.imgur.com/wFCJb.png"
spriteWidth="32"
spriteHeight="32"
width="50"
height="50"
rowLength="6"
index={spriteIndex} />
Parameters
stringnumber (sprite index)number (pixel width of sprite on spritesheet)number (pixel height of sprite on spritesheet)number (width to scale sprite to)number (height to scale sprite to)number (number of sprites per row on spritesheet)Advanced Parameters
(spriteIndex) => { x: string, y: string }<StackRouter
onReady={routerReady}
defaultRoute={routes[0]}
bind:stack={routerStack} />
Parameters
(router: { pushRoute, popRoute, replaceRoute }) => voidRoute ({ component: SvelteComponent, props: { name: 'Joe' }})Route[]Make a PR, I won't bite 💖