web designers Waverley Massachusetts

Waverley web designers

web design using python

Hello and welcome to this web designers Web Designer Waverley video tutorial.

I’m Owen Corso from Google.

web design entry level jobs web design forums

And today, we’re going to build a rich media expandable creative with video.

Let’s start by selecting file, New File.

This opens a dialog box where we will set up our ad.

First, let’s make out high of project.

We have four options– The default is Display & Video 360so we will leave that as is.

web design color schemes

What Your Dentist Can Tell You About Dental Braces

LYNN MERCIER: Thetruth is, like, if we want to evolve thematerial design system, we need to be able tobuild on top of the code, and each layer ofthat code matters.

MUSTAFA KURTULDU:The conveyor belt is-- designer works onsomething, developer takes it, and developer screams becausethere was no conversation.

I think that's one ofthe biggest challenges.

[MUSIC PLAYING] One of the challenges inthe beginning with material on the web was there's so manydifferent implementations.

Again, the singlesource of of truth, so you had Angular material,you had Polymer, you had MDL.

How have you found solvingthat single source of truth? LYNN MERCIER: Yeah.

Originally we had a unique teamof developers in both Android-- I'm sorry-- Angular,and Polymer, and all these otherweb frameworks sort of building their ownimplementations in material design.

But we found that we couldn'tkeep that going at scale.

Like, we were iterating onthe material design system so quickly, and we couldn'tkeep a single source of truth with these othercomponent libraries.

So we started developinga technology where we would write our JavaScriptonce and sort of abstract its interaction with theHTML, so you wouldn't directly reference a DOM element.

And then we wouldwrap that JavaScript in individualcomponent libraries.

It's not a perfect solution.

We're still working onmaking it faster and better, but we've foundthat that creates these sort of componentsthat look like they belong in the framework.

So any framework developerwho's working there, they look seamlesslylike they're a part of the environment.

MUSTAFA KURTULDU: The onething that we struggled with with MaterialDesign Lite was there was a lot of blackmagic going on in the DOM.

So you check DeveloperTools, and there'll be, like, these random elements.

And that was, like, anopinionated decision so, you know, how do you go aboutdeveloping a new framework where you have to have anopinion-- there has to be, like, this is the baselineof what we're doing-- without impeding on, like, whatthe developer just wants to do? They just want this componentto work, or this widget, or whatever.

LYNN MERCIER: Yeah.

I try as much as possibleto avoid black magic.

And, like, whenever I'mreviewing any code that any of the designers on myteam are writing, we, like, try and avoid anything that's-- maybe it's a little hack,and it makes it slightly more performant-- butthe truth is, like, if we want to evolve thematerial design system, we need to be able tobuild on top of the code, and each layer ofthat code matters.

So we try and, like, steeraway from any black magic and just have thisone source of truth that works with all thecomponent libraries as much as possible.

MUSTAFA KURTULDU:In terms of, like, working withexisting frameworks, what's the relationship there? Because, like, React isa thing-- you have to-- it's the real world, right? LYNN MERCIER: Mm-hmm.

MUSTAFA KURTULDU: Or likeWordPress is a thing.

Like, you have towork in that world.

LYNN MERCIER: Mm-hmm.

MUSTAFA KURTULDU: So theremay be certain things that you can or can'tdo as a result of that.

LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Like, formaintaining a framework where-- it's not Android.

It's not, like, a single-- LYNN MERCIER: Yeah.

MUSTAFA KURTULDU:--you have-- it's, like, the web is allabout relationships between different code bits.

I mean, how do you manage that? LYNN MERCIER: It gets reallytricky and really funny.

So we tend to prioritizethem in terms of what developers are already using.

So React is a great example.

There are a ton of codebases already in React-- it's super-popular.

So we want to prioritizethat one first, which is why we're making anMDC React library for React in particular.

But then there'sother libraries, like Angular andlike Polymer that we want to start using as well.

But we tend toprioritize them, again, based off whether or notdevelopers are already using them.

In terms of, like, keepingall that functioning-- and sometimes you endup, like, one framework wants it to do it oneway and another framework wants it to do another way.

It's just constantlycompromising.

Like, we work with thesedevelopers on the Polymer team, or we, like, talk tothe React community and try and figure out what'sthe right way to figure it out.

And we just sort of settleon the right compromise and stay there.

We do it as well with browsers.

So for example, we tendto develop first on Chrome because it's kind of thebest, and it works nice, but we have to support Safari,and Firefox, and Edge as well.

So we tend to testIE at the very end.

And we want it towork, but there's sort of, like, gracefuldegradation sort of things that happen.

As long as that happens, like,carefully and gracefully, then it tends to be OK.

And I think we do the samesort of thing with platforms.

You know, maybe itdoesn't perfectly work in everyplatform but as long as we can kind ofgracefully degrade that component in thatsituation, it'll work out.

MUSTAFA KURTULDU: Yeah, Iknow the BBC have, like, a term that's calledcutting the mustard.

So basically, they willhave, like, a baseline where things have to work.

LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Like, withthis, and if it doesn't work, or it doesn't supportthis technology, they're gonna say--you know what, you're not going to getthese experiences that we're designing.

I mean it-- how would youfeel about that as a concept? LYNN MERCIER: Yeah, we'vehad to use that already.

