Giter VIP home page Giter VIP logo

react-animate-height's Introduction

React Animate Height

npm version npm downloads

No dependencies React component for animating height using CSS transitions. Slide an element up and down or animate it to any specific height. Content's opacity can be optionally animated as well (check animateOpacity prop bellow).

CSS classes are applied in specific animation states, check animationStateClasses prop.

Changelog

Version 3

This is version 3.x branch, rewritten to hooks, which means you'll need React version 16.8 or newer.

For version 2.x, check v2 branch

Breaking changes:

  • Callback names changed (to avoid clashing with the native ones):
    • onAnimationStart -> onHeightAnimationStart
    • onAnimationEnd -> onHeightAnimationEnd

Demo

Live demo: muffinman.io/react-animate-height

Because multiple people asked how to animate list items, I created this simple example for that as well.

To build the examples locally, run:

npm install
npm start

Then open http://127.0.0.1:8000/ in your browser of choice browser.

Or play with this sandbox.

Quick start

Get it from npm

$ npm install --save react-animate-height

Import and use it in your React app.

import React, { useState } from 'react';
import AnimateHeight from 'react-animate-height';

const Example = () => {
  const [height, setHeight] = useState(0);

  return (
    <div>
      <button
        aria-expanded={height !== 0}
        aria-controls="example-panel"
        onClick={() => setHeight(height === 0 ? 'auto' : 0)}
      >
        {height === 0 ? 'Open' : 'Close'}
      </button>

      <AnimateHeight
        id="example-panel"
        duration={500}
        height={height} // see props documentation below
      >
        <h1>Your content goes here</h1>
        <p>Put as many React or HTML components here.</p>
      </AnimateHeight>
    </div>
  );
};

Props

  • height: numeric or percentage value (ie. '50%') or 'auto', required

    When changed, element height will be animated to that height.
    To slide up use 0, for slide down use 'auto'

  • duration: integer, default: 500

    Duration of the animation in milliseconds

  • delay: integer, default: 0

    Animation delay in milliseconds

  • easing: string, default: 'ease'

    CSS easing function to be applied to the animation

  • id: string

    HTML id attribute.

  • className: string

    CSS class to be applied to the element

    Please note that you shouldn't apply properties that are messing with the layout (like display, height...), as these might break height calculations

  • ref: React.MutableRefObject<HTMLDivElement | null>

    Reference to the main div element.

      const wrapperDiv = useRef<HTMLDivElement | null>(null);
    
      <AnimateHeight ref={wrapperDiv}>
  • contentRef: React.MutableRefObject<HTMLDivElement | null>

    Reference to the content div element.

      const contentDiv = useRef<HTMLDivElement | null>(null);
    
      <AnimateHeight contentRef={contentDiv}>
  • style: object

    CSS style object, it will be merged with inline styles of the component

    Please note that you shouldn't apply properties that are messing with the layout (display, height are omitted from the type already), as these might break height calculations

  • contentClassName: string

    CSS class to be applied to content wrapper element

    Please note that you shouldn't apply properties that are messing with the layout (like display, height...), as these might break height calculations

  • animationStateClasses: object

    Object containing CSS class names for animation states, default:

    {
      animating:                  'rah-animating',
      animatingUp:                'rah-animating--up',
      animatingDown:              'rah-animating--down',
      static:                     'rah-static',
      animatingToHeightZero:      'rah-animating--to-height-zero',
      animatingToHeightAuto:      'rah-animating--to-height-auto',
      animatingToHeightSpecific:  'rah-animating--to-height-specific',
      staticHeightZero:           'rah-static--height-zero',
      staticHeightAuto:           'rah-static--height-auto',
      staticHeightSpecific:       'rah-static--height-specific',
    }
    

    Please note that this one will be merged with the default object and cached when component is created, so changing it afterwards will have no effect.

  • onHeightAnimationStart: function

    Callback which will be called when animation starts.

    This first argument passed to this callback is an object containing newHeight, the pixel value of the height at which the animation will end.

  • onHeightAnimationEnd: function

    Callback which will be called when animation ends.

    This first argument passed to this callback is an object containing newHeight, the pixel value of the height at which the animation ended.

  • applyInlineTransitions: boolean, default: true

    If this flag is set to false only CSS classes will be applied to the element and inline transition styles will not be present.

  • animateOpacity: boolean, default: false

    If set to true content will fade-in (and fade-out) while height is animated.

  • aria-hidden: boolean

    By default, library will set aria-hidden to true when height is zero. If you wish to override it, you can pass the prop yourself.

  • disableDisplayNone: boolean, default: false

    By default, library will set display: none when height is zero. This prop allows you to disable that behavior and handle it yourself. It is useful when using auto height, check this issue for more info. Please be careful not to break accessibility when using this prop.

