web agency Quincy Massachusetts

Quincy web designers

web design proposal pdf

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

I’m Owen Corso from Google.

web design logo ideas web design xampp

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 games

Using Autocomplete for Optimal Form UX - Designer vs. Developer #24


I’m no color expert. Far from, actually. Throughout my career, I’ve depended on visual designers better than myself to produce an engaging palette and apply it harmoniously across a UI.

Yet, as a systems designer, I’m often in the position to provoke and validate color decisions as a system takes shape. Here’s a 16 lessons I’ve learned while stabilizing a primary palette, tint and shade choices, secondary palettes, and solving for accessible contrast.

Primary Palette

By primary, we’re talking colors used everywhere including your brand colors, neutrals, and a typically interactive digital blue.

#1. Stabilize Brand Colors Quickly

︎Every organization has one, two, or no more than a few core brand colors. THE red. THE blue. THE orange. Settle on them. Even if reasonably set up with a color variable or two, nothing signals a design system team that can’t get their act together than constantly changing primary colors.

Takeaway: Decide your essential brand colors early, because they spread widely, quickly.

#2. Involve Brand (If You Alter a Brand Color)

Is brand blue a bit dull? Can’t resist the urge to liven it up? Nothing poisons early collaboration more than a casual “We saturated the brand orange for web” followed by brand reacting with “You did what?” Oh the sacrilege!

Takeaway: Brand colors are the brand team’s territory. So discuss adjustments with them and defer to their judgment as needed.

#3. Drop the Neutral Neutrals

From dark-as-night charcoal to fluffy light gray, neutrals provide essential UI scaffolding. Loading a system with neutrals, even a few, risks giving teams access to muddy colors. They can also lead to “wireframey” designs. And, neither dark nor light type has sufficiently accessible contrast on a medium gray background.

Takeaway: Provide a few light grays and a few dark grays to achieve useful contrast, but don’t get wishy washy wireframey. Consider avoiding medium grays in between.

#4. Go “Digital Blue.” Everybody Else Does.

My past five design systems settled on a saturated blue as a default button and link color. Links have always been blue, perhaps since the dawn of the first browser. This “Digital” blue, a utility color for links and clickable items, is essential in any core palette.

Takeaway: When (not if 😉 ) you go with your “Digital Blue,” choose an accessible one and make sure it doesn’t clash with the brand’s own blue, or red, orange, purple, or green.

Tints & Shades Per Color

You can’t have just a few colors and call it a day, right? System users often need to tune a color choice across a range, reuse with ease, and know their boundaries.

#5. Stack the Tint & Shade Range, Per Color

Color palette display patterns long predate the web. Yet I still love me a compactly arranged tint stack. They can be just…gorgeous. The best stacks visualize more than just a color, combining its name with HEX codes, code variables, and other indicators (such as prohibiting overlaid type). A quick scan is all you need.

Takeaway: Stack available colors in each hue, and treat the stack as a visualization to include important details compactly.

Material Design’s Indigo and Deep Orange

#6. Name Tints & Shades by Brightness

We’ve all been there. A month into the system, the neutrals $color-gray-1, $color-gray-2, … , $color-gray-7 — are stable. And then, in a stroke, you’ve got another tint to add stuck between -1 and -2. That numbering system stinks.

Takeaway: Scale color names between 0 and 100 based on brightness, such as $color-gray-05 and $color-gray-92. The scale reflects a familiar range from dark to light, allows for injecting new options between, and heck if I won’t remember $color-gray- 93 until we retire it later.

#7. Limit Tint & Shade Quantity

At the core of a good system is choice without endless options, a stable aesthetic to serve as a starting point. Odds are, you aren’t Material Design, intended to serve countless products. In most cases, a design system need not offer boundless choices. The more choices you provide, the tougher it’ll be to control harmonic combinations and a consistent feel across applications.

Takeaway: Offer a handful of options and avoid tedious variety. Empower system users with just enough choice: more than a single option, but only up to a few intentional choices.