So there's newthings coming out-- material designed around shape.

And on the web platform,no matter what technology you're in-- like, what webplatform or what browser you're in-- rounded corners are really easy.

Like, cut-off corners? Impossible.

Just straight up impossiblewith the existing technology.

And so we kind of had to goback to our material design team and say, like-- look, we can update theCSS spec today in 2018, and then three years fromnow, our children's children will, like, have thisfeature, but we're not going to be able toimplement it right now.

So there are some featureswhere you just kind of have to draw the line and say,we can't do this feature without it beinga confusing story, without it being some sortof hack that no one would be able to use.

MUSTAFA KURTULDU:So how about SVG? I mean, I suppose whenit comes to animation, the challenge of SVG isthe performance 'cause-- LYNN MERCIER: SVGs, and thenthe shadows on top of them, and the scroll performanceunderneath those SVGs-- by the time you, like, transportall the browsers and all the situations wherethat component would be, it gets reallyconfusing quickly.

MUSTAFA KURTULDU:And very complicated.

LYNN MERCIER: Yeah,very complicated.

MUSTAFA KURTULDU: That'squite interesting, because the conveyor belt isdesigner works on something, developer takes it, anddeveloper screams because there was no conversation.

I think that's one of thebiggest challenges developers face because, ifyou just talk to me, then I'll be able to explain,especially for designers who have no coding experience.

And I know we've spokenbefore, and you've mentioned stress testingthe design, which is a new concept for me.

LYNN MERCIER: It's my concept.

MUSTAFA KURTULDU: How doesthat work, where you're stress testing the design? LYNN MERCIER: Imean, I think there's a limitation inDesigner Tools that make them want to forceeverything to sort of this pixel-perfect mock.

And it's gorgeous-- itcreates some gorgeous assets, but it doesn't always workin a real-world application.

And a developer'sjob is to create something that works in areal-world application, right? Ours is the stuff-- thecode that's running live.

And so many problems come froma design being pixel-perfect for one language, one screenwidth, one set of content.

And when you goto build that, you can build sort of adummy site quickly, but once you start populatingit with real content, all these problems come up.

And I think most designers,if you go and talk to them and say, like-- hey,I have this problem.

They'll help you.

They'll, like, show youhow to change the design and tweak it in this situation.

Like, they're very receptiveto that feedback-- they want to make their designs better.

But if you don't knowwho your designer is when you have thisproblem, then you just have this bug that says-- doesn't work in German.

Like, what do you do? You have no idea how to fix it.

So yeah, I think this conveyorbelt problem of designers who sort of, like,design something but then leave the projectand don't collaborate with the developers asthey're building it, it makes it reallydifficult for the developers to make the productbetter over time.

MUSTAFA KURTULDU: So how do youthink designers can actually improve their process to makethat relationship better? Or more, is it reallydown to the most obvious? You just need to pairprogram, or pair together.

You have to talk to the person.

That's really the bestway to do it, so like-- LYNN MERCIER: Thatis the best way.

I mean, I think that can bereally difficult in certain-- if you don't have enoughtime and resources, sort of dedicate, like, one person,one designer, and one developer to every single feature.

I think there's waysin the middle to do it.

So for one, make sure thatyou know each other's names.

Like, if you'reremote, make sure you know how to deployyour code somewhere to staging so yourdesigner can work with it, and make sure your designerhas a way to send you, like, iterations on mocks.

Another sort of quick andobvious thing, I think, for designers is tointernationalize.

The moment you take allthe text from your mock, put it in Google Translate,put it back in the mock, and see what looks horrible-- MUSTAFA KURTULDU: German.

LYNN MERCIER: --like, yeah! German! Or even, like, CJK languages.

Just pick a language.

It doesn't matter ifyou translate it right.

Just, like, do thatfirst step because you're going to run into all thewidth and height problems that a developerwill run into live.

And I think it's goodfor designers, right? It helps you makeyour product better to get feedback aboutwhat sort of languages do I need to support.

MUSTAFA KURTULDU:And it's especially important inuser-generated apps where the content could be 10 pages,or it could be two lines.

LYNN MERCIER: Yeah! MUSTAFA KURTULDU:It's not like-- you always get the mock wherethere's, like, the name-- LYNN MERCIER: Yeah! MUSTAFA KURTULDU: --theavatar name's perfect.

LYNN MERCIER: Fits perfectly.

MUSTAFA KURTULDU: Yeah, butwhat if the name's like, you know, four words long? LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Isthere anything else that they can do like the stresstest that wasn't just really-- LYNN MERCIER:Internationalization is a big one.

I think different screen widths,at least in your own web, is helpful as well,like making sure that the obviousbreakpoints work but also sort of smallerones or bigger ones.

But, yeah, it justcomes back to, like, be there when your developerruns into a real problem and help them fix that problem.

I think most developerswant to fix problems.

They want to code that out.

They just want to geton their headphones-- like, get the code outthat will fix the problem, but they don't know how toredesign the site, right? We're not going to-- ifyou make a developer guess how to design a site, we'regoing to guess really poorly.

So you need to helpus as designers.

SPEAKER: If you spentloads of time polishing your, like, amazingprototype, then you suddenly becomevery, like, you know, reticent to throw it away.

