<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Haiku Blog - Medium]]></title>
        <description><![CDATA[The Haiku Team Blog (More posts at www.haikuforteams.com/blog) - Medium]]></description>
        <link>https://medium.com/haiku-blog?source=rss----6c249d0e96be---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Haiku Blog - Medium</title>
            <link>https://medium.com/haiku-blog?source=rss----6c249d0e96be---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 04:05:02 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/haiku-blog" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Introducing Storybook for Teams]]></title>
            <link>https://medium.com/haiku-blog/introducing-storybook-for-teams-fdb89dd632f9?source=rss----6c249d0e96be---4</link>
            <guid isPermaLink="false">https://medium.com/p/fdb89dd632f9</guid>
            <category><![CDATA[collaboration]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[design-systems]]></category>
            <category><![CDATA[ui-design]]></category>
            <category><![CDATA[storybook]]></category>
            <dc:creator><![CDATA[Taylor Poe]]></dc:creator>
            <pubDate>Thu, 06 Feb 2020 20:12:56 GMT</pubDate>
            <atom:updated>2020-02-06T20:12:56.712Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eYEue_hQKM2ogTSuA4Yi_w.jpeg" /></figure><h3>Storybook to the rescue</h3><p>Creating durable UI is hard: a flaming juggle of state management, business logic, styling rules, responsiveness, browser support, evolving tools, flaky APIs, dependency graphs, etc. Now try to stay on top of that over time 🔥</p><h3>Mark Dalgleish on Twitter</h3><p>Developers during hackathon: We built an entire application in just 3 days. Developers after hackathon: Adding that icon is going to take 3 weeks.</p><p>Fortunately, in recent years, Storybook has quietly begun to revolutionize UI development. The open-source project is now used by over 30,000 projects, including brands like Shopify, IBM, Salesforce, and Airbnb. With zero-configuration integration with popular frameworks and the ability to develop and test UI components in isolated environments, it’s no wonder developers have flocked to it.<br> <br>But why should developers have all the fun? For the first time, <a href="https://storybookforteams.com/"><strong>Storybook <em>for Teams</em></strong></a><strong> </strong>puts your Storybooks within reach for every teammate. Whether a designer, product manager, UX researcher, or marketer — everyone on your team can securely log in and access your latest UI source of truth.</p><h3>Storybook, now for your whole team</h3><p>Why would the rest of your team want to use Storybook? A few crackling reasons: It’s a component explorer, QA playground, development workbench, demo environment, prop documentation, usage examples, and much more depending on what else you <a href="https://storybook.js.org/addons/">add on</a>. When you consider the communication overhead reduction of rallying your entire team around Storybook as a source of truth, the implications are staggering. If only it were easy to use in a <em>whole-team</em> setting…</p><h3>Everyone on the same page(s)</h3><p>How does <a href="https://storybookforteams.com/"><strong>Storybook <em>for Teams</em></strong></a><strong><em> </em></strong>work?</p><ol><li>Create an account</li><li>Connect your team’s GitHub organization(s)</li><li>Voila! all of your Storybooks and all of their branches, always up-to-date</li><li>Invite your teammates to your secure team dashboard for ongoing collaboration</li></ol><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FotDSmf6Zkns%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DotDSmf6Zkns&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FotDSmf6Zkns%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/aed51ad150c487deac9a16c8e81a8616/href">https://medium.com/media/aed51ad150c487deac9a16c8e81a8616/href</a></iframe><p>Note the lack of tango’ing with a terminal! We’ve done a lot of work to make the initial setup a pain-free experience. Behind the scenes, Storybook for Teams utilizes a state-of-the-art continuous integration pipeline — building feature-branches every time a developer pushes a git commit. Imagine Travis-CI but for UI components.<br> <br>Designing a new feature? Explore your team’s UI component vocabulary and get a feel for how each one consumes data in the real world. Crank out new UI designs with speed and confidence in how your work will snap into your app.</p><figure><img alt="Gif showing Storybook UI component navigation within Storybook for Teams" src="https://cdn-images-1.medium.com/max/1024/1*SjzvHhTC4dCTNUCnN99Z5Q.gif" /></figure><p>Want to reference your component designs from Figma, Abstract (Sketch and Adobe XD) within Storybook? <a href="https://medium.com/storybookjs/storybook-for-design-3ff761c579bf">Storybook Addons have you covered</a> there as well.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*E1krccRqtFeKKNe1vvYNbg.png" /><figcaption>With Storybook for Teams, both designers and developers can organize around a unified source of truth — and share links to specific components</figcaption></figure><p>Have you developed an upgraded version of a component? Push your changes to a new branch and send a link to your designers and PMs for visual review and sign-off. With deep-linking to components on specific branches, your team always has an up-to-date, universal reference point for discussion. Everyone stays in sync with production code.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ykypDDqhYNNoViePbSpt_A.gif" /></figure><h3>The next chapters</h3><p>Storybook for Teams is built &amp; maintained by <a href="https://haikuforteams.com/">Haiku</a>, where we’re working to connect <em>creators of software</em> with tools that bridge long-standing gaps in collaboration.</p><blockquote>UI components<br>at everyone’s fingertips — <br>teamwork paradise</blockquote><p>What’s next? In the near term, we’ll be releasing new features to make collaboration more streamlined and efficient. Give us a shout <a href="https://twitter.com/haikuforteams">@haikuforteams</a> and let us know what you’d like to see!</p><p>Soon we’re releasing a powerful set of commenting features — to enable designers, developers, and PMs to give feedback on specific components on specific branches. No more tracking down UI feedback over multiple platforms &amp; design files or painstakingly communicating reproduction instructions.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oN_bCMJUwNR_twUiux27wQ.png" /><figcaption>Coming soon: Use Storybook for Teams comments to share progress and gather feedback on work-in-progress branches</figcaption></figure><p>What about the medium-term? You may have seen another project from the Haiku team: <a href="https://diez.org/">Diez, the design language framework</a>. Wouldn’t it be nice for Storybook to have first-class support for design tokens? What about support for <em>native</em> UI components?</p><p>Keep your eyes peeled over the months to come. We’re just getting started.</p><p>– <a href="https://www.haikuforteams.com/">The Haiku Team</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fdb89dd632f9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/haiku-blog/introducing-storybook-for-teams-fdb89dd632f9">Introducing Storybook for Teams</a> was originally published in <a href="https://medium.com/haiku-blog">Haiku Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Haiku Releases Diez Today, Open Source]]></title>
            <link>https://medium.com/haiku-blog/haiku-releases-diez-today-open-source-f0d62e813614?source=rss----6c249d0e96be---4</link>
            <guid isPermaLink="false">https://medium.com/p/f0d62e813614</guid>
            <category><![CDATA[ui-design]]></category>
            <category><![CDATA[branding]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[design-systems]]></category>
            <category><![CDATA[design-language]]></category>
            <dc:creator><![CDATA[Zack Brown]]></dc:creator>
            <pubDate>Mon, 18 Nov 2019 07:19:55 GMT</pubDate>
            <atom:updated>2019-11-18T07:35:04.010Z</atom:updated>
            <content:encoded><![CDATA[<h3>Releasing Diez Today Open Source</h3><p>The Haiku team is super proud to launch a new open source project today: Diez, the design language framework. <a href="https://diez.org/">diez.org</a></p><p>Diez radically reduces the cost of delivering a consistent visual identity across your company’s apps &amp; websites.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/516/1*Oh42MzSe0yKuoK7BalYWLw.gif" /></figure><p><strong>Haiku’s mission is to revolutionize the way that teams create software — by unifying design &amp; code.</strong> Diez’s framework for design languages sits right at the gap between design and code, and it addresses a real problem affecting any company that ships software: delivering a consistent visual identity (a.k.a. brand) across their apps &amp; websites.</p><p>Diez represents a big move toward executing our team’s mission: it’s been under development for a year and a closed beta for the last six months. And now it’s all open source on GitHub for the whole world to use!</p><p><strong>Read the whole story on the Diez community blog: </strong><a href="https://medium.com/dieznative/diez-is-now-open-source-cfaa719f4ade">https://medium.com/dieznative/diez-is-now-open-source-cfaa719f4ade</a></p><p>Or head on over to <a href="https://diez.org/">diez.org</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f0d62e813614" width="1" height="1" alt=""><hr><p><a href="https://medium.com/haiku-blog/haiku-releases-diez-today-open-source-f0d62e813614">Haiku Releases Diez Today, Open Source</a> was originally published in <a href="https://medium.com/haiku-blog">Haiku Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Kickstart Design & Development with Forks ]]></title>
            <link>https://medium.com/haiku-blog/kickstart-design-development-with-forks-689797dd4096?source=rss----6c249d0e96be---4</link>
            <guid isPermaLink="false">https://medium.com/p/689797dd4096</guid>
            <category><![CDATA[design]]></category>
            <category><![CDATA[design-thinking]]></category>
            <category><![CDATA[motion-design]]></category>
            <category><![CDATA[prototyping]]></category>
            <category><![CDATA[ui-design]]></category>
            <dc:creator><![CDATA[Nad Chishtie]]></dc:creator>
            <pubDate>Wed, 16 May 2018 15:54:50 GMT</pubDate>
            <atom:updated>2018-05-16T15:54:49.803Z</atom:updated>
            <content:encoded><![CDATA[<p>Today we’re announcing our <a href="https://share.haiku.ai/">community showcase</a> — a place where you can showcase your creations and kickstart your design and development process by forking projects.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*fikPZcrsTHvylLVW.gif" /><figcaption>Showcased projects on <a href="https://share.haiku.ai/">share.haiku.ai</a></figcaption></figure><p>Inspired by project forks in <a href="https://en.wikipedia.org/wiki/Fork_(software_development)">software development</a>, forking a project in Haiku makes a copy of it which you can freely experiment on, without affecting the original project.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*nGwGoGnctNYOiwO4.gif" /><figcaption>Forking a project on <a href="https://share.haiku.ai/">share.haiku.ai</a></figcaption></figure><p>Forks represent a simple but powerful way learn from each other’s projects, kickstart your design and development process, or simply customise existing components.</p><h3>Managing Forks🍴</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/430/0*M5oc2VQNvPCEVzfo.gif" /><figcaption>Kudos animations, made in Haiku 🤘</figcaption></figure><p>When creating a project in Haiku, you now have the option to make your project private or public. Public projects are discoverable on your <a href="https://www.haiku.ai/blog/kickstart-design-and-development-with-forks/share.haiku.ai">share.haiku.ai</a> profile, and we’re regularly featuring our favourite haiku on the showcase homepage. Public projects can be viewed, forked, and installed by anyone.</p><p>You can also give kudos to each other’s projects to show your appreciation.</p><h3>What’s new in Haiku</h3><p>Aside from launching the community showcase, we’re also constantly improving and adding new features for designers and developers to <a href="https://www.haiku.ai/">Haiku for Mac</a>. This spring, so far we’ve added:</p><h4>Draggable timeline rows</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/910/0*eCyHoX7x0-ohS1go.gif" /><figcaption>Drag &amp; drop timeline rows to manage draw order and better organise projects</figcaption></figure><h4>Stage resizing from all sides</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*OtIRHPrdv-ufZOre.gif" /><figcaption>Resize the stage using transform controls on all sides</figcaption></figure><h4>Custom origins</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*C4vkdvn4S7fWa0r6.gif" /><figcaption>Scale and rotate from any point with custom origins</figcaption></figure><h4>Multi select</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*ryJR6BRrGLiA989_.gif" /><figcaption>Use Shift to make make multiple selections on stage</figcaption></figure><h4>All new Autocomplete</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*3kNoZIor5fWr-3xh.gif" /><figcaption>A new, intelligent autocomplete in the <a href="https://www.haiku.ai/blog/designing-the-real-thing-with-haiku-actions">Actions</a> editor</figcaption></figure><h4>In memory undo/redo</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*KltVCzHB9NheYTzm.gif" /><figcaption>A more reliable and performant implementation of undo/redo</figcaption></figure><h4>Proxy Settings</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/0*cAgiWeiII7zatf24.gif" /><figcaption>Custom proxy settings, enabling use on corporate networks</figcaption></figure><p>…along with support for <a href="https://www.haiku.ai/blog/kickstart-design-and-development-with-forks/blog/figma-haiku-integration-delivering-motion">Figma projects</a>, hundreds of bug fixes and performance improvements across the board.</p><h3>Looking forward</h3><p>Today’s launch marks our first steps towards empowering users to experiment with each other’s creations in Haiku. We’re really excited about these features, and the foundation they provide to build a platform that allows you to do your best work.</p><p>We have lots more planned on this front, so stay tuned! If you’ve made it this far, you should head over to <a href="https://www.haiku.ai/">haiku.ai</a> and get <a href="https://www.haiku.ai/">Haiku for Mac</a>.</p><p>Keep up to date with the latest on:</p><ul><li><a href="https://twitter.com/HaikuForTeams">Twitter</a></li><li><a href="https://facebook.com/HaikuForTeams">Facebook</a></li><li><a href="https://www.instagram.com/HaikuForTeams">Instagram</a></li><li><a href="https://www.haiku.ai/slack-community/">Slack</a></li></ul><p><em>Originally published at </em><a href="https://www.haiku.ai/blog/kickstart-design-and-development-with-forks/"><em>www.haiku.ai</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=689797dd4096" width="1" height="1" alt=""><hr><p><a href="https://medium.com/haiku-blog/kickstart-design-development-with-forks-689797dd4096">Kickstart Design &amp; Development with Forks 🍴</a> was originally published in <a href="https://medium.com/haiku-blog">Haiku Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Vue Animations with Sketch + Haiku]]></title>
            <link>https://medium.com/haiku-blog/vue-animations-with-sketch-haiku-5bcef3359b42?source=rss----6c249d0e96be---4</link>
            <guid isPermaLink="false">https://medium.com/p/5bcef3359b42</guid>
            <category><![CDATA[animation]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[vuejs]]></category>
            <dc:creator><![CDATA[Roberto Jesus Dip]]></dc:creator>
            <pubDate>Thu, 15 Mar 2018 14:07:30 GMT</pubDate>
            <atom:updated>2018-03-21T13:18:52.958Z</atom:updated>
            <content:encoded><![CDATA[<p>Have you ever painstakingly built an animation using code — JavaScript, or Core Animation, or CSS — and thought <a href="https://www.youtube.com/watch?v=ci5r6_la5xo">there must be a better way</a>? Have you ever dreamed of a tool that lets you design the parts of your app the need designing, and code the parts that need coding?</p><p>We’ve dreamed of this, too! This is why we set out to build <a href="https://www.haiku.ai/">Haiku</a>, a tool for designing and building animated, cross-platform UI components. Our mission is to bring design and code closer together — and to do this, we do a lot of integrating.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*f7g_zSbtcXnW04O7.png" /></figure><p>Haiku integrates with Sketch so you can use familiar drawing tools; it integrates with Git and npm so that designers and developers can work with a shared version history; it integrates with Lottie so you can export native animations for Android and iOS; and it integrates with React so that your designed components work seamlessly with any React web app.</p><p><strong>Now Haiku integrates with Vue, too.</strong> This means Haiku components are first-class citizens in Vue applications. Pull components in through npm, nest them with other Vue components, pass in live data through props — it’s the same Vue you know and love, but a lot more <em>animated</em>.</p><p>Here’s Evan You’s take on it: (the creator of Vue)</p><h3>Evan You on Twitter</h3><p>Quite impressed with @HaikuForTeams - allows you to design complex animations with GUI and use in an existing Vue app as a component: https://t.co/3WaS37paNS</p><p>Let me show you an example. I’ve crafted a very simple Whac-A-Mole game: all the animation and logic related to the game itself is handled internally by the Haiku component while the score tracking is handled by Vue. The component is able to communicate back and forth with the Vue app with ease.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fcodepen.io%2Froperzh%2Fembed%2Fpreview%2FxYyaYx%3Fheight%3D600%26slug-hash%3DxYyaYx%26default-tabs%3Djs%2Cresult%26host%3Dhttps%3A%2F%2Fcodepen.io%26embed-version%3D2&amp;url=https%3A%2F%2Fcodepen.io%2Froperzh%2Fpen%2FxYyaYx&amp;image=https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fi.cdpn.io%2F218168.xYyaYx.small.9d408690-ba0b-468b-bcb7-4689701769e3.png&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=codepen" width="800" height="600" frameborder="0" scrolling="no"><a href="https://medium.com/media/ad94eff7a0c024136ca499c102e75893/href">https://medium.com/media/ad94eff7a0c024136ca499c102e75893/href</a></iframe><p>Haiku automatically hosts Git repositories for every project you create (private by default). <a href="https://git.haiku.ai/robertodip-projects/topo/blob/master/code/main/code.js">Here’s the source</a> for this component.</p><p>In this post we’ll explore the basics of Haiku Core, the rendering engine that powers <a href="https://www.haiku.ai/">Haiku for Mac</a>, as well as the new Vue adapter, while showing how we built out the adapter itself.</p><h3>Haiku Core</h3><p>Haiku Core itself is a platform-agnostic UI component library. Give it a JavaScript object that fits the specification of a Haiku component, and it will give you an object that describes how it should be rendered.</p><p>But just describing how to render isn’t very interesting or useful. Normally, you want to see something on your screen! That’s where the concept of <em>adapters</em> comes in.</p><p>In Haiku Core, <em>adapters</em> take care of turning the rendering and layout returned by the engine into an actual visible, animated, and interactive element — inside whatever the host platform is. Out of the box, Haiku Core ships with a DOM adapter (for rendering in web pages), a React DOM adapter (for rendering Haiku components inside React DOM components), and the <a href="https://vuejs.org/">Vue.js</a> adapter. You can also <em>export</em> Haiku projects to Lottie, for native animation rendering on iOS, Android, and React.</p><p>Before diving into adapter-specific code, let’s take a peek into the internals of Haiku Core and its relationship with Haiku for Mac in order to discover some of Haiku Core’s possibilities and features.</p><h3>Your design is code</h3><p>With <a href="https://www.haiku.ai/">Haiku for Mac</a> anyone can build interactive components for any web page or native app.</p><p>When you design in Haiku, you’re writing code (well, Haiku does it for you). And when you edit the code, you’re updating the design. This bridge between design and code goes both ways. This works because the Haiku design format is no more than a JavaScript object, which Haiku for Mac knows how to read and write.</p><p>We informally call this normalized definition of a component the <em>bytecode</em>. This way of representing components enables Haiku to provide an amazing set of <a href="https://www.haiku.ai/features/">features</a> such as shared version histories for designers and developers.</p><h3>From bytecode to live components</h3><p>Here’s an example of a simple component definition, to get a taste of what it looks like:</p><pre>const definition = {<br>  timelines: {<br>    Default: {<br>      &#39;#box&#39;: {<br>        // You can provide layout and style definitions...<br>        &#39;style.width&#39;: {0: {value: &#39;100px&#39;}},<br>        &#39;style.height&#39;: {0: {value: &#39;100px&#39;}},<br>        &#39;style.backgroundColor&#39;: {0: {value: &#39;steelblue&#39;}},<br>        // ...and you can also animate them!<br>        &#39;rotation.z&#39;: {<br>          0: {value: 0, curve: &#39;linear&#39;},<br>          2000: {value: 2 * Math.PI}<br>        }<br>      }<br>    }<br>  },<br>  template: `<br>    &lt;div id=&quot;box&quot;&gt;Hello Animation!&lt;/div&gt;<br>  `<br>};</pre><p>In order to render this component definition, Core needs a DOM element to attach the component and an optional set of options that allows you interact with your it by providing live data, hooking into its lifecycle events and more.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fcodepen.io%2Froperzh%2Fembed%2Fpreview%2FMQVGOp%3Fheight%3D600%26slug-hash%3DMQVGOp%26default-tabs%3Dhtml%2Cresult%26host%3Dhttps%3A%2F%2Fcodepen.io%26embed-version%3D2&amp;url=https%3A%2F%2Fcodepen.io%2Froperzh%2Fpen%2FMQVGOp&amp;image=https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fi.cdpn.io%2F218168.MQVGOp.small.d15f8426-586d-4e99-9b1c-5a15bf7fbecf.png&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=codepen" width="800" height="600" frameborder="0" scrolling="no"><a href="https://medium.com/media/38947fb30129d79d21be555c167aea06/href">https://medium.com/media/38947fb30129d79d21be555c167aea06/href</a></iframe><h3>ADVANCED: Building the wrapper</h3><p><em>If you want to use Haiku to design and build app components, you’ve already read far enough. However, if you want to know more about the internals, or would like to integrate Haiku with another library (looking at you, Angular!) then read on.</em></p><p>Now that we have a basic understanding of what’s behind the covers, let’s create a Vue wrapper that can be used for consumers of Core to render idiomatic components.</p><p>Inside of this component, we need to tell to Core where and how to attach our haiku, and we are going to do this by taking advantage of Vue <a href="https://vuejs.org/v2/guide/instance.html#Instance-Lifecycle-Hooks">lifecycle hooks</a>:</p><ul><li>When the component is mounted, we are going to create an instance of our haiku, just like we did in with our sample component definition above.</li><li>When the component is destroyed, we are going to let know to our haiku that is being unmounted by calling the component instance method <a href="https://github.com/HaikuTeam/core/blob/0862f4c602e8f71b7ebc46e425e423061781f5c1/src/HaikuComponent.ts#L347">callUnmount</a>.</li></ul><p>Lastly, we are going to define a render function that it’s going to render an empty div which we can use to attach our component:</p><pre>const vueWrapper = {<br>  mounted() {<br>    this.haiku = factory(this.$el, {});<br>  },<br>  destroyed() {<br>    this.haiku.callUnmount();<br>  },<br>  render(createElement) {<br>    return createElement(&#39;div&#39;, {});<br>  }<br>};</pre><h3>Accepting options</h3><p>As we saw before, Core is able to receive options, and our component is going to receive them via <a href="https://vuejs.org/v2/api/#props">props</a>.</p><p>But, since props can be updated once the component is already rendered, we also need to use the updated lifecycle hook to update the haiku instance with the new configuration by taking advantage of the haiku component instance method <a href="https://github.com/HaikuTeam/core/blob/0862f4c602e8f71b7ebc46e425e423061781f5c1/src/HaikuComponent.ts#L367">assignConfig</a>.</p><p><em>Note: in this example, we are only accepting </em><em>haikuOptions and </em><em>haikuStates, but Core supports even more </em><a href="https://github.com/HaikuTeam/core/blob/738993b5393d08b41827fb83c4bb39703aede3d3/src/Config.ts#L7"><em>configuration options</em></a><em>!</em></p><pre>const vueWrapper = {<br>  props: {<br>    haikuOptions: Object,<br>    haikuStates: Object<br>  },<br>  mounted() {<br>    this.haiku = factory(this.$el, {<br>      options: this.$props.haikuOptions,<br>      states: this.$props.haikuStates<br>    });<br>  },<br>  updated() {<br>    this.haiku.assignConfig({<br>      options: this.$props.haikuOptions,<br>      states: this.$props.haikuStates<br>    });<br>  },<br>  render(createElement) {<br>    return createElement(&#39;div&#39;, {});<br>  }<br>};</pre><h3>Lifecycle events</h3><p>A Haiku component also provides lifecycle hooks that are modeled after React lifecycle hooks.</p><p>Since Vue exposes a special syntax to deal with events, we want our wrapper to embrace it by providing an interface that looks like this:</p><pre>&lt;my-component :haikuComponentDidMount=&quot;myFunc&quot;&gt;&lt;/my-component&gt;</pre><p>Haiku lifecycle hooks are declared in the config object that you pass to Core, so we’ll need to update our mounted function with the proper hooks, adding a $emit call every time an event is triggered:</p><pre>const vueWrapper = {<br>  //...<br>  mounted() {<br>    //...<br>    this.haiku = factory(this.$el, {<br>      //...<br>      onHaikuComponentWillInitialize: (component) =&gt; {<br>        this.$emit(&#39;haikuComponentWillInitialize&#39;, component);<br>      },<br>      onHaikuComponentDidMount: (component) =&gt; {<br>        this.$emit(&#39;haikuComponentDidMount&#39;, component);<br>      },<br>      onHaikuComponentWillMount: (component) =&gt; {<br>        this.$emit(&#39;haikuComponentWillMount&#39;, component);<br>      },<br>      onHaikuComponentDidInitialize: (component) =&gt; {<br>        this.$emit(&#39;haikuComponentDidInitialize&#39;, component);<br>      },<br>      onHaikuComponentWillUnmount: (component) =&gt; {<br>        this.$emit(&#39;haikuComponentWillUnmount&#39;, component);<br>      }<br>    });<br>  }<br>};</pre><h3>Wrapping it up</h3><p>And that’s it! The real adapter has some subtleties related to rendering and adaptation to the codebase, but that is the gist of it. If you want to see the full code, <a href="https://github.com/HaikuTeam/core/blob/master/src/adapters/vue-dom/HaikuVueDOMAdapter.ts">please take a look</a> — it’s all open source.</p><p>If you want to build an adapter for your favorite framework, we are open source and very much enjoy pull requests! If you need any help to do so, please ping us in our <a href="https://www.haiku.ai/slack-community/">Slack Community</a>.</p><p><em>Originally published at </em><a href="https://www.haiku.ai/blog/vue-animations-with-sketch-and-haiku/"><em>www.haiku.ai</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5bcef3359b42" width="1" height="1" alt=""><hr><p><a href="https://medium.com/haiku-blog/vue-animations-with-sketch-haiku-5bcef3359b42">Vue Animations with Sketch + Haiku</a> was originally published in <a href="https://medium.com/haiku-blog">Haiku Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Designing the Real Thing with Haiku Actions]]></title>
            <link>https://medium.com/haiku-blog/designing-the-real-thing-with-haiku-actions-a80ccddfcb1?source=rss----6c249d0e96be---4</link>
            <guid isPermaLink="false">https://medium.com/p/a80ccddfcb1</guid>
            <category><![CDATA[prototyping]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[ui]]></category>
            <category><![CDATA[animation]]></category>
            <category><![CDATA[developer-tools]]></category>
            <dc:creator><![CDATA[Taylor Poe]]></dc:creator>
            <pubDate>Thu, 21 Dec 2017 16:49:22 GMT</pubDate>
            <atom:updated>2018-04-18T19:44:52.239Z</atom:updated>
            <content:encoded><![CDATA[<p>Let’s explore using Actions in Haiku to create the following interactive design:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/644/1*Uy78-EjHi8rJvrzjCSafrg.gif" /><figcaption>The actual haiku (<a href="https://share.haiku.ai/u/taylor/CheckOut">https://share.haiku.ai/u/taylor/CheckOut</a>) has *far* superior quality than the gif the shown here. Fork it to start using Haiku.</figcaption></figure><p>I want to start by emphasizing that what we’ll be making is a <em>real </em>component. Haiku are all SVG and <a href="https://medium.com/haiku-blog/lottie-without-after-effects-9c5a8e74c239">work on iOS, Android, and the Web</a>. They’re stateful, programmable and best of all, you, the designer, retain control over your creations even after they’ve been integrated. But why does that matter?</p><h3>The Trouble with Design Tooling</h3><p>Users’ expectations have evolved past simple screen-to-screen transitions — the best apps now provide thoughtfully choreographed interactions to guide users’ every move. But even the latest and greatest screen design tooling isn’t helping us make this leap. We’re stuck trying to brute force artboards into describing complex states. We wrestle symbols, overrides, layout constraints, dynamic data, and design systems, only to create artifacts that aren’t the <em>real</em> thing. It leaves quite a few of us bashing into this realization:</p><h3>Mike on Twitter</h3><p>@markdalgleish @mrmrs_ Crafting a Sketch Library with clever symbol overrides was so gosh darn complicated compared to code</p><p>At Haiku we believe designers deserve something more powerful than the ability to draw magic lines between screens; more real than symbols that fall out of sync with production apps.</p><p>What might this look like? Glad you asked. We have a series of upcoming posts that will provide the full picture. Today we’re going to focus only on a piece of it: Actions.</p><h3>Introducing Haiku Actions</h3><p>Actions are small snippets of code (JavaScript) with a lot of power. We’ve designed actions to be accessible to people who only know a little code, or who want to learn — as well as to engineering veterans.</p><p>To be clear: <em>you don’t have to code to use Haiku</em>. Actions are completely optional, and you <a href="https://medium.com/haiku-blog/getting-started-with-animations-for-the-web-ios-android-with-haiku-568184eb31fa">can stay strictly in the timeline and the stage</a>, or you can dive right into the code. Haiku invites you to bring your own skills to the creative table.<br> <br> You can use Actions to:</p><ul><li>Travel through time by changing the timeline position</li><li>Respond to user input</li><li>Work with real data</li><li>Change properties of app elements (think: position, color, etc,)</li><li>And more! The rabbit hole runs deep, as you have all of JavaScript at your fingertips.</li></ul><h3>Using Actions to travel through time</h3><p>Let’s dive into exploring how to make an interactive experience in Haiku. For the sake of simplicity, we’ll run the entire example <a href="https://medium.com/haiku-blog/getting-started-with-animations-for-the-web-ios-android-with-haiku-568184eb31fa">on a single timeline</a>; within a single component. A lot can be achieved even with these constraints. From the first gif you may have noticed that the first portion of the timeline showing movement in the water loops until the user clicks the ‘Check Out’ button.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/590/1*wZgIJ_03j3OFIK0wqygpcw.gif" /></figure><p>This is achieved with a <strong>Frame Action</strong> — an event that is triggered every time a frame is crossed. We’ve put ours on frame 518 and instructed it to go back and replay from the beginning (time 0). See below:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*arKqd-1BXsranKjPlBQuqg.gif" /></figure><p>With this Frame Action in play, the timeline will never cross this frame on its own — it will respect the command to jump back and repeat from the beginning. The selected snippet is simply inserting JavaScript. By the end of this tutorial you should be reassured that you don’t need to <em>know</em> JavaScript to be able to achieve the behavior you’re pursuing. Most tasks can be accomplished by inserting a snippet and knowing to which point in time you’d like to travel. Don’t believe me? Let’s time travel again; this time when the user clicks the ‘Check Out’ button.</p><h3>Using Actions to respond to user input</h3><p>Let’s add an <strong>Element Action</strong> this time that will tell the timeline to jump past our Frame Action and play our finale sequence. This section begins on millisecond 8780, so let’s instruct the button to play the timeline from that point.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/648/1*VTehdiDLrnVm8Ik4P1iQrg.gif" /></figure><p>With just these two <strong>Actions</strong> — one on a <strong>Frame</strong> and one on an <strong>Element</strong>— we’ve achieved a quite a lot, wouldn’t you say?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/644/1*Uy78-EjHi8rJvrzjCSafrg.gif" /><figcaption>The actual haiku (<a href="http://bit.ly/2CXrjD1">http://bit.ly/2CXrjD1</a>) has *far* superior quality than the gif the shown here.</figcaption></figure><h3>Properties that listen</h3><p>Let’s continue exploring. You may be familiar with using simple formulas in spreadsheets to create dynamic equations.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/832/1*6X5xZdCnG_pvjDLpxCZR3w.png" /></figure><p>It’s a simple and clear, yet powerful provision for referencing a value stored in one cell and using it in another in a new way. We’ve taken this construct and put it into all of our property inputs inside of Haiku. We call them <strong>Expressions</strong>. Our inputs can, of course, take a simple value, but they become dynamic expressions when you start them with an “=”.</p><p>Let’s make our static ‘Check Out’ button dynamic by telling its horizontal position to reflect a small percentage of the user’s mouse position.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/562/1*3tljZ61MWPlv0DRdD8hriw.gif" /></figure><p>Following the same pattern for the button’s Position Y, we can achieve a dynamic effect that draws attention to the call to action.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/420/1*WVhtFbK_-k40Vs-xg8qbxg.gif" /></figure><p>Haiku’s Expression Inputs can also listen to <strong>States</strong>. You’re able to define and alter these States to create a virtually limitless amount of dynamic interactivity. We’ll leave that piece for the next tutorial, where we will demonstrate how to pass dynamic data into your Haiku creations, as well as how to drop them into your codebase.</p><p>Thanks for reading! Be sure to subscribe to our publication here on Medium and follow us on our social channels for updates.</p><ul><li><a href="https://twitter.com/HaikuForTeams">Twitter</a></li><li><a href="https://facebook.com/HaikuForTeams">Facebook</a></li><li><a href="https://www.instagram.com/HaikuForTeams">Instagram</a></li><li><a href="https://www.haiku.ai/slack-community/">Slack</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a80ccddfcb1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/haiku-blog/designing-the-real-thing-with-haiku-actions-a80ccddfcb1">Designing the Real Thing with Haiku Actions</a> was originally published in <a href="https://medium.com/haiku-blog">Haiku Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Motion design for the web, iOS & Android with Haiku]]></title>
            <link>https://medium.com/haiku-blog/getting-started-with-animations-for-the-web-ios-android-with-haiku-568184eb31fa?source=rss----6c249d0e96be---4</link>
            <guid isPermaLink="false">https://medium.com/p/568184eb31fa</guid>
            <category><![CDATA[design-thinking]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[ui-design]]></category>
            <category><![CDATA[motion-design]]></category>
            <category><![CDATA[prototyping]]></category>
            <dc:creator><![CDATA[Nad Chishtie]]></dc:creator>
            <pubDate>Tue, 12 Dec 2017 17:14:22 GMT</pubDate>
            <atom:updated>2018-03-21T12:04:53.038Z</atom:updated>
            <content:encoded><![CDATA[<p>A common design goal of modern digital products is to surprise and delight users, and motion design can be a powerful tool in your arsenal to do that. Entertaining loading animations, gratifying feedback and using motion to lead the eye between transitions are all great ways to elevate your user experience.<br> <br><a href="https://medium.com/u/d8e76fc84359">Paul Stamatiou</a> summarised our thoughts well on where designers should fit in this equation over three years ago:</p><h3>Paul Stamatiou 📷 on Twitter</h3><p>If you&#39;re a designer, please learn motion design skills. At 60fps there&#39;s 58 frames you need to design between Mock A and Mock B&quot; #io14</p><p>Sadly, most modern design tools and workflows aren’t set up to let designers actually design those 58 frames.</p><p>Today’s popular workflows revolve around creating throwaway prototypes used to communicate to developers who then painstakingly recreate animations to the best of their eyes and ability in code.<br> <br>Not only is this a waste of time and resources, but the process is so fatiguing that even seasoned designers and developers end up settling for <em>“good enough”</em> implementations. And if they want to iterate on their designs after trying out a concept, they’re back starting again from square one.</p><h3>Haiku is different</h3><p>Haiku is a modern design tool that empowers designers and developers to build imaginative UI components. Code optional. With its visual timeline, it’s easy to design interfaces powered by motion.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*p_zeQS1uQk03lM6we0mjVg.png" /><figcaption>Meet Haiku</figcaption></figure><p>Everything authored in Haiku is production ready, and once integrated with your codebase you can continue to iterate on your designs. No hand off necessary.</p><h3>Thinking in time and space</h3><p>Before we roll up our sleeves in Haiku, it’s useful to think about how we want to translate our designs into motion, by thinking like an animator—in time and space.</p><p>If you’re new to motion, one simple way to do that is to storyboard.</p><p>Storyboards were popularised by <a href="https://en.wikipedia.org/wiki/Storyboard#Origins">Walt Disney Productions in the 1930&#39;s</a> as a way for animators and directors to communicate a story as a sequence. In interaction design, storyboards can help us determine:</p><ul><li>What <strong>elements</strong> we’ll need</li><li>What <strong>properties</strong> we’ll manipulate</li><li>What <strong>keyframes</strong> we’ll begin with (more on those later)</li></ul><p>For example, let’s storyboard a bouncing ball, which we’ll use to get started in Haiku:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jQLYJ1D3Ue6wX548hbba3Q.png" /></figure><p>From this simple storyboard, we can determine:</p><ul><li>We need 2 elements; the ball and the shadow</li><li>We’ll want to modify the position of the ball, the scale of the ball and opacity of the shadow</li><li>We need at least 3 keyframes for our animation to seamlessly loop</li></ul><p>When storyboarding, try not to get hung up on small details — a lot of the magic in motion happens when animating and iterating on your designs visually. Just figure out enough to get started.</p><h3>Getting started with Haiku</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FGs5YG_uf5UQ%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DGs5YG_uf5UQ&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FGs5YG_uf5UQ%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/566bb4e815a86d10709a8497cb8ee5c7/href">https://medium.com/media/566bb4e815a86d10709a8497cb8ee5c7/href</a></iframe><h4>Working with Sketch</h4><p>In Haiku, there’s 2 ways to work with Sketch— you can either import an existing Sketch file or create new designs from scratch.</p><p>If you want to start on a new design, the best way to do that is to begin designing in the boilerplate Sketch file included in every Haiku project. Just double click to edit:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*LL0mXvW9RFA-k3GR-FrkxQ.gif" /><figcaption>The boilerplate Sketch file contains more instructions — we’ll cover them later.</figcaption></figure><p>You can also import existing Sketch &amp; SVG files:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*lP_xwdflZ9BFTgtKrFn4CA.gif" /><figcaption>Here’s one I made earlier.</figcaption></figure><p>Haiku looks for artboards and slices and smartly imports them as separate elements in your library. After drawing your ball and shadow, the easiest way to convert your shapes into slices is to mark them as ‘Make Exportable’ in Sketch:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*m_BN7ZInOCb8C-iwKHrWSw.gif" /></figure><p>After hitting save, your Sketch slices will appear in your Haiku library:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*PEVGTrqBM-VtCwlCZZOdHQ.gif" /></figure><p>You can then drag elements from the library to the stage:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*dn-oFwosoJWUULXe4G_3uA.gif" /></figure><p>Whenever a property is edited, Haiku automatically creates a keyframe where the playhead is positioned. Think of keyframes the same way you would frames in our original storyboard.</p><p>Properties can be edited directly in the timeline, or by manipulating elements visually on the stage:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*2btYLjT6A6Y67xZCbYUIuw.gif" /><figcaption>Entering accurate properties ensures a 100% seamless loop of our bouncing ball.</figcaption></figure><p>Now that our keyframes are set up, let’s smoothly ease between them using the built-in tween library by right clicking in the timeline. I’m using <em>Ease In → Cubic</em> and <em>Ease Out → Cubic </em>but I’d recommend experimenting with different tweens to find the right one for your animation:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*4yMoj4YncMTO0S1cfm44Pw.gif" /><figcaption>Now we’re getting somewhere!</figcaption></figure><p>Using the basic techniques we just employed, it’s easy to add more detail. Adding keyframes part way through the timeline to reveal the shadow when the ball is near:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*iFebOEDKbNZLa7Tcmwe51w.gif" /></figure><p>And squashing the ball vertically to emulate physics:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*BJghgu1KI6kbJcPSJ1yJMw.gif" /></figure><p>Publishing generates a unique Share URL you can use to share with others:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*feLhokXmrTe4lbmyUEkh0w.gif" /></figure><p>The share page lets you preview your haiku on the web with embed instructions:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*6zrjCpVFFS878HH49nvkQQ.gif" /><figcaption><a href="https://share.haiku.ai/aee1d498-1c7e-4c11-98d5-9d0f81aa725c/latest">View the share page</a> for this haiku</figcaption></figure><p>Everything created in Haiku is pure JS/CSS ready to snap into any web app, with native renderers for iOS &amp; Android powered by Lottie.</p><h3>That’s a wrap!</h3><p>If you’ve made it this far, you should probably <a href="https://www.haiku.ai/">sign up for the private beta</a> if you haven’t already. If you have any questions, feel free to reach out in the comments below.</p><p>You can also keep up to date with the latest on:</p><ul><li><a href="https://twitter.com/HaikuForTeams">Twitter</a></li><li><a href="https://facebook.com/HaikuForTeams">Facebook</a></li><li><a href="https://www.instagram.com/HaikuForTeams">Instagram</a></li><li><a href="https://www.haiku.ai/slack-community/">Slack</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=568184eb31fa" width="1" height="1" alt=""><hr><p><a href="https://medium.com/haiku-blog/getting-started-with-animations-for-the-web-ios-android-with-haiku-568184eb31fa">Motion design for the web, iOS &amp; Android with Haiku</a> was originally published in <a href="https://medium.com/haiku-blog">Haiku Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Lottie without After Effects]]></title>
            <link>https://medium.com/haiku-blog/lottie-without-after-effects-9c5a8e74c239?source=rss----6c249d0e96be---4</link>
            <guid isPermaLink="false">https://medium.com/p/9c5a8e74c239</guid>
            <category><![CDATA[ui-design]]></category>
            <category><![CDATA[prototyping]]></category>
            <category><![CDATA[developer-tools]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[design-thinking]]></category>
            <dc:creator><![CDATA[Taylor Poe]]></dc:creator>
            <pubDate>Mon, 06 Nov 2017 19:45:01 GMT</pubDate>
            <atom:updated>2017-11-08T18:31:53.218Z</atom:updated>
            <content:encoded><![CDATA[<h3>Lottie Without After Effects</h3><h3>Lottie Who?</h3><p>The process of creating motion for mobile felt broken up until Airbnb released a stunning <a href="https://medium.com/airbnb-engineering/introducing-lottie-4ff4a0afac0e">open source library called Lottie</a>. Prior to then (Feb. 2017), creating complex mobile animations required an arduous back-and-forth between designers and developers.<br> <br>Designers would create prototypes for developers who would have to either recreate them by hand in multiple languages (once for Android and once for iOS), or choose to embed large non-scaling GIFs or image sprites. But Lottie changed all of that, rendering intricate, scalable animations for both iOS and Android with the ease of including a static image. Swiftkey, for example, swapped out a .png sequence at 6mb in size for a Lottie .json of just 340kb. The pristine fidelity and download savings have an enormous impact on the user experience.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YfINLElBSIqS1hLgnpuW5g.gif" /><figcaption>Image credit: <a href="http://airbnb.io/lottie/">http://airbnb.io/lottie/</a></figcaption></figure><p>It’s a big deal to have this power, and droves of designers are scheduling time out of their weekends to learn the new toolchain. But it’s surprisingly complex.</p><h3>Lottie’s reliance on After Effects</h3><p>Lottie relies on <a href="http://www.adobe.com/products/aftereffects.html">Adobe After Effects (AE)</a> as its animation creation tool. AE’s brilliance is undeniable — it’s the industry standard for animating cinematic movie titles, intros, and transitions. But with the power comes a labyrinth of complexity (many features being unsupported by Lottie and UI animation in general). AE’s capabilities make it nontrivial to learn, and sadly the steep curve puts using Lottie out of reach for many designers.<br> <br>As we imagine the ideal set of tools for UI motion design, we can’t help but wonder if AE is really the right companion for Lottie. After all, AE being used for UI motion design is beyond its original scope. The situation feels analogous to 2005, when designers were relying heavily on Photoshop as a UI design tool — not because it was made for the type of work, but because there was nothing better suited on the market. Then along came Sketch, a tool with a pure UI design focus.<br> <br>What if there were an “After Effects” that was intended for <strong>app</strong> motion and interaction design?</p><h3>A new way to Lottie</h3><p>We designed <a href="https://www.haiku.ai/">Haiku</a> from the ground up for animating UI components. Like Sketch, it is a simple tool with a specific purpose, and like AE, it is compatible with Lottie.<br> <br>Our users are saying that it’s more intuitive to animate, and generally much easier to get up and running than AE. You’re not required to download and install special third-party plug-ins for both <a href="https://github.com/bigxixi/Sketch2AE">Sketch</a> and <a href="https://github.com/bodymovin/bodymovin">After Effects</a>, then learn to animate using <a href="http://airbnb.io/lottie/supported-features.html">the subset of features that are supported</a>. You simply create animations in Haiku and publish.<br> <br>After publishing, you’re able to choose to use Lottie as your player (for native applications), or to use our own player (web only for now) where your animations can respond to user interaction.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/547/1*s97JHFR8sWy0-WZZzVrx8w.gif" /></figure><p>On top of that, we have a little something up our sleeve we’re calling <strong>Live Design</strong>. Imagine making a change in your drawing tool (Sketch) and seeing it instantly update in Haiku, your application’s codebase, and across all of the production platforms you’re targeting. That’d truly be an unprecedented connection for design and development teams — the backbone of a connected design <em>system</em>.<br> <br>There’s recently been a <a href="https://www.sketchapp.com/docs/libraries/">lot</a> <a href="https://blog.figma.com/team-libraries-in-figma-409fa5e20f7">of</a> <a href="https://www.invisionapp.com/studio">buzz</a> about design tools implementing “design system managers” when they are in reality merely static <em>pictures</em> of design systems. We think there’s a better way forward — that a design system should be a living set of components. With Haiku it can be just that, and it’s a big difference. We’re going to release Live Design into the app soon. Until then, here’s a quick teaser of just how satisfying this paradigm-shifting workflow feels.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FfYRd-TU3URk%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DfYRd-TU3URk&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FfYRd-TU3URk%2Fhqdefault.jpg&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/6d0e216f3e554241f6eed19bb2488307/href">https://medium.com/media/6d0e216f3e554241f6eed19bb2488307/href</a></iframe><p>Full disclosure: Haiku is currently in a private preview and there’s still a few things you can do in After Effects that you’re not yet able to in Haiku, such as shape morphing and masks. These are important features and we’re working on bringing them into the app as soon as possible. That said, Haiku already has many features that AE doesn’t (Live Design, Interactions, Events, States). We hope our vision to empower designers inspires you to try out our private beta.</p><p>Sign up and see what users are creating over at <a href="http://www.haiku.ai/">www.haiku.ai</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vLaV5Et2qD96vWPqJX3b3Q.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9c5a8e74c239" width="1" height="1" alt=""><hr><p><a href="https://medium.com/haiku-blog/lottie-without-after-effects-9c5a8e74c239">Lottie without After Effects</a> was originally published in <a href="https://medium.com/haiku-blog">Haiku Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>