GithubHelp home page GithubHelp logo

apizzini / react-dial-knob Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pavelkukov/react-dial-knob

0.0 0.0 0.0 1.13 MB

Knob UI control for React

Home Page: https://pavelkukov.github.io/react-dial-knob/?path=/story/knob-skins--donut

License: MIT License

JavaScript 3.37% TypeScript 54.40% HTML 42.23%

react-dial-knob's Introduction

โš โ„๐Ÿ‘ด UNMAINTAINED & OLD

Donut Knob React Knob (for web)

๐Ÿฆš Demo: Donut | Silver | White | HighContrast | Basic

Mouse/touch/keyboard-friendly, accessible, knob component for the web.

Based on pure HTML/SVG elements without dependencies.

Implemented in TypeScript. Treeshakable with minimal footprint (core around 2kb).

๐Ÿ“ˆ Performance

~10% scripting time while interacting, 90% Idle Scripting time

๐Ÿงฉ Installing

npm install --save-dev react-dial-knob

UMD module

https://unpkg.com/react-dial-knob/dist/react-dial-knob.umd.js

๐Ÿฆš Skins & Demo

The package comes with five configurable skins - Donut | Silver | White | HighContrast | Basic


A short tutorial on how to "Create skin component" can be found in the storybook and CodePen. Essentially drop an SVG with few lines of code.


โœ” Usage

You have to store value and update the component (controlled component).


See at CodePen

import React, { useState } from 'react'
import { Donut } from 'react-dial-knob'

export default function MyPage() {
    const [value, setValue] = useState(0)
    return <Donut
        diameter={200}
        min={0}
        max={100}
        step={1}
        value={value}
        theme={{
            donutColor: 'blue'
        }}
        onValueChange={setValue}
        ariaLabelledBy={'my-label'}
    >
        <label id={'my-label'}>Some label</label>
    </Donut>
}

Props

  • value: number
  • min: number
  • max: number
  • step: number
  • ariaLabelledBy?: string
  • onValueChange?: (value: number) => void
  • and few more...

๐Ÿงพ Notes

sideEffects is set to false - tree shaking will remove all unused parts and will further reduce the size of your final bundle.

Skins are independent of each other. The final bundle size is a sum of common dependencies plus skin size (typically around ~2.5kb with a single skin). Indicative stats on sizes can be found in "stats.html"

** Core-only UMD build is available **

https://unpkg.com/react-dial-knob/dist/react-dial-knob.umd.core-only.min.js

๐Ÿ‘‹ Author

Pavel Kukov [email protected]

ยฉ LICENSE (MIT)

See LICENSE.txt in the root directory

๐Ÿ™Œ Acknowledgments

react-dial-knob's People

Contributors

pavelkukov avatar semantic-release-bot avatar apizzini avatar wjpayne avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.