Kind of like it'syour baby, you're going to polish this too much.

And so that's dangerous,because then you're not using prototyping forprototyping's real purpose, which is to learn.

Waverley web designers

Next, we can select the type of ad.

We want to make an expandable, so we select Expandable on the left.

Next, we can set again ad’s dimensions.

We are building a 320 by 50that expands to 480 by 250.

So I will make those changes.

We then assign the Waverley creative a name.

I will leave my Save ToLocation as the default, and leave the talk about set to Quick.

Once I’m happy with my settings, I click OK.

Google Web Designer creates the initial pages of the ad for me with the dimensions I defined.

 

web designers Waverley

The collapsed page already contains a Tap Area event to expand the ad and an expanded pageWaverley with a close tap area to collapse back down.

web design courses

What Your Dentist Can Tell You About Dental Braces

web design tips

LYNN MERCIER: Thetruth is, like, if we want to evolve thematerial design system, we need to be able tobuild on top of the code, and each layer ofthat code matters.

MUSTAFA KURTULDU:The conveyor belt is-- designer works onsomething, developer takes it, and developer screams becausethere was no conversation.

I think that's one ofthe biggest challenges.

[MUSIC PLAYING] One of the challenges inthe beginning with material on the web was there's so manydifferent implementations.

Again, the singlesource of of truth, so you had Angular material,you had Polymer, you had MDL.

How have you found solvingthat single source of truth? LYNN MERCIER: Yeah.

Originally we had a unique teamof developers in both Android-- I'm sorry-- Angular,and Polymer, and all these otherweb frameworks sort of building their ownimplementations in material design.

But we found that we couldn'tkeep that going at scale.

Like, we were iterating onthe material design system so quickly, and we couldn'tkeep a single source of truth with these othercomponent libraries.

So we started developinga technology where we would write our JavaScriptonce and sort of abstract its interaction with theHTML, so you wouldn't directly reference a DOM element.

And then we wouldwrap that JavaScript in individualcomponent libraries.

It's not a perfect solution.

We're still working onmaking it faster and better, but we've foundthat that creates these sort of componentsthat look like they belong in the framework.

So any framework developerwho's working there, they look seamlesslylike they're a part of the environment.

MUSTAFA KURTULDU: The onething that we struggled with with MaterialDesign Lite was there was a lot of blackmagic going on in the DOM.

So you check DeveloperTools, and there'll be, like, these random elements.

And that was, like, anopinionated decision so, you know, how do you go aboutdeveloping a new framework where you have to have anopinion-- there has to be, like, this is the baselineof what we're doing-- without impeding on, like, whatthe developer just wants to do? They just want this componentto work, or this widget, or whatever.

LYNN MERCIER: Yeah.

I try as much as possibleto avoid black magic.

And, like, whenever I'mreviewing any code that any of the designers on myteam are writing, we, like, try and avoid anything that's-- maybe it's a little hack,and it makes it slightly more performant-- butthe truth is, like, if we want to evolve thematerial design system, we need to be able tobuild on top of the code, and each layer ofthat code matters.

So we try and, like, steeraway from any black magic and just have thisone source of truth that works with all thecomponent libraries as much as possible.

MUSTAFA KURTULDU:In terms of, like, working withexisting frameworks, what's the relationship there? Because, like, React isa thing-- you have to-- it's the real world, right? LYNN MERCIER: Mm-hmm.

MUSTAFA KURTULDU: Or likeWordPress is a thing.

Like, you have towork in that world.

LYNN MERCIER: Mm-hmm.

MUSTAFA KURTULDU: So theremay be certain things that you can or can'tdo as a result of that.

LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Like, formaintaining a framework where-- it's not Android.

It's not, like, a single-- LYNN MERCIER: Yeah.

MUSTAFA KURTULDU:--you have-- it's, like, the web is allabout relationships between different code bits.

I mean, how do you manage that? LYNN MERCIER: It gets reallytricky and really funny.

So we tend to prioritizethem in terms of what developers are already using.

So React is a great example.

There are a ton of codebases already in React-- it's super-popular.

So we want to prioritizethat one first, which is why we're making anMDC React library for React in particular.

But then there'sother libraries, like Angular andlike Polymer that we want to start using as well.

But we tend toprioritize them, again, based off whether or notdevelopers are already using them.

In terms of, like, keepingall that functioning-- and sometimes you endup, like, one framework wants it to do it oneway and another framework wants it to do another way.

It's just constantlycompromising.

Like, we work with thesedevelopers on the Polymer team, or we, like, talk tothe React community and try and figure out what'sthe right way to figure it out.

And we just sort of settleon the right compromise and stay there.

We do it as well with browsers.

So for example, we tendto develop first on Chrome because it's kind of thebest, and it works nice, but we have to support Safari,and Firefox, and Edge as well.

So we tend to testIE at the very end.

And we want it towork, but there's sort of, like, gracefuldegradation sort of things that happen.

As long as that happens, like,carefully and gracefully, then it tends to be OK.

And I think we do the samesort of thing with platforms.

You know, maybe itdoesn't perfectly work in everyplatform but as long as we can kind ofgracefully degrade that component in thatsituation, it'll work out.