Additional props will be passed to the wrapper div, to make adding attrs like aria-* easier.

Accessibility

Library will hide the content using display: hidden when height props is 0. It will also apply aria-hidden="true" in the same case, but you can override it by passing aria-hidden prop yourself.

When using a button to toggle height, make sure you add aria-expanded and aria-controls to make everything accessible. Here's an example:

<button
  aria-expanded={ height !== 0 }
  aria-controls="example-panel" // it has to match the id passed to AnimateHeight
  onClick={ toggleHeight } // your click handler that toggles height
  // ... all other props
>
  Toggle
</button>

<AnimateHeight id="example-panel">
  Content
</AnimateHeight>

Reduced motion

Component checks for prefers-reduced-motion on start and disables animations if it is set to true. Please note that component doesn't listen for potential changes of prefers-reduced-motion option.

Animate height on content change

It is not built in, but you can use AnimateHeight and ResizeObserver to automatically animate height on content change. I created a small example for you here:

Gotchas

Collapsing margins

While it is animating, component has overflow: hidden. When the animation is finished and height is set to "auto", overflow: hidden is removed. At that moment, any margins you have on the content inside AnimateHeight will collapse, causing content to "jump". To avoid this, just use padding inside the AnimateHeight instead of margins.

Bounded flexboxes

If AnimateHeight is a flex child and it's parent has a fixed height, animation won't work. To fix this, you just need to add the following CSS rule to the AnimateHeight instance.

flex-shrink: 0;

You can do it by passing a className or directly in the style prop

<AnimateHeight style={{flexShrink: 0}}>

Check the issue #89 for the example and more details.

License

MIT

react-animate-height's People

Contributors

andrew-morin avatar codyscott1 avatar danhayden avatar dependabot[bot] avatar earthlingdavey avatar fzembow avatar jtcurr avatar kamronbatman avatar kentandersen avatar ling1726 avatar lkay avatar prettycoffee avatar quagliero avatar remijean avatar sdegutis avatar stanko avatar xec avatar zekkai 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

react-animate-height's Issues

prop type `applyInlineTransitions` is invalid

Using 0.10.6 I get the following warning:

Warning: Failed prop type: AnimateHeight: prop type `applyInlineTransitions` is invalid; it must be a function, usually from the `prop-types` package, but received `undefined`.
    in AnimateHeight...

0.10.5 works fine.

My code looks something like this:

<AnimateHeight height={this.props.expanded ? 'auto' : '0'} duration={150}>
  ...
</AnimateHeight>

Could be related to #33

onAnimationEnd and children

Hello, I found a strange behavior on the onAnimationEnd event.
If an element has a child that has an animation, the onAnimationEnd event will be triggered after the animation of the child has completed.

I think that onAnimationEnd should only work for AnimateHeight element, and should not be triggered on children's animations.

Delay height after opacity transition

I would love to have the option to delay height transition to after the opacity is done.

I use this library to collapse items in a list. It would be calmer if the fading out happened before collapsing.

What do you think?

Callback onAnimationEnds - Feature request

Hi,
is it possible to add a callback for animations? Something like onAnimationEnd / onAnimationStart.

Use case is that we want to scroll the page to specific location after animation ended and element has full height.

