{"id":350466,"date":"2021-09-13T12:21:00","date_gmt":"2021-09-13T19:21:00","guid":{"rendered":"https:\/\/css-tricks.com\/?p=350466"},"modified":"2021-09-14T12:21:51","modified_gmt":"2021-09-14T19:21:51","slug":"developers-designers-uxpin","status":"publish","type":"post","link":"https:\/\/css-tricks.com\/developers-designers-uxpin\/","title":{"rendered":"Developers and Designers Work on a Single Source of Truth With UXPin"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">There is a conversation that has been percolating for as long as I&#8217;ve been in the web design and development industry. It&#8217;s centered around the conflict between design tools and development tools. The final product of web design is often a mockup. The old joke was that web developers make websites and web designers make <em>paintings<\/em> of websites. That disconnect is a source of immense friction. Which is the source of truth?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What if there really could be a single source of truth. What if the design tool works on the same exact code as the production website? The latest chapter in this epic conversation is <a href=\"https:\/\/www.uxpin.com\/?utm_source=csstricks&amp;utm_medium=partner&amp;utm_campaign=csstricks21merge\" rel=\"sponsored nofollow noopener\">UXPin<\/a>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s set up the facts so you can see this all play out. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-uxpin-is-an-in-browser-code-based-design-tool\">UXPin is an in-browser &amp; code-based design tool. <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">UXPin is a powerful design tool with all the features you&#8217;d expect, particularly focused on digital screen-based design and advanced prototyping.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"2582\" height=\"1824\" src=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-11.38.49-AM.png?resize=2582%2C1824&#038;ssl=1\" alt=\"\" class=\"wp-image-350473\" srcset=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-11.38.49-AM.png?w=2582&amp;ssl=1 2582w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-11.38.49-AM.png?resize=300%2C212&amp;ssl=1 300w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-11.38.49-AM.png?resize=1024%2C723&amp;ssl=1 1024w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-11.38.49-AM.png?resize=768%2C543&amp;ssl=1 768w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-11.38.49-AM.png?resize=1536%2C1085&amp;ssl=1 1536w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-11.38.49-AM.png?resize=2048%2C1447&amp;ssl=1 2048w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-11.38.49-AM.png?resize=1000%2C706&amp;ssl=1 1000w\" sizes=\"auto, (min-width: 735px) 864px, 96vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The fact that it is code-based is extra great here. Designing websites with all the visual components actually rooted in code brings the design much closer to the real end-product. What you design <em>won\u2019t only look<\/em> like a website or app but also <em>work like it<\/em>. For example, an input field is not a static box with an outline, but&nbsp;it\u2019ll give you the real experience of filling it with text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Code-based design already provides all the specs for each element \u2013 like with this card component; exact colors (in the right formats), as well as the exact pixel dimensions, etc. In some cases \u2013&nbsp;even the exact right code of the UI component for your dev can be pulled.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"2484\" height=\"2242\" src=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-1.53.51-PM.png?resize=2484%2C2242&#038;ssl=1\" alt=\"\" class=\"wp-image-350514\" srcset=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-1.53.51-PM.png?w=2484&amp;ssl=1 2484w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-1.53.51-PM.png?resize=300%2C271&amp;ssl=1 300w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-1.53.51-PM.png?resize=1024%2C924&amp;ssl=1 1024w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-1.53.51-PM.png?resize=768%2C693&amp;ssl=1 768w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-1.53.51-PM.png?resize=1536%2C1386&amp;ssl=1 1536w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-1.53.51-PM.png?resize=2048%2C1848&amp;ssl=1 2048w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/Screen-Shot-2021-08-23-at-1.53.51-PM.png?resize=1000%2C903&amp;ssl=1 1000w\" sizes=\"auto, (min-width: 735px) 864px, 96vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This is laid out nicely by Ania Kub\u00f3w <a href=\"https:\/\/srv.buysellads.com\/ads\/long\/x\/TCZFKKD3TTTTTTTAZVSC4TTTTTTZGFJUK6TTTTTTADKDTYVTTTTTTJQUG3VDKAP4VHVHPRIUZ3Y667S2V73W5APYZHVE\" rel=\"sponsored nofollow noopener\">in a video about UXPin<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Over a decade ago, Jason Santa Maria thought a lot about what a next-gen design tool would look like. Could we just use the browser directly?<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow\"><p>I don\u2019t think the browser is enough. A web designer jumping into the browser before tackling the creative and messaging problems is akin to an architect hammering pieces of wood together and then measuring afterwards. The imaginative process is cut short by the tools at hand; and it\u2019s that imagination\u2014or spark\u2014at the beginning of a design that lays the path for everything that follows.<\/p><cite><em>Jason Santa Maria<\/em>, <a href=\"https:\/\/srv.buysellads.com\/ads\/long\/x\/TCZFKKD3TTTTTTTAZVSC4TTTTTTZJFJUK6TTTTTTADKDTYVTTTTTTJLF22IF4YJJ53LHW2IQV2H6WLBF57JIVALNF3QE\" rel=\"sponsored nofollow noopener\">&#8220;A Real Web Design Application&#8221;<\/a><\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Perhaps not the browser directly, but a code-based tool that makes UI work like your website or app could be the best of both worlds:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow\"><p>Webpages are living, dynamic spaces where the smallest interaction from a visitor can change the scope of an entire site. [&#8230;] Because we\u2019re not dealing with a static medium, we need to be able to design for interactions and the shifting landscapes of a webpage [&#8230;]<strong> an application needs to see elements rather than blocks of color or text. <\/strong>Photoshop, Illustrator, and Fireworks have some low-level functionality in this regard, but the need for more dynamic and non-destructive handling is clear.<\/p><p><\/p><\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-you-can-work-on-your-own-react-components-in-uxpin\">You can work on <em>your own<\/em> React components in UXPin.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is where the <strong>single source of truth<\/strong> magic can happen. It&#8217;s one thing if a design tool can output a React (or any other framework) component. That&#8217;s a neat trick. But it&#8217;s likely to be a one-way trip. Components in real-world projects are full of other things that aren&#8217;t entirely the domain of design. Perhaps a component uses a hook to return the current user&#8217;s permissions and disable a button if they don&#8217;t have access. The disabled button has an element of design to it, but most of that code does not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s impractical to have a design tool that can\u2019t respect other code in that component and essentially just leave it alone. Essentially, the design tool is not that useful if it exports components as code but doesn&#8217;t allow designers to import those UI components in the first place.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is where <a href=\"https:\/\/www.uxpin.com\/merge?utm_source=csstricks&amp;utm_medium=partner&amp;utm_campaign=csstricks21merge\" rel=\"sponsored nofollow noopener\">UXPin Merge<\/a> comes in.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, fair is fair, this is going to take a little work to set up. Might just be a couple of hours, or it might take a few weeks for a complete design system. UXPin, for now, only works with React and uses a webpack configuration to integrate it.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/css-tricks.com\/wp-content\/uploads\/2021\/08\/merge_ci.mp4\" playsinline><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Once you&#8217;ve gotten in going, <strong>the components you use in UXPin are very literally the components you use to build your production website. <\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"600\" src=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/1_m77p1sCppxM3GFynh2cazg.png?resize=1200%2C600&#038;ssl=1\" alt=\"\" class=\"wp-image-350519\" srcset=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/1_m77p1sCppxM3GFynh2cazg.png?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/1_m77p1sCppxM3GFynh2cazg.png?resize=300%2C150&amp;ssl=1 300w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/1_m77p1sCppxM3GFynh2cazg.png?resize=1024%2C512&amp;ssl=1 1024w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/1_m77p1sCppxM3GFynh2cazg.png?resize=768%2C384&amp;ssl=1 768w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/1_m77p1sCppxM3GFynh2cazg.png?resize=1000%2C500&amp;ssl=1 1000w\" sizes=\"auto, (min-width: 735px) 864px, 96vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s pretty impressive really, to see a design tool digest pre-built components and allow them to be used on an entirely new canvas for prototyping.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/1_mNnnM_yvQy9C5cxa4zvfLQ.gif?resize=1920%2C1080&#038;ssl=1\" alt=\"\" class=\"wp-image-350523\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">UXPin helps&nbsp;you with implementing this in your project, including:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Documentation on <a href=\"https:\/\/www.uxpin.com\/docs\/merge\/integrating-your-own-components\/?utm_source=csstricks&amp;utm_medium=partner&amp;utm_campaign=csstricks21merge\" rel=\"sponsored nofollow noopener\">Integrating Your Own Components<\/a><\/li><li>Example repo: <a href=\"https:\/\/srv.buysellads.com\/ads\/long\/x\/TCZFKKD3TTTTTTTAZVSC4TTTTTTZUFJUK6TTTTTTADKDTYVTTTTTTYLKF3A6NOLW2HSFVSSUV7CWCA3MQ3IC5RLVC74T\" rel=\"sponsored nofollow noopener\">uxpin-merge-boilerplate<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-as-it-should-it-s-likely-to-influence-how-you-build-components\">As it should, it&#8217;s likely to influence how you build components. <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Components tend to have props, and props control things like design and content inside. UXPin gives you a UI for the props, meaning you have total control over the component.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre rel=\"JSX\" class=\"wp-block-csstricks-code-block language-jsx\" data-line=\"\"><code markup=\"tt\">&lt;LineChart \n  barColor=\"green\"\n  height=\"200\"\n  width=\"500\"\n  showXAxis=\"false\"\n  showYAxis=\"true\"\n  data={[ ... ]}\n\/><\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1404\" height=\"854\" src=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/unnamed.png?resize=1404%2C854&#038;ssl=1\" alt=\"\" class=\"wp-image-350975\" srcset=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/unnamed.png?w=1404&amp;ssl=1 1404w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/unnamed.png?resize=300%2C182&amp;ssl=1 300w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/unnamed.png?resize=1024%2C623&amp;ssl=1 1024w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/unnamed.png?resize=768%2C467&amp;ssl=1 768w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/unnamed.png?resize=1000%2C608&amp;ssl=1 1000w\" sizes=\"auto, (min-width: 735px) 864px, 96vw\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Knowing that, you might give yourself a prop interface for your components that provides you with lots of design control. For example, integrating <a href=\"https:\/\/www.uxpin.com\/studio\/blog\/theme-switching-merge\/?utm_source=csstricks&amp;utm_medium=partner&amp;utm_campaign=csstricks21merge\" rel=\"sponsored nofollow noopener\">theme switching<\/a>. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"351\" src=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/08\/MergeTutorial_01.gif?resize=700%2C351&#038;ssl=1\" alt=\"\" class=\"wp-image-350528\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"this-is-all-even-faster-with-storybook\">This is all even faster with Storybook.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Another awfully popular tool in JavaScript-components-land to test and build your components is Storybook. It&#8217;s not a design tool like UXPin\u2014it&#8217;s more like a zoo for your components. You might already have it set up, or you might find value in using Storybook as well. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The great news? UXPin Merge <a href=\"https:\/\/www.uxpin.com\/merge\/storybook-integration?utm_source=csstricks&amp;utm_medium=partner&amp;utm_campaign=csstricks21merge\" rel=\"sponsored nofollow noopener\">works together awesomely with Storybook<\/a>. It makes integration super quick and easy. Plus then it supports any framework, like Angular, Svelte, Vue, etc\u2014in addition to React. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Look how fast:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/css-tricks.com\/wp-content\/uploads\/2021\/08\/NEW_UXPin_Storybook_integration_1920x1080.mp4\"><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">UXPin CEO Marcin Treder <a href=\"https:\/\/srv.buysellads.com\/ads\/long\/x\/TCZFKKD3TTTTTTTAZVSC4TTTTTTZRFJUK6TTTTTTADKDTYVTTTTTTMS2K6BMENLFV7JCPA4NP3NUESSFCH7ICLI3Q2R\" rel=\"sponsored nofollow noopener\">had a strong vision<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow\"><p>What if designers could use the very same components used by engineers and they\u2019re all stored in a shared design system (with accurate documentation and tests)? Many of the frustrating and expensive misunderstandings between designers and engineers would stop happening.<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">And a plan:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Connect to Git repo or Storybook library.<\/li><li>Import components from there to UXPin design tool.<\/li><li>All the changes in the repo will be synced automatically in UXPin Watch for any changes to the repo and sync those changes in the visual editor.<\/li><li>Let designers design and deliver accurate specs and fully functional design to developers.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">And that&#8217;s what they&#8217;ve pulled off here.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.uxpin.com\/merge?utm_source=csstricks&amp;utm_medium=partner&amp;utm_campaign=csstricks21merge\" rel=\"noopener\">Try UXPin Merge<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>There is a conversation that has been percolating for as long as I&#8217;ve been in the web design and development [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":351221,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"inline_featured_image":false,"c2c_always_allow_admin_comments":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,508],"tags":[844,692,1005,18973],"class_list":["post-350466","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","category-sponsored","tag-components","tag-design","tag-pattern-libraries","tag-uxpin"],"acf":{"show_toc":"No"},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/09\/Merge-a%C2%80%C2%93-article.png?fit=1200%2C600&ssl=1","jetpack-related-posts":[{"id":269125,"url":"https:\/\/css-tricks.com\/a-devtools-for-designers\/","url_meta":{"origin":350466,"position":0},"title":"A DevTools for Designers","author":"Chris Coyier","date":"March 31, 2018","format":false,"excerpt":"There has long been an unfortunate disconnect between visual design for the web and web design and development. We're over here designing pictures of websites, not websites - so the sentiment goes. A.J. Kandy puts a point on all this. We're seeing a proliferation of design tools these days, all\u2026","rel":"","context":"In &quot;Links&quot;","block_context":{"text":"Links","link":"https:\/\/css-tricks.com\/category\/links\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/03\/devtoolsfordesigners.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/03\/devtoolsfordesigners.png?fit=1200%2C600&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/03\/devtoolsfordesigners.png?fit=1200%2C600&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/03\/devtoolsfordesigners.png?fit=1200%2C600&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/03\/devtoolsfordesigners.png?fit=1200%2C600&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":254245,"url":"https:\/\/css-tricks.com\/react-sketch-app\/","url_meta":{"origin":350466,"position":1},"title":"React Sketch.app","author":"Chris Coyier","date":"April 26, 2017","format":false,"excerpt":"The \"normal\" workflow I'm sure we've all lived is that design happens, then coding happens. A healthy workflow has back-and-forth between everyone involved in a project, including designers and developers, but still: The code is the final product. You design your way to code, you don't code your way to\u2026","rel":"","context":"In &quot;Links&quot;","block_context":{"text":"Links","link":"https:\/\/css-tricks.com\/category\/links\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":284244,"url":"https:\/\/css-tricks.com\/using-devtools-to-improve-the-ux-design-to-development-process\/","url_meta":{"origin":350466,"position":2},"title":"Using DevTools to Improve the UX Design to Development Process","author":"Lisa Tweedie","date":"June 7, 2019","format":false,"excerpt":"I\u2019d like to tell you how I see code and design intersect and support one another. Specifically, I want to cover how designers can use code in their everyday work. I suggest this not because it\u2019s a required skill, but because even a baseline understanding of coding can make designs\u2026","rel":"","context":"In &quot;Articles&quot;","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/11\/devtools-paintbrush.jpg?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/11\/devtools-paintbrush.jpg?fit=1200%2C600&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/11\/devtools-paintbrush.jpg?fit=1200%2C600&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/11\/devtools-paintbrush.jpg?fit=1200%2C600&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/11\/devtools-paintbrush.jpg?fit=1200%2C600&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":281897,"url":"https:\/\/css-tricks.com\/designing-for-the-web-ought-to-mean-making-html-and-css\/","url_meta":{"origin":350466,"position":3},"title":"Designing for the web ought to mean making HTML and CSS","author":"Robin Rendle","date":"January 29, 2019","format":false,"excerpt":"David Heinemeier Hansson has written an interesting post about the current state of web design and how designers ought to be able to still work on the code side of things: We build using server-side rendering, Turbolinks, and Stimulus. All tools that are approachable and realistic for designers to adopt,\u2026","rel":"","context":"In &quot;Links&quot;","block_context":{"text":"Links","link":"https:\/\/css-tricks.com\/category\/links\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/01\/600500C8-FC78-43B4-8BA7-ACE97024613C-scaled.jpeg?fit=1200%2C617&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/01\/600500C8-FC78-43B4-8BA7-ACE97024613C-scaled.jpeg?fit=1200%2C617&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/01\/600500C8-FC78-43B4-8BA7-ACE97024613C-scaled.jpeg?fit=1200%2C617&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/01\/600500C8-FC78-43B4-8BA7-ACE97024613C-scaled.jpeg?fit=1200%2C617&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/01\/600500C8-FC78-43B4-8BA7-ACE97024613C-scaled.jpeg?fit=1200%2C617&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":351586,"url":"https:\/\/css-tricks.com\/static-site-generators-vs-cms-powered-websites-how-to-keep-marketers-and-devs-happy\/","url_meta":{"origin":350466,"position":4},"title":"Static Site Generators vs. CMS-powered Websites: How to Keep Marketers and Devs Happy","author":"Philip Kiely","date":"September 16, 2021","format":false,"excerpt":"Many developers love working with static site generators like Gatsby and Hugo. These powerful yet flexible systems help create beautiful websites using familiar tools like Markdown and React. Nearly every popular modern programming language has at least one actively developed, fully-featured static site generator. Static site generators boast a number\u2026","rel":"","context":"In &quot;Sponsored&quot;","block_context":{"text":"Sponsored","link":"https:\/\/css-tricks.com\/category\/sponsored\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/09\/Developer-Header.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/09\/Developer-Header.png?fit=1200%2C600&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/09\/Developer-Header.png?fit=1200%2C600&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/09\/Developer-Header.png?fit=1200%2C600&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/09\/Developer-Header.png?fit=1200%2C600&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":245011,"url":"https:\/\/css-tricks.com\/right-time-think-web-performance\/","url_meta":{"origin":350466,"position":5},"title":"When is the Right Time to Think about Web Performance?","author":"Robin Rendle","date":"August 31, 2016","format":false,"excerpt":"Web performance is vital, but lately I\u2019ve felt that the topic has only been brought up by front-end developers, and only becomes a point of discussion at the end of a project. Subsequently, whenever I hear about solutions to trim down large websites, I can\u2019t help but feel that these\u2026","rel":"","context":"In &quot;Articles&quot;","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/350466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/comments?post=350466"}],"version-history":[{"count":10,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/350466\/revisions"}],"predecessor-version":[{"id":351856,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/350466\/revisions\/351856"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media\/351221"}],"wp:attachment":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media?parent=350466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/categories?post=350466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/tags?post=350466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}