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) => Promise
path to image
hex, rgba, etc.
Control state with
boolean
boolean
boolean
boolean
<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 > .title
Form > .description
Form > label
Form > div.input *
Common use parameters
(data, ev) => Promise
(handleSubmitRes) => Promise
string
<slot />
The first argument for
handleSubmit
will be a Key-Value-Store (object) with keys based on the inputname
attribute.For
input[type=checkbox]
elements, the value is an array of checked values
Rejected promises should contain a
message
property which will be shown on the form
Other parameters
string
string
boolean
<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
string
number
(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 }) => void
Route
({ component: SvelteComponent, props: { name: 'Joe' }}
)Route[]
Make a PR, I won't bite 💖