Thank you.

`easing` works not as expected

When comes to animation, it's hard to describe what's happening I think, so I recorded a gif:

animation_problem

I have a container component contains children list to collapse, it's the show/hide part inside the gif above, codes structure like here:

// container.ts
<div>
    <AnimateHeight height={this.state.collapsed ? 'auto' : 0} duration={500} easing='linear'>
        {this.props.children}
    </AnimateHeight>
</div>

// sortby.ts
<Container>
    <div className='sort-list'>
        {/* contents here */}
    </div>
<Container/>

// species.ts
<Container>
    <div className='species-list'>
        {/* contents here */}
    </div>
<Container/>

My guess is AnimateHeight's calculating by the first child's(sortby) height, so caused the crappy transition for the second child(species), but this is just a wild guess.

Make it possible to prevent rendering of elements when height is 0

I'd like to not render anything when the animated element is closed, but I'm having difficulty. I don't just mean CSS display: none or visibility: hidden, I want no elements there. I tried using a combination of the provided callbacks and state, but that was too slow, by the time the animation had started it was too late to swap the child elements back to what they should be when it's open. Could a prop be added that would render null instead of children if height is 0?

IE overflow:hidden animating from 0 to auto

In IE 10, when animating from 0 to auto, overflow:hidden is applied to the div containing "demo-content", not the "rah-static" div. When height is toggled, overflow:visible is not applied again, rather overflow:hidden is just removed. You can see this on https://stanko.github.io/react-animate-height/#demo also.

In the demo, this is not causing an issue, but this is an issue where we are using absolutely positioned content inside the <AnimateHeight / > component. Without overflow:visible, the absolutely positioned content is cut off where the height exceeds the container div with height: auto

Percentage on initial render

Issue #22 added support for percentage, but it was only added to componentWillReceiveProps. We have a use case where we need the height to be '100%' on first render, but the constructor still only checks for a number. Could you add the percentage check to the constructor as well? Thanks.

All component show, how to set only one?

I have many component react-animate-height so when I click button have function onClick is all component show.

                       `<tr key={key} className="user">
                            <td>{user.id}</td>
                            <td class="col-md-2">{fullName}</td>
                            <td>{user.username}</td>
                            <td class="col-md-1">{user.idNumber}</td>
                            <td>{user.birthday}</td>
                            <td class="col-md-4">{address}</td>
                            <td><DeleteButton deleteRow={this.deleteRow} key={key} id={user.id}/></td>
                            <td><UpdateButton updateRow={this.updateRow} key={key} id={user.id} toggle={this.toggle} component={this.updateUsers}/></td>
                        </tr>,
                        <tr key={user.id} className="user" data-id={user.id}>
                            <td colSpan="8">
                                <UpdateUsers height={this.state.height}/>
                            </td>
                        </tr>`

Add option to animate opacity

First off, thanks for the awesome library. This is so easy to use and solves such a common problem.

I was wondering if it would be possible to add an option to animate opacity. It's not THAT difficult to do using contentClassName, but you do have to duplicate the easing functions and durations, which this would help avoid. I feel like it's a pretty common way to make this kind of animation look smoother, so it seems worth building in functionality to do it.

If that sounds reasonable, I'd be happy to put together a PR. Thanks!

Open Peer Dependencies for React 15 || 16

Issue #28 was logged for React 16 Support. This was marked as resolved and it appears test are being ran against React 16, however the peer dependencies are specified as

 "peerDependencies": {
    "react": ">=15.6.2",
    "react-dom": ">=15.6.2"
  },

These should be updated for both 15 & 16.

 "peerDependencies": {
    "react": ">=15.6.2 || ^16.0.0",
    "react-dom": ">=15.6.2  || ^16.0.0"
  },

Otherwise you receive the following npm warnings when install react-animate-height:
screen shot 2018-02-23 at 1 11 50 pm

Better 'Usage' in README

It's not clear you have to use set states in order to animate.
I had to check example.js and discover you have to use this.setState({ height: 'auto' }).