#8. Tell Me How To Transform: Hand-Pick or Functionally

Modern tools like SASS and Stylus offer transformation functions like darken and lighten to shift a color by a brightness percentage. These handy tools enable a you to alter a color for subtle contrasts like a hovered button or tiered navigation.

But transforms can be troublesome: carefully crafted base colors can become inaccessible alternatives (see below), a page’s overall palette can muddy, or a “5% system” that works on moderately bright colors yields insufficient contrast for a very light or dark case.

Takeaway: Deliberately allow — or avoid — color transformations in your system. If you endorse the practice, then offer examples of when and how to do it effectively in your system, such as 5–10% for moderately bright cases and 10–20% in more extreme cases. If transformations should be avoided , document that succinctly.

Secondary Palettes

Beyond the brand colors and their variants, well-considered color systems array the broader variety of colors reserved for varied purposes.

#9. Define Meaningful Sets Like Feedback Colors

Most systems reserve a certain red for errors, green for success, yellow for warning, and (possibly a lighter sky) blue for informational messages. Feedback color is critical, because it’s positioned at the top of the page interacting with other key components and/or encountered as a result of an unwelcome circumstance. Without system guidance, such messages become embedded in product code, the result of product teams solving a challenge quickly and moving on.

Takeaway: Explore and define the standard feedback colors and other relevant sets to ensure that colors fit harmoniously rather wedging them in later or having teammates recall “I just grabbed it from Google.”

Typical feedback colors: success, warning, error and informational

#10. Illustrate Theme Variety

In some systems, color use is customized per product, section, or brand. Often, this may be a result of relating a master brand (think, Marriott International) to its sub-brands (think Courtyard Hotels, Ritz Carlton, and Moxy Hotels). Or it’s a prefab themes like Ambient Warmth and Frozen Blue. Maybe the user is complete control, and you need to illustrate the breadth of (all the havoc of) what they can do.

Takeaway: Reveal the range of themes available compactly, and set boundaries around allowable theme colors in certain contexts.

Theme colors for multiple Marriott.com hotels, derived from product pages

#11. Define How Theming Works

It’s not enough to simply say “Go ahead and theme it!” A theme color may apply to predictable accents throughout a UI such as button background-color, active tab background-color, or a primary navigation’s thick border-top. Just as important, theme colors may be forbidden from altering other bits, such as long form type or — yikes! — a link color that ends up invisible.

Takeaway: Identify how theming works, particularly via reference to specific UI element properties in play. Just as important, articulate which — if not most — elements are off limits.

#12. Avoid Guiding on Color-Mixing Until (At Least) Dust Settles

One of my favorite all time design system tools is Google’s MDL Color Customizer, which enables users to combine primary and secondary UI colors effectively. It’s so easy, and the outcome so helpful. Yet, the system teams I work with either don’t want to provide this kind of flexibility or lack the time and care necessary to solve such a combinatoric challenge.

Takeaway: Avoid the rabbit hole of solving for a vast array of color combinations unless it’s a core system value. In most cases, system users will pair up their own combinations or benefit from a tool more dedicated to doing just that. Help them propagate their choice rather than solving for every combination they may consider. That experimentation is their job.

Serve users of your system by making it efficient to propagate their choice through a product, rather than making the choice for them.

Contrast & Accessibility

Solving for accessible color contrast should a core practice of setting up any digital color system from the get go. However, design can be tumultuous place, and teams can lose sometimes. Or some members don’t know about accessibility. Or they simply don’t prioritize it.

A systems team can engrain accessible practices into a workflow to provoke and spread values in accessibility broadly across an enterprise.

#13. Check Contrast Early & Ritually

It happens often: a few weeks or days before a product — or design system — launch, finally somebody notices. The design team hasn’t taken necessary care to ensure the primary and secondary color palette is being applied in a way to meet WCAG 2.0 color contrast of 3.0 (for large, heavier type) or 4.5 (for standard type). So designers — and then, their developers — scramble to determine fixes and inject it into the code.

