Skip to content
/ funda-ui Public

React components using pure Bootstrap 5+ which has undergone complex business testing and is easy to integrate with any API

Notifications You must be signed in to change notification settings

xizon/funda-ui

Repository files navigation

Funda UI

Funda UI

React components using pure Bootstrap 5+ which has undergone complex business testing and is easy to integrate with any API. You can load Bootstrap css libraries separately in your project.

All components have undergone complex business verification and provide multiple examples.

Funda UI



Key Features

  1. Simplify the assignment method of diversified data.
  2. Components are compatible with gRPC, REST APIs, GraphQL self-packaging, uniformly use Classes and their methods to introduce interfaces
  3. Enhanced user interaction, flexible use in asynchronous and synchronous states
  4. Introduce appropriate component .css files as needed, only for some components with special needs. Most of them can directly use Bootstrap's official style sheet.
  5. Do not embed css-in-js, directly use external CSS styles to completely change the component style.

Components List

Here is a table of the components and their status.

WEB ELEMENTS FORMS INTERACTION NAVIGATION LAYOUTS
Accordion βœ… Input βœ… Infinite Scroll ❏ Multilevel Dropdown Menu βœ… MasonryLayout βœ…
Accordion Slider ❏ Number Input βœ… Image Perspective Hover ❏ Dropdown Menu βœ… RootPortal βœ…
Back To Top βœ… Merge Input ❏ Mousewheel Interaction ❏
Button ❏ Tag Input βœ… Parallax ❏
Card ❏ Textarea βœ… Scroll Reveal βœ…
Content Placeholder ❏ NativeSelect βœ… Sticky Elements ❏
Counter ❏ Cascading Select βœ… Mode Switch βœ…
Hybrid Content Slider ❏ Cascading Select End-to-end βœ…πŸ”₯ Custom Scrollbar βœ…
Image Shapes ❏ Radio βœ… Horizontal Scroll Content βœ…
Lightbox ❏ Checkbox βœ…
List Bulleted ❏ Select βœ…πŸ”₯
Modal Dialog βœ…πŸ”₯ Live Search βœ…
Pagination βœ… Number ❏
Table βœ…πŸ”₯ SearchBar βœ…
Periodical Scroll ❏ Switch βœ…
Progress Bar ❏ Dynamic Fields βœ…πŸ”₯
Rating ❏ File βœ…
Seamless Scrolling Element ❏ File Field ❏
Show More Less βœ… Range Slider βœ…
Slideshow ❏ Color Picker βœ…
Tabs βœ… MultipleCheckboxes βœ…
Timeline ❏ MultipleSelect βœ…πŸ”₯
Toast βœ… Date βœ…πŸ”₯
Tooltip βœ…
Digital Clock βœ…
Tree βœ…πŸ”₯
Event Calendar βœ…πŸ”₯
Event Calendar Timeline βœ…πŸ”₯

Usage

Step 1. You need to install it:

$ npm i funda-ui

or

$ pnpm add funda-ui

Step 2. Using Bootstrap CSS together (recommended)

Download bootstrap

<link href="./bootstrap.min.css" rel="stylesheet"/>

You could remove Bootstrap's styles. All components support setting Bootstrap's default class names through **ClassName attributes.

Step 3. import required components as required

If the component does not have a CSS file, it can not be imported, or use own CSS.

import Input from 'funda-ui/Input';
import Textarea from 'funda-ui/Textarea';
import CascadingSelect from 'funda-ui/CascadingSelect';

// component styles
import 'funda-ui/CascadingSelect/index.css';

or

import { 
    Input,
    Textarea,
    CascadingSelect
} from 'funda-ui';

// component styles
import 'funda-ui/CascadingSelect/index.css';

or

const Input = require('funda-ui').Input;
const Textarea = require('funda-ui').Textarea;
const CascadingSelect = require('funda-ui').CascadingSelect;

// component styles
import 'funda-ui/CascadingSelect/index.css';

Getting Started

Make sure if Node 14+ is installed on your computer.

Step 1: Create a new Lerna workspace by running:

$ cd /{your_directory}/funda-ui
$ npx lerna init

Step 2: Install dependencies (Required)

It will automatically install the dependencies of all resources in packages/ without duplication.

$ npm install

Step 3: To open the visualization, run:

$ npx nx graph

Step 4: To build all projects, run

$ npx lerna run build

or Build the package you want (recommend):

$ npx lerna run build --scope=plugin-1 --scope=plugin-2

Please do not install lerna globally to use lerna run build

Step 5: (optional) Use a custom script like:

$ npx lerna exec npm run export --scope=plugin-2

Publish the lib of components, it will hang on NPM:

$ npm run build:lib
$ npm run build:publish

(Optional) Update Utils

$ npx lerna run build --scope=funda-utils
$ npm i
$ npx lerna run build

(Optional) Manually generate .d.ts files, you can execute

$ npx -p typescript tsc lib/cjs/*.js --declaration --allowJs --emitDeclarationOnly

Contributing

Licensing

Licensed under the MIT.