Library to build UI based on virtual DOM

Overview

vidom

Build Status NPM Version Dependencies NPM Downloads

Vidom is just a library to build UI. It's highly inspired from React and based on the same ideas. Its main goal is to provide as fast as possible lightweight implementation with API similar to React.

Main features

  • Fast virtual DOM builder and patcher under the hood
  • Update batching and synchronization with browsers rendering lifecycle by default
  • Fast server-side rendering with ability to reuse existing DOM in the browsers also known as isomorphism
  • Easy and clear way to subscribe to DOM Events
  • API to build your own high-level components
  • Namespaces support (e.g., SVG, MathML)
  • Ability to render multiple components without unwanted DOM wrappers
  • No extra markup in the result HTML
  • JSX support via babel plugin
  • TypeScript support
  • Small footprint, 9KB after gzip
  • Zero dependencies

Benchmarks

                   mean time ops/sec
  vidom v0.9.23    0.505ms   1981
  inferno v3.10.1  0.511ms   1958
  preact v8.2.6    1.414ms   707
  react v16.0.0    1.479ms   676
  vue v2.5.2       8.883ms   113

Playground

Try live playground to play with Vidom in your browser.

Documentation

Tools

  • Vidom inspector developer tool which helps debug vidom-based applications

Addons

Examples

Thanks

  • cdnjs for library is avalaible on CDN.
