typescript design systems - react finland · why typescript? # contracts confidence % scale....

49
@tejaskumar_ _ _ !

Upload: others

Post on 11-Jul-2020

34 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

!

Page 2: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

TejasLike “contagious”

Page 3: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

in Berlin, Germany "

Page 4: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Page 5: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Page 6: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

TYPESCRIPT

Page 7: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Page 8: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Page 9: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Page 10: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

TYPESCRIPT

Page 11: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___https://2018.stateofjs.com/javascript-flavors/typescript/

Page 12: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Page 13: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Why?

Page 14: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

🤝Contracts

Page 15: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

✍Confidence

Page 16: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

📈Scale

Page 17: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Why TypeScript?

Page 18: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Why TypeScript?

🤝 Contracts

✍ Confidence

📈 Scale

Page 19: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Demo

Page 20: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

DESIGN SYSTEMS

Page 21: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Page 22: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Page 23: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

DESIGN SYSTEMS

Page 24: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Kendo UI AuroraBackpack

BulbSalesforce Lightning Shopify Polaris

WeWork Plasma

DESIGN SYSTEMS

Page 25: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Material Design

Operational UI

Kendo UI

Precise UIBlueprint

Ant Design

AuroraBackpack

BulbKiwi Orbit

Salesforce Lightning

SAP OpenUI

Shopify Polaris

WeWork Plasma

DESIGN SYSTEMS

Page 26: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Semantic UI

Material Design

Operational UI

Kendo UI

Precise UIBlueprint

Ant DesignAudi UI Kit

AuroraBackpack

Bulb

eBay SkinIBM Carbon

Kiwi Orbit

Pusher Chameleon

Salesforce Lightning

SAP OpenUI

Shopify Polaris

Trello Nachos

WeWork Plasma

DESIGN SYSTEMS

Page 27: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Semantic UI

Material Design

Operational UI

Kendo UI

Reach UI

Precise UIBlueprint

Ant Design

Aragon UIAudi UI Kit

AuroraBackpack

Base UI

Bulb

eBay Skin

CBRE Blocks

Elastic UI

PrimerPurple3

IBM Carbon

Kiwi Orbit

Office UI Fabric

Pusher Chameleon

Salesforce Lightning

SAP OpenUI

Shopify Polaris

Trello Nachos

WeWork Plasma

DESIGN SYSTEMS

Page 28: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Why?

Page 29: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

🤝Contracts

Page 30: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

✍Confidence

Page 31: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

📈Scale

Page 32: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Why Design Systems?

Page 33: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Why Design Systems?

🤝 Contracts

✍ Confidence

📈 Scale

Page 34: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

TS + 🧱

Page 35: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Page 36: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

react-styleguidistgithub.com / styleguidist / react-styleguidist

Page 37: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

C ❤ @iamsapeginThank you for react-styleguidist

Page 38: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

STYLEGUIDE

Page 39: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

TypeScript First

Page 40: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Monaco

Page 41: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Monaco

Page 42: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Monaco Editor

Page 43: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

React

Page 44: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Demo

Page 45: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Takeaways

Page 46: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Takeaways• Static Type Analysis is Valuable 🤝 ✍ 📈

• Working with Monaco

• Run workers in separate threads

• Inject type declarations at run time

• Working with Hooks

• Pass mutable references via useRef

Page 47: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

@tejaskumar___

Takeaways•Learning === Hacks

•makeItWork().then(makeItRight).then(makeItFast)

•!(one tool for all)

• Docs Contributions are Contributions

Page 48: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

Thank You

tej.as

twitter.com / tejaskumar_

Page 49: TypeScript Design Systems - React Finland · Why TypeScript? # Contracts Confidence % Scale. @tejaskumar_ Demo. @tejaskumar_ DESIGN SYSTEMS. @tejaskumar_ @tejaskumar_ @tejaskumar_

Thank Youtwitter.com / tejaskumar_

tej.as