Maybe a more detailed usage would be better for noobies like myself! (:

contentClassName applies undefined className

With the recent update, if you dont pass the prop contentClassName it gives the content the class "undefined". The component should verify if the prop is passed and only apply it in that case.

It causes issues with Jest snapshot testing.

Peer dependency to react 16

Hi! ๐Ÿ‘‹

This component works well with react 15 โ€“ is there a reason for a peer dependency to React ^16?

0.9.10 broke our app

hey @Stanko

thanks for your plugin - we are using it for a small application and it worked quite well.

Unfortunately updating from 0.9.9 to 0.9.12 (probably already to 0.9.10) broke almost everything:

The height calculation of height:auto for flexbox doesn't work for overflow:hidden; height:0 as the children of flexbox will try to fit inside the flexbox.
It might also be because of the display: none changes.

Also we had to change our code from:

import * as AnimateHeight from 'react-animate-height';

to

import AnimateHeight from 'react-animate-height';

Could you please introduce semantic versioning for future releases so we and other users of your plugin are able to see in advance that updating might break something?

Thanks in advance :)

calc() support?

Is there a way to make it work with css calc()? Or do I need to calculate height by getting the element/window sizes?

Remove overflow:hidden when animation completed

Remove overflow: hidden when animation completed.
Here is a problem with overflow: hidden.
When the collapsible container has dropdowns or tooltips, the part of their content can be truncated by the parent.

The result I would expect is similar to the behavior when we set height='auto', and in the end, the parent won't have overflow: hidden.

Add React 16 Support

react-animate-height provides support for react v^15.5.4. React 16 is expected to be released soon and can currently be tested with react 16.0.0-rc (more information can be found on facebook/react#10294).

react-animate-height is a dependency in a package in the terra-core monorepo, which will need to be React 16 compatible. From my initial assessment of our repository, it seems focus-trap behaves as expected with react v16.0.0-rc, but confirmed testing is needed.

Add a warning for styles that might break the animation

Readme already has a warning

style: object

CSS style object, it will be merged with inline styles of the component

Please note that you shouldn't apply properties that are messing with the layout (like display, height...), as these might break height calculations

but it should be logged if user passes style.height, style.display which may break the animation.

Write tests

High priority:

  • Animating height to a numeric value
  • Animating height to "auto"
  • Animating height to a percentage value

Mid priority:

  • Is content hidden when height == 0
  • Are animationStateClasses set properly
  • Are callbacks executed

Low priority:

  • Is delay applied
  • Check for applyInlineTransitions
  • Opacity changes
  • Are className and contentClassName applied

Animation doesn't work on absolute positioned elements

React-animate-height doesn't seem to work on absolute positioned element. I'm not sure whether it's an issue or an expected behavior.
This is quite self-explanatory so I don't think people would need a code example.

Module 'prop-types' not found

Bug: when using with react-scripts, after install I got the following error:

Failed to compile.

Error in ./~/react-animate-height/lib/AnimateHeight.js
Module not found: 'prop-types' in /Users/tiwen/www/rscience/rsui-app/node_modules/react-animate-height/lib

 @ ./~/react-animate-height/lib/AnimateHeight.js 20:16-37

it appears to be that this module needs prop-types, we might want to move 'prop-type' from devDependency to dependency in the package.json?

Nothing happens when using the component in a react class

So I actually cannot get this tool to work. It looked really promising! Essentially, when I click a button, I want a component that didn't exist before to slide down with a few divs inside. Here's my use case: (note that I'm using mobx for state management, hence the "observer" decorators)

BadgeItem.jsx

import React, { Component } from 'react'
import { observer } from 'mobx-react'
import styles from './BadgeItem.css'
import MoreBadgeInfo from './MoreBadgeInfo'

// The badge is accessable through `this.props.badge`
@observer
export default class BadgeItem extends Component {
  render () {
      // Get badge
    const badge = this.props.badge

    return (
      <li className={styles.item}>
        <div className={styles.titleFrame}>
          <img className={styles.photo} src={badge.photoURL} alt='Badge' /> 
          <span className={styles.name}>{badge.name}</span>
          <button className={styles.button}>Locations...</button>
          <button className={styles.button} onClick={badge.changeShowMore}>Show more...</button>
        </div>
        {badge.showMore && <MoreBadgeInfo badge={badge} />}
      </li>
    )
  }
}

MoreBadgeInfo.jsx

import React, { Component } from 'react'
import { observer } from 'mobx-react'
import AnimateHeight from 'react-animate-height'

// The badge is accessable through `this.props.badge`
@observer
export default class BadgeItem extends Component {
  render () {
    // Get badge
    const badge = this.props.badge

    return (
      <AnimateHeight
        duration={5000}
        height={'auto'}
        onAnimationStart={() => console.log('Animation started!')}
      >
        <div>
          <div>{badge.description}</div>
          <span>{badge.id}</span>
          <span>{badge.createdByName}</span>
          <span>{badge.createdOn}</span>
        </div>
      </AnimateHeight>
    )
  }
}

Everything works fine - in terms of everything showing up and displaying the correct information. The button to "show more" works as well. The 'more info' component shows up perfectly. It just doesn't animate at all. In fact, there is no difference having the AnimateHeight component there. It doesn't even fire the console.log event. I was expecting to get.. something. Hoping it would work, but otherwise I suppose I expected an error. What do you think? Is there anything I'm doing incorrectly in implementing this?

Box-shadows only render once the animation completes

To reproduce:

  • Go to demo page.
  • Using developer tools, go to the .demo-content element and add this box shadow style:
box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12);

Observe the box-shadow appearance at the end of the animation:

boxshadow5

Transition when actual height of height 'auto' element changes

Thanks for the super useful component, this really solves a problem for us.

One improvement that would help a lot though is the ability to trigger the animation when, even though the height being provided to the component hasn't changed(i.e, it's just still auto) but the actual height of the element has.

