4.0.100 • Published 19 days ago

@selfdecode/sd-component-library v4.0.100

Weekly downloads
437
License
MIT
Repository
bitbucket
Last release
19 days ago

SelfDecode Component Library

The SelfDecode Component Libary (SCL) was built with intention of speeding up the development of all products under SD, by creating a single source for all shared components such as form components which are re-used across our different products.

Exploring the library

npm run storybook

Start the storybook server. Open http://localhost:6006/ to view it in the browser.

The page will auto reload if you make edits.

npm run build-storybook

Builds an HTML production version of the style guide.

The develop branch of the repository is also deployed and available at https://sd-component-library.netlify.app/.

Prerequisites

To understand the library, add to it and work with it, 3 prerequisites are required:

  1. TypeScript.
  2. Rebass - used for the styling logic.
  3. Emotion Theming - the library which Rebass is built upon. OPTIONAL: Undrstanding Rebass would be enough.

Idea behing the business logic

The CLS architechure is built as a reverse pyramid and is built from the ground up. At the low level, we built more abstract components which handle any functionality and validation which would be shared by all child components which extend it. As we progress "up" in the pyramid, components get more specific for the specific task they need to serve.

Example

  • All input field components, in their core, are based on the base Input component. The base Input component is never intended to be rendered as it is, has no styling, and is only used for extension by more defined components.
  • Within the base input component, we do the error handeling for when an invlid input was provided by the user. What exactly qualifies as an invlid input would be defined by each child element.
  • The TextInput component which directly extends the base Input component, adds an optional label on top of the inut itself, and passes down "text" to the base Input component as the type of input. It becomes more specific to a certain purpose.
  • The NumberInput components, extends the TextInput component, and passes down its unique onChangeWrapper, whic validates our input as numbers only, and between a minimum and maximum values (provided by the client who implements this component).

Idea behind the styling logic

For styling, we use Rebass which is a styling system that is built on top of Emotion Theming.

With Rebass, there are 4 options for styling a component. In SCL, we use 2 of these options:

  • variants: used for non-changable styling properties.
  • sx: used for changable styling properties, with potential defaults for some components.

variants

For al end components, certain properties are set and are unchangable. For example, for input fields, the font properties and the height of the component are set in the library, and should never be changed by the client. To do so, these properties are set as variants in our theme, which could be found in src/core. To understand the structure of the theme, reffer to Rebass documentation.

sx

sx (a Rebass proprety) allows us to style components similarly to React.js' inline-styles. We use the sx property to define styles whih could be passed by the client (with some having default fallbacks). For example, for the primary buttons, we use a default width of 236px, but the client could decide that they need this buton to have a different width and pass a different size to out component, which would than be applied instead of our 236px default width.

In a lower level example, we can look at the base Button component. All buttons have a disabled mode (each button handles its own logic to when it should be disabled). When the base button receives disabled to equal 'true', we set the buttons opacity to 0.3, otherwise, if 'false', it is set to 1.

Add more components

To add more components, start by looking at the existing components and see:

  1. Is there already a group of components where this new component should fit in? If it's a type of input look at inputs. If it's a type of button look at buttons.
  2. If a relevant group was found, explore existing components to understand if your new component could use one of the base components, and build on top of it to save redundent code. SLC was built with intention to save time and code for the client, and in a manner that should save time and code within itself for future components as well.
4.0.100

19 days ago

4.0.99

22 days ago

4.0.98

2 months ago

4.0.97

3 months ago

4.0.96

3 months ago

4.0.95

5 months ago

4.0.94

5 months ago

4.0.93

5 months ago

4.0.92

6 months ago

4.0.91

6 months ago

4.0.76-test3

9 months ago

4.0.76-test2

9 months ago

4.0.76-test1

9 months ago

4.0.76-test6

9 months ago

4.0.76-test5

9 months ago

4.0.7-6.1

9 months ago

4.0.7-7.2

9 months ago

4.0.7-7.1

9 months ago

4.0.7-8.4

9 months ago

4.0.7-8.1

9 months ago

4.0.7-8.3

9 months ago

4.0.7-8.2

9 months ago

4.0.76-test

9 months ago

4.0.7-3.2

9 months ago

4.0.7-3.1

9 months ago

4.0.73-vite11

10 months ago

4.0.73-vite13

10 months ago

4.0.73-vite12

10 months ago

4.0.73-vite15

10 months ago

4.0.73-vite14

10 months ago

4.0.73-vite17

10 months ago

4.0.73-vite16

10 months ago

4.0.73-vite19

10 months ago

4.0.73-vite18

10 months ago

4.0.7-4.1

9 months ago

4.0.73-vite20

10 months ago