MUSTAFA KURTULDU: Yeah, Iknow the BBC have, like, a term that's calledcutting the mustard.

So basically, they willhave, like, a baseline where things have to work.

LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Like, withthis, and if it doesn't work, or it doesn't supportthis technology, they're gonna say--you know what, you're not going to getthese experiences that we're designing.

I mean it-- how would youfeel about that as a concept? LYNN MERCIER: Yeah, we'vehad to use that already.

So there's newthings coming out-- material designed around shape.

And on the web platform,no matter what technology you're in-- like, what webplatform or what browser you're in-- rounded corners are really easy.

Like, cut-off corners? Impossible.

Just straight up impossiblewith the existing technology.

And so we kind of had to goback to our material design team and say, like-- look, we can update theCSS spec today in 2018, and then three years fromnow, our children's children will, like, have thisfeature, but we're not going to be able toimplement it right now.

So there are some featureswhere you just kind of have to draw the line and say,we can't do this feature without it beinga confusing story, without it being some sortof hack that no one would be able to use.

MUSTAFA KURTULDU:So how about SVG? I mean, I suppose whenit comes to animation, the challenge of SVG isthe performance 'cause-- LYNN MERCIER: SVGs, and thenthe shadows on top of them, and the scroll performanceunderneath those SVGs-- by the time you, like, transportall the browsers and all the situations wherethat component would be, it gets reallyconfusing quickly.

MUSTAFA KURTULDU:And very complicated.

LYNN MERCIER: Yeah,very complicated.

MUSTAFA KURTULDU: That'squite interesting, because the conveyor belt isdesigner works on something, developer takes it, anddeveloper screams because there was no conversation.

I think that's one of thebiggest challenges developers face because, ifyou just talk to me, then I'll be able to explain,especially for designers who have no coding experience.

And I know we've spokenbefore, and you've mentioned stress testingthe design, which is a new concept for me.

LYNN MERCIER: It's my concept.

MUSTAFA KURTULDU: How doesthat work, where you're stress testing the design? LYNN MERCIER: Imean, I think there's a limitation inDesigner Tools that make them want to forceeverything to sort of this pixel-perfect mock.

And it's gorgeous-- itcreates some gorgeous assets, but it doesn't always workin a real-world application.

And a developer'sjob is to create something that works in areal-world application, right? Ours is the stuff-- thecode that's running live.

And so many problems come froma design being pixel-perfect for one language, one screenwidth, one set of content.

And when you goto build that, you can build sort of adummy site quickly, but once you start populatingit with real content, all these problems come up.

And I think most designers,if you go and talk to them and say, like-- hey,I have this problem.

They'll help you.

They'll, like, show youhow to change the design and tweak it in this situation.

Like, they're very receptiveto that feedback-- they want to make their designs better.

But if you don't knowwho your designer is when you have thisproblem, then you just have this bug that says-- doesn't work in German.

Like, what do you do? You have no idea how to fix it.

So yeah, I think this conveyorbelt problem of designers who sort of, like,design something but then leave the projectand don't collaborate with the developers asthey're building it, it makes it reallydifficult for the developers to make the productbetter over time.

MUSTAFA KURTULDU: So how do youthink designers can actually improve their process to makethat relationship better? Or more, is it reallydown to the most obvious? You just need to pairprogram, or pair together.

You have to talk to the person.

That's really the bestway to do it, so like-- LYNN MERCIER: Thatis the best way.

I mean, I think that can bereally difficult in certain-- if you don't have enoughtime and resources, sort of dedicate, like, one person,one designer, and one developer to every single feature.

I think there's waysin the middle to do it.

So for one, make sure thatyou know each other's names.

Like, if you'reremote, make sure you know how to deployyour code somewhere to staging so yourdesigner can work with it, and make sure your designerhas a way to send you, like, iterations on mocks.

Another sort of quick andobvious thing, I think, for designers is tointernationalize.

The moment you take allthe text from your mock, put it in Google Translate,put it back in the mock, and see what looks horrible-- MUSTAFA KURTULDU: German.

LYNN MERCIER: --like, yeah! German! Or even, like, CJK languages.

Just pick a language.

It doesn't matter ifyou translate it right.

Just, like, do thatfirst step because you're going to run into all thewidth and height problems that a developerwill run into live.

And I think it's goodfor designers, right? It helps you makeyour product better to get feedback aboutwhat sort of languages do I need to support.

MUSTAFA KURTULDU:And it's especially important inuser-generated apps where the content could be 10 pages,or it could be two lines.

LYNN MERCIER: Yeah! MUSTAFA KURTULDU:It's not like-- you always get the mock wherethere's, like, the name-- LYNN MERCIER: Yeah! MUSTAFA KURTULDU: --theavatar name's perfect.

LYNN MERCIER: Fits perfectly.

MUSTAFA KURTULDU: Yeah, butwhat if the name's like, you know, four words long? LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Isthere anything else that they can do like the stresstest that wasn't just really-- LYNN MERCIER:Internationalization is a big one.

I think different screen widths,at least in your own web, is helpful as well,like making sure that the obviousbreakpoints work but also sort of smallerones or bigger ones.

But, yeah, it justcomes back to, like, be there when your developerruns into a real problem and help them fix that problem.

I think most developerswant to fix problems.