Comments
  • Compatibility with React

    Compatibility with React

    I've been thinking about the topic, because there're a lot of big projects written on top of React and, as I get it right, Vidom is much faster than React.

    So it might be a very interesting to make an experiment on live project: use Vidom instead of React for a part of users to get some performance metrics. If Vidom is really faster and has no big disadvantages (which could be illuminated, btw), than a lot of projects can become more faster!

    I'm sure you have thought about it too. What cons do you see here? Are there some particular qualities in Vidom which could make this experiment impossible?

    opened by vitkarpov 73
  • Is there a DOM ref issue?

    Is there a DOM ref issue?

    I know test cases work just fine, but test the example given in the readme and do an alert on 'this.getDomRef' in the 'onMount'. Is something strange for you?

    wontfix 
    opened by ghost 49
  • [WRONG] poor performance

    [WRONG] poor performance

    Hi. Notice that this lib all over have a poor performance. Use of a constructor are terrible slow. Without RAF or setTimeOut the render take 15ms. Are this going to be fixed?

    Too much overhead.

    Use of 'this' keyword everywhere are also a huge performance killer. And so are use of 'new' keyword too.

    opened by ghost 20
  • select multiple confirmed not working

    select multiple confirmed not working

    Hi. I know I'm right in everything I write to you, but... Anyhow. Select multiple comfirmed not working.

     var node = createNode("select")
                        .attrs({ multiple: "multiple", value: ["foo", "bar"] })
                        .children([
                                createNode("option").attrs({ value : "foo" }).children("foo"),
                                createNode("option").attrs({ value : "bar"}).children("bar")
                            ])
    
         var hardHeaded = node.renderToDom();
    

    If you now write come correct code, and try to get the results. It will be like this:

    Your output: 'foo

    Expected output: [ 'bar', 'foo' ]

    opened by ghost 19
  • wrapped child node issues

    wrapped child node issues

    You suggested before that child nodes in an array that are text should be wrapped in a span tag as in REACT. First issue is that this is not W3C compliant, and the second issue are if you do this in CSS: span { display: block } it would break the entire page.

    As far as I understand REACT only does this because of their "react-id" thing.

    opened by ghost 15
  • What's the difference from virtual dom libraries?

    What's the difference from virtual dom libraries?

    Здравствуйте, Дмитрий!

    С удивлением смотрю на бенчмарки, и... Не подскажете, в чём коренное отличие Vidom от прочих virtual dom-библиотек? Что придает такую скорость?

    Спасибо.

    opened by kuraga 14
  • can't mount normally anymore

    can't mount normally anymore

    I can't mount this anymore

     var element = vidom.createNode("div").attrs( { style: {  display: "block", width: "10px" }  });
    vidom.mountToDom(
    document.getElementById("fooBar"),   element);
    

    Nothing get attached if I look into the console.

    wontfix 
    opened by ghost 14
  • Unreasonable performance dbmon

    Unreasonable performance dbmon

    @dfilatov What is the secret that makes vidom, by far, the fastest dbmon implementation? By the way I've created the second fastest implementation which is not based on the virtual dom concept but instead is based on functional reactive concepts: http://templatejs.azurewebsites.net/sample/dbmon

    A year ago I started with implementation, of course inspired by React concepts because that would be the most interesting and hardest way to learn the modern javascript/typescript and it's ecosystem. First I thought 1. react.js could never be effective and will introduce ill-conceived architectures, like in case of animation, clean mvc architecture (not the bad one facebook is talking about), etc... I think Flux is an example for that and 2. won't never reach the most optimal performance because of virtual dom batching, and react is slow when compared to angular 2 and aurelia.js for example. And yet vidom is this fast? I've already used all optimalization tricks and months of refactorings, but the couple of days (no patience) there is no progress in performance, I am happy tho with second place but still curious how you did it.

    question 
    opened by ibrahimbensalah 10
  • [Q] onUnmount() behavior

    [Q] onUnmount() behavior

    Hi! README.md contains:

    onUnmount()
    The callback which will be invoked before a component is unmounted from DOM.
    

    OTOH, let's look at the fragment in createComponent.js:

    function unmountComponent() {
        this._isMounted = false;
        this._rootNode.unmount();
        this.onUnmount();
    }
    

    So, I'm wonder what is the onUnmount() behavior? Before? After?

    And at the case intention is to call it before umounting (I hope :)), I guess it's signature must include a callback (common names for it are done or next) to permit async operations, say:

    function onUnmount(el, next) {
      fetch('url').then(resp => {
        use(resp);
        next(); // real unmounting is triggered by this call!
    }
    

    Please, clarify a little :)

    opened by gaydenko 10
  • Focus lost

    Focus lost

    Let say you have created a virtual DOM tree, and want to trigger a event on a particular node in the tree.

    How you do it?

    Example "change" should be "triggered" each time you e.g. click / change it. And I can't find any use of document.activeElement, so the focus will be lost if you have 3 select and jumping from one to one?

    wontfix 
    opened by ghost 9
  • children issue !!!

    children issue !!!

    Hi. Here is another nasty issue :)

    Try to render this, what is your output?

     var dfilatov = createNode("ul").children([
              createNode("li").key(1).children("t0"), 
              createNode("li").children(["t", "1"]), 
              ]).renderToDom()
    

    Result: TypeError: children[(i++)].renderToDom is not a function Expected result: "<ul><li>t0</li><li>t1</li></ul>"

    opened by ghost 8
  • Bump url-parse from 1.4.7 to 1.5.7

    Bump url-parse from 1.4.7 to 1.5.7

    Bumps url-parse from 1.4.7 to 1.5.7.

    Commits
    • 8b3f5f2 1.5.7
    • ef45a13 [fix] Readd the empty userinfo to url.href (#226)
    • 88df234 [doc] Add soft deprecation notice
    • 78e9f2f [security] Fix nits
    • e6fa434 [security] Add credits for incorrect handling of userinfo vulnerability
    • 4c9fa23 1.5.6
    • 7b0b8a6 Merge pull request #223 from unshiftio/fix/at-sign-handling-in-userinfo
    • e4a5807 1.5.5
    • 193b44b [minor] Simplify whitespace regex
    • 319851b [fix] Remove CR, HT, and LF
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump ajv from 6.5.5 to 6.12.6

    Bump ajv from 6.5.5 to 6.12.6

    Bumps ajv from 6.5.5 to 6.12.6.

    Release notes

    Sourced from ajv's releases.

    v6.12.6

    Fix performance issue of "url" format.

    v6.12.5

    Fix uri scheme validation (@​ChALkeR). Fix boolean schemas with strictKeywords option (#1270)

    v6.12.4

    Fix: coercion of one-item arrays to scalar that should fail validation (failing example).

    v6.12.3

    Pass schema object to processCode function Option for strictNumbers (@​issacgerges, #1128) Fixed vulnerability related to untrusted schemas (CVE-2020-15366)

    v6.12.2

    Removed post-install script

    v6.12.1

    Docs and dependency updates

    v6.12.0

    Improved hostname validation (@​sambauers, #1143) Option keywords to add custom keywords (@​franciscomorais, #1137) Types fixes (@​boenrobot, @​MattiAstedrone) Docs:

    v6.11.0

    Time formats support two digit and colon-less variants of timezone offset (#1061 , @​cjpillsbury) Docs: RegExp related security considerations Tests: Disabled failing typescript test

    v6.10.2

    Fix: the unknown keywords were ignored with the option strictKeywords: true (instead of failing compilation) in some sub-schemas (e.g. anyOf), when the sub-schema didn't have known keywords.

    v6.10.1

    Fix types Fix addSchema (#1001) Update dependencies

    v6.10.0

    Option strictDefaults to report ignored defaults (#957, @​not-an-aardvark) Option strictKeywords to report unknown keywords (#781)

    v6.9.0

    OpenAPI keyword nullable can be any boolean (and not only true). Custom keyword definition changes:

    • dependencies option in to require the presence of keywords in the same schema.

    ... (truncated)

    Commits
    • fe59143 6.12.6
    • d580d3e Merge pull request #1298 from ajv-validator/fix-url
    • fd36389 fix: regular expression for "url" format
    • 490e34c docs: link to v7-beta branch
    • 9cd93a1 docs: note about v7 in readme
    • 877d286 Merge pull request #1262 from b4h0-c4t/refactor-opt-object-type
    • f1c8e45 6.12.5
    • 764035e Merge branch 'ChALkeR-chalker/fix-comma'
    • 3798160 Merge branch 'chalker/fix-comma' of git://github.com/ChALkeR/ajv into ChALkeR...
    • a3c7eba Merge branch 'refactor-opt-object-type' of github.com:b4h0-c4t/ajv into refac...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump cached-path-relative from 1.0.1 to 1.1.0

    Bump cached-path-relative from 1.0.1 to 1.1.0

    Bumps cached-path-relative from 1.0.1 to 1.1.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump codemirror from 5.42.0 to 5.58.2

    Bump codemirror from 5.42.0 to 5.58.2

    Bumps codemirror from 5.42.0 to 5.58.2.

    Release notes

    Sourced from codemirror's releases.

    5.58.2

    No release notes provided.

    5.58.1

    Version 5.58.1

    Bug fixes

    placeholder addon: Remove arrow function that ended up in the code.

    5.58.0

    Version 5.58.0

    Bug fixes

    Make backspace delete by code point, not glyph.

    Suppress flickering focus outline when clicking on scrollbars in Chrome.

    Fix a bug that prevented attributes added via markText from showing up unless the span also had some other styling.

    Suppress cut and paste context menu entries in readonly editors in Chrome.

    placeholder addon: Update placeholder visibility during composition.

    New features

    Make it less cumbersome to style new lint message types.

    vim bindings: Support black hole register, gn and gN

    5.57.0

    Version 5.57.0

    Bug fixes

    Fix issue that broke binding the macOS Command key.

    comment addon: Keep selection in front of inserted markers when adding a block comment.

    css mode: Recognize more properties and value names.

    annotatescrollbar addon: Don't hide matches in collapsed content.

    New features

    vim bindings: Support tag text objects in xml and html modes.

    ... (truncated)

    Changelog

    Sourced from codemirror's changelog.

    5.58.2 (2020-10-23)

    Bug fixes

    Fix a bug where horizontally scrolling the cursor into view sometimes failed with a non-fixed gutter.

    julia mode: Fix an infinite recursion bug.

    5.58.1 (2020-09-23)

    Bug fixes

    placeholder addon: Remove arrow function that ended up in the code.

    5.58.0 (2020-09-21)

    Bug fixes

    Make backspace delete by code point, not glyph.

    Suppress flickering focus outline when clicking on scrollbars in Chrome.

    Fix a bug that prevented attributes added via markText from showing up unless the span also had some other styling.

    Suppress cut and paste context menu entries in readonly editors in Chrome.

    placeholder addon: Update placeholder visibility during composition.

    New features

    Make it less cumbersome to style new lint message types.

    vim bindings: Support black hole register, gn and gN

    5.57.0 (2020-08-20)

    Bug fixes

    Fix issue that broke binding the macOS Command key.

    comment addon: Keep selection in front of inserted markers when adding a block comment.

    css mode: Recognize more properties and value names.

    annotatescrollbar addon: Don't hide matches in collapsed content.

    New features

    vim bindings: Support tag text objects in xml and html modes.

    ... (truncated)

    Commits
    • 264022e Mark version 5.58.2
    • 23b7a99 Add WebAssembly to meta
    • 212bafa [stylus mode] Recognize "url-prefix" token properly
    • 9885241 [javascript mode] Don't indent in template strings
    • 9caacec [sparql mode] Improve parsing of IRI atoms
    • 55d0333 [javascript mode] Fix potentially-exponential regexp
    • cdb228a Fix horizontal scrolling-into-view with non-fixed gutters
    • 1cb6de2 Fix doc/releases.html copy-paste mistake
    • 719a912 Fixes #6402. Adds option to turn off highlighting of non-standard CSS properties
    • 8bc57f7 Remove link to gitter room
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump y18n from 4.0.0 to 4.0.1

    Bump y18n from 4.0.0 to 4.0.1

    Bumps y18n from 4.0.0 to 4.0.1.

    Changelog

    Sourced from y18n's changelog.

    Change Log

    All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

    5.0.5 (2020-10-25)

    Bug Fixes

    5.0.4 (2020-10-16)

    Bug Fixes

    • exports: node 13.0 and 13.1 require the dotted object form with a string fallback (#105) (4f85d80)

    5.0.3 (2020-10-16)

    Bug Fixes

    • exports: node 13.0-13.6 require a string fallback (#103) (e39921e)

    5.0.2 (2020-10-01)

    Bug Fixes

    5.0.1 (2020-09-05)

    Bug Fixes

    5.0.0 (2020-09-05)

    ⚠ BREAKING CHANGES

    • exports maps are now used, which modifies import behavior.
    • drops Node 6 and 4. begin following Node.js LTS schedule (#89)

    Features

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by oss-bot, a new releaser for y18n since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump elliptic from 6.4.0 to 6.5.4

    Bump elliptic from 6.4.0 to 6.5.4

    Bumps elliptic from 6.4.0 to 6.5.4.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v0.11.5)
Owner
Filatov Dmitry
Filatov Dmitry
A virtual traning coach.

fitzome A virtual coach to do - Refactor code (Flat list ones) - Allow users to update their workouts - Add remote config Writing and formatting synt

pedro rivas 16 Dec 30, 2022
🐐 Simple and complete React DOM testing utilities that encourage good testing practices.

React Testing Library Simple and complete React DOM testing utilities that encourage good testing practices. Read The Docs | Edit the docs Table of Co

Testing Library 17.3k Jan 4, 2023
A highly impartial suite of React components that can be assembled by the consumer to create a carousel with almost no limits on DOM structure or CSS styles.

A highly impartial suite of React components that can be assembled by the consumer to create a carousel with almost no limits on DOM structure or CSS styles. If you're tired of fighting some other developer's CSS and DOM structure, this carousel is for you.

Vladimir Bezrukov 1 Dec 24, 2021
a more intuitive way of defining private, public and common routes for react applications using react-router-dom v6

auth-react-router is a wrapper over react-router-dom v6 that provides a simple API for configuring public, private and common routes (React suspense r

Pasecinic Nichita 12 Dec 3, 2022
Further split the React Native code based on Metro build to improve performance, providing `Dll` and `Dynamic Imports` features

React-Native Code Splitting Further split the React Native code based on Metro build to improve performance, providing Dll and Dynamic Imports feature

Wuba 126 Dec 29, 2022
Edvora App is a web application based on an external API, showing data about different types of products and the user can filter these data by choosing a specific state, city or product name. Build with React.js

Edvora App is a web application based on an external API, showing data about different types of products and the user can filter these data by choosing a specific state, city or product name. Build with React.js

Kyrillos Hany 5 Mar 11, 2022
Material-UI is a simple and customizable component library to build faster, beautiful, and more accessible React applications. Follow your own design system, or start with Material Design.

Material-UI Quickly build beautiful React apps. Material-UI is a simple and customizable component library to build faster, beautiful, and more access

Material-UI 83.6k Dec 30, 2022
✌️ A spring physics based React animation library

react-spring is a spring-physics based animation library that should cover most of your UI related animation needs. It gives you tools flexible enough

Poimandres 24.7k Dec 28, 2022
A small component based app library composing user interfaces and apps.

See https://vibejs.com for ongoing documentation and info. VibeJS A small component based JavaScript library to build user interfaces and apps. If you

Bret 20 Nov 16, 2022
A component library based on Material Design 3 & Web Components

material-web-entity Material Web Entity A component library based on Material Design & Web Components Go to link to see what components this library s

HugePancake 5 Jun 3, 2022
Build blazing fast, modern apps and websites with React

Gatsby v3 ⚛️ ?? ?? Fast in every way that matters Gatsby is a free and open source framework based on React that helps developers build blazing fast w

Gatsby 54k Jan 9, 2023
Build forms in React, without the tears 😭

Build forms in React, without the tears. Visit https://formik.org to get started with Formik. Organizations and projects using Formik List of organiza

Formium 31.7k Jan 5, 2023
🏎 A set of primitives to build simple, flexible, WAI-ARIA compliant React autocomplete, combobox or select dropdown components.

downshift ?? Primitives to build simple, flexible, WAI-ARIA compliant React autocomplete, combobox or select dropdown components. Read the docs | See

Downshift 11.1k Dec 28, 2022
Boilerplate to build Cross-Platform Apps with Expo and React Native

Expo and React Native Boilerplate Boilerplate to build Cross-Platform Apps with Expo and React Native What are you going to find in this boilerplate E

José Ferrer 26 Apr 29, 2022
Demo site build in Umbraco v.9.0.0-beta004 and .NET Core 5.0

Umbraco v9 Demo Demo site build in Umbraco v.9.0.0-beta004 and .NET Core 5.0. About this solution: This is a demo site for Umbraco v9 build in the new

Dennis Adolfi 61 Dec 18, 2022
Source code for my tutorial on how to build customizable table component with React Table and Tailwind CSS.

React Table + Tailwind CSS = ❤️ Source code for my tutorial on how to build customizable table component with React Table and Tailwind CSS. Both parts

Samuel Liedtke 147 Jan 7, 2023
This is my portfolio GitHub clone website. The frontend is build using NextJS and TailwindCSS.

Github Clone Portfolio Website Tech Stack used: NextJS Tailwind CSS The contact form in this website is connected to Notion. If you want to integrate

Unnati Bamania 22 Oct 5, 2022
Build Google 2.0 with Tailwind CSS & Next.js for Education Purpose..

Paradise of Creativity Parimal Nakrani This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server:

Parimal Nakrani 1 Dec 21, 2021
Build Instagram 2.0 with Next.js (Firebase v9, Tailwind CSS, NextAuth, Recoil) for the Education Purpose..

This example shows how to use Tailwind CSS (v3.0) with Next.js. It follows the steps outlined in the official Tailwind docs.

Parimal Nakrani 1 Dec 24, 2021