4.0.73-vite22

10 months ago

4.0.73-vite21

10 months ago

4.0.73-vite24

10 months ago

4.0.73-vite23

10 months ago

4.0.73-vite26

9 months ago

4.0.73-vite25

9 months ago

4.0.73-test

10 months ago

4.0.73-vite5

10 months ago

4.0.73-vite6

10 months ago

4.0.73-vite7

10 months ago

4.0.73-vite8

10 months ago

4.0.73-vite9

10 months ago

4.0.73-vite1

10 months ago

4.0.73-vite2

10 months ago

4.0.73-vite3

10 months ago

4.0.69

10 months ago

4.0.73-vite4

10 months ago

4.0.68

10 months ago

4.0.85

6 months ago

4.0.84

7 months ago

4.0.78-test

9 months ago

4.0.87

6 months ago

4.0.86

6 months ago

4.0.81

9 months ago

4.0.80

9 months ago

4.0.83

7 months ago

4.0.82

7 months ago

4.0.89

6 months ago

4.0.88

6 months ago

4.0.78-1

9 months ago

4.0.74

9 months ago

4.0.73

10 months ago

4.0.76

9 months ago

4.0.75

9 months ago

4.0.70

10 months ago

4.0.72

10 months ago

4.0.71

10 months ago

4.0.78

9 months ago

4.0.77

9 months ago

4.0.79

9 months ago

4.0.72-es

10 months ago

4.0.73-test1

10 months ago

4.0.73-test2

10 months ago

4.0.90

6 months ago

4.0.83-test

7 months ago

4.0.61-test

12 months ago

4.0.61-test1

12 months ago

4.0.63

12 months ago

4.0.62

12 months ago

4.0.65

12 months ago

4.0.64

12 months ago

4.0.61

12 months ago

4.0.60

12 months ago

4.0.67

11 months ago

4.0.66

11 months ago

4.0.54

1 year ago

4.0.59

1 year ago

4.0.56

1 year ago

4.0.55

1 year ago

4.0.58

1 year ago

4.0.57

1 year ago

4.0.54-test

1 year ago

4.0.52

1 year ago

4.0.51

1 year ago

4.0.53

1 year ago

4.0.50

1 year ago

4.0.49

1 year ago

4.0.48

1 year ago

4.0.45

1 year ago

4.0.47

1 year ago

4.0.46

1 year ago

4.0.46-test

1 year ago

4.0.41

1 year ago

4.0.40

1 year ago

4.0.43

1 year ago

4.0.42

1 year ago

4.0.44

1 year ago

4.0.38-test

1 year ago

4.0.39

1 year ago

3.0.18-test

1 year ago

4.0.38-test1

1 year ago

4.0.38-test5

1 year ago

4.0.38-test4

1 year ago

4.0.38-test3

1 year ago

4.0.38-test2

1 year ago

4.0.38-test6

1 year ago

4.0.34-test

1 year ago

4.0.34-test2

1 year ago

4.0.34-test3

1 year ago

4.0.34-test1

1 year ago

4.0.35-test

1 year ago

4.0.32

1 year ago

4.0.38

1 year ago

4.0.37

1 year ago

4.0.34

1 year ago

4.0.33

1 year ago

4.0.36

1 year ago

4.0.35

1 year ago

4.0.19

2 years ago

4.0.21

2 years ago

4.0.20

2 years ago

4.0.27

2 years ago

4.0.26

2 years ago

4.0.29

2 years ago

4.0.28

2 years ago

4.0.23

2 years ago

4.0.22

2 years ago

4.0.25

2 years ago

4.0.24

2 years ago

4.0.16

2 years ago

4.0.18

2 years ago

4.0.17

2 years ago

4.0.30

2 years ago

4.0.31

1 year ago

4.0.5

2 years ago

4.0.4

2 years ago

4.0.7

2 years ago

4.0.6

2 years ago

4.0.3

2 years ago

4.0.13-diet-11

2 years ago

4.0.13-diet-10

2 years ago

4.0.9

2 years ago

4.0.8

2 years ago

4.0.10

2 years ago

4.0.15

2 years ago

4.0.12

2 years ago

4.0.11

2 years ago

4.0.14

2 years ago

4.0.13

2 years ago

4.0.13-diet-7

2 years ago

4.0.13-diet-6

2 years ago

4.0.13-diet-8

2 years ago

4.0.13-diet-1

2 years ago

4.0.13-diet-3

2 years ago

4.0.13-diet-2

2 years ago

4.0.13-diet-5

2 years ago

4.0.13-diet-4

2 years ago

3.0.34

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

3.0.14-test

2 years ago

4.0.2

2 years ago

3.0.14-test1

