Zeplin Angular

broken image


Announcing new features for product teams

Introducing Component Variants, Zapier Integration, and new Notifications experience. Learn more.

Zeppelin provides gateway between your interpreter and your compiled AngularJS view teamplates. Therefore, you can not only update scope variable from your interpreter but also watch your scope variable in the interpreter, which is JVM process. Do you have designs in Zeplin, and need to turn those into React Native UI (or even html) codes? This will take those design's json schema, and automatically create React Native snippets/components.

Designers have published 6,860,867
6
4
Figma, Sketch and Adobe XD designs to Zeplin for development and collaboration in the past 30 days.

Get started for freeGo to projects →
253px
Core
Radius, 2px
#419BF9

Zeppelin Angular Core

Roboto, Medium, 24px
#FFFFFF

Leading product teams use Zeplin

Explore why →

Publish designs for development

Go beyond specs. With Zeplin, you can publish finalized designs from Figma, Sketch, Adobe XD and Photoshop.

Developers get a 'locked' design to build from, while designers can iterate on the next great release.

Zeplin is the source of truth for finalized designs, if it's not in Zeplin it won't be in the shipped product.

Bring together the multidisciplinary team

An accessible workspace that is friendly to non-designers including developers, product managers, copywriters and more.

Zeplin also helps the team collaborate by providing much needed organization and structure to native design files.

Zeplin provides an inclusive workspace where team members from varying disciplines like product managers, UX writers and more can come together to deliver on designs.

Extend your design system

Drive consistency by surfacing design system elements where developers can easily reuse them. Then, go even further by using Connected Components to extend designs to code!

open platform

Connect your tools and build custom workflows

Leverage your investments in tools like Jira, Trello, Slack and VS Code through deep integrations with Zeplin.
With the Zeplin open API and webhooks, you can also create custom workflows to support your specific needs.

Deliver on the promise of design

Basic Usage

In addition to the backend Angular API to handle Angular objects binding, Apache Zeppelin also exposes a simple AngularJS z object on the front-end side to expose the same capabilities.This z object is accessible in the Angular isolated scope for each paragraph.

Bind / Unbind Variables

Zeppelin angular tutorial

Through the z, you can bind / unbind variables to AngularJS view.Bind a value to an angular object and a mandatory target paragraph:

Unbind/remove a value from angular object and a mandatory target paragraph:

Zeppelin Angular Tutorial

The signature for the z.angularBind() / z.angularUnbind() functions are:

All the parameters are mandatory.


Zeplin Angular

Zeppelin Angular

Run Paragraph

You can also trigger paragraph execution by calling z.runParagraph() function passing the appropriate paragraphId:


Overriding dynamic form with Angular Object

The front-end Angular Interaction API has been designed to offer richer form capabilities and variable binding. With the existing Dynamic Form system you can already create input text, select and checkbox forms but the choice is rather limited and the look & feel cannot be changed.

The idea is to create a custom form using plain HTML/AngularJS code and bind actions on this form to push/remove Angular variables to targeted paragraphs using this new API.

Consequently if you use the Dynamic Form syntax in a paragraph and there is a bound Angular object having the same name as the ${formName}, the Angular object will have higher priority and the Dynamic Form will not be displayed. Example:


Zeplin

Feature matrix comparison

How does the front-end AngularJS API compares to the backend Angular API? Below is a comparison matrix for both APIs:

