Design principles:<p>— Don't reinvent the building blocks of UI. It's mostly a designer problem than a dev problem but I often see folks reinventing navigation, buttons, or forms when the standard pattern would work fine. There is a high UX cost to breaking existing patterns.<p>— Think in flows, not screens. Gather the context for the starting point, the objective of your feature and create the path between them. I like using the job to be done framework for this<p>— Speaking of frameworks and tools, simple is almost always the best. Don't buy into a complex process designers came up to legitimate their job. Find out what to build and how to build it. Use reference, user interviews, data analysis, existing patterns and you'll be more than fine<p>Large components:<p>— Look into design systems, it's a whole topic. My advice for 90% of software companies is to have a small but robust design system with the basics well documented (typography, spacing, colors, basics UI components). Then jam with it depending on your needs. Extensive design systems require a dedicated designer and dev to maintain. More often than not, they end up as pure chaos without them.<p>Resources:<p>I have a ton, I put them all in a Notion list, feel free to check <a href="https://impasto.notion.site/Adrien-s-list" rel="nofollow">https://impasto.notion.site/Adrien-s-list</a>