No description
Find a file
Cole Lawrence 84daaaf94a dev: Add configurable ITheatreLogger
Addresses the lack of options we currently have for surfacing issues in
our application via debugging tools. Prioritizes performance and
usability (visually) over clarity in some places that could have been
object mapped.

A logger with three separate audiences:

 * `internal`: Logs for developers maintaining Theatre.js
 * `dev`: Logs for developers using Theatre.js
 * `public`: Logs for everyone

This logger supports:
 * multiple logging levels (error, warn, debug, trace),
 * multiple audience levels (internal, dev, public),
 * multiple categories (general, todo, troubleshooting)
 * named and keyed loggers (e.g.
   `rootLogger.named("Project", project.id)`)
 * console styling with deterministic coloring
 * console devtool maintains accurate sourcemap link to logging origin
   (e.g. `coreExports.ts:71` as opposed to `logger.ts:45` or whatever)
 * swappable logger
 * customizable filtering
 * Accepts lazy `args`: `args: () => object` via
  `logger.lazy.<level>("message", () => <expensive computation>)` (e.g.
  `logger.lazy.debugDev("Loaded project state", () => ({ save: bigProject.exportToSaveable() }))`)
2022-05-19 16:34:34 -04:00
.github Automatically publish prereleases to npm (#155) 2022-05-18 12:39:35 +02:00
.husky Initial OSS commit 2021-06-18 13:05:06 +02:00
.vscode Minor changes 2021-09-12 21:21:49 +02:00
.yarn Upgrade to yarn 3.2.0 (#83) 2022-02-23 13:11:00 +01:00
contributing README: add theatre logo. Add/fix social links (#113) 2022-04-05 13:29:40 -04:00
devEnv Add tests for Theatre.js + popular setups in the ecosystem (#165) 2022-05-17 20:53:01 +02:00
ecosystem-tests Add tests for Theatre.js + popular setups in the ecosystem (#165) 2022-05-17 20:53:01 +02:00
examples Support multiple sheet instances (#153) 2022-05-16 12:43:45 +02:00
packages dev: Add configurable ITheatreLogger 2022-05-19 16:34:34 -04:00
scripts Fix the quoting issue in the prerelease script 2022-05-19 12:43:31 +02:00
theatre dev: Add configurable ITheatreLogger 2022-05-19 16:34:34 -04:00
.editorconfig Initial OSS commit 2021-06-18 13:05:06 +02:00
.eslintrc.js Add tests for Theatre.js + popular setups in the ecosystem (#165) 2022-05-17 20:53:01 +02:00
.gitignore Add tests for Theatre.js + popular setups in the ecosystem (#165) 2022-05-17 20:53:01 +02:00
.prettierignore Initial OSS commit 2021-06-18 13:05:06 +02:00
.prettierrc Initial OSS commit 2021-06-18 13:05:06 +02:00
.yarnrc.yml Automatically publish prereleases to npm (#155) 2022-05-18 12:39:35 +02:00
babel.config.js Moved examples to a separate folder 2021-08-06 12:00:19 +02:00
CHANGELOG.md Added CHANGELOG.md 2021-10-01 13:04:01 +02:00
CONTRIBUTING.md Update CONTRIBUTING.md with merge instructions (#164) 2022-05-16 12:57:19 +02:00
credits.txt Create color prop (#64) 2022-02-19 17:54:19 +01:00
jest.config.js Integrate Wallaby (#66) 2022-02-21 13:33:08 +01:00
lerna.json Initial OSS commit 2021-06-18 13:05:06 +02:00
LICENSE Make license detectable by github 2021-06-18 19:33:39 +02:00
package.json Add tests for Theatre.js + popular setups in the ecosystem (#165) 2022-05-17 20:53:01 +02:00
README.md Small tweaks to the top of README.md 2022-04-10 19:09:56 +02:00
tsconfig.base.json dev(tsconfig): ensure imports use import type ... 2022-05-05 07:55:20 -04:00
wallaby.conf.js Integrate Wallaby (#66) 2022-02-21 13:33:08 +01:00
yarn.lock Add tests for Theatre.js + popular setups in the ecosystem (#165) 2022-05-17 20:53:01 +02:00

Theatre.jsTheatre.js

Motion Design, for the web

GitHub branch checks state Join us on Discord Follow Theatre.js on Twitter Watch on YouTube

Update: We're hiring join the core team!

Theatre.js is an animation library for high-fidelity motion graphics. It is designed to help you express detailed animation, enabling you to create intricate movement, and convey nuance.

Theatre can be used both programmatically and visually.


You can use Theatre.js to:

  • Animate 3D objects made with THREE.js or other 3D libraries

    s

    Art by drei.lu

  • Animate HTML/SVG via React or other libraries

    s

  • Design micro-interactions

    s

  • Choreograph generative interactive art

    s

  • Or animate any other JS variable

    s

Documentation and Tutorials

The docs are at docs.theatrejs.com:

Community and support

Join our friendly community on Discord, follow the updates on twitter or write us an email.

Development and contributing

If you want to change the source of Theatre, have a look at the guide here.

Proposing fixes and changes

You can always get help with bugfixes or discuss changes with our community on Discord, or directly open an issue on Github.

Helping with outstanding issues

Feel free to chime in on any issue. We have also labeled some issues with "Help wanted" or "Good first issue" if you're just getting started with the codebase.

Helping with documentation

The documentation website's repo is here.

Writing/recording tutorials

If you make tutorials or video content about Theatre, tell us to showcase it here :)

License

Your use of Theatre.js is governed under the Apache License Version 2.0:

  • Theatre's core (@theatre/core) is released under the Apache License. Same goes for most packages in this repository.
  • The studio (@theatre/studio) is released under the AGPL 3.0 License. This is the package that you use to edit your animations, setup your scenes, etc. You only use the studio during design/development. Your project's final bundle only includes @theatre/core, so only the Apache License applies.