If you put enough work into the design system, and implemented it well for use in code, all you should NEED is a low fidelity shape telling you where to put existing components, and how to string them together. Everyone already knows what a modal looks like, behaves like, etc. they don't need it designed for them every time it comes up. That just wastes everyone's time.
Design is about how it works. That’s more important than how it looks. Low fidelity focuses designers on the app workflow, lets more of the team get involved in design, promotes UI component reuse, and avoids confusing managers about what’s actually finished.
I have no affiliation with them.
In a similar vein (also have zero affiliation) I discovered https://whimsical.com today, which also has a few other promising looking tools like flow diagrams, post-its etc.
App Cooker on iPad is really nice too, though no longer maintained. It exports the storyboard of all the UI screens connected by transition arrows.
It makes it really easy to first building a design system (like Bootstrap, Material Designs, Antd,etc). Which are a bunch of components, from basics like headers, list, to modal, message, cards, etc.
Then just place those components into the wireframe.
If anything need to update, it will be updated from the design system, then sync to the project
In theory, this means the designers are designing with components which are already represented in code, and as long as they update the library with any new or modified components, it should be straightforward: a change in the Figma library represents a change that needs to be reflected in Storybook.
But that's just the theory. In reality, designers often need to work quickly, and the idea of design debt is just as real as tech debt. Indeed, it's probably more of a problem, since there's no such thing as pull requests or automated regression testing for design, so it's harder to spot problems.
Figma already has a way to at least partially address this issue: they provide analytics that show you which of your components are getting detached, as well as a lot of other useful stuff. Unfortunately, the tier that allows this feature costs about 4x as much as the normal pay tier most people use.
I’ve recently started using it with my team and the impact has been positive. Component sandboxing seems to encourage developers to encapsulate CSS within web components. Sandboxing also seems to encourage thinking about web component APIs and designing them for reuse.
How well is Storybook.js catching on as an emerging standard in UI development?
When I joined about six months ago, the team was already using it, and keeping it up to date had become ingrained in the culture. I had nothing to do with it, so I can say it's been a good decision.
I have no idea if it's catching on in the wider world! Anecdotally, of the five places I interviewed at last year, two of them claimed to be using it.
Then you build a much nicer version (perhaps pixel perfect) and then have a lot of users play with it, and then your analytics funnels tell you where the bottlenecks are. So you make even more iterations until you make something that solves the problem in a delightful manner and users are going bonkers about it.
The TLDR is, there is no point getting pixel perfect in the first iteration. Good software requires tons of iterations and the entire pm-design-eng-user workflow should be optimized for faster iterations and learning.
A good design system + mockups get your that.
If it’s a rough wireframe it can be just that, rough.
If it’s a pixel perfect mockup then it’s a contract for final product IMO.
Of course whether there are that many sets of eyes on it depends how big a co you’re working for!
Maybe if the pixel perfect design is diff'd against the final product...
Their imagination is running wild that the mockup being used in the presentation to them means its an unknown time until its ready to ship..
They are imagining that is past whatever deadline they have in mind for it lol
If the modal in your case doesn't support a feature, it would be caught during the wireframing, before anyone has invested too heavily into any particular design.
Also, if the mockup resembled the actual UI but still differs ever so slightly, it's a sign of an inexperienced designer. Either they haven't properly made the actual functionality clear and the visuals are confusing (should it differ from the current features or not) OR the team is in need of a design system which would be used as a basis for all design visualisations and implementations.
Back when I was doing iOS development for a bit I had one designer forcing us to go through every single screen and manually override the default vertical font spacing and kerning settings away from the (company wide) framework we were using -- a change that was fairly trivial on Android but a pain on our iOS stack -- and this ended up taking hours that could have been spent on functionality. And made the app harder to maintain, on top of that. But this was really important to this person that the font spacing match their preference, and also be identical to Android's.
I miss simple wire frames. Some of the more productive projects I was on when doing front end work were done like this: product manager / designer gives a rough idea of layout and flow; developer works with them to throw together the simple flow as just raw HTML, really. Iterate, change, modify based on what does or doesn't work. Then the lipstick came later, once that's all nailed down. Less time wasted.
For my own sanity I've avoided front end work at all now, and have been doing systems level work instead.
Over the past five years or so, the landscape has changed considerably, and many designers have been forced to make a decision to either head down a more UX-oriented path or do something else entirely. The result of this is that we now have a lot of UX designers who never really wanted to do UX, but were forced to adapt and take on a new role due to a changing industry.
Also, look! Engineers are talking to designers.
That's a fair comment.
> Also, look! Engineers are talking to designers.
I think most good teams have had engineers talking to designers since well before Figma :)
I often ended up sitting next to one of the developers, working along-side with him, helping him on the technical issues (reading Stackoverflow and github issues on various repos for example) while he helped me with the designs by challenging and testing as we were wireframing ideas. Kinda like aöpair programming, but for designers and less siloed.
At Google in Canada we are no longer supposed to refer to ourselves externally as software engineers, for legal reasons. We're software developers again. Which is how I have always thought of myself.
Well, back in the 90s I called myself a "programmer." I miss that, too.
Same with a doctor. You study for that, get the label. You cannot/should call yourself a doctor if you just read some Wikipedia articles and listen to grandma tips and go applying band-aids and aspirins.
> Well, back in the 90s I called myself a "programmer." I miss that, too.
Oh man, so true. I miss it so much. Developer is such a vague term.. but in my little heart I still consider myself a programmer.
I guess what it comes down to, is software a machine/engine? Also, the person who does the "slicing up a design, authoring markup and CSS, and sprinkling in a JS plugin or two" is or should be the designer, not the developer.
Because software development in the real world is hard. Hard computer science is hard. We're still in the infancy of the profession and have a long ways to go. I could honestly see it comparable to bridge building or rocket science.
Then reading again and seeing "javascript build pipeline" just made me LOL. Cause that's rocket science too.
screens 1-25 had a certain nav bar
26-39 had the same nav bar, but everything a few pixels off with a slightly smaller font in off-white, vs white.
screens 40-70 alternated between the first to nav bars, and introduced pull down select boxes with multiple checkboxes in them. the multiple checkboxes represented - in some cases mutually exclusive combinations of things which contrasted with other nav options.
... and so on. Things had to look pixel-perfect - "look, it's a design agency, they put a lot of work in to thinking about how this is supposed to look and work". So.. you'd make the screens exactly the same ('just export all the CSS for each page', etc). But then, when using the app in development, if you went between various screens, and saw the discrepancies - font sizes changes in nav, for example - that caused more negative feedback - "this is broken!".
I tried to demonstrate the design screens were the problem themselves by just paginating between the invision slides - you could see the font sizes jump/change immediately. "now you're just being negative".
I didn't last very long on that project...
Personally, I'd rather just implement the wireframe (or something like it) and try to iron out the interaction wrinkles there where it's much easier to update the design and you don't have to worry about fonts and spacing nearly as much; once the interaction implementation is nailed down, then I think it's a better time to move on to the mockup. Hopefully we'll get an opportunity to try this at some point, but it was enough of a struggle to do a separate wireframe at all that I'm guessing it'll take awhile ;-)
An idea for Figma to mitigate this problem: make a browser extension that can export pages to figma documents. That would make it much easier to have up-to-date designs when doing web development.
Have a plugin which could turn the unfinished modal for example into a wireframe look & feel and then when you have the right icon, turn it off again.
I remember back in the days Expression Blend had some functionality to apply sketchy lines style (based on Bill Buxton's book - Sketching User Experiences).
Also, the prototyping functionality is still rather basic. Axure is much more powerful and ideal for the early sketching and testing phase.
But I'm sure Figma will have more sophisticated prototyping features in the future.
Last time I checked, Figma didn’t support interactive form elements or prototyping conditional branching based on what you type in a form field.
Being able to prototype business logic without having to get developers having to develop something, saves a lot time at early stages when you explore new features with business users and you can also iterate faster and it’s better for user testing as well, as it’s more than just clickable hotmapped images.
I know you could achieve the same with Framer, since you get access to the code, so that’s useful for designers who can code.
Axure is great for designers or product folks who can’t code.
Is the above possible in Figma now?
Setting 1 name [toggle]
Setting 2 name [toggle]
Setting 3 name [toggle]
You want to turn any toggle on and panel with subsettings should appear underneath clicked setting name, shifting down all other settings below. In Axure it is just a checkmark "push widgets below".
Axure is horrible for wireframing and a non-starter for visual design, but it has the most powerful prototyping features I've seen by a long shot. Framer is straight up writing React code, so I don't count that as an option for the vast majority of designers.
I got sucked into using Axure a few years ago and had a blast making interactive, data driven mockups that utilized custom JavaScript to build components.
It was awesome to get some key concepts across but then one day I realized I spent more time fighting the mockup software than if I had just coded it up.
Oops!
Anything that’s actually ready uses the primary/actual colors. It’s actually pretty great apart from 80% of the design being grey at any point in time.
Engineer: So are we changing the nav icons as part of this story, too?
Designer: Oh, no, ignore that. I didn’t have our real icon set so I just grabbed some others
Engineer: This modal doesn’t look like our normal modal, are we supposed to be building a new one?
Designer: Oh, no, ignore that - I’m working on a design for a new modal and I just used that here
Engineer: Ok, do you know our current modal doesn’t support X, so this part of the interaction won’t work?
Designer: Oh, okay, I’ll go update the design I guess
Etc... sometimes makes me wish for the days of Balsamiq / sketch style designs where the idea was to not try to make it photorealistic.
Having said that I guess if you could get Figma completely in sync with your actual UI it’d be pretty nice.
EDIT: I will add that the clickable mockups seem really helpful for our Design team when they're doing user testing, which is happening before the designs get to us. But this is not unique to Figma, InVision can do it, too.