about 2 years ago Syntax Podcast
Design Systems With Brad Frost (Rereleased)
A design system is the official story of how an organization designs and builds user interfaces
Guest 2
these things are their own little islands.
Guest 2
2024.
Guest 2
React applications
Wes Bos
question to everybody. Give us your
Guest 2
I, I feel I wish I had like This isn't just about
Guest 2
but also other environments, especially like native environments, 1 for mobile, 1 for desktop, and whatever. And you could just go, oh, yeah. I'm just feel like moving that from here to here at all Right? They they, like, move it independent tracks. They could be independently worked quite well for me over the years.
Scott Tolinski
were tasked with reimplementing
Guest 2
what's effectively a 5 pager, ESLint men approach the elephant and that we're talking about with design systems. We're not talking about React Yeah. App like you're saying. So it's like it would import what it would look like. It would be like import and was talking I was talking with somebody.
Guest 2
in this big ecosystem article that we just published JS, like,
Scott Tolinski
and we were expected to deliver them as a style guide.
Guest 2
of, like, the different layers of this layer cake and how you get these sort of they're ultimately, But at the end of the day, we're talking about
Scott Tolinski
given that they're in this post. We'll we'll make sure that this post is is linked up, by the way, because it's really substantial and great. Right. How do design tokens come into play here? Mhmm. And I think a common, like, understanding of them is that their
Guest 2
Do do whatever you want with your life. There's no real constraints to your life and a whole other sort of cast of characters. And what we do JS we sort of jump into a bunch of big organizations And that's what a code library that is a corollary to the design library.
Guest 2
for design system architecture. And we're able to sort of like have AI sort of blast out new components your organization examples, but getting into things like
Guest 2
That's the stuff that I get really excited about. It's like it's it's really it's less about, like like, theoretical Logitech And ultimately, is. And then there, there can be
Wes Bos
that wasn't one of the blessed purples.
Guest 2
to happen.
Guest 2
So it's it's a little bit different than the normal design process where it's like, I'm gonna like literally any organization of any size or any website or app or whatever the smarts, the autonomy of the organization. Like, do you have a bunch of really smart product teams who are capable of making the right decisions design tokens are these sort of brand definitions.
Wes Bos
The dog that has, like,
Guest 2
Dan Wow.
Guest 2
real world
Scott Tolinski
does Joe Schmo with a a Scott up web app need to worry about having a system like this?
Guest 2
introducing the new API and sort of like smoothing that out under the hood.
Guest 2
and know And this all really kinda depends on, like, the makeup,
Wes Bos
you pick something that is sick. Literally can be anything. Could be a charcoal Yarn. Can be a little gadget that you've been using. Could be a
Guest 2
designers wanting to be creative and that that every on each of those? Yeah. So so this is this is what gets interesting. So there's like a couple tokens Common components that are meant to work ultimately, you know, we're like leaning on NPM or yarn or whatever to,
Scott Tolinski
Give me a few if you want. Doesn't matter.
Guest 2
There's the accordion.
Guest 2
So so just
Guest 2
really just working through the details of that API language together
Scott Tolinski
What is the best way, in your mind, to document that that language? Not, like, necessarily,
Guest 2
the colors, And through that lens, that are super protective keyboard, say, here's the mix and match exercise. You all do this and create your theme.
Guest 2
to the idea of, like, some jokers coming in and saying, hey. Yeah. We're gonna create this thing, and you all you need to do is plug this in.
Guest 2
a design library and something increasingly Figma, right? Figma library containing your common components. And this is this is important here.
Guest 2
design system.com.
Guest 2
but at the same time, like that's, that's kind of ultimately what you're trying to do is is is is, you know, say, sort of more basement level you pull in the button web component, boom, there you go. There's your branded buttons, try to build that trust, and and also just kinda be, like, way early on in the in in the engagement. We're, like, we don't know what the design system is going to, like, look like just yet if if Node doesn't exist. But, like, here's a bright pink button. Let's just pretend with a with a greater degree of of of certainty that that, oh, yeah. This can be built. Right? originate Wes. I am. I am the guy with the orange website. So features.
Guest 2
user interfaces, not necessarily digital products, because there's all these other things that go what's in a design system Figma library things go.
Guest 2
if if you don't mind me plugging, as it needs to be and no more. Right? Like, don't introduce complexity author and deliver levels of smarts or or Frostapalooza.
Wes Bos
Yeah. Yeah. What that that's the question I have is, like, what do you do? Like, we're we're working on the syntax website right now, and I wanted to style something
Guest 2
l? Are you writing that in all lowercase? Are you doing s m as, like, an abbreviated thing? Do you do you do s m m d l g x l? Right? Like, do you do that versus spelling it all out? Do you do camel case? Do you do, you know, like all of that stuff? Like, simply a matter of pragmatism, of that layer?
Wes Bos
going all in on web components for everything instead of just delivering
Scott Tolinski
Nice.
Guest 2
I'm putting together, like, this, like, really big show next year. I'm coming up on my 40th birthday, and I'm, like, 1 I'm, like, swinging for the fences. So in Pittsburgh, I'm getting, like, since
Scott Tolinski
like, what are design tokens here? Yeah.
Guest 2
people want All of that is optional. All of that, like, helps make it all go layer with like a react layer or angular layer, whatever layer is that you're able to sort of like, or wanting or having a need for something or has a question about something.
Scott Tolinski
You mentioned, like,
Guest 2
Figma library is Russell Russell. No. I No. I mean, shameless that you should come to that, and that's gonna be awesome, but if I I could do another one, like, if we obviously talked about, like, the gory details of all this, like, design system stuff, pieces of intellectual property is like the specific language that we tend to recommend theoretical line into, like, oh, this is actually happening. And I was, like, that was so big. But also just, man, like, so Sanity yeah. The the ESLint stuff. Really all, like, the stuff that you would want Sass to do. The anytime that that sort of native CSS chipping away at Sass's outlook on life.
Guest 2
that the happy path is the components My answer is yes. Like, obviously, the benefits become greater. I think the the bigger the the breadth and depth consistently, my wife ran a jewelry company.
Guest 2
needs help with that, the technical architecture, the design architecture, but also the people, process,
Wes Bos
Their main app's built in React,
Scott Tolinski
Do you think that
Guest 2
text passage, or whatever you wanna call that thing, and Yep. Button from back to that kind of broken designer to developer handoff thing.
Guest 2
because in order to build the homepage, either in progress or it has been sorted out at the, like the sort of browser level. So it's getting better, but the last number of years has been fun.
Guest 2
it's it's not something that a lot of people outside of our little circles, I think, really understand.
Guest 2
or have, like, very specific ideas around, like, how they wanna sort of build their things. They're using very specific frameworks or very specific flavors of the same thing. Right? Sort of different patterns or different sort of weird left turns or different frustrations these are all potential in these other contexts, too.
Guest 2
ultimately into products. Right? And and having people that sweat that level of detail, of these components.
Wes Bos
some classes and telling people, hey.
Guest 2
And so a lot of it is just kind of like getting
Guest 2
Vercel we need to Wes need to own Right? If it's a bad idea here, if it's not working in this context, well, maybe it's not working Product 2 comes along and they say, oh, we actually need 2 avatars or we need a button group instead of just this 1 button or we need a subheading in addition to that. And that's where those kind of more composable components like cards and headers and stuff like that tend to fall down. So what we do to solve that our web components and our Figma libraries it's warranted.
Guest 2
Brand background. We're going to match
Scott Tolinski
Mhmm.
Guest 2
then require almost like hollow out the guts of those things and establish this web It's a bigmedium.com.
Guest 2
many, many, many different tech stacks, a a sort of React recipe getting delivered somehow truly is the source of truth, and then the Figma library is this kind of abstraction of that that allows designers to do their thing.
Guest 2
Like of these sort of reusable components, right? The button to power need for it. And performance, nerd about really
Wes Bos
all kinds of folks being like, this is garbage. This is a bad way to do it. Yeah. And, people are are probably listening to us being like, I want to implement this at our company.
Guest 2
might be able to use that thing as is.
Guest 2
file in the head of your document.
Guest 2
but still preserve those like react libraries and those angular libraries.
Wes Bos
I just went out of it. You know? Yeah. And and, like, in a bigger yeah. I'm sorry, Scott.
Scott Tolinski
And
Guest 2
Avatar card what's going on at the end of the day? If you zoom, like, way out JS this, like, you have a bunch of teams that can't be trusted with a butter knife in their hands? one of our team's like biggest the example I I like to use is that, like, even card,
Wes Bos
Button and some text. Yeah. Alright. Card,
Guest 2
here, but at the end of the day, it's like, our marketing website without a real then you all need to collectively make a decision. It's like, should the purple be updated?
Scott Tolinski
if you do, like, what what are some resources that you,
Guest 2
wiring this up to sort of, you know, back end services or APIs or anything like that. It's it's kinda strictly for the last decade, I've I've been on my own, component. Right? Like, if it is for, like, the flagship
Guest 2
But at the end of the day, when you talk about what a design system is, it's like delivering the kind of like dumb well, I need the hero. I need these cards. I need the header in the footer. And then I go into the interior page, and it's like, oh, okay. Well, So I know to use the term variant I think, at this stage in the game JS of what exists in the coded design system, the auto layout and sort of stretching things, like, to to better behave like the browser, but at the same time, like, it isn't.
Wes Bos
mouse and keyboard you're using?
Guest 2
that's the place for those kinds of conversations or even freaking like PowerPoint templates and stuff like that, which is pretty interesting. You could, like, you could basically export these things, like, at its at its core design tokens Yarn like, here's the single place you define where Starbucks green, presentation, just let me get Neil in here to tell you why that's the CSS, but also partnered.
Guest 2
For my own for my own personal website. There we go. So that's my brand palette. Right? But so what these things do helped me better understand how the world works.
Guest 2
this kind of division of labor however it sees fit.
Guest 2
Yeah. Variant equals primary and then pnpm.
Guest 2
of went over the the shadow dom and just kind of hack the crap out of things.
Guest 2
so you get it. And and what we do is we we train our clients, like, here's the brand people. Here's the marketing department. We, like, for all of these sort of framework specific layers. And what we've learned, unfortunately, is is its own product specific thing, and that thing have a conversation.
Guest 2
attributes. Right? Their their brand definitions, you Node, here's a brand orange. Here's a brand cream. Here's our brand brown. Right? right? I still applied establish and evolve their governance processes for all of this. But like maintaining those view and Angular and React libraries don't need to do any work aside from just bumping the version, and they get whatever accessibility updates for free. Say that. Oh, whoops. We changed these things in the DOM. Like, it's just way more direct of a delivery
Wes Bos
and they've got a marketing site in WordPress and a store running on Shopify.
Guest 2
effectively. Yeah. But but in doing that, we are we are sort of ultimately creating a better user experience for, like, everyone that's, like, downstream from it. One of the kinda coming back to kind of Figma land.
Guest 2
Does it do what I need that accordion to do? that we work with have existing That that tends to work out pretty Wes. And we're actually now doing some cool stuff where we're we're training AI on our sort of specific code guidelines and structure Vercel, Beautiful. And success border. Right? If we wanted to have branded Because in a lot of cases, what we learned is, oh, yeah. It's not that making a whole page have it be this pass through, but also kind of support the old API in theory.
Guest 2
literally all of this. So a lot of times, like, we we deal with a lot of IT organizations And I was like, people
Wes Bos
Here. Flipped over at people. But Oh, man. I even gave you Scott and paste buttons for all the trailers, man. Sometimes it just doesn't look good. You know? Like, what do you do when it just doesn't look good? Yeah.
Wes Bos
Dan Rupert,
Guest 2
avatar, So it's just like, basically like mixing and matching these variables together and Scott of creating this, this kind of tiered system.
Scott Tolinski
Nice.
Guest 2
So so there there tends to be a lot of, like, mistrust around that. And that's one of the things that we really tend to do is really kinda come in, seen, you know, generations now of trying to solve this problem going all the way back to, you know, Dreamweaver days. Yeah. Right? And, you know, WYSIWYG days and stuff like this, and, you know, PSD to HTML Or designs and builds user interfaces.
Guest 2
if not downright hostile
Guest 2
Yeah.
Guest 2
You're relying on 3 different teams to do that. Get the Dom exactly right. If something changes that became that creates a bunch of downstream work basement level web components It's not just like hot air. It's Yeah. This is this, like, interconnected across an entire 19 seventies. Like, I I was, like, born in the wrong era. Like, that sort of helps connects connect skeptical, There's kind is kind of a promise So of 3 main assets, 3 legs of the stool from, from, what a design system, the sort of constituent parts Yarn. It's by sort of having this design token layer, that's kind of managed as its own thing.
Scott Tolinski
Yeah. This is a this is perfect timing because Wes and I were just supposed to have a a conversation after this about
Guest 2
in your design system, web components that live at the sort of basement layer in the design system I'll I'll say an artist that we we really like, we've been listening to a lot of Rubble Bucket. If you're familiar with Rubble Bucket.
Guest 2
I'm going with outlook.
Guest 2
like, now I'm I'm really 70 way percent of the way done. The 4th template, I'm, like, 85% of the way done. By the 5th template I might not have to do any new component work. Right? It's just a matter of composition.
Guest 2
in order to make it go. Like, all of those are optional. Right? Like, not every organization
Scott Tolinski
MacBook Air. Nice. Beautiful. I have some special questions for you. I do you do, like, any systems, like, reading about systems design? I'm sure you do. But
Guest 2
you're gonna you're touching my code. You're touching my code base. Like, you know, like, my just the Mac MacBook Air.
Guest 2
Outlook on life JS as you should.
Guest 2
here is kind of hierarchy. This is it all sort of influences one another. There's, like, feedback loops. There's all this good stuff. So yeah, that's a, it's a great book. I would recommend that book to, to literally anyone, whether or not you're doing, for standpoint, and then you Yeah. Ship those.
Guest 2
that use the exact language that we're using and stuff like that. It's really cool.
Guest 2
but like it's like good art rock. It's like as close to like talking heads as like modern music can get. So, yeah, they're really great. The other big thing, though, Thinking in systems Most people don't love it.
Guest 2
it's hard, it's complicated and stuff. So shameless plug, like, if you
Guest 2
there's truth to it. Just to again, just with the the term design system, it it means different things to different people.
Guest 2
has a different type Scott.
Guest 2
heading, 2007. And so I've been sort of I you published a CSS file
Scott Tolinski
keeping some of that stuff in sync.
Guest 2
and about Scott HTML supporting multiple brands, I got my header in my footer, so that's already, like, 70% so there's a number of interesting things that we tend to do. A lot of organizations and the JavaScript documents that might not live in the sort of basement level in design land is obviously you're able to sort of like pump those into your, your Figma library and stuff like that. In code, you're applying them as CSS custom properties, is a recipe just like your favorite colors, or was it Like, I my vibe is whole, like, where a lot of this sort of hesitation It absolutely critical.
Wes Bos
Yeah. Life. I like that.
Guest 2
like most things, you got to sort of start
Scott Tolinski
I didn't hear this is the 1st time hearing about this.
Guest 2
especially in, like, the Figma world, it's, like, gotten good. It's gotten a lot better at sort of in closer to representing
Wes Bos
computer,
Guest 2
But all it is is effectively like a pass through layer. So react developers are still able to engage and interact with these react components, but under the hood, Rubble rubble bucket check out rubble bucket they're great a great band it's like barry sax that just kind of, like, They operate in a lot of ways, similar to how a react developer would be used to sort of interacting with any other react component, with my partner Josh Clark, my brother Ian, really minute contributions or evolutions or new components or or new props or variants of the organization, like, which is why all of these, you know, fortune 500 companies and stuff are it's like, obviously, we need a design system because we've got without necessarily touching that we do for these jumbo size organizations there's an opportunity to kinda reframe it. And this is what we help our clients do JS that
Wes Bos
when you're trying to implement this? I'm sure that you've come across
Guest 2
for the last like 4 going on 5 years now, we have been, CSS, presentational JavaScript, Oh my gosh.
Guest 2
let's just take index Scott HTML So that's like it at its, like, most basic Yeah. In, like, an index dot HTML thing, but then, of course, and sweating the small stuff, documenting the hell out of it, getting it out there and making that like a part of your ongoing, like, governance and PR process to make sure that, like, I talk about and write about and think about.
Guest 2
how we, you know, wield accordions or form fields. Here's the things that we care about. Here's how we sort of, you know, construct right, is needed as soon as you create 2 web pages.
Guest 2
literally just crunch the numbers.
Guest 2
Oh, yeah. I'm from, like, the school of Zelman. You know what I mean? Like, so the more that, like, we're able to, like, just build things to standards, These those people when push comes to shove, right? Like somebody's touching the trunk, and they're like, oh, it's like a snake. And somebody's touching the leg. It's like, oh, it's like a tree trunk. And it's like And then you could deliver that to your React application, but also your WordPress site. And also, I don't know about Shopify JS in what their where I'm, like, writing about all this stuff. So it's your your design tokens are So it's like, what is going to stand the test of time? Incredibly hard.
Guest 2
details over something, right? Like, do you call something small Wes m a l supporting multiple product families, things like How much time? Yeah. Yeah.
Guest 2
the Dom to be a certain way, right, in order for them to to work. Right? Like, obviously, we try to make classes as modular as possible and stuff like that. But a lot of times, it's like this stuff just falls down as, that just introduces living in our code base that then gets sort of surfaced in storybook, A lot of them Wes people, people we all Node. Chris Coir, Meadows.
Wes Bos
web components powering products now. I think people listening right now might be saying, like, what's the benefit of
Guest 2
There's Starbucks green. If, you know, Starbucks green needs to be Starbucks green whether you're on their Android app, their Bos app, their their, you know, starbucks.com, here's what this component looks like. You're now sort of creating this architecture. You're creating this naming. So our biggest pieces of advice is to really, like, kinda have simple and then sort of grow and introduce that complexity only when coming back to the short answer is a conversation is warranted between design system library literally all of our work over the last probably 5 years has involved some form of for our clients just, like, hit the yeah.
Guest 2
But ultimately, like what's in code. Right? It it is a representation
Wes Bos
thing on his back. Yeah. Yeah. Dog? Round saving the world.
Guest 2
There's some challenges around there, especially around like it's like, if you have like a label web component and then a text input And then you can kind of actually embed storybook inside of your reference website tools.
Guest 2
Right? very narrow band of of what goes into UI as you all know. Right? There's there's many, many, many different gets born out of that, and then it gets ingested, But then it also, of course, gets into all of the real challenge, many different frameworks, many different CSS, the team or the person needing
Wes Bos
Put this class on your button, and it'll look like x, y, and z. God. Yeah.
Wes Bos
static. What kind of pushback do you get from people
Guest 2
technologies or this recipe layer, like we're talking about.
Guest 2
going And I think that, like, I yeah.
Guest 2
product 1 but right? The button component was created 1st and uses specific language and then here's the problem.
Guest 2
via CDN or some package manager, kinda co located, boundary literally all of my clients with me. Like, increasingly reaching for web components to help Pull in the, the design systems, accordion component. You click on it. Guess what happens? It opens. Right? You click on it again. Guess what happens? It closes. So it's like, it's that level So But even for, like, a design system to power a 5 page website, yeah, that's a design system of component, Wes component, and you need those things to talk to each other. That's all been kind of like So so yeah. So that's what I've spent the last decade doing and and sort of through that work Scott of helping organizations it's like, that's bet on the future because all these frameworks come and go. Every, you know, tech stack, CMS comes and goes.
Wes Bos
That is that is my sick pick. That's deep. I love it. Man, we need to add that
Scott Tolinski
finishing up everything. So if we can establish our our system gradients now as part of this, it'd be great for me. I I had a question about naming things. You'll often hear that, like, naming is is a huge problem. And and and so far in this episode, I've I've heard you reference, like, a ton of different, like, token names for different things. JS, like, naming a massive part of this job, and is it hard? Is it something that you really love, or is it something that you have a system for?
Guest 2
You're linking up And so, yeah, it's long been a a, you know, soapbox of mine of, like, the whole sort of designer developer workflow
Guest 2
by Danella the choosing the right language, but it's also just, like, the governance and the managing the people part of it.
Guest 2
You're gonna be delivering It's like a design system ought to be as complex powering the product as much as it needs to. And that's like a big asterisk that I wrote in that, needs that. We've never encountered any organization that has, like, literally all of these layers in place.
Guest 2
Mac button, text. Mhmm. What we tend to call that literally is the entire ecosystem
Wes Bos
Yeah. That's true. Like,
Guest 2
make those as its own sort of recipe layer, which is often like a sibling repo in, like, a mono repo or something like that. Right? of comes from So design library, Node leg of the school, Right? So you don't get
Wes Bos
Awesome. So last thing we have here is a sick pick and a shameless plug. A sick pick is a or ingest packages and stuff like that is. I'm curious. And, like, like, what about all the CSS that comes with it? Is that CSS built it baked into that web component, so it's it's Scott to it? Or do you give them a CSS file or they have to import it? Yeah. Yeah. So so when you publish the design systems package, what you'll get in, like, a disk folder
Guest 2
that these browsers can do that that do not get reflected in these static design tools. And, yeah, you can there are prototyping tools and there's stuff like that, but those are all approximations.
Guest 2
more Sanity.
Guest 2
some of the ways multiple things? Or do we just kind of, like does the design system totally relinquish control Yes. I do love it.
Guest 2
what we've found is that, again, yeah, if you wanna hear Angular developers can continue using that stuff.
Wes Bos
And then all of these web components
Guest 2
Yeah. There might be a couple train stops along the way, or they might get sort of wrapped in sort of various Right. That gets you the, the desired, like, look and feel.
Guest 2
they are often very hesitant, Right? There's just kinda brings it all together, puts a bow on it, helps sort of frame it, contextualize it, and sort of teach people how to use it properly.
Guest 2
valid, economies They define created a website for her and even with nugget, as a little bundle that you just sort of get for free. And if changes happen, we will have hours long arguments. Yeah.
Scott Tolinski
design in the code aspects, and is that even, like, a good idea to have those, like, deeply connected?
Guest 2
keep those definitions you know, being powered by web components, same deal with the angular world. Right.
Guest 2
arbitrarily. You could have these different artboards, is really important because that means that everyone else is from people of different websites and apps that are that are in there. So the design system is really the foundational level, which is like, here's where
Wes Bos
I'm I'm curious about, like like, what does it actually look like when you put it in a developer's hand? So you said, like, web components, but, like, I'm imagining a big company.
Guest 2
of of of a No. That was good. Pnpm, like, it's design system. It's composed And that's an important sort of qualifying they come in they're all using language in the same way so incredibly incredibly incredibly difficult work And it kinda comes down to, like,
Wes Bos
Like, what what's the most common type of pushback you get from people?
Guest 2
of how an organization
Scott Tolinski
Yeah. Imagine that. Wes, I've told you about this before. When I worked at Ford, we we were given the task of building these experimental components, and
Guest 2
Wes all of the different websites? Yeah. So we actually just published I just published You're you're selling yourself short and you can, you could do Node, But sort of the the umbrella that I tend to put things under is that a design system is the official story into the game. The game. Yeah. API naming and stuff like that. Designers working with design and development teams to actually help sort of implement and evolve design systems and stuff. So that gets into all the technical architecture side of things, which is what I tend to sort of hang out and do. And my team sort of helps, you know, build component libraries and integrate component libraries into products and sort of make it all go.
Guest 2
And what doing that accomplishes It's it's this kind of like
Wes Bos
Curious which,
Guest 2
that that is our design system. Let's at least get that pipeline set up so that we can, like, at least sort of get this into your world. You're able to kick the tires. You're able to sort of, like, validate or, you know, put it through the ringer. You Node? Like, we're not we're not precious here. We're not, like, here to, you Node, this isn't our egos. We we just think that these are like good ideas.
Guest 2
there's a lot there. It's hard.
Guest 2
this whole that this exact same methodology isn't consulting and plugging, you know, ducking my head into all of these different called a recipe layer that allows people to go, okay.
Guest 2
in free space, which is obviously not how things work in the browser.
Guest 2
the design systems web component library. But then But yeah. So this literally has like a boundary drawn around it and you can't just go around and like extend it and, and just kind of reach into And you could also get to it from my site, bradfrost.com,
Scott Tolinski
would recommend for that type of thinking? Yeah. Right. Yeah. Seriously. Standards Yarn good ideas.
Guest 2
And especially whenever you're talking about let's just say you Scott a bunch of React apps, you got a bunch of Angular apps, and you got a bunch of Vue apps. You're then requiring is that you need to kind of be this, like, weird, into apply MX this sanction set that all work. They work from a Sanity standpoint. They work from just like a vibe,
Scott Tolinski
Their front end engineers
Guest 2
with an avatar, what else Wes in it? kind of like nice and tidy framework specific So those are the kind of like 3 assets,
Guest 2
those web components, right. To, to sort of give the flavor, but they're effectively these like really low level brand whether I'm reaching for a badge, whether I'm reaching for an alert, whether I'm reaching for a button, they all use this word the same way. And it's it that's the hard work, and that's, like, dare I say like one of my like the biggest
Scott Tolinski
I know you're a big music guy. What's, what's one of your favorite albums right now?
Guest 2
so it's it's basically I could share I could share this article with you, but we talk a lot about the governance process. We help organizations broken it tends to be, especially whenever sort of things
Guest 2
or, like, you know, makes me feel good to be this. It's I think a lot it is now a matter of pragmatism.
Guest 2
any
Guest 2
to real websites and apps that people use.
Guest 2
mentality
Wes Bos
even if you come back to the the example I have is it's not it wasn't the purple straight up, but it was I was using the purple in a gradient and fading it between purple and whatever I Wes. It didn't look good, so I had to to to adjust it. And the answer there is not that we need to add a new Vercel. It's that we need to figure out maybe we need a set of gradients that are reasonable and and and look a little bit better. Yeah. Yeah. And and that that's what that's what I'd recommend is, like, having gradients be part of your token set. That's actually a good idea, I am. Unless you really are just going for, like, a total, yeah, mix and match, like, almost, like, user generated, like, gradient thing. Like, what you what we tend to do with our clients is it's, like,
Guest 2
that was a little meandering Basic things like, you know, ultimately coming out the other end as CSS custom properties
Scott Tolinski
those same components on every single one of those 90 CMSs.
Guest 2
What we've been talking about is like a web component powered design system.
Guest 2
pedantic
Guest 2
all that stuff, you could hire us at at bigmedium.
Scott Tolinski
the
Guest 2
this single show.
Wes Bos
Yeah. Yeah. There's That's good. Fine stuff.
Guest 2
just gets to sort of reap the rewards of that, and they don't have to think about it. Right? That's that's I think design systems and design system teams are like the great place for those kinds of people that just, like, sweat those I I think I just did.
Guest 2
that we accomplish this, if you have a card Is it orange? I always I was gonna say, I I almost introduced you as the guy with the brown website. It's it's like it's like cream, brown, and orange. Those are, like, my Scott of, like I I have, like, a long standing of the way done. Right? And then I might be able to reuse that card there. And then by the time I get to the 3rd template, it's, like, oh, okay. So now I'm Your standard issue At the end of the day, they are different worlds. Right? Like, Figma, the kind of systems while also a 2nd layer to this, what we kind of call like a semantic layer, like this kind of like tier 2 thing that we sort of take And then whenever in your body, then you're able to be like, you know, DS dash, right. Design system dash button.
Guest 2
I of course being the good husband I am or, and, or they have a bunch of angular apps and an angular designers are used to like layer 73. Yeah. P42 here's this blank canvas. You could just drag things around But Does it open and close? Yeah. Okay. There we go. Good. Happy path. That's that's like the the success story. But if they come to the design system library and they don't see the component they need or they don't see the variant or or they have a specific use case for it or they just straight up, like, yeah, don't like what they see.
Guest 2
the design system CSS responsive is the hard part. It's Node, no, no. How do we convert this navigation And sort of through that responsive design work is what sort of ultimately kind of, And the design system team who is ultimately the ones Scott of governing this. If it's just broken, if that purple isn't the right purple, Right? Loading of of like these big hero images. Like all of that stuff interact true interactivity and stuff like that. That's the user experience. Right? Like that is the UI.
Scott Tolinski
No. It's probably the nature that's linked up. That's amazing.
Guest 2
that it, like, applies to really, like, low level stuff. Like, we're talking about, like, a design token system. It's like the same sort of concepts some way concepts that are important. Right? So one is the shadow Dom, right? So it's like, you can kind of have this, this kind of protected the actual web component library.
Guest 2
basic functionality page layout, and jankiness.
Scott Tolinski
amazing.
Guest 2
is right there right there in your question, back to what you were saying earlier, like, oh, yeah, build these 3 different teams to rebuild the same accordion logic. Right? Again, you click on the thing, it opens. You click on the thing, it closes.
Wes Bos
kind of vehicle for front end. That's beautiful. That I'm that's very well put. And I was gonna say, not to mention, like, trusting 3 teams to
Guest 2
I talked about that, like, 3rd leg of the stool being the reference website. That's like a good place for that kind of language. But also what we tend to do is have while you bump the version, you pull in the latest version, What happens?
Scott Tolinski
design token is a CSS variable. Is in your opinion, is that accurate at all? And,
Scott Tolinski
there like, Node JS is there a more unified way to connect
Guest 2
you can create and this goes all the way back to just, like, bootstrap. Right like put bootstrap Scott Node dot CSS and the heavier document match these classes you're good to go right a lot of these things Oh, man. I mean, there's so many. I mean, I think I think that there's Ioorpolaris.shopify.comorcarbon build and implement user interfaces.
Guest 2
tech stacks, and the box Node.
Guest 2
And that's kind of intentionally vague, right? There's a lot of ingredients that go into that story,
Wes Bos
what CSS features that are, like, either new or upcoming. There's a lot going on in CSS world right now. Which ones are you specifically excited about? you probably go, oh, yeah. I remember this website. But
Guest 2
you know, by the actual application, blue sky, you know, create this new funky Node page and then sort of give it to my developers to build out. It's a little bit the the the coded like you said, I do a lot around, besides your own imagination.
Guest 2
just a good experience. Right? When we talk about a good developer experience, it's like, oh, yeah. We've internalized this API language that's used across
Guest 2
Yeah. Solar panels are a good idea.
Guest 2
The problem with that is that that's from component to component,
Wes Bos
implement the same thing exactly the same way or sometimes, like No. It's it's awful.
Guest 2
a lot of these, ultimately, evolved into working with design systems.
Guest 2
warp like, it will help help them sort of unpack that it's
Wes Bos
And shameless plug, what would you like to plug to everybody? Wes. Let's let's Scott, like just tell I'm sure that
Guest 2
we'll say, the biggest and and stuff like that. But it's it's so beautifully articulated the answer to your question is really like, of course, like most things, web design and development is like, it depends.
Guest 2
Like the problem of components, to these, like, massive things. So it's like the the word design system, right? Like that that word is important.
Guest 2
An outlook on life.
Guest 2
in design, and then Wes they get thrown over the fence to development. So what's interesting in the world of design systems kind of a handful of of markdown
Wes Bos
a a little,
Guest 2
3 core assets
Scott Tolinski
it is a part of the different layers, you know, being
Wes Bos
are
Guest 2
They they go to the design system component library and say, I need an accordion.
Guest 2
and React component libraries to power those applications an architect and of a design system And I am a a principal What it the web components to give it this specific look and feel. And what that does is that that unlocks all the stuff with like, you know, themeable design systems and supporting multiple brands and white labeling and dark mode and the whole 9 yards. Right? But that's the stuff that penetrates through the shadow Dom. So what it looks like in practice, if you just have like index Scott HTML, Oh my god. But, drag their form controls onto a page, drag their button group onto a page, drag their different cards onto a page, What's interesting is that these tools are relatively new And
Wes Bos
Yeah. Cool. Yeah. Another question I have is is not on our regular supper club questions, but I'm curious,
Guest 2
design systems to the, again, dozens, hundreds or thousands of applications, more than that, and I don't know how I feel about that. Yeah. Yeah. So that's that's definitely on the tech Node. That tends to be one of the the common things that we encounter. And then, of course, just like, you know, your garden Sanity, just Starbucks green to that error
Guest 2
what? And, we're doing a big charity show, and we have a whole year things. Right? Everything that we've just been talking about this, like, framework specific layer or this notion of recipes or this notion of, like, even kind of taking our dumb form fields and wrapping them in in, you know, whatever React hook forms, whatever, delivering They're 2 separate layers.
Guest 2
That's that's like it's beautiful because it just, like, gets into just systems in kind of in the abstract, but with, like, a lot of web component layer,
Scott Tolinski
Brad, we'll have to have you on again, man. This has been incredible. Yeah. Yeah. It's super super amazing. I love talking with you guys, and and, yeah, I love talking. Yeah. Sweet. Well, thanks so much for coming on. We'll catch you later.
Guest 2
but different in other ways, especially this kind of like as a little this stuff. It it really
Wes Bos
Man, we I don't even think we got, like, 30% of the way through my notes here. And Scott and I don't even have a lot of notes before people come on, so that's that's saying something. And I said I wasn't gonna ask anything, and then I ended up asking a lot. So I just couldn't help myself. I wanted to ask about how you blogged so much, but I I don't think we have time. We'll have to have you back on
Guest 2
can benefit from component driven workflows.
Guest 2
so much room for error.
Guest 2
and on the code end specifically
Scott Tolinski
a design component and a a code component to these layers. But I think one of the the things that people hit is
Guest 2
might be what what my musical tastes are Yeah. That's the best way to do that. Oh, cool.
Guest 2
that that that like, design systems are ultimately concerns. Right? You're basically saying we do it like this, which means that we don't do it like these other ways. Right? And if you really like purple and the brand's color is blue, like, don't know what to tell you, boss.
Guest 2
So like the ergonomics are there for people used to working in certain frameworks. It also helps to sort of like normalize API stuff.
Guest 2
is that just hearing Wes of her talks and stuff at a at a conference where you're speaking at. It's like it's still, like, style queries and, like, oh, there's just, like, so much. But I'd say that that that was,
Scott Tolinski
our style guide was just being presented as here's our Angular and CSS code, and
Guest 2
Mull, other people, we're all gonna play music, and we're gonna fill up this venue in in Pittsburgh, this this old converted church, which is really, really cool.
Guest 2
sort of like front woman 2 trumpets component library that is sort of powering that. And a lot of times, like what we'll do is we'll actually kind of come in do we need to support so there's all these different sort of facets and assets you know, pull these things in as dependencies and then you're able to import them.
Guest 2
product, every app is architected differently, but of all of those basement level design system things. Right? definition of what this Starbucks screen JS. And then we can start mapping this JS like a little sort of mix and match kind of exercise where it's like, oh, okay.
Guest 2
Alternatively, is like the CSS that is like effectively just a handful of CSS custom properties. Right? That that is what's sort of flowing through Then our, you know, dashboard back end systems that don't need big combo things, right? So so there's that use case. There's dark, dark mode, light mode, and all of that stuff, which is its own thing. There's white labeling, which is Wes need to take our thing. And then we have a bunch of people buying our software and then they need to be able to sort of skin it as small things
Scott Tolinski
like, the established well, not necessarily, like, the component language, but, like Yeah. Those decisions that you've Node. How do you present that to the team and and keep it into a source of truth? Yeah. It's a good that's a good question.
Guest 2
So by actually the beauty of web components is that it literally bundles up But then the cool thing with this kind of like intermediary I and I could I could share this I could share this article with the designers and developers
Guest 2
so, you know, form controls for instance. Right? We could sort of mix and match. Right? Draw an arrow from that sort of tier one definition.
Guest 2
Yeah.
Guest 2
It makes me feel good. Like because we Yarn. We're, like, getting to a point. And, obviously, I'm, like, enthusiastic about, like, web components and stuff. Wes we're, like, getting to a point where, like, just native web technology.
Guest 2
Yeah. Yeah. The Scott of hitting up against those kind of rougher edges, but things have definitely like stabilized a Scott, characteristic of this because there's lots of other things
Guest 2
the font families, the the the type scale, all of that stuff. Everything that goes into, like, Wes aesthetic, like, look and feel. And then we pump the result of that designers and developers come to the design system to help them build new work, Right? They reach for the component.
Guest 2
And it's it it really kind of I think this is introduced mega bank corpse, into making a digital product work, as you know, So there's like a lot, there's like a lot of weird nuance whether that's what PHP includes or whatever sort of templating language or whatever. It's like that problem.
Scott Tolinski
Yeah. And I know we're short on time here, but I do wanna just a quick follow-up there.
Guest 2
in order to give them the specific, the border radius, Beautiful. Yeah. I'm bay I'm based in Pittsburgh, but, you know, Internet.
Guest 2
truly shared
Guest 2
avatar, increasingly is we'll kind of like move that into its own layer You could call that a design system. Again, like, you don't need to make something that's JS, like, full blown as material design. I don't think that any every organization needs something that sort of formal or grandiose or comprehensive.
Guest 2
55 100 words, I think, is is what it ended up being. But it's it's it's kind of especially on the code side, which is where I live, where it's just like, capabilities in the answer to that question, which JS, like, here a bunch React this kind of dumb definition, this, this interface agnostic no logic, no nothing.
Guest 2
many different implementations,
Wes Bos
How do how do you get, like, let's say you have a a Yarn, and that card has an avatar inside of it and a button and some text. How do you get that to look the same across
Guest 2
dozens, if not hundreds or thousands of apps around, you're linking up
Wes Bos
accessibly
Guest 2
that can exist in, like, a layer cake, format that we could talk about in a bit that that aren't truly sort of scalable to the whole work.
Guest 2
And I'm like, oh, wow. So so from a music perspective, we're like lay lay on your song requests and stuff like that, but it's like it's gonna be like a a party to end all parties. It's a concert to end all concerts. So Frostapalooza? Probably like giving shivers to some some people listening. But it's like yeah. These tools are getting closer together.
Scott Tolinski
Mhmm. You could just see exactly where the problem is going to be there, and it it was a tremendous nightmare. Most of it never ended up shipping because of that. Yeah. Do you think that these kind of problems are only the types of problems that people hit at a larger scale? Like,
Wes Bos
rendering out to standard HTML elements. So, like, there's there's no sweat if a React developer wants to put custom attributes or props or classes or anything
Guest 2
So so the the short answer is so much like a spec for developers to, like, build it out. What what this is that front of the front end code is still kind of relegated to a 2nd class citizen. Not a lot of people know how to do it properly.
Wes Bos
at some point. But we'll move into the the last section of the show here, which is our supper club questions.
Guest 2
It's a damn good question. And, yeah, like, we've we've
Scott Tolinski
I had a question about design tokens
Guest 2
Over the specific names of a prop and here's Totally. And like all of a sudden we're like asking them to sort of be like incredibly detailed and nuanced in the architecture We'll be over here working on making the accordion. Yeah. Right? Like, these are these are kind of 2 separate concerns.
Scott Tolinski
Ford, with their 90 different markets, all used a different back end, a different CMS, whatever they had.
Brad does design systems consulting focused on technical architecture and implementing component libraries
Wes Bos
Like, because I know
Guest 2
the the people, and the process, and the culture, and the organizational kind of stuff. And that's the that's the real fun and the real challenge of of doing design system stuff. Like, anybody can make a button. Right? Anybody listen to this. That's that's not the hard part about the site.
Guest 2
thing to, you know, sort of brand colors and stuff like that. So all to say that don't pertain to user interfaces. So, so I kind of Scott of narrow the focus to that.
Guest 2
piecing that together.
Guest 2
many, many, many different my my brother, who JS normally sitting next to me, which means that downstream product designers are able to sort of reach for these things,
Guest 2
things, sort of came up with this this methodology called atomic design, you know, Miriam, Suzanne, and and, like,
Guest 2
sort of feeds what like, that was the huge one. That whenever that sort which there's kind of pros and cons to all of that.
Wes Bos
and then we'll go into maybe some of the tech behind it.
Guest 2
that all ultimately many different blah.
Wes Bos
about design systems. So we'll talk about
Guest 2
And, I've been writing, blogging about the Wes, making websites are their own little worlds, and then you're able to plug them into any arbitrary page layout or grid system or whatever, and they'll just work. It's like, that's massive. I mean, like, that's that's absolutely huge. And, Critical.
Guest 2
and design system consultant with an agency called Big Medium, You're able to sort of like And it's sort of specifically Just, just strictly that and that concept alone.
Guest 2
Yeah. No. That's it. That's a great place to start because that's kind of the $1,000,000 question. And, you know, if you were to ask a bunch of people who work in our world to define what a design system is, you're gonna get a lot of different answers.
Guest 2
you know, something that's more conducive for small screens, large screens, and everything in between. But anyway so It's a bit of, like, the the parable of the blind men and the elephant, right, where So Pertaining to design systems, I think that container queries, it's it's you don't get much more, like, hand glove than that. Right? The the idea of, like, being able to create a bunch of components in the abstract people get lazy or junior developer kind of came in and create a new component. And it's like totally a mess from a language perspective. So a lot of the times what we do is help establish clear API definitions and a whole language around your component library.
Guest 2
bomb went off and where it was, like, okay. What do we do with this? And so that so I kinda started it's challenging because Master 3 to organizations who are historically used to owning literally
Wes Bos
that, like, a design system takes
Guest 2
design systems.
Wes Bos
both, like, holistically.
Wes Bos
a 20,000 developer organization? So, you wanna give us, like, a rundown of, like first of all, people listening might not even know what is the design system,
Guest 2
kinda maybe coming into prominence a little bit through the whole responsive era. I happen to be working at an agency, right, whenever It's this one of these things that is like, oh, that's a good idea Starbucks branded,
Guest 2
on a few different rodeos. I kinda started,
Guest 2
the the design systems that we're creating to the real products that those design systems are serving and sort of kind of setting up this kind of virtuous cycle between, And then kind of a reference website, some documentation that sort of brings it all together. Right? So something like material.
Guest 2
to a design system.
Guest 2
the sort of smartphone of musicians.
Wes Bos
both a lot of work, both in terms of planning and figuring out how to approach something, but also from, like, a technical implementation as well. Like, how do you how do you do that? How do you make a button look the same across
Wes Bos
Right on. Let let's take it that direction,
Guest 2
you know yeah. If your marketing website has big old heroes and chunky cards and newsletter sign up things. Well, guess what? Your design system needs to account for. Right? It needs to account for exactly those things. So yeah. So it's been, it's been a fun journey. And the, the fun part about doing It, whenever we introduce to our clients' organizations the HTML, you know, like, I think if it JS, like, the same way as, like, solar panels used to be. It's like, oh, yeah. Like, you're an environmentalist, and now it's just, like,
Guest 2
organizations is that we get to see is you could have, and how So design systems as a concept is and get And make that in web components.
Transcript
Wes Bos
Welcome to Syntax,
Scott Tolinski
you'll want to check out Sentry at century.i0forward/syntax.
Guest 2
My my my website being a the sort of presentation, the thing that the the users see, we kind of call that the, the front of the front end Node, right? HTML, I match that I get that's what a lot of teams are like comfortable with But now we're, like, wait a minute. Like, you're actually and Node, we need that header. We need that footer. We're going to have like the same kind of stuff on here. So, you know, historically, Yeah. This is this is where things get tricky. Because, like, whenever you deliver something that that that's that composed I don't wanna say universally understood as a good thing.
Guest 2
so, you know, it got into, oh, what do you do? And, oh, I'm a web designer and started talking about what they what they got into. And then they said, well, what do you do? And I said, oh, I'm a web designer too and started explaining a little bit more. And they because you're the guy with the orange website.
Wes Bos
literally everybody has probably stumbled upon your website at some point. If you just go to Brad's website,
Scott Tolinski
syntax. Again, we've been using this tool for a long time, and it totally rules. Alright.
Scott Tolinski
Hey. What's up? This is Scott from Syntax.
Wes Bos
I'm sure he doesn't like that last one. All kinds of stuff around building design systems and building stuff for the web. Welcome, Brad. Thanks for coming on. Yeah. Thank you so much for having me. This is awesome. And if you want to see all of the errors in your application,
Scott Tolinski
You don't want a production application out there that, well, you have no visibility into in case something is blowing up, and you might not even know it. So head on to reduce entry.ioforward/
Guest 2
brand palette that has around each one of these things. They're they're designed to be their own islands,
Wes Bos
thought leader.
Wes Bos
if people don't know who you are, give us a rundown of who you're who you are, where you're from, what you do, all that good stuff. Yeah.
Scott Tolinski
So please enjoy one of our favorite episodes.
Guest 2
Scott of a calling card is a is a point of pride. That one time I was at the the dog park kinda came up through the agency world, but, because it's like ability to digest
Wes Bos
the podcast with the tastiest web development trees out there. Today, we have a special guest on the podcast,
Guest 2
I was talking with somebody and and to plan you could the entire component library.
Wes Bos
mister Brad Frost.
Scott Tolinski
How did you develop that that brand palette? Is that, like,
Wes Bos
Brad is author of Atomic Design, design system consultant, web developer, CSS
Scott Tolinski
Now that we're on YouTube and approaching 800 episodes, we wanted to release some of the very best interviews that we've done on Syntax.
Brad developed his brand color palette based on his affinity for 1970s design
Wes Bos
What what do you put on this Brown website? What do I put on this problem? Yeah. So so I do
Wes Bos
Hi. I can see it now. Yeah. Well, besides having a Brown website, what what what else do you do?