Fixed header disappearing on animation

Loving the library but for some reason whenever my element is animated in from zero to auto height it's causing my fixed position header to disappear till the animation is complete. Guessing it might have to do with the scroll or something? I'm using the library component as follows where I have a isToggleOn state that changes when a user clicks a button:

<AnimateHeight duration={500} height={this.state.isToggleOn ? 'auto' : 0}>
  <div className='shelf-wrapper'>
    <div className='synopsis' dangerouslySetInnerHTML={{__html: synopsis}} />
  </div>
</AnimateHeight>

Any idea why this might be happening? If I remove the AnimateHeight component and simply use the state to toggle an inline style from display: none to display: block the issue goes away so it has something to do with the animation. Any other props/options I can try to solve this?

onAnimationEnd callback should be executed after content is hidden

First of all, thanks for this lib!

I think onAnimationEnd callback should be executed after content is hidden because one may need to remove the content on the callback itself. I've just encountered this issue myself.

Right now, it is not possible to remove the animated content inside the onAnimationEnd callback in a synchronous way since your lib will complain when trying to access this.contentElement to hide the removed content.

captura de pantalla 2017-10-25 a las 18 33 32

By shifting the order in which content is hidden and onAnimationEnd callback is executed, we get the best of both worlds, don't you think?

To workaround this limitation I'm making the removal operation asynchronous so your lib can hide content before removal but it's a bit hacky for my taste.

Ping me if you want me to make a PR for you.

Let you specify top level element

Would love to be able to animate different elements, for example or

    , instead of wrapping the whole thing into the div.

    Possible solutions:

    1. Pass element name as a prop, <AnimateHeight element='tr'> <td>...</td></AnimateHeight>

    2. Clone child element and pass props to it <AnimateHeight clone={true}><tr><td>...</td></tr></AnimateHeight>

    Both should result in <tr aria-hidden="false" class="rah-static rah-static--height-auto" style="height: auto;"><td>...</td></tr>

Add support for vh