They want to code that out.

They just want to geton their headphones-- like, get the code outthat will fix the problem, but they don't know how toredesign the site, right? We're not going to-- ifyou make a developer guess how to design a site, we'regoing to guess really poorly.

So you need to helpus as designers.

SPEAKER: If you spentloads of time polishing your, like, amazingprototype, then you suddenly becomevery, like, you know, reticent to throw it away.

Kind of like it'syour baby, you're going to polish this too much.

And so that's dangerous,because then you're not using prototyping forprototyping's real purpose, which is to learn.

What Your Dentist Can Tell You About Dental Braces

LYNN MERCIER: Thetruth is, like, if we want to evolve thematerial design system, we need to be able tobuild on top of the code, and each layer ofthat code matters.

MUSTAFA KURTULDU:The conveyor belt is-- designer works onsomething, developer takes it, and developer screams becausethere was no conversation.

I think that's one ofthe biggest challenges.

[MUSIC PLAYING] One of the challenges inthe beginning with material on the web was there's so manydifferent implementations.

Again, the singlesource of of truth, so you had Angular material,you had Polymer, you had MDL.

How have you found solvingthat single source of truth? LYNN MERCIER: Yeah.

Originally we had a unique teamof developers in both Android-- I'm sorry-- Angular,and Polymer, and all these otherweb frameworks sort of building their ownimplementations in material design.

But we found that we couldn'tkeep that going at scale.

Like, we were iterating onthe material design system so quickly, and we couldn'tkeep a single source of truth with these othercomponent libraries.

So we started developinga technology where we would write our JavaScriptonce and sort of abstract its interaction with theHTML, so you wouldn't directly reference a DOM element.

And then we wouldwrap that JavaScript in individualcomponent libraries.

It's not a perfect solution.

We're still working onmaking it faster and better, but we've foundthat that creates these sort of componentsthat look like they belong in the framework.

So any framework developerwho's working there, they look seamlesslylike they're a part of the environment.

MUSTAFA KURTULDU: The onething that we struggled with with MaterialDesign Lite was there was a lot of blackmagic going on in the DOM.

So you check DeveloperTools, and there'll be, like, these random elements.

And that was, like, anopinionated decision so, you know, how do you go aboutdeveloping a new framework where you have to have anopinion-- there has to be, like, this is the baselineof what we're doing-- without impeding on, like, whatthe developer just wants to do? They just want this componentto work, or this widget, or whatever.

LYNN MERCIER: Yeah.

I try as much as possibleto avoid black magic.

And, like, whenever I'mreviewing any code that any of the designers on myteam are writing, we, like, try and avoid anything that's-- maybe it's a little hack,and it makes it slightly more performant-- butthe truth is, like, if we want to evolve thematerial design system, we need to be able tobuild on top of the code, and each layer ofthat code matters.

So we try and, like, steeraway from any black magic and just have thisone source of truth that works with all thecomponent libraries as much as possible.

MUSTAFA KURTULDU:In terms of, like, working withexisting frameworks, what's the relationship there? Because, like, React isa thing-- you have to-- it's the real world, right? LYNN MERCIER: Mm-hmm.

MUSTAFA KURTULDU: Or likeWordPress is a thing.

Like, you have towork in that world.

LYNN MERCIER: Mm-hmm.

MUSTAFA KURTULDU: So theremay be certain things that you can or can'tdo as a result of that.

LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Like, formaintaining a framework where-- it's not Android.

It's not, like, a single-- LYNN MERCIER: Yeah.

MUSTAFA KURTULDU:--you have-- it's, like, the web is allabout relationships between different code bits.

I mean, how do you manage that? LYNN MERCIER: It gets reallytricky and really funny.

So we tend to prioritizethem in terms of what developers are already using.

So React is a great example.

There are a ton of codebases already in React-- it's super-popular.

So we want to prioritizethat one first, which is why we're making anMDC React library for React in particular.

But then there'sother libraries, like Angular andlike Polymer that we want to start using as well.

But we tend toprioritize them, again, based off whether or notdevelopers are already using them.

In terms of, like, keepingall that functioning-- and sometimes you endup, like, one framework wants it to do it oneway and another framework wants it to do another way.

It's just constantlycompromising.

Like, we work with thesedevelopers on the Polymer team, or we, like, talk tothe React community and try and figure out what'sthe right way to figure it out.

And we just sort of settleon the right compromise and stay there.

We do it as well with browsers.

So for example, we tendto develop first on Chrome because it's kind of thebest, and it works nice, but we have to support Safari,and Firefox, and Edge as well.

So we tend to testIE at the very end.

And we want it towork, but there's sort of, like, gracefuldegradation sort of things that happen.

As long as that happens, like,carefully and gracefully, then it tends to be OK.

And I think we do the samesort of thing with platforms.

You know, maybe itdoesn't perfectly work in everyplatform but as long as we can kind ofgracefully degrade that component in thatsituation, it'll work out.

MUSTAFA KURTULDU: Yeah, Iknow the BBC have, like, a term that's calledcutting the mustard.

So basically, they willhave, like, a baseline where things have to work.

LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Like, withthis, and if it doesn't work, or it doesn't supportthis technology, they're gonna say--you know what, you're not going to getthese experiences that we're designing.

