Skip to content

ISNIT0/svelte-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

dcb44f6 Â· Feb 2, 2020

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Svelte Utils

Handy Svelte components for the whole family

TL;DR:

Included:

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;
}

Installation

npm i svelte-utils
import { Button, Form, Spinner } from 'svelte-utils';

Button

<Button
    onClick={buttonHandler}
    icon="/lock.svg"
    backgroundColor="red">
    Confirm
</Button>

Common use parameters

  • onClick: (event) => Promise
  • icon?: path to image
  • backgroundColor?: hex, rgba, etc.

Control state with

  • disabled?: boolean
  • pending?: boolean
  • success?: boolean
  • error?: boolean

Form

<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

  • handleSubmit: (data, ev) => Promise
  • onDone: (handleSubmitRes) => Promise
  • buttonText?: string
  • <slot />

The first argument for handleSubmit will be a Key-Value-Store (object) with keys based on the input name 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

  • buttonIcon?: string
  • afterButtonText?: string
  • disabled?: boolean

Spinner

<Spinner black={true} size="50px" />

Parameters

  • black?: boolean (default is false - will display a white spinner)
  • size?: px value

Sprite

<Sprite
    spritesheetUrl="https://i.stack.imgur.com/wFCJb.png"
    spriteWidth="32"
    spriteHeight="32"
    width="50"
    height="50"
    rowLength="6"
    index={spriteIndex} />

Parameters

  • spritesheetUrl: string
  • index?: number (sprite index)
  • spriteWidth: number (pixel width of sprite on spritesheet)
  • spriteHeight: number (pixel height of sprite on spritesheet)
  • width?: number (width to scale sprite to)
  • height?: number (height to scale sprite to)
  • rowLength?: number (number of sprites per row on spritesheet)

Advanced Parameters

  • getSpritePos?: (spriteIndex) => { x: string, y: string }

StackRouter

<StackRouter
    onReady={routerReady}
    defaultRoute={routes[0]}
    bind:stack={routerStack} />

Parameters

  • onReady: (router: { pushRoute, popRoute, replaceRoute }) => void
  • defaultRoute: Route ({ component: SvelteComponent, props: { name: 'Joe' }})
  • stack?: Route[]

Contributing

Make a PR, I won't bite 💖

Also see

License - MIT

./LICENSE

About

Handy Svelte components for the whole family

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published