2 years ago

3.0.28-test

2 years ago

3.0.9

2 years ago

3.0.12

2 years ago

3.0.13

2 years ago

3.0.10

2 years ago

3.0.11

2 years ago

3.0.16

2 years ago

3.0.17

2 years ago

3.0.14

2 years ago

3.0.15

2 years ago

3.0.23

2 years ago

3.0.24

2 years ago

3.0.21

2 years ago

3.0.22

2 years ago

3.0.27

2 years ago

3.0.28

2 years ago

3.0.25

2 years ago

3.0.26

2 years ago

3.0.20

2 years ago

3.0.18

2 years ago

3.0.19

2 years ago

3.0.32

2 years ago

3.0.33

2 years ago

3.0.30

2 years ago

3.0.31

2 years ago

3.0.29

2 years ago

3.1.0

2 years ago

2.45.19

2 years ago

3.0.4

2 years ago

3.0.3

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.8

2 years ago

2.46.28-test

2 years ago

3.0.7

2 years ago

3.0.6

2 years ago

3.0.5

2 years ago

2.46.30

2 years ago

2.46.28-test3

2 years ago

2.46.28-test2

2 years ago

2.45.24

2 years ago

2.45.23

2 years ago

2.45.22

2 years ago

2.45.21

2 years ago

2.45.20

2 years ago

3.0.7-test

2 years ago

2.46.14

2 years ago

2.46.13

2 years ago

2.46.18

2 years ago

2.46.17

2 years ago

2.46.16

2 years ago

2.46.15

2 years ago

2.46.19

2 years ago

2.46.25

2 years ago

2.46.24

2 years ago

2.46.23

2 years ago

2.46.22

2 years ago

2.46.29

2 years ago

2.46.28

2 years ago

2.46.27

2 years ago

2.46.26

2 years ago

2.46.21

2 years ago

2.46.20

2 years ago

2.46.9

2 years ago

2.46.8

2 years ago

2.45.17

2 years ago

2.45.16

2 years ago

2.45.15

2 years ago

2.45.18

2 years ago

2.46.12

2 years ago

2.46.11

2 years ago

2.46.10

2 years ago

2.46.7

2 years ago

2.46.6

2 years ago

2.45.13

2 years ago

2.45.14

2 years ago

2.46.5

2 years ago

2.46.4

2 years ago

2.46.1

2 years ago

2.46.0

2 years ago

2.46.3

2 years ago

2.46.2

2 years ago

2.45.9

2 years ago

2.45.6

2 years ago

2.45.5

2 years ago

2.45.8

2 years ago

2.45.7

2 years ago

2.45.12

2 years ago

2.45.11

2 years ago

2.45.10

2 years ago

2.44.13

2 years ago

2.44.14

2 years ago

2.44.15

2 years ago

2.44.10

2 years ago

2.44.11

2 years ago

2.44.12

2 years ago

2.45.2

2 years ago

2.45.4

2 years ago

2.45.3

2 years ago

2.44.9

2 years ago

2.44.8

2 years ago

2.45.0

2 years ago

2.45.1

2 years ago

2.44.1

2 years ago

2.44.0

2 years ago

2.44.7

2 years ago

2.44.6

2 years ago

2.44.3

2 years ago

2.44.2

2 years ago

2.44.5

2 years ago

2.44.4

2 years ago

2.43.12

2 years ago

2.43.13

2 years ago

2.42.44

2 years ago

2.43.14

2 years ago

2.43.15

2 years ago

2.43.10

2 years ago

2.42.43

2 years ago

2.43.11

2 years ago

2.43.16

2 years ago

2.43.17

2 years ago

2.43.18

2 years ago

2.43.19

2 years ago

2.43.20

2 years ago

2.43.21

2 years ago

2.43.8

2 years ago

2.43.7

2 years ago

2.43.9

2 years ago

2.43.6

2 years ago

2.44.6-react-17

2 years ago

2.42.34

2 years ago

2.42.33

2 years ago

2.42.36

2 years ago

2.42.35

2 years ago

2.42.30

2 years ago

2.42.32

2 years ago

2.42.31

2 years ago

2.42.38

2 years ago

2.42.37

2 years ago

2.42.39

2 years ago

2.42.41

2 years ago

2.42.40

2 years ago

2.42.42

2 years ago

2.43.2

2 years ago

2.43.1

2 years ago

2.43.4

2 years ago

2.43.3

2 years ago

2.43.5

2 years ago

2.42.19

3 years ago

2.42.23

3 years ago

2.42.22

3 years ago

2.42.25

3 years ago

2.42.24

3 years ago

2.42.21

3 years ago

2.42.20

3 years ago

2.42.27