Takeaway: Any system designer responsible for color must be familiar with WCAG 2.0 rules, have a tool (like Tanaguru) to test color pairs, and incorporate the practice into color selection.

Tanaguru, one of many accessibility calculators online

#14. Explore Accessible Color Choices Across Ranges

A drawback of WCAG guidelines is its stark threshold: a color pair passes or fails. This leaves designers yearning for more, but worse leaves stakeholders flummoxed at how bad the color pair fails and how much it needs to change.

Conversation quickens when we reveal a spectrum of choices, with the pass/fail line fairly evident. This transforms the process from trial and error to tuning a dial. Before, it was “That pair failed. Let’s try again.” Now, it’s an enlightening “Oh, so that’s how dark the blue needs to be” followed by a rational discussion to balance visual tone, brand identity, and accessibility sensitivities.

Takeaway: When exploring accessible color contrast, show a range of choices to help a team select a color that passes the test.

Exploring neutral and interactive colors by showing multiple choices across a range

#15. Solve the Reverse Light on Dark and Dark on Light

When creating a system, it’s up to the systems designer to be mindful of and solve for the entire range of choices on offer. It’s not enough to just test for accessibility problems as they arise. Instead, a color palette should be thoroughly reviewed prior to publishing a system for reuse.

This is especially true for reverse color treatments. It’s very common for a system to default to dark text on a light background. However, most find themselves reversing color treatments, whether a black and white on light and dark neutrals or tints of another primary or secondary color.

Takeaway:Solve for and recommend reversed pairings to adopt or avoid.

A table of calculated contrast (using a SASS function) between neutral backgrounds and interactive blue alternatives

#16. Use Color to Provoke Broader Accessibility Awareness

Color is fundamental to a system, and accessible color contrast is fundamental to color. This injects accessibility smack dab into the middle of a system’s formation. People that matter are paying attention: brand managers, design leads, developers, and execs. What a wonderful opportunity to use color to open a door to the broader array of accessibility considerations.

Takeaway: Seize the opportunity to advocate for accessibility. Always be probing a collaborator’s knowledge of accessibility (or lack thereof) and educate and advocate all you can.

Quincy 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 Quincy 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 Quincy

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

web design books

From product design to virtual reality

web design kalispell

Ant (GitHub) is much more than a React UI kit with a minimalist design aesthetic and every component under the sun. It is a rabbit’s hole that leads to a giant maze of interconnected libraries, with a serious ecosystem surrounding it. There’s a custom build tool based on Webpack called ant-tool, several CLI apps, community scaffolds, and a complete framework (dva, which has its own CLI as well). And the UI components are mini-projects in and of themselves — see this repo for information on each component.

Many of these libraries appear to be very polished, including an entire React animation library. And I’d love to learn more about them, but Ant comes with a challenge — the majority of the documentation is in Chinese.

How’s Your Chinese?

Let me preface this by pointing out that the components library and its terrific style guide have been translated into English by generous volunteers, so the UI kit is completely usable. And the translation effort demonstrates the project’s intentions to open up Ant to a wider audience, boding well for companies considering adopting it.

However, there are some language issues that remain. The English is sometimes confusing or obscure. The maintainer of the library has commented here that they welcome PRs for improving the documentation, so that could be a great way to get involved in this amazing project.

Good luck hunting down issues!

Another issue is that issues in Ant.Design are mostly filed and debated on GitHub in Chinese. This could be a deal breaker for enterprise applications, but I’m not sure it should be one for early startups since Ant can be used quite minimally, without making use of smarter features like built-in form validation. Still, if you find an issue or bug with the library, it will be difficult to research previous solutions to your issue, and that’s why I recommend making minimal use of the surrounding ecosystem at this stage.

Battle Tested