I tried to set height to 100vh and it defaulted to 'auto'. Would be great to see support for VH measurements.

Update build script for node v8

Currently your build script down not work with node v8. This is due to a handful of dependencies using require.extensions, which has been dropped. The latest versions of require-dir and gulp-git resolve this, but react-component-gulp-tasks still needs to be updated. I have not been able to determine if any other build dependency needs to updated for this reason.

As for react-component-gulp-tasks it is unclear if this will get resolved soon. While require-dir and gulp-git have both updated and resolved their node v8 compatibility issues, react-component-gulp-tasks currently has an open issue and PR. The project itself may be dead, as the last update to master was a little more than a year ago.

support for percentage

Hey @Stanko

we have an animation where we need to change the height from auto to 100% or from 0 to 100% do you think that would be a possible addition to your plugin?

Thanks :)

Doesn't work with content loaded via props

Tried out the demo, and got it working, but then when I attempted to get it to work with a dropdown menu, with navigation that's dynamically loaded via props, since that DOM element doesn't contain a height at the time the component is initialized, it can't animate the height of something it doesn't know.

Any tips with this?

<AnimateHeight duration={100} height={this.state.height}>
  <ul className={styles.linkList}>
    {content.links.map(link => <li className={styles.linkListItem} key={link.name}>
      <Link to={link.href} className={styles.link}>{link.name}</Link>
        <span className={styles.subHead}>{link.subHead}</span>    
      </li>)}
  </ul>
</AnimateHeight>

Potential breaking change with 0.9.10

We have some test failures around AnimateHeight.hideContent(height) call in componentDidMount.

    TypeError: Cannot read property 'style' of null
      
      at AnimateHeight.hideContent (node_modules/react-animate-height/lib/AnimateHeight.js:248:28)
      at AnimateHeight.componentDidMount (node_modules/react-animate-height/lib/AnimateHeight.js:99:12)
      at node_modules/react-test-renderer/lib/ReactCompositeComponent.js:264:25
      at measureLifeCyclePerf (node_modules/react-test-renderer/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-test-renderer/lib/ReactCompositeComponent.js:263:11
      at CallbackQueue.notifyAll (node_modules/react-test-renderer/lib/CallbackQueue.js:76:22)
      at ReactTestReconcileTransaction.close (node_modules/react-test-renderer/lib/ReactTestReconcileTransaction.js:36:26)
      at ReactTestReconcileTransaction.closeAll (node_modules/react-test-renderer/lib/Transaction.js:209:25)
      at ReactTestReconcileTransaction.perform (node_modules/react-test-renderer/lib/Transaction.js:156:16)
      at batchedMountComponentIntoNode (node_modules/react-test-renderer/lib/ReactTestMount.js:69:27)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-test-renderer/lib/Transaction.js:143:20)
      at Object.batchedUpdates (node_modules/react-test-renderer/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-test-renderer/lib/ReactUpdates.js:97:27)
      at Object.render [as create] (node_modules/react-test-renderer/lib/ReactTestMount.js:128:18)

Here's a snippet of our current usage of AnimateHeight

<AnimateHeight
  aria-labelledby={headingAriaId}
  duration={300}
  height={isActive ? 'auto' : 0}
  id={regionAriaId}
  role="region"
/>

It looks like hideContent() and showContent rely on style to be present on the contentElement, which may not always be there especially on mount in a headless test setting. Should there be some form wait until the DOM element has a style property before acting on it?

Remove Inline Styles After Transition

I just put in a pull request to switch to request animation frame instead of timeouts.

In addition, it would be nice it this would only apply it's necessary inline styles during the transition.

e.g. I have some floated paragraphs that I use to this to expand but they should always have 'overflow: hidden' set on them to stop them wrapping under various other elements. In it's current form, this component leaves 'overflow: visible' as an inline style so I'm having to overwrite it with !important in css which is not ideal.

Is there some function it calls after the transitions are complete (that I could hook in to to remove the styles)?

Thanks!

Chris

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.