2 years ago

2.42.26

3 years ago

2.42.29

2 years ago

2.42.28

2 years ago

2.42.16

3 years ago

2.42.18

3 years ago

2.42.17

3 years ago

2.42.14

3 years ago

2.42.13

3 years ago

2.42.15

3 years ago

2.42.9

3 years ago

2.42.8

3 years ago

2.42.12

3 years ago

2.42.11

3 years ago

2.42.10

3 years ago

2.42.5

3 years ago

2.42.4

3 years ago

2.42.7

3 years ago

2.42.6

3 years ago

2.42.3

3 years ago

2.42.1

3 years ago

2.42.2

3 years ago

2.42.0

3 years ago

2.41.13

3 years ago

2.41.12

3 years ago

2.41.9

3 years ago

2.41.11

3 years ago

2.41.10

3 years ago

2.41.8

3 years ago

2.41.6

3 years ago

2.41.5

3 years ago

2.41.7

3 years ago

2.41.4

3 years ago

2.41.3

3 years ago

2.41.2

3 years ago

2.41.1

3 years ago

2.41.0

3 years ago

2.40.2

3 years ago

2.40.1

3 years ago

2.40.0

3 years ago

2.39.0

3 years ago

2.38.7

3 years ago

2.38.6

3 years ago

2.38.5

3 years ago

2.38.4

3 years ago

2.38.3

3 years ago

2.38.2

3 years ago

2.38.1

3 years ago

2.38.0

3 years ago

2.37.2

3 years ago

2.37.1

3 years ago

2.37.0

3 years ago

2.36.1

3 years ago

2.36.0

3 years ago

2.35.0

3 years ago

2.34.9

3 years ago

2.34.8

3 years ago

2.34.7

3 years ago

2.34.6

3 years ago

2.34.5

3 years ago

2.34.4

3 years ago

2.34.3

3 years ago

2.34.2

3 years ago

2.34.1

3 years ago

2.34.0

3 years ago

2.33.6

3 years ago

2.33.5

3 years ago

2.33.3

3 years ago

2.33.4

3 years ago

2.33.2

3 years ago

2.33.1

3 years ago

2.33.0

3 years ago

2.32.15

3 years ago

2.32.14

3 years ago

2.32.13

3 years ago

2.32.9

3 years ago

2.32.11

3 years ago

2.32.10

3 years ago

2.32.12

3 years ago

2.32.8

3 years ago

2.32.7

3 years ago

2.32.6

3 years ago

2.32.2

3 years ago

2.32.4

3 years ago

2.32.3

3 years ago

2.32.5

3 years ago

2.32.0

3 years ago

2.32.1

3 years ago

2.31.1

3 years ago

2.31.2

3 years ago

2.31.0

3 years ago

2.30.0

3 years ago

2.29.0

3 years ago

2.28.0

3 years ago

2.27.7

3 years ago

2.27.6

3 years ago

2.27.5

3 years ago

2.27.4

3 years ago

2.27.3

3 years ago

2.27.2

3 years ago

2.27.1

3 years ago

2.27.0

3 years ago

2.26.2

3 years ago

2.26.1

3 years ago

2.26.0

3 years ago

2.25.0

3 years ago

2.24.0

3 years ago

2.23.1

3 years ago

2.23.0

3 years ago

2.22.0

3 years ago

2.21.5

3 years ago

2.21.4

3 years ago

2.21.3

3 years ago

2.21.2

3 years ago

2.21.1

3 years ago

2.21.0

3 years ago

2.20.0

3 years ago

2.19.0

3 years ago

2.17.2

3 years ago

2.18.0

3 years ago

2.17.1

3 years ago

2.17.0

3 years ago

2.16.0

3 years ago

2.15.2

3 years ago

2.15.0

3 years ago

2.15.1

3 years ago

2.14.0

3 years ago

2.13.0

3 years ago

3.0.0

3 years ago

2.12.0

3 years ago

2.11.2

4 years ago

2.11.1

4 years ago

2.11.0

4 years ago

2.10.1

4 years ago

2.10.2

4 years ago

2.10.0

4 years ago

2.9.0

4 years ago

2.8.1

4 years ago

2.8.0

4 years ago

2.7.0

4 years ago

2.6.0

4 years ago

2.5.0

4 years ago

2.4.0

4 years ago

2.3.0

4 years ago

2.2.0

4 years ago

2.1.0

4 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.10.1

4 years ago

1.10.0

4 years ago

1.9.0

4 years ago

1.8.1

4 years ago

1.7.2

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.1

4 years ago

1.5.4

4 years ago

1.5.3

4 years ago

1.5.2

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.3

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.0.2

4 years ago

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago