Giter VIP home page Giter VIP logo

react-countup's Introduction

GitHub license Build Status Coverage Status Version Downloads Gzip size

A configurable React component wrapper around CountUp.js.

Click here to view on CodeSandbox.

Previous docs

react-countup

Table of Contents

Installation

yarn add react-countup

Usage

import CountUp from 'react-countup';

Simple example

<CountUp end={100} />

This will start a count up transition from 0 to 100 on render.

Render prop example

<CountUp
  start={-875.039}
  end={160527.012}
  duration={2.75}
  separator=" "
  decimals={4}
  decimal=","
  prefix="EUR "
  suffix=" left"
  onEnd={() => console.log('Ended! 👏')}
  onStart={() => console.log('Started! 💨')}
>
  {({ countUpRef, start }) => (
    <div>
      <span ref={countUpRef} />
      <button onClick={start}>Start</button>
    </div>
  )}
</CountUp>

The transition won't start on initial render as it needs to be triggered manually here.

Tip: If you need to start the render prop component immediately, you can set delay={0}.

More examples

Manually start with render prop

<CountUp start={0} end={100}>
  {({ countUpRef, start }) => (
    <div>
      <span ref={countUpRef} />
      <button onClick={start}>Start</button>
    </div>
  )}
</CountUp>

Autostart with render prop

Render start value but start transition on first render:

<CountUp start={0} end={100} delay={0}>
  {({ countUpRef }) => (
    <div>
      <span ref={countUpRef} />
    </div>
  )}
</CountUp>

Note that delay={0} will automatically start the count up.

Delay start

<CountUp delay={2} end={100} />

Hook

Simple example

import { useCountUp } from 'react-countup';

const SimpleHook = () => {
  useCountUp({ ref: 'counter', end: 1234567 });
  return <span id="counter" />;
};

Complete example

import { useCountUp } from 'react-countup';

const CompleteHook = () => {
  const countUpRef = React.useRef(null);
  const { start, pauseResume, reset, update } = useCountUp({
    ref: countUpRef,
    start: 0,
    end: 1234567,
    delay: 1000,
    duration: 5,
    onReset: () => console.log('Resetted!'),
    onUpdate: () => console.log('Updated!'),
    onPauseResume: () => console.log('Paused or resumed!'),
    onStart: ({ pauseResume }) => console.log(pauseResume),
    onEnd: ({ pauseResume }) => console.log(pauseResume),
  });
  return (
    <div>
      <div ref={countUpRef} />
      <button onClick={start}>Start</button>
      <button onClick={reset}>Reset</button>
      <button onClick={pauseResume}>Pause/Resume</button>
      <button onClick={() => update(2000)}>Update to 2000</button>
    </div>
  );
};

API

Props

className: string

CSS class name of the span element.

Note: This won't be applied when using CountUp with render props.

decimal: string

Specifies decimal character.

Default: .

decimals: number

Amount of decimals to display.

Default: 0

delay: number

Delay in seconds before starting the transition.

Default: null

Note: delay={0} will automatically start the count up.

duration: number

Duration in seconds.

Default: 2

end: number

Target value.

prefix: string

Static text before the transitioning value.

redraw: boolean

Forces count up transition on every component update.

Default: false

preserveValue: boolean

Save previously ended number to start every new animation from it.

Default: false

separator: string

Specifies character of thousands separator.

start: number

Initial value.

Default: 0

plugin: CountUpPlugin

Define plugin for alternate animations

startOnMount: boolean

Use for start counter on mount for hook usage.

Default: true

suffix: string

Static text after the transitioning value.

useEasing: boolean

Enables easing. Set to false for a linear transition.

Default: true

useGrouping: boolean

Enables grouping with separator.

Default: true

useIndianSeparators: boolean

Enables grouping using indian separation, f.e. 1,00,000 vs 100,000

Default: false

easingFn: (t: number, b: number, c: number, d: number) => number

Easing function. Click here for more details.

Default: easeInExpo

formattingFn: (value: number) => string

Function to customize the formatting of the number.

To prevent component from unnecessary updates this function should be memoized with useCallback

enableScrollSpy: boolean

Enables start animation when target is in view.

scrollSpyDelay: number

Delay (ms) after target comes into view

scrollSpyOnce: boolean

Run scroll spy only once

onEnd: ({ pauseResume, reset, start, update }) => void

Callback function on transition end.

onStart: ({ pauseResume, reset, update }) => void

Callback function on transition start.

onPauseResume: ({ reset, start, update }) => void

Callback function on pause or resume.

onReset: ({ pauseResume, start, update }) => void

Callback function on reset.

onUpdate: ({ pauseResume, reset, start }) => void

Callback function on update.

Render props

countUpRef: () => void

Ref to hook the countUp instance to

pauseResume: () => void

Pauses or resumes the transition

reset: () => void

Resets to initial value

start: () => void

Starts or restarts the transition

update: (newEnd: number?) => void

Updates transition to the new end value (if given)

Protips

Trigger of transition

By default, the animation is triggered if any of the following props has changed:

  • duration
  • end
  • start

If redraw is set to true your component will start the transition on every component update.

Run if in focus

You need to check if your counter in viewport, react-visibility-sensor can be used for this purpose.

import React from 'react';
import CountUp from 'react-countup';
import VisibilitySensor from 'react-visibility-sensor';
import './styles.css';

export default function App() {
  return (
    <div className="App">
      <div className="content" />
      <VisibilitySensor partialVisibility offset={{ bottom: 200 }}>
        {({ isVisible }) => (
          <div style={{ height: 100 }}>
            {isVisible ? <CountUp end={1000} /> : null}
          </div>
        )}
      </VisibilitySensor>
    </div>
  );
}

Note: For latest react-countup releases there are new options enableScrollSpy and scrollSpyDelay which enable scroll spy, so that as user scrolls to the target element, it begins counting animation automatically once it has scrolled into view.

import './styles.css';
import CountUp, { useCountUp } from 'react-countup';

export default function App() {
  useCountUp({
    ref: 'counter',
    end: 1234567,
    enableScrollSpy: true,
    scrollSpyDelay: 1000,
  });

  return (
    <div className="App">
      <div className="content" />
      <CountUp end={100} enableScrollSpy />
      <br />
      <span id="counter" />
    </div>
  );
}

Set accessibility properties for occupation period

You can use callback properties to control accessibility:

import React from 'react';
import CountUp, { useCountUp } from 'react-countup';

export default function App() {
  useCountUp({ ref: 'counter', end: 10, duration: 2 });
  const [loading, setLoading] = React.useState(false);

  const onStart = () => {
    setLoading(true);
  };

  const onEnd = () => {
    setLoading(false);
  };

  const containerProps = {
    'aria-busy': loading,
  };

  return (
    <>
      <CountUp
        end={123457}
        duration="3"
        onStart={onStart}
        onEnd={onEnd}
        containerProps={containerProps}
      />
      <div id="counter" aria-busy={loading} />
    </>
  );
}

Plugin usage

import { CountUp } from 'countup.js';
import { Odometer } from 'odometer_countup';

export default function App() {
  useCountUp({
    ref: 'counter',
    end: 1234567,
    enableScrollSpy: true,
    scrollSpyDelay: 1000,
    plugin: Odometer,
  });

  return (
    <div className="App">
      <span id="counter" />
    </div>
  );
}

License

MIT

react-countup's People

Contributors

alexlukelevy avatar amcdnl avatar booxood avatar chris-mckenna avatar damianstasik avatar dependabot-preview[bot] avatar dependabot[bot] avatar emroussel avatar gayancharith avatar glennreyes avatar greenkeeper[bot] avatar greenkeeperio-bot avatar johnrom avatar kenny407 avatar leonascimento avatar lgodziejewski avatar mmarkelov avatar pzi avatar reakaleek avatar renovate-bot avatar renovate[bot] avatar shabaa3 avatar stern-shawn avatar tien avatar tomkelsey avatar tutv avatar zbuttram avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react-countup's Issues

Hello! I have some problem

When I try to run:
bundle.js:1577 Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object.

separator is not working

 <CountUp className="CountUp"
                     suffix="+"
                     separator=" "
                     decimals={4}
                     decimal=","
                     start={0} end={total}/>
//Result: 912800,0000+
//Expected: 912 800,0000+

Cannot set `duration` to `0`

Use case:
I have a counter that increases until a goal is reached. After that I want the counter to go to a value instantly.

Current workaround : Use a value close enough to 0.

Expected behavior:
The counter should reach the value instantly when using duration={0}

Actual behavior:
The counter uses the default value instead (2, I believe).

A sandbox that shows this behavior here using the hook API.

How to show the numbers in Indian Number System

I have tried the plugin in which i would like to show the separators in thousands like below

Expected output: 2,99,54,555
Actual Output Receving: 29,954,555

How can i show it in Indian number system

Snapshot testing warnings: Couldn't find attached element to hook the CountUp instance into!

I'm getting this warning message when I run Jest:

Warning: Couldn't find attached element to hook the CountUp instance into! Try to attach "containerRef" from the render prop to a an HTMLElement, eg. <span ref={containerRef} />.

It occurs specifically upon creating a snapshot, as such:

import renderer from 'react-test-renderer';

describe('Snapshot', () => {
  it('renders correctly the <InvoiceGraph />', () => {
    const tree = renderer
      .create(<InvoiceGraph breakpoint={breakpoint} subscription={20} data={data} />)
      .toJSON();
    expect(tree).toMatchSnapshot();
  });
});

In my actual web project this error doesn't occur, just when I use Jest to run tests it starts to throw warnings. It's polluting my test console and I can't seem to clear it up.

In my code I'm using it as follows:

<div className="bar__amount">
  {
    amount
      ? <CountUp
        end={amount}
        duration={1}
        delay={randomAnimationTriggerTime / 1000}
        decimals={0}
        prefix="€"
      />
      : <Text
        color="white"
        value="-"
      />
  }
</div>

The generated snapshots do look a bit wonky:

  <div
    className="bar__amount"
  >
    <span
      className={undefined}
      style={undefined}
    />
  </div>

While debugging I found that this.containerRef.current is null during these snapshot tests. Regular Jest unit tests do work and contain a HTMLElement.

I don't know why it's null nor how to fix it, though. It seems like the snapshot renderer I'm using doesn't play nice with ref or something...

Do you have any insights how to solve this?

delayed start

Would be great to have a delay attribute in seconds (or milliseconds) that would postpone the start of the animation.

Example:

<CountUp start={0} end={100} delay={3} />

— would would delay the animation for 3 seconds

Count should start after the component is in view.

Is it possible for countup to begin once we scrolldown to the component , currently the count starts as soon as the page is rendered.
Animation happens only once(which is good)after the page is loaded, but I would like the counter not to begin soon after the page is loaded, but when user scrolls down to the component first time.
My code looks like this:

	render() {
	return (
	<div className={style.componentName}>
	<h2>Heading</h2>
	<div className={style.col}>
	<div>My counter</div>
	<CountUp className={style.countup} decimals={1} start={0} end={25} suffix=" %" duration={3} />
	</div>
         </div>)}

Count up animating on every render

I'm using this plugin on my dashboard and have a react-select multiselect that whenever I add or remove selections (changing state), it re-renders the countup animation despite start, end and duration being integers. If there is any other code needed, let me know

code:

const textStyle = {
color: #f5d512;
}

...

"lib/index.js" not found

Using the latest version v1.1.6, when I require the component, I get that

"lib/index.js" in /Users/mikecho/dev/my_project/node_modules/react-countup/package.json (web.browser)

I am requiring the component like this:

import CountUp from 'react-countup';

When I look inside /Users/mikecho/dev/my_project/node_modules/react-countup/, I don't see /lib. But that directory should have been built by babel. What would be the cause of this?