I mean it-- how would youfeel about that as a concept? LYNN MERCIER: Yeah, we'vehad to use that already.

So there's newthings coming out-- material designed around shape.

And on the web platform,no matter what technology you're in-- like, what webplatform or what browser you're in-- rounded corners are really easy.

Like, cut-off corners? Impossible.

Just straight up impossiblewith the existing technology.

And so we kind of had to goback to our material design team and say, like-- look, we can update theCSS spec today in 2018, and then three years fromnow, our children's children will, like, have thisfeature, but we're not going to be able toimplement it right now.

So there are some featureswhere you just kind of have to draw the line and say,we can't do this feature without it beinga confusing story, without it being some sortof hack that no one would be able to use.

MUSTAFA KURTULDU:So how about SVG? I mean, I suppose whenit comes to animation, the challenge of SVG isthe performance 'cause-- LYNN MERCIER: SVGs, and thenthe shadows on top of them, and the scroll performanceunderneath those SVGs-- by the time you, like, transportall the browsers and all the situations wherethat component would be, it gets reallyconfusing quickly.

MUSTAFA KURTULDU:And very complicated.

LYNN MERCIER: Yeah,very complicated.

MUSTAFA KURTULDU: That'squite interesting, because the conveyor belt isdesigner works on something, developer takes it, anddeveloper screams because there was no conversation.

I think that's one of thebiggest challenges developers face because, ifyou just talk to me, then I'll be able to explain,especially for designers who have no coding experience.

And I know we've spokenbefore, and you've mentioned stress testingthe design, which is a new concept for me.

LYNN MERCIER: It's my concept.

MUSTAFA KURTULDU: How doesthat work, where you're stress testing the design? LYNN MERCIER: Imean, I think there's a limitation inDesigner Tools that make them want to forceeverything to sort of this pixel-perfect mock.

And it's gorgeous-- itcreates some gorgeous assets, but it doesn't always workin a real-world application.

And a developer'sjob is to create something that works in areal-world application, right? Ours is the stuff-- thecode that's running live.

And so many problems come froma design being pixel-perfect for one language, one screenwidth, one set of content.

And when you goto build that, you can build sort of adummy site quickly, but once you start populatingit with real content, all these problems come up.

And I think most designers,if you go and talk to them and say, like-- hey,I have this problem.

They'll help you.

They'll, like, show youhow to change the design and tweak it in this situation.

Like, they're very receptiveto that feedback-- they want to make their designs better.

But if you don't knowwho your designer is when you have thisproblem, then you just have this bug that says-- doesn't work in German.

Like, what do you do? You have no idea how to fix it.

So yeah, I think this conveyorbelt problem of designers who sort of, like,design something but then leave the projectand don't collaborate with the developers asthey're building it, it makes it reallydifficult for the developers to make the productbetter over time.

MUSTAFA KURTULDU: So how do youthink designers can actually improve their process to makethat relationship better? Or more, is it reallydown to the most obvious? You just need to pairprogram, or pair together.

You have to talk to the person.

That's really the bestway to do it, so like-- LYNN MERCIER: Thatis the best way.

I mean, I think that can bereally difficult in certain-- if you don't have enoughtime and resources, sort of dedicate, like, one person,one designer, and one developer to every single feature.

I think there's waysin the middle to do it.

So for one, make sure thatyou know each other's names.

Like, if you'reremote, make sure you know how to deployyour code somewhere to staging so yourdesigner can work with it, and make sure your designerhas a way to send you, like, iterations on mocks.

Another sort of quick andobvious thing, I think, for designers is tointernationalize.

The moment you take allthe text from your mock, put it in Google Translate,put it back in the mock, and see what looks horrible-- MUSTAFA KURTULDU: German.

LYNN MERCIER: --like, yeah! German! Or even, like, CJK languages.

Just pick a language.

It doesn't matter ifyou translate it right.

Just, like, do thatfirst step because you're going to run into all thewidth and height problems that a developerwill run into live.

And I think it's goodfor designers, right? It helps you makeyour product better to get feedback aboutwhat sort of languages do I need to support.

MUSTAFA KURTULDU:And it's especially important inuser-generated apps where the content could be 10 pages,or it could be two lines.

LYNN MERCIER: Yeah! MUSTAFA KURTULDU:It's not like-- you always get the mock wherethere's, like, the name-- LYNN MERCIER: Yeah! MUSTAFA KURTULDU: --theavatar name's perfect.

LYNN MERCIER: Fits perfectly.

MUSTAFA KURTULDU: Yeah, butwhat if the name's like, you know, four words long? LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Isthere anything else that they can do like the stresstest that wasn't just really-- LYNN MERCIER:Internationalization is a big one.

I think different screen widths,at least in your own web, is helpful as well,like making sure that the obviousbreakpoints work but also sort of smallerones or bigger ones.

But, yeah, it justcomes back to, like, be there when your developerruns into a real problem and help them fix that problem.

I think most developerswant to fix problems.

They want to code that out.

They just want to geton their headphones-- like, get the code outthat will fix the problem, but they don't know how toredesign the site, right? We're not going to-- ifyou make a developer guess how to design a site, we'regoing to guess really poorly.

So you need to helpus as designers.

