Git Product home page Git Product logo

keytime-editor's Introduction

keytime-editor

experimental

see here for details

This project is WIP. Currently the "low level" modules (eases, keytime, keyframes, etc) are stable, but the editor is only a rough proof of concept, and subject to major changes.

Usage

NPM

License

MIT, see LICENSE.md for details.

TODOS

the code is fairly messy right now. gotta outline necessary features and exposed API before another refactor

API

Example setup for your project:

//high level editor for CSS properties
//includes stuff like color editing, % px units, etc
var editor = require('keytime-css-editor')

editor.timelines.open(0)
editor.timelines.openAll()
editor.timelines.closeAll()
editor.timelines.closeAll()
editor.timelines.close(0)

breakdown

editor
	timeline(name)
		open = bool	
		property(name)
			keyframes
	playhead(val)
	hide()
	show()
	closeAll()
	openAll()
	load(data)
	addTimeline(timeline, name)

manipulating keyframes "disable" keyframes lock properties/timelines shy properties/timelines undo/redo hokeys everything interpolate timelines

controls number(s) css units (px/em/etc) color rgba (e.g [255, 255, 255, 0.5]) string boolean select (i.e. from a list of icons) search-select (i.e. from a huge list of icons)

how to handle UI states? e.g. buttons:

idle/rest
hover in (mouse comes in)
click start
click end
hover out

How to blend from e.g. half way thru hover in to a click start timeline? Lerping between timelines? What about adding "morph targets" where one timeline can morph X amount to another timeline. and then stack if needed

Procedural UI animation?

  • define a few idle poses and blend between them ??

nested reusable timelines

e.g. hamburger bars turning into an X

how do we represent this in a modular way? the problem is with styling and DOM.

but it will be useful to separate concerns.

e.g. button position on page button timeline > has all the button animations

basically the same as a layered group but the important thing is being able to move that whole group

[ { name: 'effect-x-rotate', keyframes: [ { time: 0, value: [ { name: 'border-radius', value: 5 }, { name: 'border-radius', value: 5 }, ] }

] }

]

keytime-editor's People

Contributors

mattdesl avatar

Watchers

 avatar

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.