[Doubt] Use countup without defining end number

I want to show the countup component but the end number is defined by a response from a request. My idea is to show the numbers changing around while the request is in process and once I get the response leave that number as ending one. I'm not sure if I can do this or how could I get it done.

I apologize if this is not the place to ask this question but I wasn't quite sure on where to do it. Thanks

Can't perform a React state update on an unmounted component.

Hello,

So I'm having an issue with receiving a state update error on my component with the useCounter hook.

Here's the class:

const SavingsCounter = ({ classes }) => {
  let timerId = null;

  const getCurrentMoneySaved = () => {
    // returns number
  };

  const { countUp, update } = useCountUp({
    start: getCurrentMoneySaved() - 245,
    end: getCurrentMoneySaved(),
    duration: 8,
    separator: ',',
    onReset: () => console.log('Resetted!'),
    onUpdate: () => console.log('Updated!'),
    onPauseResume: () => console.log('Paused or resumed!'),
    onStart: ({ }) => console.log('start'),
    onEnd: ({ }) => console.log('end'),
  }, []);

  const updateCounter = () => {
    update(getCurrentMoneySaved());

    // random timeout in 10 - 20 seconds
    timerId = setTimeout(updateCounter, random(10000, 20000));
  };

  useEffect(() => {
    updateCounter();

    return function cleanup() {
      clearTimeout(timerId);
    };
  }, []);

  return (
    <div className={classes.savingsWrapper}>
      <Media query="(max-width: 960px)">
        {
          (matches) => {
            const menu = matches ? (
              <>
                <Typography variant="h4" color="inherit">
                  $
                  { countUp }
                </Typography>
                <Typography variant="h5" color="inherit">
                   Saved in Commissions
                </Typography>
              </>
            ) : (
              <>
                <Typography variant="h5" color="inherit">
                Clever has saved homeowners
                </Typography>
                <Typography variant="h4" color="inherit">
                  $
                  { countUp }
                </Typography>
                <Typography variant="h5" color="inherit">
                  in commissions and counting.
                </Typography>
              </>
            );
            return menu;
          }
        }
      </Media>
    </div>
  );
};

Every time I leave the page I get the "state update on an unmounted component" error and then the logs:
end
end

It seems like something is holding onto a reference of the component and doing an update after the page is unmounted. I couldn't find any way to unsubscribe from anything in react count up, and I'm canceling the timer I have set.

I'm using reach router if it makes any difference.

Thanks!

Documentation for alpha mixed up in main README

I tried adding the delay prop on CountUp, but it does not do anything, because I was still on v3. It is not clear from the main README that some of the API is currently not yet released.

It might be helpful to explicitly mention what parts of the API are currently available, and which ones are still in alpha/beta. Or if alpha is stable enough, invite users to explicitly install the alpha.

build run error

hi, i am install the react-countup 1.4.0,and build run this errors:
image

thanks.

Amount being Rounded

Hi There,

I am currently having an issue where the formatting function is returning a rounded up number.

I have a pricing point at 17.99, starting at 0. When putting 17.99 as the end property, it returns $18.00.

I can't seem to find where this is happening, or a property to disable this. The formattingFn didn't seem to help either, as the parameter returns the rounded up value.

My CountUp Render:
<CountUp delay={1} start={0} end={17.99} decimals={1} duration={2} useEasing={true} />

Thanks for the help!

Change class onEnd

I'm struggling to make the counter animate onEnd. More specifically I want the text to get bubble up big, and then go back.

The relevant scss is as follows

  .number {
    font-style: italic;
    font-size: 1.5rem;

    .enlargened {
      animation-name: enlargen;
      animation-duration: 1s;
      animation-fill-mode: forwards;
    }
  }

What I want is to apply className directly, and when the counter has reached its end, I want to append enlargened to the className, which will make the animation happen.

On a normal element I'd do it easily with something like document.getElementByClassName('number').className ='number enlargened'