SPEAKER: If you spentloads of time polishing your, like, amazingprototype, then you suddenly becomevery, like, you know, reticent to throw it away.

Kind of like it'syour baby, you're going to polish this too much.

And so that's dangerous,because then you're not using prototyping forprototyping's real purpose, which is to learn.

web design udacity

LYNN MERCIER: Thetruth is, like, if we want to evolve thematerial design system, we need to be able tobuild on top of the code, and each layer ofthat code matters.

MUSTAFA KURTULDU:The conveyor belt is-- designer works onsomething, developer takes it, and developer screams becausethere was no conversation.

I think that's one ofthe biggest challenges.

[MUSIC PLAYING] One of the challenges inthe beginning with material on the web was there's so manydifferent implementations.

Again, the singlesource of of truth, so you had Angular material,you had Polymer, you had MDL.

How have you found solvingthat single source of truth? LYNN MERCIER: Yeah.

Originally we had a unique teamof developers in both Android-- I'm sorry-- Angular,and Polymer, and all these otherweb frameworks sort of building their ownimplementations in material design.

But we found that we couldn'tkeep that going at scale.

Like, we were iterating onthe material design system so quickly, and we couldn'tkeep a single source of truth with these othercomponent libraries.

So we started developinga technology where we would write our JavaScriptonce and sort of abstract its interaction with theHTML, so you wouldn't directly reference a DOM element.

And then we wouldwrap that JavaScript in individualcomponent libraries.

It's not a perfect solution.

We're still working onmaking it faster and better, but we've foundthat that creates these sort of componentsthat look like they belong in the framework.

So any framework developerwho's working there, they look seamlesslylike they're a part of the environment.

MUSTAFA KURTULDU: The onething that we struggled with with MaterialDesign Lite was there was a lot of blackmagic going on in the DOM.

So you check DeveloperTools, and there'll be, like, these random elements.

And that was, like, anopinionated decision so, you know, how do you go aboutdeveloping a new framework where you have to have anopinion-- there has to be, like, this is the baselineof what we're doing-- without impeding on, like, whatthe developer just wants to do? They just want this componentto work, or this widget, or whatever.

LYNN MERCIER: Yeah.

I try as much as possibleto avoid black magic.

And, like, whenever I'mreviewing any code that any of the designers on myteam are writing, we, like, try and avoid anything that's-- maybe it's a little hack,and it makes it slightly more performant-- butthe truth is, like, if we want to evolve thematerial design system, we need to be able tobuild on top of the code, and each layer ofthat code matters.

So we try and, like, steeraway from any black magic and just have thisone source of truth that works with all thecomponent libraries as much as possible.

MUSTAFA KURTULDU:In terms of, like, working withexisting frameworks, what's the relationship there? Because, like, React isa thing-- you have to-- it's the real world, right? LYNN MERCIER: Mm-hmm.

MUSTAFA KURTULDU: Or likeWordPress is a thing.

Like, you have towork in that world.

LYNN MERCIER: Mm-hmm.

MUSTAFA KURTULDU: So theremay be certain things that you can or can'tdo as a result of that.

LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Like, formaintaining a framework where-- it's not Android.

It's not, like, a single-- LYNN MERCIER: Yeah.

MUSTAFA KURTULDU:--you have-- it's, like, the web is allabout relationships between different code bits.

I mean, how do you manage that? LYNN MERCIER: It gets reallytricky and really funny.

So we tend to prioritizethem in terms of what developers are already using.

So React is a great example.

There are a ton of codebases already in React-- it's super-popular.

So we want to prioritizethat one first, which is why we're making anMDC React library for React in particular.

But then there'sother libraries, like Angular andlike Polymer that we want to start using as well.

But we tend toprioritize them, again, based off whether or notdevelopers are already using them.

In terms of, like, keepingall that functioning-- and sometimes you endup, like, one framework wants it to do it oneway and another framework wants it to do another way.

It's just constantlycompromising.

Like, we work with thesedevelopers on the Polymer team, or we, like, talk tothe React community and try and figure out what'sthe right way to figure it out.

And we just sort of settleon the right compromise and stay there.

We do it as well with browsers.

So for example, we tendto develop first on Chrome because it's kind of thebest, and it works nice, but we have to support Safari,and Firefox, and Edge as well.

So we tend to testIE at the very end.

And we want it towork, but there's sort of, like, gracefuldegradation sort of things that happen.

As long as that happens, like,carefully and gracefully, then it tends to be OK.

And I think we do the samesort of thing with platforms.

You know, maybe itdoesn't perfectly work in everyplatform but as long as we can kind ofgracefully degrade that component in thatsituation, it'll work out.

MUSTAFA KURTULDU: Yeah, Iknow the BBC have, like, a term that's calledcutting the mustard.

So basically, they willhave, like, a baseline where things have to work.

LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Like, withthis, and if it doesn't work, or it doesn't supportthis technology, they're gonna say--you know what, you're not going to getthese experiences that we're designing.

I mean it-- how would youfeel about that as a concept? LYNN MERCIER: Yeah, we'vehad to use that already.

So there's newthings coming out-- material designed around shape.

And on the web platform,no matter what technology you're in-- like, what webplatform or what browser you're in-- rounded corners are really easy.

Like, cut-off corners? Impossible.