ActionsFront-end APIBack-end API
Initiate bindingz.angularbind(var, initialValue, paragraphId)z.angularBind(var, initialValue)
Update valuesame to ordinary angularjs scope variable, or z.angularbind(var, newValue, paragraphId)z.angularBind(var, newValue)
Watching valuesame to ordinary angularjs scope variablez.angularWatch(var, (oldVal, newVal) => ...)
Destroy bindingz.angularUnbind(var, paragraphId)z.angularUnbind(var)
Executing Paragraphz.runParagraph(paragraphId)z.run(paragraphId)
Executing Paragraph (Specific paragraphs in other notes) (z.run(noteid, paragraphId)
Executing notez.runNote(noteId)

Zeppelin Angular Font

Both APIs are pretty similar, except for value watching where it is done naturally by AngularJS internals on the front-end and by user custom watcher functions in the back-end.

Zeppelin angular download
Radius, 2px
#419BF9

Zeppelin Angular Core

Roboto, Medium, 24px
#FFFFFF

Leading product teams use Zeplin

Explore why →

Publish designs for development

Go beyond specs. With Zeplin, you can publish finalized designs from Figma, Sketch, Adobe XD and Photoshop.

Developers get a 'locked' design to build from, while designers can iterate on the next great release.

Zeplin is the source of truth for finalized designs, if it's not in Zeplin it won't be in the shipped product.

Bring together the multidisciplinary team

An accessible workspace that is friendly to non-designers including developers, product managers, copywriters and more.

Zeplin also helps the team collaborate by providing much needed organization and structure to native design files.

Zeplin provides an inclusive workspace where team members from varying disciplines like product managers, UX writers and more can come together to deliver on designs.

Extend your design system

Drive consistency by surfacing design system elements where developers can easily reuse them. Then, go even further by using Connected Components to extend designs to code!

open platform

Connect your tools and build custom workflows

Leverage your investments in tools like Jira, Trello, Slack and VS Code through deep integrations with Zeplin.
With the Zeplin open API and webhooks, you can also create custom workflows to support your specific needs.

Deliver on the promise of design

Basic Usage

In addition to the backend Angular API to handle Angular objects binding, Apache Zeppelin also exposes a simple AngularJS z object on the front-end side to expose the same capabilities.This z object is accessible in the Angular isolated scope for each paragraph.

Bind / Unbind Variables

Through the z, you can bind / unbind variables to AngularJS view.Bind a value to an angular object and a mandatory target paragraph:

Unbind/remove a value from angular object and a mandatory target paragraph:

Zeppelin Angular Tutorial

The signature for the z.angularBind() / z.angularUnbind() functions are:

All the parameters are mandatory.


Zeppelin Angular

Run Paragraph

You can also trigger paragraph execution by calling z.runParagraph() function passing the appropriate paragraphId:


Overriding dynamic form with Angular Object

The front-end Angular Interaction API has been designed to offer richer form capabilities and variable binding. With the existing Dynamic Form system you can already create input text, select and checkbox forms but the choice is rather limited and the look & feel cannot be changed.

The idea is to create a custom form using plain HTML/AngularJS code and bind actions on this form to push/remove Angular variables to targeted paragraphs using this new API.

Consequently if you use the Dynamic Form syntax in a paragraph and there is a bound Angular object having the same name as the ${formName}, the Angular object will have higher priority and the Dynamic Form will not be displayed. Example:


Feature matrix comparison

How does the front-end AngularJS API compares to the backend Angular API? Below is a comparison matrix for both APIs:

ActionsFront-end APIBack-end API
Initiate bindingz.angularbind(var, initialValue, paragraphId)z.angularBind(var, initialValue)
Update valuesame to ordinary angularjs scope variable, or z.angularbind(var, newValue, paragraphId)z.angularBind(var, newValue)
Watching valuesame to ordinary angularjs scope variablez.angularWatch(var, (oldVal, newVal) => ...)
Destroy bindingz.angularUnbind(var, paragraphId)z.angularUnbind(var)
Executing Paragraphz.runParagraph(paragraphId)z.run(paragraphId)
Executing Paragraph (Specific paragraphs in other notes) (z.run(noteid, paragraphId)
Executing notez.runNote(noteId)

Zeppelin Angular Font

Both APIs are pretty similar, except for value watching where it is done naturally by AngularJS internals on the front-end and by user custom watcher functions in the back-end.

There is also a slight difference in term of scope. Front-end API limits the Angular object binding to a paragraph scope whereas back-end API allows you to bind an Angular object at the global or note scope. This restriction has been designed purposely to avoid Angular object leaks and scope pollution.





broken image