Popular UI libraries for React include Material-UI, Semantic-UI, Foundation, and Bootstrap (this and this), and they are all fairly mature. Material-UI should be singled out as it massively eclipses the others in popularity, with over 22k stargazers — and over 600 open issues. But it turns out that Ant.Design is a surprisingly worthy candidate as well. It’s battle tested by some of the most well-trodden sites on the web (Alibaba, Baidu), and it boasts a brilliant style guide, custom tooling, and, of course, a comprehensive catalogue of components. It also has only 85 open issues at the time of writing, which is a good thing considering its popularity.

So let’s take a tour of the library, see what it has to offer, and how to get started using it.

Ant Components

The Ant components list is dizzying. Sure, it contains the basics — modals, forms (inline and vertical), navigation menus, a grid system. But it also contains a ton of extras, such as a @mentioning system, a timeline, badges, a seriously nice table system, and other small fancy features, such as an involved address box (see the Habitual Residence field). Have a look — it has everything that a modern web application should, with a tasteful, minimalist aesthetic.

Design Principles

There’s a nice, concise section in the documentation on the guiding principles of Ant.Design. I found it a great read as it got me thinking a lot about UI/UX considerations, especially the “Provide an Invitation” section, where they discuss different ways of making interactions discoverable by a user. By the way, if anyone can recommend me a good book on UX, I would be grateful.

Grid System

The Ant layout system is comprised of a 24-aliquot (a great new word that I learned from the translated documentation — it means parts of a whole) grid and a separate Layout component than you can choose to use. The grid uses the familiar Row/Col system, but you can also specify a prop called flex which allows you to harness Flexbox properties to define a responsive UI. (See a previous blog post of mine for help grokking the Flex standard.)

Flexbox is now fully supported on just about every browser (with partial support on IE 11 as well as some older mobile browsers), so it should be fine to use. If your customer base is largely Internet Explorer users, which does happen in some industries or countries, you would be wise to abstain from using flex Rows or the Layout component, as Layout is built strictly on Flexbox.

Layout includes components for a Sider, Header, Content, and Footer. Again, these are strictly based on Flexbox, so there’s no choice here — but to be honest I’m not sure what these components give you on top of using the standard Row/Col grid system, aside from a couple extra props you can make use of and possibly some built-in design choices. All in all, it doesn’t seem to me to be hugely useful.

Grid Props

Col elements can be supplied with a span prop to define how many aliquots a column takes up and an offset prop to define an optional offset; Row can take a gutter prop to define space between columns in a row (in pixels, not aliquots).

Here’s a UI example from a side project of mine. It contains one row with two columns:

The code would look something like this:

Forms

Ant does not let you down as far as forms are concerned, with options for inline, horizontal, and vertical forms, amazing select boxes, and clear validation messages and icons. In fact, it goes a little overboard here. It allows you to wrap your entire form-rendering component in a higher-order component à la Form.create()(<Component />) to gain access to a built-in validator syntax and custom two-way-binding system (cue audible lip biting). You can then specify standard rules such as ‘required’, or supply custom validator methods. (What are Higher Order Components? Check out this excellent post by James K. Nelson.)

Do you need to use their HOC? Absolutely not, and I’m not sure you should. As I said above, going down that path could expose you to language risk should you encounter bugs and I don’t see why you would want to use a custom two-way binding data system anyway. But you could easily use the HOC and just not use the two-way data binding.

Au Naturel — Plain React Forms

So let’s go over how to use the Ant validation messages without using their higher-order component.

Ant gives us three props that we can supply to each Form.Item component to display validation messages or icons:

  1. validateStatus — This determines the colour & icon scheme of the validation message (see photo above) — valid options are success, warning, error, and validating.
  2. help — The validation message to display.
  3. hasFeedback — This is one of them props that don’t require a value. Just include if you want to display the associated icon, and it defaults to true.
Prettiest validations that I’ve ever seen.

Here’s an example of a simple form element that displays a validation message:

Notice that I used the long-form Form.Item component name. You can make yourself a shortcut for this and any other Ant sub-components as follows:

const FormItem = Form.Item;// .. allows you to use:
<FormItem />

Form Validation using the Ant Higher-Order Component

Now what if we do want to make use of the Ant Form decorator? It’s fairly straightforward to implement. Create your React component class, and then pass it as an argument to Form.create(). The component can then be exported:

class SomeComponent extends React.Component
render() <place_form_here.. />
FancyFormComponent = Form.create()(SomeComponent);export FancyFormComponent as default ; // imported as SomeComponent

Inside your form, decorate your Input fields using the getFieldDecorater method, which exposes a ton of extra props on your component. You can now manipulate form elements directly from the props (eek!).

This example in the documentation gives a thorough demonstration on using the complete higher-order component.

Interactive Components — Message (Alert)

Ant provides a number of other components that give web applications a high degree of interactivity. A great example is alerts — or messages, as they’re called in Ant. Adding an alert is as simple as calling message.success('Great! Item has been saved.') in your component. Message types include success, warning, or error. Just don’t forget to import message (lowercase) from ‘antd’.

Minimalism at its Best

Installing Ant.Design

As I mentioned above, you can either go all-in on the Ant ecosystem (with its custom Webpack adapter), or just opt for the design framework. I went with the latter and I suspect you might too, not the least because using other parts of the ecosystem could require a working knowledge of Chinese. But I’ll cover both options.

Option 1 — Use the CLI

Ant comes with antd-init, a CLI for generating a complete React application with Ant installed. I do not recommend this route for non-Chinese speakers, but if you want to try it, getting started is easy. Just install the CLI using npm, create a new folder, and run antd-init:

npm install antd-init -g; mkdir demo-app; cd $_; antd-init;

You will then be greeted by the following message:

antd-init@2 is only for experience antd. If you want to create projects, it’s better to init with dva-cli. dva is a redux and react based application framework. elm concept, support side effects, hmr, dynamic load and so on.`

It’s a rabbit’s hole. Open your new application and you will see that your familiar webpack.config.js file is no longer familiar — the CLI uses ant-tool, a “Build Tool Based on Webpack” that I mentioned above. The documentation is in Chinese, but it appears to set common defaults for Webpack and then allow you to just supply values that you want to override. Here’s what the config file looks like:

// Learn more on how to config.
// — https://github.com/ant-tool/atool-build#配置扩展module.exports = function(webpackConfig)
webpackConfig.babel.plugins.push(‘transform-runtime’);
webpackConfig.babel.plugins.push([‘import’,
libraryName: ‘antd’,
style: ‘css’,
]); return webpackConfig;
;

The index.js contains a lovely demo page that uses the understated Ant styling.

Option 2 — Use Standard Webpack

This would be my preferred route, but it can be more complicated getting your Webpack settings right at first. The Getting Started page includes some good instructions. First install Ant in your React app:

$ npm install antd --save

Ant recommends using their own babel-plugin-import in your .babelrc:

"presets": [
"react",
...
],
"plugins": ["transform-decorators-legacy", ..., ["import", [ libraryName: "antd", style: "css" ]]
]
}

Make sure your Webpack includes loaders for .js and .css files, and you should be good to go. To use an Ant component, import it in the module file. E.g.

import Row, Col, Icon, Button from 'antd';

Conclusion

There’s no doubt that Ant has a lot to offer as a UI framework, with a formidable catalogue of components and a serious ecosystem around it. It does, however, come with some risk. If you experience an issue with the library, you may be stuck communicating in Chinese. Ultimately I recommend trying it out if you like the minimalist aesthetic, while keeping usage of the peripheral Ant ecosystem to a minimum.

Building Expanding Creatives - Google Web Designer

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 naics code

CHRIS: Welcome! My name is Chris and I'm a designer on the Google Web Designer team Today I'll walk through a new dynamictemplate with an emphasis on text We'll cover customizations includingconfigurable panels selecting nested elements, dynamic text fitting, editing groups and a demonstration of the template when uploaded into Display &Video 360 Ad Canvas Let's get started First let's navigate to the templatelibrary You'll find the template under the thumbnail Data Driven for Display & Video 360 Notice we have three new template layouts to choose from Blank Slate, Cue Cards and Panorama but today we'll be focusing on cue cards Let's create a template using cue cards I'm going to give the file a quick name andclick Create Now before we proceed in Google Web Designer let's take a quicklook at a design schematic of cue cards So cue cards is a template that utilizeselements and assets such as a logo, a background image, a swipe gallery a swipe gallery navigation, an animated arrow icon and three dynamic text groupslabelled SlideA through SlideC You also notice a few tap areas utilized for dynamic exits OK jumping back into Google Web Designer Let's review a fewimportant panels for customizing and configuring cue cards the template In the timeline you'll notice we have a lock icon Let's click the lock icon to unlock and edit the layer Let's select componentswipe-vertical Next navigate to the Properties panel The Properties panel iswhere we can configure the elements attributes style, position and size, andalso edit the component properties You'll find this component is driventhrough the use of groups SlideA, SlideB, and SlideC Now let's move to the Library panel We'll find the individual group definitions and group contents in the Library We can right click a group nameclick Edit and edit the contents of the group Protip: to quickly inspect theelements inside this group We'll use the Outliner The Outliner is a really coolnew tool for enabling us to view nested elements inside the group versus clicking through your divisions you can rapidly find which element you would like to target and edit You'll also notice in this creative we have twodivisions: wrap-SlideA txt-wrap-SlideA These are dynamic text divisions thathave a little bit of CSS logic that helped to auto center them depending upon what type of information comes down through the feed Now let's click on txt-description-SlideA in the Outliner You'll also notice there's a T icon next tothe txt-description-SlideA This signifies that it's a text element With the text element selected We will come up to the panel at the top named Text In the text panel you'll be able to configure text fitting of dynamic text and also the styling of the text in your document We can set a maximum size andalso a minimum size and when the dynamic text is passed to the division it will display the rendered fitted text size Now let's navigate back to the root ofthe document you'll notice we have breadcrumbs in the bottom left-hand corner of the stage right above the timeline Let's click Div to jump back tothe root of our document Now two more notable panels are the Events panel and the Dynamic panel In the Events panels we have events thatare specific to the control over the animated arrow icons behavior during autoplay and also during user gesture Next to the Events panel we have theDynamic tab These are the dynamic bindings that enable this document to bebound dynamically including assets, text, styling, and click exits You'll also notice Brand Awareness ishighlighted Brand Awareness is the schema we are going to be utilizing inside of Display & Video 360 Ad Canvas click OK to exit the dialog As an added bonus I would like to demonstrate the power of this creative If I jump over to a mock from a visual designer this is technically the specthe designer would like me to build to This creative is dynamic so the textcould technically be interchanged Let's fast forward to what the creative canlook like if I built it using Google Web Designers Cue Cards template You'll notice as I refresh this page the creative auto animates The arrow tries to grab the users' attention by animating and jumping The creative also has anavigation on the right hand side where we can drive the creative Users can also use gesture to scroll through the creative upon user interaction Let's say I wanted to publish this creative and upload it into Display & Video 360Ad Canvas So you might have a question what is the Ad canvas The Ad Canvas isa visual editor you can use to build and edit creatives in real time The Ad Canvas only supports our Google Web Designer data driven templates and also custom variations So in DV360 my template is loaded in the center and on the right hand side I have a UI that is editable on-the-fly You'll notice textfitting is working Variations and iterations can be knockedout proofed and signed off in a matter of minutes now with Google Web Designer'snew data driven templates in the Ad Canvas The new dynamic workflow hasnever been easier if you would like to learn more about Ad Canvas please look in the details section of this video for a Display & Video 360 Ad Canvascomprehensive demonstration link This wraps up our video Please have funcreating new dynamic ads Thank you from the team at Google Web Designer.