Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
257 changes: 255 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,255 @@
# react-ui-components
Syncfusion React UI Components library has been built from the ground up to be lightweight, responsive, modular and touch friendly. It offers 14+ UI components that every applications will ever need.
# Syncfusion Pure React UI Components Library

Syncfusion Pure React UI Components library has been built from the ground up to be lightweight, responsive, modular and touch friendly. It offers 15+ UI components that every applications will ever need.

> This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's [EULA](https://www.syncfusion.com/eula/es/). To acquire a license for [React UI components](https://www.syncfusion.com/react-components), you can [purchase](https://www.syncfusion.com/sales/products) or [start a free 30-day trial](https://www.syncfusion.com/account/manage-trials/start-trials).

> A [free community license](https://www.syncfusion.com/products/communitylicense) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.

See [LICENSE FILE](https://github.com/syncfusion/react-ui-components/blob/master/license?utm_source=npm&utm_campaign=notification) for more info.


## Resources
* [Getting Started](https://react.syncfusion.com/getting-started/introduction)
* [View Online Demos](https://react.syncfusion.com/button)

## Pure React Components highlights

### Built for Modern React
These components are built entirely using React’s modern architecture, leveraging functional components and hooks rather than relying on class-based components, wrappers. This ensures seamless integration with any modern React application and gives developers full control using idiomatic React patterns.

### Fully Reactive by Design
Components automatically respond to state and prop changes without manual refreshes, ensuring predictable UI updates.

### Smarter Rendering for Better UX
Optimized rendering logic refreshes only what’s necessary, improving performance and user experience.

### Active State Preservation
Interactions like focused inputs or selected items remain intact even when the surrounding state changes. This preserves the user's context and ensures a consistent, uninterrupted experience.

### Native Template Rendering
Templates are rendered using pure JSX, in line with React’s rendering lifecycle.

### Performance-Driven Architecture
From architecture to execution, every detail has been considered to boost performance. With fewer renders, leaner updates, and smarter state handling, apps feel faster and more responsive.

### Material 3 Theming
Built-in Material 3 stylesheets provide a modern, accessible design out of the box. Enjoy sharp visuals, consistent theming, and minimal setup.

## Control List

### Buttons

<table>
<tr>
<td>
<b>Button</b>
</td>
<td rowspan="4">
<a href="https://www.npmjs.com/package/@syncfusion/react-buttons"><img src="https://ej2.syncfusion.com/github/images/npm-logo.png" alt="npm package @syncfusion/react-buttons" title="@syncfusion/react-buttons" style="height:20px;" />
</td>
<td>
<a href="components/buttons/src/button">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/button">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>Chip</b>
</td>
<td>
<a href="components/buttons/src/chip">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/chip">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>ChipList</b>
</td>
<td>
<a href="components/buttons/src/chipList">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/chiplist">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>Floating Action Button</b>
</td>
<td>
<a href="components/buttons/src/floating-action-button">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/floating-action-button">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>Dropdown Button</b>
</td>
<td rowspan="2">
<a href="https://www.npmjs.com/package/@syncfusion/react-splitbuttons"><img src="https://ej2.syncfusion.com/github/images/npm-logo.png" alt="npm package @syncfusion/react-splitbuttons" title="@syncfusion/react-splitbuttons" style="height:20px;" />
</td>
<td>
<a href="components/splitbuttons/src/dropdown-button">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/dropdown-button">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>Split Button</b>
</td>
<td>
<a href="components/splitbuttons/src/split-button">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/split-button">Live demo</a>
</td>
</tr>
</table>

### Notifications

<table>
<tr>
<td>
<b>Toast</b>
</td>
<td rowspan="3">
<a href="https://www.npmjs.com/package/@syncfusion/react-notifications"><img src="https://ej2.syncfusion.com/github/images/npm-logo.png" alt="npm package @syncfusion/react-notifications" title="@syncfusion/react-notifications" style="height:20px;" />
</td>
<td>
<a href="components/notifications/src/toast">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/toast">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>Skeleton</b>
</td>
<td>
<a href="components/notifications/src/skeleton">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/skeleton">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>Message</b>
</td>
<td>
<a href="components/notifications/src/message">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/message">Live demo</a>
</td>
</tr>
</table>

### Inputs

<table>
<tr>
<td>
<b>Numeric TextBox</b>
</td>
<td rowspan="3">
<a href="https://www.npmjs.com/package/@syncfusion/react-inputs"><img src="https://ej2.syncfusion.com/github/images/npm-logo.png" alt="npm package @syncfusion/react-inputs" title="@syncfusion/react-inputs" style="height:20px;" />
</td>
<td>
<a href="components/inputs/src/numerictextbox">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/numeric-textbox">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>TextBox</b>
</td>
<td>
<a href="components/inputs/src/textbox">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/textbox">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>TextArea</b>
</td>
<td>
<a href="components/inputs/src/textarea">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/textarea">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>Checkbox</b>
</td>
<td rowspan="3">
<a href="https://www.npmjs.com/package/@syncfusion/react-buttons"><img src="https://ej2.syncfusion.com/github/images/npm-logo.png" alt="npm package @syncfusion/react-buttons" title="@syncfusion/react-buttons" style="height:20px;" />
</td>
<td>
<a href="components/buttons/src/button">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/checkbox">Live demo</a>
</td>
</tr>
<tr>
<td>
<b>Radio Button</b>
</td>
<td>
<a href="components/buttons/src/radio-button">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/radio-button">Live demo</a>
</td>
</tr>
</table>

### Layout

<table>
<tr>
<td>
<b>Tooltip</b>
</td>
<td>
<a href="https://www.npmjs.com/package/@syncfusion/react-popups"><img src="https://ej2.syncfusion.com/github/images/npm-logo.png" alt="npm package @syncfusion/react-popups" title="@syncfusion/react-popups" style="height:20px;" />
</td>
<td>
<a href="components/popups/src/tooltip">Source</a>
</td>
<td>
<a href="https://react.syncfusion.com/tooltip">Live demo</a>
</td>
</tr>
</table>

## Support
Product support is available for through following mediums.
* Creating incident in Syncfusion [Direct-trac](https://www.syncfusion.com/support/directtrac/incidents?utm_source=npm&utm_campaign=react-ui-components) support system or [Community forum](https://www.syncfusion.com/forums/pure-react?utm_source=npm&utm_campaign=react-ui-components).
* New [GitHub issue](https://github.com/syncfusion/react-ui-components/issues/new).
* Ask your query in [Stack Overflow](https://stackoverflow.com/) with tag `syncfusion` and `react-pure`.
## License
Check the license detail [here](https://github.com/syncfusion/react-ui-components/blob/master/license).

## Changelog
Check the changelog [here](https://react-api.syncfusion.com/api/release-notes/29.2.4).

&copy; Copyright 2025 Syncfusion, Inc. All Rights Reserved. The Syncfusion Essential Studio license and copyright applies to this distribution.
3 changes: 3 additions & 0 deletions components/base/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Changelog

## [Unreleased]
46 changes: 46 additions & 0 deletions components/base/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# React Base Library

A common package of Essential® studio react components which contains base libraries, providers and functions.

**Key Features**

* Animation
* Ripple
* Internationalization
* Localization
* Right to Left

<p align="center">
Trusted by the world's leading companies
<a href="https://www.syncfusion.com/">
<img src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/syncfusion/syncfusion-trusted-companies.webp" alt="Syncfusion logo">
</a>
</p>

## Setup

To install `base` and its dependent packages, use the following command,

```sh
npm install @syncfusion/react-base
```

## Support

Product support is available through following mediums.

* [Support ticket](https://support.syncfusion.com/support/tickets/create) - Guaranteed Response in 24 hours | Unlimited tickets | Holiday support
* Live chat

## Changelog
Check the changelog [here](https://github.com/syncfusion/react-ui-components/blob/master/components/base/CHANGELOG.md). Get minor improvements and bug fixes every week to stay up to date with frequent updates.

## License and copyright

> This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's [EULA](https://www.syncfusion.com/eula/es/). To acquire a license for [React UI components](https://www.syncfusion.com/react-components), you can [purchase](https://www.syncfusion.com/sales/products) or [start a free 30-day trial](https://www.syncfusion.com/account/manage-trials/start-trials).

> A [free community license](https://www.syncfusion.com/products/communitylicense) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.

See [LICENSE FILE](https://github.com/syncfusion/react-ui-components/blob/master/license?utm_source=npm&utm_campaign=notification) for more info.

&copy; Copyright 2025 Syncfusion, Inc. All Rights Reserved. The Syncfusion Essential Studio license and copyright applies to this distribution.
52 changes: 52 additions & 0 deletions components/base/gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
var gulp = require('gulp');
const sass = require('gulp-sass')(require('sass'));

/**
* Compile ts files
*/
gulp.task('scripts', function(done) {
var ts = require('gulp-typescript');
var tsProject = ts.createProject('./tsconfig.json', {
typescript: require('typescript'),
declaration: true
});
var tsResult = gulp.src(['./src/**/*.ts','./src/**/*.tsx', '!./node_modules/**/*.ts','!./node_modules/**/*.tsx'], { base: '.' })
.pipe(tsProject());
tsResult.js.pipe(gulp.dest('./'))
.on('end', function() {
tsResult.dts.pipe(gulp.dest('./'))
.on('end', function() {
done();
});
});
});

/**
* Compile styles
*/
let isCompiled = true;
gulp.task('styles', function (done) {
var styles = './styles/**/*.scss';
return gulp.src(styles, { base: './' })
.pipe(sass({
outputStyle: 'expanded',
includePaths: "./node_modules/@syncfusion/"
}).on('error', function (error) {
isCompiled = false;
console.log(error);
this.emit('end');
}))
.pipe(gulp.dest('.'))
.on('end', function () {
if (!isCompiled) {
process.exit(1);
}
done();
});
});

/**
* Build ts and scss files
*/
gulp.task('build', gulp.series('scripts', 'styles'));

13 changes: 13 additions & 0 deletions components/base/license
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Syncfusion® License

Copyright (c) Syncfusion®, Inc. All rights reserved.

Essential® JS 2 library is available through the Syncfusion® Essential Studio® program and can be licensed under either the Syncfusion® Community License Program or the Syncfusion® Commercial License.

To qualify for the Syncfusion® Community License Program, your organization must have annual gross revenue of less than one (1) million U.S. dollars ($1,000,000.00 USD) per year and fewer than five (5) developers. Additionally, you must agree to Syncfusion®’s terms and conditions.

If you do not meet the requirements for the community license, please reach out to sales@syncfusion.com for commercial licensing options.

You are required to obtain either a Community License or a Commercial License before using this product and must agree to comply with Syncfusion®'s terms and conditions.

The full Syncfusion® license, including terms and conditions, can be found at: https://www.syncfusion.com/content/downloads/syncfusion_license.pdf
Loading