But no I don't manage with this component, I've tried using refs and accessing the element directly with different getElement syntaxes, without prevail. My last try was with a wrapper div, but didn't work either.

It might be related to me always getting two div (although I've only declared one). The following setup

        <CountUp
          duration={duration}
          end={count}
          prefix="  "
          onEnd={() => {
            console.log(document.getElementsByClassName('number'));
          }}
          useEasing={false}
        />

Prints the following in console.log:
image

Let me know if I'm using the component wrong, or if you need any more information.

Update Component value from previous value

Hello,

I'm having diffulities using the update function that is provided. I'm having a function that runs every 10 minutes fetching data from an api. I would like to run the update function for the countUp component every time the data is fetched. I don't want it to restart from 0, rather that It either goes down or up from the value that is already set. Which is the purpose of update I assume.

I managed to run the example that runs the start method on button click, but I would to run the update method when I fetch data from the api.

Could anybody provide an example to get a reference to the component so I will be able run the update method?

Delay option

is there some way to delay the countdown just by entering number?

Noticeable delay even when one isn't set

I'm using the hook version. I'm setting end, prefix, decimals, duration: 3, and onStart to log a message.

Though I've set no delay (I've added some traces in the source code and it's set to null) I'm getting a noticeable delay between my intersectionobserver noticing the component is in view (this is when I run the start() method, and log something to console) and seeing the numbers change on screen. Any idea what could be causing this?

I can't actually figure out how to not have it start on page load while using the hook. Maybe it's related?

Autostart and Start via button examples are the same in README

Hi,

It seems like the examples in the readme that demonstrate autostart are the same as the examples that demonstrate using a start button, with the exception that the second example has a delay attached. e.g. Certainly in practice neither of the two examples autostarts.

<CountUp start={0} end={100}>
  {({ countUpRef, start }) => (
    <div>
      <span ref={countUpRef} />
      <button onClick={start}>Start</button>
    </div>
  )}
</CountUp>

vs

<CountUp start={0} end={100} delay={2}>
  {({ countUpRef, start }) => (
    <div>
      <span ref={countUpRef} />
      <button onClick={start}>Start</button>
    </div>
  )}
</CountUp>

re-animation on re-render

Hello. It appears like a react re-render causes the countup to re-run. It is particularly visible when using two countup on the same render with one depending on an asynchronous call. The latest data arriving will cause both to re-render.

Any idea how to prevent that?

I got some warnings when I use countup

Warning: You are manually calling a React.PropTypes validation function for the `className` prop on `CountUp`. 

This is deprecated and will not work in the next major version. You may be seeing this warning due to a third-party PropTypes library. 

See https://fb.me/react-warning-dont-call-proptypes for details.

Version ^2.3.0 is breaking

Updates react to version 16, which can cause issues with older projects. You should release a major version (3) for this change. Thanks for your work on this project!

Generating setState error when triggered after unmount

The component generates a console error when adding a delay and unmounting the component BEFORE the delay expires.

Example: simply add the component to a route a browse away from the page.

render() {
  <div className="bar__amount">
    <CountUp
      end={amount}
      duration={1}
      delay={randomAnimationTriggerTime / 1000}
      decimals={0}
      prefix="€"
    />
  </div>
}

Console:

Warning: Can't call setState (or forceUpdate) on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.

When shortening duration and increasing end, while first countup still runs it doesn't work

When shortening duration and increasing end, while first countup still runs
It finishes the new_end countup correctly and then continues the initially interrupted countup that finally reached the first end and stays there

import React from 'react';
import ReactDOM from 'react-dom';
import CountUp from 'react-countup';

class App extends React.Component {
  state = {
    start: 0,
    end: 1000,
    duration: 10,
  };

  handleOnClick= () => this.setState({
    start: 1000,
    end: 5000,
    duration: 3
  });

  render() {
    return (
      <div>
        <CountUp 
          start={this.state.start}
          end={this.state.end}
          delay={0}
          duration={this.state.duration}
          useEasing={false}
        />
        <button onClick={this.handleOnClick}>Update</button>
      </div>
    );
  }
}

ReactDOM.render(<App />, document.getElementById('root'));

To reproduce, click the update button before the initial countup finishes
The sandbox didn't work at all or some reason..

Separator not present in start value

Hey,

Thanks for making this react component - I've found it really useful 👍

CountUp looks like it kicks in when the component mounts and, before then, it just renders the specified start value.

Unfortunately this means if you render stuff on the server, you'll get a flash of e.g. "10000" before the component mounts and it changes to "10,000"

I'm not sure what the best fix to this problem would be.

Perhaps a simple function that renders the start value with the separator before CountUp kicks in?

On React v16 will make some warnings

Recently GitHub is not working properly. So I can only copy the error message to you.

index.js:2177 Warning: Couldn't find attached element to hook the CountUp instance into! Try to attach "containerRef" from the render prop to a an HTMLElement, eg. <span ref={containerRef} />.

I checked the API you used after React v16.4, React.createRef previous versions of this API cannot be used

Setting easingFn

Can someone please provide an example of how to set easingFn to one of the other Robert Penner ease options?

I'm currently at a loss for how to do it, as I can't find an example of the preferred format in the code itself or in the documentation.

Start animation only when element is on viewport?

Hello, love the component! Is there a way to make a CountUp element start the animation only when it is visible in the viewport straight out of the box? Would love to make this functionality work. Thanks :-)

