• Stars
    star
    2,511
  • Rank 18,278 (Top 0.4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 10 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Configurable React Components with great UX

Belle

Configurable React Components with great UX.

Website & Documentation: http://nikgraf.github.io/belle/

Build Status Dependency Status peerDependency Status

Getting Started

Belle is available as npm package. Once you have npm you can install Belle in your project folder with:

npm install belle

Import & use Belle Components

We recommend you to get started with React first. Once you have a simple application setup you can import any Belle component and use it right away. No stylesheets, font or any other prerequisite needed.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
</head>
<body>
  <div id="react-root"></div>
  <!--
    You can use browserify, webpack or similar tools
    to compile & combine your JSX code
  -->
  <script src="bundle.js"></script>
</body>
</html>
var React = require('react');
var belle = require('belle');
var TextInput = belle.TextInput;

var App = React.createClass({

  render: function() {
    return (
      <div>
        <TextInput defaultValue="Update here and see how the input grows …" />
      </div>
    );
  }
});

React.render(<App/>, document.getElementById('react-root'));

Learn more

In addition you can dig through the documentation to learn about how to modify Belle components.

Browser Support

  • Chrome (mobile and desktop)
  • Safari (mobile and desktop)
  • Firefox
  • Internet Explorer 9, 10, 11

Philosophy

"Great UX starts with a good UI"

With Belle I'm aiming to provide a library that follows a couple well established principles. While some of them might not be consider best practice today We believe they will become some day in the near future.

Easy to use

The most important attribute of any great experience is that there was no hassle to achieve the initial goals.

Consistent Behavior

Every object someone interacts with has it's own little language. This language must be learned by everyone getting in touch with a new set of object. In order to provide a great experience the amount to learn should be reduced to a minimum.

There are two major personalities to target with Belle. One is the developer. For him/her APIs should be provided in a consistent way through all components. The other and more important is the users of the components. Every color, animation or behavior should be aligned with the other components to provide a great experience.

Encapsulate Styles

There is no reason while a style designed one specific element should affect others. In CSS styles are often defined by overwriting previous ones and introducing deeper and deeper nesting. Once nesting is introduced resolution of styles for one specific element is not a trivial task anymore. Due this managing CSS dependencies is hard. It is hard to predict how an application looks like after updating or removing dependency.

That's why with Belle styles should apply to the components themselves in the DOM. By doing so the visual appearance and business logic are combined in location.

Every Interaction is followed up with Feedback

Let people know how their behavior affects the system. It assures them that their input was acknowledged which provides them with a feeling of control over the system.

High Performance

The user should see affects of their actions instantly. Any delay can cause confusion and frustration. While instant certainly is not always possible Belle strives to provide an experience close to instant.

Development

You can install the development environment with

npm install

npm run build will trigger a build into the lib folder. To develop a component it's convenient to use the examples or docs application.

Run the examples or docs application

To run the examples or docs you go into the folder docs or examples and run npm install and npm start. The app will run with hot reloading on http://localhost:3000.

Tests

In order to run the tests use

npm test

To run the test continuously you can use npm run test:watch.

Discussion or need help?

In addition you can ask the community by posting your question to StackOverflow with the belle tag..

Future Plans

  • Components to add: Dateformatter, Datepicker, Tooltip, Popover, Modal, Navigation Menu, NumberInput, EmailInput, Anchor, DropZone

Special Thanks

Thanks to Andrey Popp & Eugene for their inspiring work on React TextArea Autosize which kind of ignited the idea of Belle.

Thanks to Christian Steiner from http://www.cropd.at/ for creating the logo and helping out with the design.

Special thanks to Jyoti Puri for the tremendous amount of work she put into this endeavor.

License

MIT

More Repositories

1

awesome-draft-js

Awesome list of Draft.js resources
2,482
star
2

react-hooks

Collection of React Hooks
JavaScript
1,116
star
3

webvr-experiments

A collection of React VR & A-Frame experiments
JavaScript
680
star
4

awesome-react-360

Awesome list of React VR resources
515
star
5

CarteJaune

A React Native/Redux (+Saga) app to keep track of your vaccinations.
JavaScript
209
star
6

future-react-ui

A Playground to investigate third-party React UI Lib Architecture
JavaScript
166
star
7

graphiql-spark

Demo a GraphQL schema without a GraphQL endpoint
TypeScript
83
star
8

react-yjs

React hooks for Yjs
TypeScript
60
star
9

react-reduce-stress

The name says it all
TypeScript
56
star
10

graphql-apollo-client-course

JavaScript
54
star
11

2020-05-react-advanced

TypeScript
48
star
12

2020-06-react-advanced

TypeScript
43
star
13

vienna-guide

A simple City Guide for Vienna built with Reason & React
OCaml
28
star
14

automerge-jumpstart

A boilerplate for building real-time collaborative editing applications with Automerge, React, tRPC, and more.
TypeScript
26
star
15

serverless-framework-course

JavaScript
22
star
16

exploring-angular.dart

Exploring Angular.dart while pairing with Edi
19
star
17

2023-react-advanced

TypeScript
18
star
18

webassembly-rust-course

Rust
16
star
19

2019-10-reason-workshop

React Advanced Reason Workshop
JavaScript
13
star
20

2019-react-finland-workshop

JavaScript
12
star
21

react-vr-course

Build Virtual Reality Experiences Using React VR
JavaScript
12
star
22

revery-memory-dojo

OCaml
12
star
23

vimfiles

Vimfiles for mainly Python/Javascript/Ruby Programming
Vim Script
10
star
24

reason-apollo-hooks

OCaml
10
star
25

2022-09-react-advanced

TypeScript
10
star
26

design-graphql-schemas-workshop

JavaScript
8
star
27

ar-app

AR App using React & ViewAR SDK
JavaScript
8
star
28

designing-graphql-schemas-course

JavaScript
8
star
29

reasonconf-workshop

Feedback form: https://docs.google.com/forms/d/e/1FAIpQLSduti27Gold0T3WDtSe04Hi3V-yaBG0ChqAbS-t3-qoe4qsbA/viewform
C++
8
star
30

2020-03-graphql-schema-design

JavaScript
7
star
31

upleveled-lessons

JavaScript
7
star
32

2022-06-react-advanced

TypeScript
6
star
33

gae-path

Small Helper to find your App Engine SDK Path
6
star
34

2020-03-graphql-errors-and-security

JavaScript
5
star
35

redux-universal-app

JavaScript
5
star
36

revery-memory

OCaml
5
star
37

brunch-with-backbone-relational

An example how to use brunch with backbone-relational.js
JavaScript
4
star
38

js-codemod

A collection of codemods
JavaScript
4
star
39

2019-11-graphql-beginner-workshop

JavaScript
4
star
40

reason-react-examples

OCaml
4
star
41

reason-workshop-2

OCaml
4
star
42

workshop

JavaScript
4
star
43

2024-react-workshop

TypeScript
4
star
44

2019-11-react-beginner-workshop

JavaScript
3
star
45

datepicker-polymer-dart-example

Demonstration how to wrap a jQuery UI Widget inside a Polymer.dart component
Dart
3
star
46

2020-01-graphql-workshop

TypeScript
3
star
47

2023-02-react-all-the-things-workshop

TypeScript
2
star
48

plugin-architecture-prototype

JavaScript
2
star
49

workshop-examples

Set of simple examples for my workshops
JavaScript
2
star
50

nesting-components

Example to point our my issue nesting components in packages
Dart
2
star
51

my-first-ai

JavaScript
2
star
52

2019-05-reason-workshop

React Europe Reason Workshop
C++
2
star
53

serenity-macos-test

Objective-C
1
star
54

2019-11-redux-workshop

JavaScript
1
star
55

belle-playground

Playground for Belle
1
star
56

sam-workshop

JavaScript
1
star
57

alarm

A small example app using Dart's polymer package
Dart
1
star
58

String

Exploring how Belt's String implementation could look like
1
star
59

upleveled-exercise

JavaScript
1
star
60

server-experiment

JavaScript
1
star
61

jest-bug-example

JavaScript
1
star
62

js-template-comparison

This project contains different implementations of various JavaScript template engines.
CoffeeScript
1
star
63

router-6

1
star
64

cryptography-benchmark

TypeScript
1
star