Great. Then I'm super happy to tell you about it. So Open Props is a set of subatomic design tokens, essentially CSS custom properties, CSS variables that you get to use in your project, in your code. Side note, there's an excellent video here by Adam Argyle and Jason Langstorf, a tutorial, one and a half hour session that kind of takes you through the ropes. Really, really good. But the building blocks of this are these atomic units, right? So I have these properties, these custom properties, and I have colors, I have gradients. All of these were already fine-tuned to work really well together with each other. Light theme, dark theme, all of that goodness, including some things that you might not usually find in a design system, like easing functions, like all sort of complex borders, and you don't have to use all of it. You can find the pieces that you like, and only adopt those parts.
Moving back. So if Open Props was our alphabet, so to speak, what happens if we're trying to think bigger? Well, we can go further and adopt a vocabulary. Let's think in words, let's think in larger design tokens, so to speak. So Tailwind CSS I'm sure needs no introduction to this audience. But let's think about what we actually can see. One thing I remember, sorry, and that's for the Open Props, if you're using it, it's really important to have both sides of that discussion, the designer and the development, both being reflected, so that if, for example, you have something like this being developed, being worked on, this is Codex running in the background and showing us this example, then I can very easily just select the node that I want, find, let's say, the colour property, the designer can come and look and say, oh, this feels wrong, this looks wrong, perhaps a lighter colour, a higher contrast.
With Tailwind, you're doing a similar thing, but this time instead of using these subatomic units, you're using atomic design tokens, right? So each Tailwind class would have a number of different properties that you're seeing within it and that you can play around with. So once more, if you give access to your designer earlier on, then they can take a look at this component and say, you know what, this part right here, I'm not so sure about, something about the contrast, something about the look and feel, and they can start playing around with it, and they have the Tailwind documentation, sites and examples, all of those, so they can say, OK, maybe that sort of shade, no, that's probably too dark, let's try something in the middle, yep, and they'd reach the result. And the idea is to let them figure that out. You don't want to be the person who's shoving pixels around on the screen just to move a button five pixels left, five pixels right, and have that process happen over and over again. So bring them in, bring them closer, let them do some of that for themselves. So if we've adopted a vocabulary, now we can think even bigger. Perhaps entire sentences. That would probably be something like a component library, a design system, fully baked, ready-made, things like React Spectrum, Mui, Chakra, but in this case, let's talk about Fluent, a design system by Microsoft. You can see that from the get-go, right, from the very first moment, they are talking to you and to designers at the same time. They're making sure that both ends of that process have tools that they can use. So if, for example, we'll jump into this Figma file, and we'll zoom in just a little bit so you can see this nice message component over here, then we can, the designer already has these building blocks, right? They can take them, they can play around with them, and compose them as they like. And then when you get to the code, they are no longer surprised. They know what they're expecting to see. Now, the keen-eyed amongst you might have noticed that the version that we see here in the code and the version that we see here in Figma are not exactly identical, and that's that gap that I mentioned earlier, right? There's always going to be some gap there if the design tools are not native themselves.
Comments