Option to redraw to new value?

Hi, I think it would be super useful to have an option to start every new animation from previously ended number. For example, if I set the end number to 10, 20, 30, and 0 respectively, the CountUp component would perform the following animations.

  1. 0 to 10
  2. 10 to 20
  3. 20 to 30
  4. 30 to 0

What do you think? You already keep track of the start state, so it should be simple to implement. Otherwise, there is an additional overhead required in the parent component to maintain this state.

Error with separator and negative numbers

<CountUp
  className="count"
  duration={2}
  end={value}
  separator=","
  useGrouping={true}
/>

Some of the values we use with react-countup are negative and it appears that the minus sign is being interpreted as a digit in the number. When the minus sign appears in front of a 3 or 6 digit number, the separator is placed behind the minus sign, as though the minus sign were in the thousands or millions place value.

Here are four examples of how this has shown up in our app:

  • Correct behaviors
// Result: -95
// Expected: -95

// Result: -22,688
// Expected: -22,688
  • Incorrect behaviors
// Result: -,111
// Expected: -111

// Result: -,178,238
// Expected: -178,238

Migrate to TypeScript

Since this is a fairly small library it would be awesome to have the entire codebase migrated to TS (or at least the types provided out of the box).

useCountUp Hook not updating when end changes

I'm getting different values for when I use the Component vs when I use the hook. The hook doesn't seem to update as expected when the end property changes. For my situation, I set end and then quickly change it before it's finished animating. Here's my code that gives 2 different values:

import CountUp, { useCountUp } from 'react-countup';

const Progress = ({ progress, ...otherProps }) => {
  const { countUp } = useCountUp({ end: progress });
  return (
    <>
      <div>{countUp}</div>
      <div><CountUp end={progress} /></div>
    </>
  );
};

An in-range update of husky is breaking the build 🚨

Version 0.13.3 of husky just got published.

Branch Build failing 🚨
Dependency husky
Current Version 0.13.2
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As husky is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details
Commits

The new version differs by 9 commits .

See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Add useCountUp hook

We should support using the CountUp component as a hook.

import { useCountUp } from 'react-countup';

const App = () => {
  const countUp = useCountUp({ start: 0, end: 100, duration: 3 });

  return <div>{countUp}</div>
}

More infos about hooks here: https://reactjs.org/hooks

decimal is not working

import CountUp from 'react-countup'
....
<div className="count text-center"><CountUp start={0.9} end={99.9} duration={3} decimal={1} />% </div
>

decimal point is not working at all.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.