Just straight up impossiblewith the existing technology.

And so we kind of had to goback to our material design team and say, like-- look, we can update theCSS spec today in 2018, and then three years fromnow, our children's children will, like, have thisfeature, but we're not going to be able toimplement it right now.

So there are some featureswhere you just kind of have to draw the line and say,we can't do this feature without it beinga confusing story, without it being some sortof hack that no one would be able to use.

MUSTAFA KURTULDU:So how about SVG? I mean, I suppose whenit comes to animation, the challenge of SVG isthe performance 'cause-- LYNN MERCIER: SVGs, and thenthe shadows on top of them, and the scroll performanceunderneath those SVGs-- by the time you, like, transportall the browsers and all the situations wherethat component would be, it gets reallyconfusing quickly.

MUSTAFA KURTULDU:And very complicated.

LYNN MERCIER: Yeah,very complicated.

MUSTAFA KURTULDU: That'squite interesting, because the conveyor belt isdesigner works on something, developer takes it, anddeveloper screams because there was no conversation.

I think that's one of thebiggest challenges developers face because, ifyou just talk to me, then I'll be able to explain,especially for designers who have no coding experience.

And I know we've spokenbefore, and you've mentioned stress testingthe design, which is a new concept for me.

LYNN MERCIER: It's my concept.

MUSTAFA KURTULDU: How doesthat work, where you're stress testing the design? LYNN MERCIER: Imean, I think there's a limitation inDesigner Tools that make them want to forceeverything to sort of this pixel-perfect mock.

And it's gorgeous-- itcreates some gorgeous assets, but it doesn't always workin a real-world application.

And a developer'sjob is to create something that works in areal-world application, right? Ours is the stuff-- thecode that's running live.

And so many problems come froma design being pixel-perfect for one language, one screenwidth, one set of content.

And when you goto build that, you can build sort of adummy site quickly, but once you start populatingit with real content, all these problems come up.

And I think most designers,if you go and talk to them and say, like-- hey,I have this problem.

They'll help you.

They'll, like, show youhow to change the design and tweak it in this situation.

Like, they're very receptiveto that feedback-- they want to make their designs better.

But if you don't knowwho your designer is when you have thisproblem, then you just have this bug that says-- doesn't work in German.

Like, what do you do? You have no idea how to fix it.

So yeah, I think this conveyorbelt problem of designers who sort of, like,design something but then leave the projectand don't collaborate with the developers asthey're building it, it makes it reallydifficult for the developers to make the productbetter over time.

MUSTAFA KURTULDU: So how do youthink designers can actually improve their process to makethat relationship better? Or more, is it reallydown to the most obvious? You just need to pairprogram, or pair together.

You have to talk to the person.

That's really the bestway to do it, so like-- LYNN MERCIER: Thatis the best way.

I mean, I think that can bereally difficult in certain-- if you don't have enoughtime and resources, sort of dedicate, like, one person,one designer, and one developer to every single feature.

I think there's waysin the middle to do it.

So for one, make sure thatyou know each other's names.

Like, if you'reremote, make sure you know how to deployyour code somewhere to staging so yourdesigner can work with it, and make sure your designerhas a way to send you, like, iterations on mocks.

Another sort of quick andobvious thing, I think, for designers is tointernationalize.

The moment you take allthe text from your mock, put it in Google Translate,put it back in the mock, and see what looks horrible-- MUSTAFA KURTULDU: German.

LYNN MERCIER: --like, yeah! German! Or even, like, CJK languages.

Just pick a language.

It doesn't matter ifyou translate it right.

Just, like, do thatfirst step because you're going to run into all thewidth and height problems that a developerwill run into live.

And I think it's goodfor designers, right? It helps you makeyour product better to get feedback aboutwhat sort of languages do I need to support.

MUSTAFA KURTULDU:And it's especially important inuser-generated apps where the content could be 10 pages,or it could be two lines.

LYNN MERCIER: Yeah! MUSTAFA KURTULDU:It's not like-- you always get the mock wherethere's, like, the name-- LYNN MERCIER: Yeah! MUSTAFA KURTULDU: --theavatar name's perfect.

LYNN MERCIER: Fits perfectly.

MUSTAFA KURTULDU: Yeah, butwhat if the name's like, you know, four words long? LYNN MERCIER: Yeah.

MUSTAFA KURTULDU: Isthere anything else that they can do like the stresstest that wasn't just really-- LYNN MERCIER:Internationalization is a big one.

I think different screen widths,at least in your own web, is helpful as well,like making sure that the obviousbreakpoints work but also sort of smallerones or bigger ones.

But, yeah, it justcomes back to, like, be there when your developerruns into a real problem and help them fix that problem.

I think most developerswant to fix problems.

They want to code that out.

They just want to geton their headphones-- like, get the code outthat will fix the problem, but they don't know how toredesign the site, right? We're not going to-- ifyou make a developer guess how to design a site, we'regoing to guess really poorly.

So you need to helpus as designers.

SPEAKER: If you spentloads of time polishing your, like, amazingprototype, then you suddenly becomevery, like, you know, reticent to throw it away.

Kind of like it'syour baby, you're going to polish this too much.

And so that's dangerous,because then you're not using prototyping forprototyping's real purpose, which is to learn.