<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Keno Reloaded Ⓥ</title>
    <description>The latest articles on DEV Community by Keno Reloaded Ⓥ (@keno_reloaded).</description>
    <link>https://dev.to/keno_reloaded</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F519339%2F6f3049d5-1039-47ca-b96f-9264d0fb5b2c.jpg</url>
      <title>DEV Community: Keno Reloaded Ⓥ</title>
      <link>https://dev.to/keno_reloaded</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keno_reloaded"/>
    <language>en</language>
    <item>
      <title>Vibe-design And Vibe-coding Best Practices</title>
      <dc:creator>Keno Reloaded Ⓥ</dc:creator>
      <pubDate>Wed, 23 Apr 2025 16:57:26 +0000</pubDate>
      <link>https://dev.to/keno_reloaded/vibe-designing-and-vibe-coding-best-practices-398k</link>
      <guid>https://dev.to/keno_reloaded/vibe-designing-and-vibe-coding-best-practices-398k</guid>
      <description>&lt;h2&gt;
  
  
  Best Practices for Prototyping and Prompting
&lt;/h2&gt;

&lt;p&gt;Listen to the podcast version of this article:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://portfolioexpress.netlify.app/audio/AI-Prompting-for-Design_Best-Practices.wav" rel="noopener noreferrer"&gt;AI-Prompting for Design Best Practices&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using v0
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Use AMBOSS Design System v0 Starter
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://amboss-registry.vercel.app/starters" rel="noopener noreferrer"&gt;v0 &amp;lt;&amp;gt; AMBOSS Design System starter&lt;/a&gt; &lt;a href="https://amboss-registry.vercel.app/starters" rel="noopener noreferrer"&gt;https://amboss-registry.vercel.app/starters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Select a starter and click “Open in v0”&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Prompting Fundamentals
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;High-Level Prompting Structure (Starting point)&lt;/strong&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  TL;DR Prompting Checklist
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Context:&lt;/strong&gt; Set the scene&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Task:&lt;/strong&gt; Say what you want&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instructions:&lt;/strong&gt; Add constraints, tools, logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Examples:&lt;/strong&gt; Optional, but improves results&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output Format:&lt;/strong&gt; Say how you want it back&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Context&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Why does this matter? What is the background or goal?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Give the AI enough info to understand the bigger picture. This helps tailor the tone, complexity, or domain-specific terms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"I'm building a budgeting app focused on Gen Z users who love TikTok-like UI."&lt;/p&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;Task / Objective&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;What do you want the AI to do, specifically?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Be precise. Is it generating code? Naming ideas? Reviewing UX? Answering a legal question?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"Generate a component in React to display upcoming subscription renewals."&lt;/p&gt;




&lt;h3&gt;
  
  
  3. &lt;strong&gt;Instructions / Constraints&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;What are the rules, preferences, or specific features to include or avoid?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Add details here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Required fields, logic, UX behavior&lt;/li&gt;
&lt;li&gt;Tech stack&lt;/li&gt;
&lt;li&gt;APIs or services&lt;/li&gt;
&lt;li&gt;Libraries to use or avoid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"Use TailwindCSS. Pull brand icons via Clearbit. Include a dark mode toggle."&lt;/p&gt;




&lt;h3&gt;
  
  
  4. &lt;strong&gt;Examples (Optional but Powerful)&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Show a sample input/output if possible on what’s the expected answer and which one not.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This anchors the AI’s response style and format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ "Spotify — $9.99 / month — Renews May 1"&lt;/p&gt;

&lt;p&gt;❌ &lt;code&gt;"Spotify $9.99"&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  5. &lt;strong&gt;Output Format&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;How should the response be structured?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This ensures clean results for the prompter. Specify formats like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Markdown&lt;/li&gt;
&lt;li&gt;Code block only&lt;/li&gt;
&lt;li&gt;JSON&lt;/li&gt;
&lt;li&gt;Bullet points&lt;/li&gt;
&lt;li&gt;CSV&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"Output a CSV file with the user data only."&lt;/p&gt;




&lt;h3&gt;
  
  
  Bonus: Naming Conventions Used in Prompting
&lt;/h3&gt;

&lt;p&gt;You might see these labeled differently depending on the tool or framework, but they map to the same principles:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Common Label&lt;/th&gt;
&lt;th&gt;Maps to...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Context&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Context or Background&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Problem&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Task or Objective&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Instructions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Instructions / Constraints&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Examples&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Demos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Output Format&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Output / Expected Result&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;💡 If you don’t know where or how to start, ask Chat GPT to create a prompt for you dedicated for the tool you are prompting. In this case is still good to give the AI context. You can also copy and paste the TL;DR above and prompt AI to complete it based on what you need.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prompt Refinement
&lt;/h3&gt;

&lt;p&gt;Iterate your prompt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add follow up questions or rephrase the task. The more context the better.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;As Albert Einstein once said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Insanity is doing the same thing over and over again and expecting different results.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;If you are not getting the results you want, try different things, here are some ideas:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask questions from a different angles, try to explain the problem, don’t give the solution unless you want something to be solved exactly as you want using a specific method, tool or approach.&lt;/li&gt;
&lt;li&gt;Clarify vague language. Instead of saying “please update the image on the thing that switches on and off” say “Please replace the dark mode icon in the &lt;code&gt;&amp;lt;ToggleTheme /&amp;gt;&lt;/code&gt; component to a moon &lt;code&gt;&amp;lt;svg&amp;gt;&lt;/code&gt; icon from &lt;a href="https://feathericons.com/" rel="noopener noreferrer"&gt;https://feathericons.com/&lt;/a&gt;”&lt;/li&gt;
&lt;li&gt;Start a new chat, copy and paste where you left of in the previous prompt.&lt;/li&gt;
&lt;li&gt;Change to another AI model, ChatGPT, Claude, Gemini&lt;/li&gt;
&lt;li&gt;Provide more detailed context or examples.&lt;/li&gt;
&lt;li&gt;Add screenshots, files, copy and paste context information.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Expert Prompting Tips &amp;amp; Tricks
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Speak the Language of the AI Prototyping tools:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use the &lt;strong&gt;exact component and file names&lt;/strong&gt; used in your project (e.g., &lt;code&gt;home-page.tsx&lt;/code&gt;) to limit the context&lt;/li&gt;
&lt;li&gt;Wrap your text in &lt;strong&gt;single backticks&lt;/strong&gt; (&lt;code&gt;) to refer to short code snippets or file names: (e.g.,&lt;/code&gt;header.tsx`)&lt;/li&gt;
&lt;li&gt;Wrap your text in &lt;strong&gt;triple backticks&lt;/strong&gt; (&lt;code&gt;&lt;/code&gt;`) to include multi-line code.&lt;/li&gt;
&lt;li&gt;Use consistent naming conventions and follow the generated code convention to refer to these (camelCase, PascalCase, kebab-case, etc.)

&lt;ul&gt;
&lt;li&gt;camelCase: &lt;code&gt;subscriptionCard.tsx&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PascalCase: &lt;code&gt;CardWrapper.tsx&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;kebab-case: &lt;code&gt;home-page.tsx&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Use quotes and &lt;a href="https://www.markdownguide.org/cheat-sheet/" rel="noopener noreferrer"&gt;markdown&lt;/a&gt; headers to emphasize hierarchy or sections.

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.markdownguide.org/cheat-sheet/" rel="noopener noreferrer"&gt;Markdown cheat sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Use Visual and Structural Context
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Upload &lt;strong&gt;screenshots of your UI&lt;/strong&gt; for feedback.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;⇧ + ⌘ + ⌃ + 4&lt;/strong&gt; in Mac will create a virtual screenshot and automatically copy it to the clipboard and then you can paste it into the prompt&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Include &lt;strong&gt;sketches, drafts, folder structures&lt;/strong&gt;, or diagrams.&lt;/li&gt;

&lt;li&gt;Screenshot your &lt;strong&gt;component tree&lt;/strong&gt; and including the &lt;strong&gt;file extensions&lt;/strong&gt; in your prompt to help AI understand your architecture.&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prompt Formatting Best Practices
&lt;/h3&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;markdown&lt;/p&gt;

&lt;h1&gt;
  
  
  Feature: Dark Mode Toggle
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Context
&lt;/h2&gt;

&lt;p&gt;We want to offer users the ability to toggle dark/light themes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instructions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add a button in the navbar&lt;/li&gt;
&lt;li&gt;Store the preference in local storage&lt;/li&gt;
&lt;li&gt;Use Tailwind for styling
&lt;code&gt;&lt;/code&gt;`&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💡 Pro Tips
&lt;/h3&gt;

&lt;p&gt;🏥&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The more you tell your doctor the better the diagnosis&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always refer to existing components or files by their &lt;strong&gt;exact name&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use markdown to show hierarchy and structure.

&lt;ul&gt;
&lt;li&gt;For example &lt;code&gt;# Heading&lt;/code&gt; gets rendered as an &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; and what this means for the AI prompt is that &lt;code&gt;# Heading&lt;/code&gt; is an important title of a section and helps AI understand the emphasis, hierarchy and context sections&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Separate content blocks with dividers or headers.

&lt;ul&gt;
&lt;li&gt;Use “—-” 3 dashes or more to let AI know when you are starting a new line or a different context, for example when you paste information, and then you want to add your instructions, separate them. (in markdown this renders as an &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; horizontal rule (divider)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Provide file paths to refer to your project structure helps AI understand more context and this will get you better results.&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;markdown&lt;/p&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;/Projects/design-system/&lt;br&gt;
    ├── main.js&lt;br&gt;
    ├── utils/&lt;br&gt;
    │   └── helpers.js&lt;br&gt;
    └── assets/&lt;br&gt;
        └── icon.png&lt;br&gt;
    &lt;code&gt;&lt;/code&gt;`&lt;/p&gt;

&lt;h3&gt;
  
  
  Expert prototyping Tips
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Upload a &lt;strong&gt;wireframe screenshot&lt;/strong&gt; or high-definitions prototype screenshots (for example from Dribbble or your own designs).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add screenshots and images to your prompt describing what you want from those images and reference them.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
👉&lt;/p&gt;

&lt;p&gt;The first image called “460x0w (1).png” is the home page UI of my app, and the second image is the user profile.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qo0l6kq5lhtw3hb3pi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qo0l6kq5lhtw3hb3pi.png" alt="Image attachments" width="429" height="77"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;/aside&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Paste the &lt;strong&gt;existing folder/file structure&lt;/strong&gt; to reference locations of files and folders for AI reference.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2uz5a23uzj6792mygg84.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2uz5a23uzj6792mygg84.png" alt="Screenshot of file structure" width="200" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Refer to specific section IDs or file names. Use back ticks to write single line code, and triple back tick to write code blocks (multi-line code).&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;


👉

*can you separate the main `page.tsx` into different components? otherwise the page has too many lines of code*



&lt;p&gt;For example:&lt;/p&gt;


👉

*In the tab component `` add a new tab called “insights”*




👉

*In the `` with the id of `id="test"` add another `` component to display the user information.*



&lt;p&gt;When referencing code is good practice to write the name of the file as a comment in this case &lt;code&gt;index.tsx&lt;/code&gt; so AI knows exactly where this piece of code belongs, and the answer will be more accurate in the future too.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;em&gt;Please replace &lt;code&gt;margin&lt;/code&gt; with &lt;code&gt;padding&lt;/code&gt; in this code:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;br&gt;
    // index.tsx&lt;br&gt;
    import { Global, css } from "@emotion/react";&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const GlobalStyles = () =&amp;gt; (
  &amp;lt;Global
    styles={css`
      .docblock-source {
        margin: 0;
      }
    `}
  /&amp;gt;
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;/p&gt;

&lt;h2&gt;
  
  
  Packages and Libraries
&lt;/h2&gt;

&lt;p&gt;When we refer to “packages” and/or “libraries” these are pieces of code that were created to tackle specific but commonly encountered problems or challenges.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/" rel="noopener noreferrer"&gt;https://www.npmjs.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NPM JS is “Node Package Manager” and “JS” for Javascript&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for V0 or other prototyping tools
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prompt Template
&lt;/h3&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;markdown&lt;/p&gt;

&lt;h2&gt;
  
  
  Task
&lt;/h2&gt;

&lt;p&gt;Build a Subscription Tracker Web App using Next.js. The app helps users manage their recurring payments efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context
&lt;/h2&gt;

&lt;p&gt;Focus on delivering a fast, lightweight, and visually appealing UI that allows users to easily track subscriptions at a glance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features &amp;amp; Instructions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Add a Subscription
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fields:

&lt;ul&gt;
&lt;li&gt;Subscription name&lt;/li&gt;
&lt;li&gt;Price&lt;/li&gt;
&lt;li&gt;Currency (selectable)&lt;/li&gt;
&lt;li&gt;Renewal date (date picker)&lt;/li&gt;
&lt;li&gt;Brand icon (auto-fetch from public API)&lt;/li&gt;
&lt;li&gt;Website URL (display with button)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Calendar View
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Show upcoming renewal dates in a monthly and/or weekly layout.&lt;/li&gt;
&lt;li&gt;Suggested libraries: &lt;code&gt;react-calendar&lt;/code&gt;, &lt;code&gt;fullcalendar.js&lt;/code&gt;, or a lightweight alternative.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Orbit Visualization
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A dynamic visual orbit UI where each subscription is positioned based on its renewal date.&lt;/li&gt;
&lt;li&gt;Subscriptions closer to the current date appear closer to the center.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Additional Requirements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Multi-currency support using an API like &lt;code&gt;ExchangeRate-API&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Brand logo fetching from services like &lt;code&gt;Clearbit&lt;/code&gt;, &lt;code&gt;Logo API&lt;/code&gt;, or &lt;code&gt;SimpleIcons&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Dark mode toggle&lt;/li&gt;
&lt;li&gt;Store data using Firebase, Supabase, or Planetscale (depending on available support in V0)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Frontend: Next.js, TypeScript, TailwindCSS&lt;/li&gt;
&lt;li&gt;APIs: ExchangeRate-API, Clearbit or similar&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Output Format
&lt;/h2&gt;

&lt;p&gt;Provide component breakdowns and suggestions for folder structure in a Next.js app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Extras
&lt;/h2&gt;

&lt;p&gt;Use any open source popular packages or libraries to help you achieve the best user experience based on commonly used best practices&lt;br&gt;
&lt;code&gt;&lt;/code&gt;`&lt;/p&gt;

&lt;h2&gt;
  
  
  Commonly Used Open Source APIs for Prototyping
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Images &amp;amp; Assets
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;API&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;URL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Unsplash&lt;/td&gt;
&lt;td&gt;Free high-quality images for UI placeholders&lt;/td&gt;
&lt;td&gt;&lt;a href="https://unsplash.com/" rel="noopener noreferrer"&gt;unsplash.com&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lorem Picsum&lt;/td&gt;
&lt;td&gt;Placeholder images with URL manipulation&lt;/td&gt;
&lt;td&gt;&lt;a href="https://picsum.photos/" rel="noopener noreferrer"&gt;picsum.photos&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Fake User Data
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;API&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;URL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Random User Generator&lt;/td&gt;
&lt;td&gt;Create fake user profiles&lt;/td&gt;
&lt;td&gt;&lt;a href="https://randomuser.me/" rel="noopener noreferrer"&gt;randomuser.me&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Faker API&lt;/td&gt;
&lt;td&gt;Fake data like names, addresses, emails&lt;/td&gt;
&lt;td&gt;&lt;a href="https://fakerapi.it/" rel="noopener noreferrer"&gt;https://fakerapi.it/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Charts, Data &amp;amp; Misc
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;API&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;URL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Open Weather Map API&lt;/td&gt;
&lt;td&gt;Weather API&lt;/td&gt;
&lt;td&gt;&lt;a href="https://openweathermap.org/api" rel="noopener noreferrer"&gt;https://openweathermap.org/api&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ChartJS&lt;/td&gt;
&lt;td&gt;Charts&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.chartjs.org/" rel="noopener noreferrer"&gt;https://www.chartjs.org/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>vibecoding</category>
      <category>vibedesign</category>
      <category>ai</category>
      <category>promptengineering</category>
    </item>
    <item>
      <title>From Paper to Pixels: Navigating the Evolution of Web Design for Impactful Digital Products</title>
      <dc:creator>Keno Reloaded Ⓥ</dc:creator>
      <pubDate>Tue, 04 Jul 2023 08:09:17 +0000</pubDate>
      <link>https://dev.to/keno_reloaded/from-paper-to-pixels-navigating-the-evolution-of-web-design-for-impactful-digital-products-13nj</link>
      <guid>https://dev.to/keno_reloaded/from-paper-to-pixels-navigating-the-evolution-of-web-design-for-impactful-digital-products-13nj</guid>
      <description>&lt;h2&gt;
  
  
  Rethinking Web Design: Current Issues and Challenges
&lt;/h2&gt;

&lt;p&gt;In today’s digital landscape, discussions about the origins and evolution of design may not be as present as it once was. While we now have access to modern, digital visual design tools, it’s interesting to note that the core principles have remained largely unchanged since the early days of print. In the past ~5 years the way we design started shifting for good.&lt;/p&gt;

&lt;p&gt;Reflecting on the progress made, it’s worth pondering how far web design tools have genuinely advanced in recent years. It seems like each year we are introduced to a new tool that requires further learning. However, it’s worth noting that these new tools, despite their diversity, are increasingly aligned with the fundamental principles of web development. Their aim is to facilitate the translation of designs into intricate, interactive, and cohesive interfaces, keeping the same standards that have shaped the field.&lt;/p&gt;

&lt;h2&gt;
  
  
  Paper vs Box paradigms
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1m46z9tjzkjj2cbt19cg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1m46z9tjzkjj2cbt19cg.png" alt="Cartesian coordinate system vs CSS Box Model." width="700" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Page or paper paradigm
&lt;/h3&gt;

&lt;p&gt;Most of the tools we used to use in design, were built with the page paradigm in mind — they were based on pixels or vector images developed for print — but the internet doesn’t work this way. Working in an environment essentially different from the final medium may not be the best way to do things.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Photoshop is the most effective way to show your clients what their websites will never look like.&lt;/strong&gt;&lt;br&gt;
Stephen Hay, Creative Director at Rabobank, Author of Responsive Design Workflow&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Isn’t it the goal to create a medium-specific design output?&lt;/p&gt;

&lt;h3&gt;
  
  
  Thinking in paper
&lt;/h3&gt;

&lt;p&gt;Of course in the creative process, prototyping, and proof of concepts anything is valid.&lt;br&gt;&lt;br&gt;
Thinking in a more free-flowing way, open-ended, and starting on a blank sheet of a paper implies a less structured approach, where ideas and concepts are explored and expressed without strict boundaries.&lt;/p&gt;

&lt;p&gt;Thinking in “paper” may involve brainstorming, mind mapping, or engaging in creative and loose thinking.&lt;/p&gt;
&lt;h3&gt;
  
  
  Thinking in boxes
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Content:&lt;/strong&gt; It represents the actual content of the element, such as text, images, or other media.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Padding:&lt;/strong&gt; The padding is the space between the content and the border of the box. It provides a buffer area around the content.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Border:&lt;/strong&gt; The border surrounds the padding and content and separates them from neighboring elements. It can have a specific thickness, style, and color.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Margin:&lt;/strong&gt; The margin is the space between the border of the box and other elements in the layout. It creates a gap or separation between elements.&lt;/p&gt;

&lt;p&gt;By understanding and applying the CSS Box Model, web developers can effectively control the sizing, spacing, and positioning of elements on a webpage. Thinking in “boxes” means considering the dimensions and properties of these box-like elements and how they interact with one another.&lt;/p&gt;
&lt;h2&gt;
  
  
  Cross-functional collaboration
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2ehkh5lvshh2vyaj43b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2ehkh5lvshh2vyaj43b.png" alt="Design, Dev &amp;amp; Content cross-functional collaboration" width="700" height="401"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Achieving Seamless Integration of Design, Content, and Coding
&lt;/h3&gt;

&lt;p&gt;A common downside of a project life-cycle is working on design, content, and coding separately.&lt;/p&gt;

&lt;p&gt;Nowadays this is less and less the case, where a designer creates a design that content and developers have to adapt either to the software architecture or to the design and/or vice versa.&lt;/p&gt;

&lt;p&gt;The design, however, could be adjusted to our software foundation from the very beginning.&lt;/p&gt;

&lt;p&gt;We know that by asking people for their input early in the process, you help them feel invested in the outcome, and the final delivery of a quality product. This is one of the many aspects of why design, content, and development teams have evolved to become more cross-functional and collaborative.&lt;/p&gt;

&lt;p&gt;Many designers and developers are also individually becoming more cross-functional with designers learning the basics of &lt;strong&gt;HTML&lt;/strong&gt;, &lt;strong&gt;CSS&lt;/strong&gt;, and &lt;strong&gt;Javascript&lt;/strong&gt; to prototype ideas and developers with a heavy eye for user experience.&lt;/p&gt;

&lt;p&gt;Close collaboration between design, marketing, and development teams is crucial for achieving the highest quality products, happy customers, and great companies.&lt;/p&gt;
&lt;h2&gt;
  
  
  Design-to-code
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Designers have ceded too much ground&lt;/strong&gt;&lt;br&gt;
Brian Chesky (Industrial Designer, CEO &amp;amp; Co-founder ofAirbnb)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then, there’s also the moment of the design-to-code, the transition of design assets has to be smooth and integral so that not a single tiny thing is lost or neglected in the process.&lt;/p&gt;

&lt;p&gt;Using advanced tools that allow previewing the final results and editing them in real time helps preserve a direct connection to the medium we are trying to reach with our designs.&lt;/p&gt;

&lt;p&gt;That way, more complete, consistent, and bigger projects can be achieved, and Designers would make the contribution they should be making, “taking their seats at the table”. That’s why it is crucial we —designers— embed ourselves in every aspect of the process, it should be part of our nature to have a deep understanding of the topic and help identify areas where to improve the product.&lt;/p&gt;
&lt;h2&gt;
  
  
  The evolution of coding in a nutshell
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Enhancing Representation of Complex Design Work
&lt;/h3&gt;

&lt;p&gt;As creative professionals, we work with tools and we think in pages while the thing we’re actually working on is far more complex and specific in its final form. So wouldn’t it be more reasonable to find a way to better represent our design work?&lt;/p&gt;
&lt;h3&gt;
  
  
  Coding Designs within the Constraints of HTML’s Early Days
&lt;/h3&gt;

&lt;p&gt;For example, when I started implementing my designs in coding, more than 15 years ago, the flexibility of HTML (as its intended way of structuring documents), was very limited in what we could do to represent more complex designs. Using HTML tags available at the time.&lt;/p&gt;
&lt;h3&gt;
  
  
  How it’s started
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    // An extremely simplified view of how we would position elements
    // next to each other

    &amp;lt;table&amp;gt;
      &amp;lt;tbody&amp;gt;
        &amp;lt;tr&amp;gt;
          &amp;lt;td&amp;gt;Left element&amp;lt;/td&amp;gt;
          &amp;lt;td&amp;gt;Right element&amp;lt;/td&amp;gt;
        &amp;lt;/tr&amp;gt;
      &amp;lt;/tbody&amp;gt;
    &amp;lt;/table&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ogj7baebrtxyr6w6vk3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ogj7baebrtxyr6w6vk3.png" alt="Table elements" width="431" height="94"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  How it evolved
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Then the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; or “content Division” came along…&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    // An extremely simplified view of how we would position elements
    // next to each other
    &amp;lt;div&amp;gt;
      &amp;lt;div class=”float-left mr-16”&amp;gt;Left element&amp;lt;/div&amp;gt;
      &amp;lt;div class=”float-left  mr-16”&amp;gt;Center element&amp;lt;/div&amp;gt;
      &amp;lt;div&amp;gt;Right element&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;style&amp;gt;
      .float-left {
        float: left;
      }
      .mr-16 {
        margin-right: 16px;
      }
    &amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F972elnyhaz2x9o6dbbu4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F972elnyhaz2x9o6dbbu4.png" alt="Divs floating left" width="700" height="90"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  How is going
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Flexbox or grid and other ways as well (columns CSS property)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    &amp;lt;div class=”flex gap-4”&amp;gt;
      &amp;lt;div&amp;gt;Left element&amp;lt;/div&amp;gt;
      &amp;lt;div&amp;gt;Center element&amp;lt;/div&amp;gt;
      &amp;lt;div&amp;gt;Right element&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;style&amp;gt;
      .flex {
       display: flex;
      }
      .gap-4 {
        gap: 16px;
      }
    &amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fydig8odkhnndvaybyy89.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fydig8odkhnndvaybyy89.gif" alt="Div and flexbox/grid" width="507" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In these examples, thinking in boxes feels like packing things inside a box. When packing a present for a birthday for example, usually the box is sized to contain the present. (unless you are pranking someone to think that something bigger is inside the box)&lt;br&gt;&lt;br&gt;
Or for example when an e-commerce delivery item comes in a box within a smaller box inside another box. With foam padding around it so it does not move and damage the item inside.&lt;/p&gt;

&lt;p&gt;In this case, the content is the item, and the box is the div or parent element containing it, and then the rest of the CSS Box Model properties, Padding, Border, and Margin.&lt;/p&gt;
&lt;h3&gt;
  
  
  Abstraction layer
&lt;/h3&gt;

&lt;p&gt;Design systems have evolved (as much as the code frameworks) to abstraction layers methods that remove the amount of code that has to be read/written/understood by a developer/designer to achieve complex layouts or solve common problems.&lt;/p&gt;

&lt;p&gt;For example, the code below could render the example mentioned above but represented in a much simpler way. And a host of other benefits that is out of the scope of this post.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    &amp;lt;Inline space=”m”&amp;gt;
      &amp;lt;Text&amp;gt;Left element&amp;lt;/Text&amp;gt;
      &amp;lt;Text&amp;gt;Center element&amp;lt;/Text&amp;gt;
      &amp;lt;Text&amp;gt;Right element&amp;lt;/Text&amp;gt;
    &amp;lt;/Inline&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Empowering Non-Coders — Design mental model switch
&lt;/h2&gt;

&lt;h3&gt;
  
  
  “Paper” model
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fev4wzuow3f96cfwxn85p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fev4wzuow3f96cfwxn85p.png" alt="Open canvas brainstorming post it" width="700" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  “Paper” model
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fooj8ep1hjlh0h7z69e18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fooj8ep1hjlh0h7z69e18.png" alt="Sketch of dashboard" width="700" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  “Box” model
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm53pf1ica0wyfdscpm3h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm53pf1ica0wyfdscpm3h.png" alt="Mid-fidelity, auto-layout dashboard" width="700" height="462"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  From Box Models to Creative Collaboration
&lt;/h3&gt;

&lt;p&gt;Nowadays new tools, like Webflow, Wix, Figma, Adobe XD, Framer, etc., took the initiative to evolve into the box model system.&lt;/p&gt;

&lt;p&gt;This enables those who do not code to work on projects at a bigger scale, directly impacting the development stages, and helping us have a say and push for our hypothesis, and new creative solutions.&lt;br&gt;&lt;br&gt;
Modern digital product design is transitioning to where the way of thinking resembles closer to how a code would approach it.&lt;/p&gt;

&lt;p&gt;Not to say that the paper model is still going to be a core part of the design.&lt;/p&gt;

&lt;p&gt;Free mode vs Systematic (Left side more logical of brain vs right side more creative)&lt;/p&gt;

&lt;h3&gt;
  
  
  Design &amp;amp; Code relationship
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkrt59kunwqv1t4h4k2ee.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkrt59kunwqv1t4h4k2ee.png" alt="Figma &amp;amp; React components similarity" width="700" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More and more design is becoming very similar to how a front-end developer would build that design with code, which creates the perfect hand-off for consistency, efficiency, and implementation of a design and removes friction between the designer and the coder.&lt;/p&gt;

&lt;p&gt;Of course, this coupled with having a design system on the design side that matches the one used in the coding environment would further remove discrepancies in the final product.&lt;/p&gt;

&lt;p&gt;One of the things that’s obviously difficult for a Designer to interpret is exactly what type of code, what type of abstraction layers, and what type of systems you might be using in your development environment.&lt;/p&gt;

&lt;p&gt;For more about this topic, I invite you to read my previous article “&lt;a href="https://dev.to/keno_reloaded/how-to-design-like-a-front-end-developer-design-stack-tech-stack-206n"&gt;How to design like a front-end developer — Design Stack &amp;amp; Tech Stack&lt;/a&gt;”&lt;/p&gt;

&lt;h3&gt;
  
  
  Design-to-code: Auto-Layout &amp;amp; Plugin
&lt;/h3&gt;

&lt;p&gt;On the following image:&lt;/p&gt;

&lt;p&gt;The white box on the left is the layers panel of Figma. Each name has purposely been chosen to match that of each coded design system component at &lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/u/4e2a03561195?source=post_page-----d8e96cf86bb6--------------------------------" rel="noopener noreferrer"&gt;AMBOSS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;. The indentation of the layers panel depicts the cascading and nesting of elements. The &lt;strong&gt;Card&lt;/strong&gt; layer is the &lt;strong&gt;parent&lt;/strong&gt; and it has what in programming is called “&lt;strong&gt;children&lt;/strong&gt;” representing each other elements, and those &lt;strong&gt;children&lt;/strong&gt; can also be &lt;strong&gt;parents&lt;/strong&gt; of other elements.&lt;/p&gt;

&lt;p&gt;On the right top, we have the actual design of the card, and each layer is one of those elements, spacings, alignments, and content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rezr5fkhsh144c7rcl2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rezr5fkhsh144c7rcl2.png" alt="Code and design relationship" width="700" height="355"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;In the dark box below we have the abstraction layer of our design system on how we would build the design of the proposed card.&lt;/p&gt;

&lt;p&gt;We can immediately see the co-relation of how the ways of designing for the right medium can have its benefits.&lt;/p&gt;

&lt;p&gt;For more information about this, I invite you to read my previous article: “&lt;a href="https://dev.to/keno_reloaded/streamlining-design-to-code-workflow-how-i-created-a-figma-plugin-to-convert-designs-into-reactjs-design-system-components-537o"&gt;Streamlining Design to Code Workflow: How I Created a Figma Plugin to Convert Designs into ReactJS Design System Components&lt;/a&gt;”&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Navigating the Evolution of Web Design for Accurate Representation and Impactful design involvement in product
&lt;/h3&gt;

&lt;p&gt;As web design continues to evolve, the need for representing complex design work more accurately becomes increasingly apparent. Creative professionals must explore ways to bridge the gap between their tools and the final form of their work. Striking a &lt;strong&gt;balance between the freedom of creative expression and the systematic thinking&lt;/strong&gt; of the box model approach can lead to more complete and consistent design projects.&lt;/p&gt;

&lt;p&gt;In conclusion, embracing the evolution of web design, fostering cross-functional collaboration, and finding ways to better represent design work are crucial steps toward achieving high-quality, impactful digital products. By adapting to new tools and methodologies, breaking down silos, and nurturing a collaborative mindset, designers can play an instrumental role in shaping the future of web design.&lt;/p&gt;

</description>
      <category>uidesign</category>
      <category>productdesign</category>
      <category>autolayout</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Streamlining Design to Code Workflow: How I Created a Figma Plugin to Convert Designs into ReactJS Design System Components</title>
      <dc:creator>Keno Reloaded Ⓥ</dc:creator>
      <pubDate>Fri, 16 Jun 2023 09:13:14 +0000</pubDate>
      <link>https://dev.to/keno_reloaded/streamlining-design-to-code-workflow-how-i-created-a-figma-plugin-to-convert-designs-into-reactjs-design-system-components-537o</link>
      <guid>https://dev.to/keno_reloaded/streamlining-design-to-code-workflow-how-i-created-a-figma-plugin-to-convert-designs-into-reactjs-design-system-components-537o</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffd6nk0h8nmig08saw0wz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffd6nk0h8nmig08saw0wz.png" alt="Figma to AMBOSS Design System" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In today's fast-paced tech world, efficient design-to-code workflows are crucial for seamless product development. As a Senior Product Designer at AMBOSS, a medical knowledge platform for doctors and students, and a self-proclaimed to be able to do some front-end development, I recognized the need to bridge the gap between design and development to improve efficiency while boosting quality.&lt;/p&gt;

&lt;p&gt;Leveraging &lt;a href="https://www.figma.com/plugin-docs/api/api-reference/" rel="noopener noreferrer"&gt;Figma's Plugin API&lt;/a&gt;, I embarked on a journey to create a plugin that would translate designs into our ReactJS Design System components with just one click. In this blog post, I'll share my experience and the valuable lessons I learned along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it all started…
&lt;/h2&gt;

&lt;p&gt;Every time I create a new File in Figma, it starts as a blank canvas and has no page structure to help organize my work, so I wanted to save that valuable time of setting up a document just to start doing the core work. I usually use almost the same page structure for every file:&lt;br&gt;
📘 Cover (Set as a thumbnail)&lt;br&gt;
ℹ️ Project Info&lt;/p&gt;
&lt;h2&gt;
  
  
  🔀 UX Flows
&lt;/h2&gt;

&lt;p&gt;🌈 Playground&lt;br&gt;
🧩 Components&lt;br&gt;
👀 Benchmark&lt;br&gt;
🧪 Discovery&lt;br&gt;
- - - - - - - - - - - - - &lt;br&gt;
🟢 Final&lt;br&gt;
- - - - - - - - - - - - - &lt;br&gt;
🟣 In progress&lt;br&gt;
- - - - - - - - - - - - - &lt;br&gt;
🟡 Prototype V1&lt;br&gt;
🟡 Prototype V2&lt;br&gt;
🟡 Prototype V3&lt;br&gt;
- - - - - - - - - - - - - &lt;br&gt;
🔴 Not considered&lt;/p&gt;

&lt;p&gt;I knew that there might be some already existing Figma Plugins that could help me in this situation, but all of the ones I found were not fulfilling my particular use case and were not simple to use and/or fast enough. With this in mind, I decided to create a Plugin that was able to do what I needed at the time.&lt;/p&gt;

&lt;p&gt;I named this plugin, &lt;a href="https://www.figma.com/community/plugin/1242800632135286192" rel="noopener noreferrer"&gt;PageGenius&lt;/a&gt;, and at the time of writing this blog post, it &lt;strong&gt;has been used by 40+ other Figma users&lt;/strong&gt; (not as many as my &lt;a href="https://www.figma.com/community/file/1095337897898466786" rel="noopener noreferrer"&gt;first community file&lt;/a&gt; with &lt;strong&gt;5k+ users&lt;/strong&gt;, but slowly ramping up). This Plugin creates pages with the structure I showed above and sets a cover thumbnail for the file, in 1 click.&lt;/p&gt;
&lt;h2&gt;
  
  
  PageGenius Plugin Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zzlhrxk9l12hy657qgy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zzlhrxk9l12hy657qgy.gif" alt="PageGenius in action&amp;lt;br&amp;gt;
" width="600" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This successful experience inspired me immensely to wonder how else could I automatize and improve my and other designers' workflow.&lt;/p&gt;
&lt;h2&gt;
  
  
  Challenging the status quo
&lt;/h2&gt;

&lt;p&gt;Let's be honest, Designers and Front-end developers often face challenges in design-to-code collaboration. Countless hours are spent to do a design and subsequently, countless hours to manually write down markup of those designs into code, before even getting started with the real code, the logic behind it, interactions, states, tracking events, API calls, etc, resulting in delays, design inconsistencies, and a drain on resources. This frustrating process negatively impacts productivity and prevents teams from focusing on their core tasks and can be overwhelming for both designers and developers. Recognizing these issues, I set out to find a solution that could connect both worlds:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Figma designs to Design System Components Markup&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Seizing the opportunity
&lt;/h2&gt;

&lt;p&gt;The opportunity to improve our design to code workflows was crystal clear. By developing a Figma plugin that seamlessly translated designs into 1:1 ReactJS Design System components, we could reduce manual effort, improve accuracy, and expedite the delivery of code-ready designs. This would allow developers to concentrate on the core coding logic to bring features to life and boost the product development process.&lt;/p&gt;
&lt;h2&gt;
  
  
  Diving deeper into Figma's Plugin API
&lt;/h2&gt;

&lt;p&gt;I discovered a world of possibilities. The API empowered me to access design elements, properties, and metadata programmatically. Armed with this knowledge, I began developing the initial version of this Figma plugin&lt;br&gt;
Minimum Viable Product (MVP)&lt;br&gt;
To transform my vision into reality, I started by creating a prototype of the plugin. With a clear understanding of our Coded Design System's components, I focused on mapping out our most commonly used design elements like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;Card {props}&amp;gt;[...]&amp;lt;/Card&amp;gt;
&amp;lt;Box {props}&amp;gt;[...]&amp;lt;/Box&amp;gt;
&amp;lt;H2&amp;gt;[...]&amp;lt;/H2&amp;gt;
&amp;lt;Button {...props}&amp;gt;[...]&amp;lt;Button/&amp;gt;
&amp;lt;Divider/&amp;gt;
&amp;lt;Inline {props}&amp;gt;[...]&amp;lt;/Inline&amp;gt;
&amp;lt;Icon {...props} /&amp;gt;
&amp;lt;Text {...props}&amp;gt;[...]&amp;lt;/Text&amp;gt;
&amp;lt;Stack {...props}&amp;gt;[...]&amp;lt;/Stack&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I iterated over and over to get most of the properties to match and look for the result I wanted for the MVP.&lt;/p&gt;

&lt;h2&gt;
  
  
  Figma to AMBOSS Design System Plugin Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhkh51u9vywcckfwjhhv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhkh51u9vywcckfwjhhv.gif" alt="Figma to AMBOSS Design System&amp;lt;br&amp;gt;
" width="600" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing and Feedback
&lt;/h2&gt;

&lt;p&gt;To ensure the plugin met the needs of our design team and front-end developers, I started a thread on our internal chat to inspire and gather feedback and thoughts. This is the starting point as I write this post and I'm looking forward to further collaboration with the Design System team to keep exploring new boundaries.&lt;/p&gt;




&lt;h2&gt;
  
  
  Caveats and considerations
&lt;/h2&gt;

&lt;p&gt;The MVP proved to be helpful, but there are some things to consider, and is unclear the future usage of this tool as it requires some important changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Optional&lt;/strong&gt;: Our Figma Design system component properties could match 1:1 with our Coded Design System component properties.
Recommended: We could implement the necessary mapping to make this work, although this approach would not be optimal and would require maintenance. Having our Coded Design System components and our Figma Design System library matching the properties naming 1:1 would remove maintenance work time as any new property could be easily translated from code to Figma without development efforts.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Setbacks&lt;/strong&gt;: A setback for the recommended point above, would be the initial re-work of how our design system components are constructed in Figma.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Not for everyone&lt;/strong&gt;: For this plugin to work and improve designers' workflow, designers have to design in a specific way using &lt;a href="https://dev.to/keno_reloaded/how-to-design-like-a-front-end-developer-design-stack-tech-stack-206n"&gt;Figma's Auto-Layout&lt;/a&gt; feature, designers would have to name their layers in the specific naming convention to match that of our Coded Design system components and understand the coding structure to follow to make it work. Meaning that having a coding background will help a lot here.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;I imagine a future where we aim to expand this plugin's capabilities, allowing for the mapping of more complex design elements and introducing advanced features, and extrapolating it to other systems and frameworks.&lt;/p&gt;

&lt;p&gt;This can be extrapolated to any design system, check out my second iteration for React-Bootstrap library:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.figma.com/community/file/1247509061717924061" rel="noopener noreferrer"&gt;Link to React Bootstrap components in Figma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.figma.com/community/plugin/1247499086662694450" rel="noopener noreferrer"&gt;Link to Figma Plugin for React-Bootstrap Components&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.figma.com/community/plugin/1247499086662694450" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzowyrwar27tgc3k5e3bg.png" alt="Figma to React Bootstrap Plugin" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Leveraging AI
&lt;/h2&gt;

&lt;p&gt;During the development of the Figma plugin, I leveraged ChatGPT to brainstorm solutions to challenging problems when building the MVP.&lt;br&gt;
Also, as I embarked on writing this blog post, AI became a helpful writing partner. It helped me overcome the "blank canvas syndrome" (as much as my first plugin &lt;a href="https://www.figma.com/community/plugin/1242800632135286192" rel="noopener noreferrer"&gt;PageGenius&lt;/a&gt; helps with as well).&lt;br&gt;
However, it's important to note that while ChatGPT provided me with valuable assistance, the ultimate responsibility for the content and ideas of the Plugin and this blog post rests with me as a Senior Product Designer.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to design like a front-end developer — Design Stack &amp; Tech Stack</title>
      <dc:creator>Keno Reloaded Ⓥ</dc:creator>
      <pubDate>Wed, 08 Jun 2022 10:34:15 +0000</pubDate>
      <link>https://dev.to/keno_reloaded/how-to-design-like-a-front-end-developer-design-stack-tech-stack-206n</link>
      <guid>https://dev.to/keno_reloaded/how-to-design-like-a-front-end-developer-design-stack-tech-stack-206n</guid>
      <description>&lt;p&gt;&lt;a href="https://www.figma.com/community/file/1095337897898466786/Tech-Stack-Icons-%26-Design-Stack-Icons" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9qchznkqqmdghrdnvd7.png" alt="Tech Stack Icons" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First of all, let’s break down some key concepts that will become useful to continue reading this article:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;stack/stak/&lt;/p&gt;

&lt;p&gt;Dictionary meaning- A pile of objects, typically one that is neatly arranged.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But let’s focus on the tech environment meaning:&lt;/p&gt;

&lt;p&gt;A Tech Stack is a combination of technologies that a company or person uses to build and run an application or project. A tech stack typically consists of programming languages, frameworks, databases, front-end tools, back-end tools, and applications connected via APIs.&lt;/p&gt;

&lt;p&gt;Similarly to the concept mentioned above, we can consider thinking of Design Stacks, which is a combination of tools a designer or company uses. This could consist of wireframing, whiteboards (online or offline), design, illustration, or photo editing software.&lt;/p&gt;

&lt;p&gt;A REAL day in the life of a (digital) Product Designer:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkxs2w320otcz981xltm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkxs2w320otcz981xltm.png" alt="Cartoon" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have experienced what the Product Designer above had just now, you are not alone.&lt;/p&gt;

&lt;p&gt;“Understand your materials”Alan Dix — Professor, Expert in Human-Computer Interaction&lt;/p&gt;

&lt;p&gt;To be a good Product Designer, auditing the current status quo, implementing key design principles, analyzing user behavior and stakeholder management might not be the end of a Product Designer's journey but the beginning.&lt;/p&gt;

&lt;p&gt;Understanding the company’s or a project Tech Stack or what type of systems you might be using in your development environment, could help you to present better proposals that align with your team and increase the developer’s efficiency.&lt;/p&gt;

&lt;p&gt;From my experience of working in several start-ups and having competed in several hackathons, I would say more often than not a Product Designer is more prompted to be advised or indirectly drawn to understand a bit of code, than the developers training their design skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, how do we design with a Front-end developer mindset?
&lt;/h2&gt;

&lt;p&gt;More and more design is becoming very similar to how a front-end developer would build that design with code, which creates the perfect handoff for consistency, efficiency, and implementation of a design and removes friction between the designer and the coder.&lt;/p&gt;

&lt;p&gt;Of course, this coupled with having a design system on the design side that matches the one used in the coding environment would further remove discrepancies in the final product.&lt;/p&gt;

&lt;p&gt;One of the things that’s obviously difficult for a Designer to interpret is exactly what type of code, what type of abstraction layers, and what type of systems you might be using in your development environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Figma to Reactjs
&lt;/h2&gt;

&lt;p&gt;This is how a button component could look like in &lt;strong&gt;ReactJs&lt;/strong&gt; (a Popular Javascript framework created by Facebook) and how could it look on &lt;strong&gt;Figma&lt;/strong&gt; (a Popular design tool)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvsskuiprn6vrboutvr5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvsskuiprn6vrboutvr5h.png" alt="Button component" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ReactJs Button component example
&lt;/h2&gt;

&lt;p&gt;Understanding how a front-end developer could be building our Figma components and vice versa will provide your team with a structure that very closely matches properties and values from the development side, which will help to communicate better with your team, this is how we work faster together, we are all building the same product, right? So this really makes it a lot easier by understanding and getting closer to your development components structure. Obviously, there are going to be some differences in how designers are thinking about things and how developers work, but this is going to give us some of that shared language together.&lt;/p&gt;

&lt;h2&gt;
  
  
  From a design file to coding layout compositions
&lt;/h2&gt;

&lt;p&gt;In the example above we explored a bit how composing the structure of a button component is a faster way to get from design to development.&lt;/p&gt;

&lt;p&gt;But… what about spacings and alignments?&lt;/p&gt;

&lt;p&gt;Consider the following example&lt;/p&gt;

&lt;p&gt;A simple card component with a short title on the left and a button on the right.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk29w8az868n408msskw3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk29w8az868n408msskw3.png" alt="Card layout" width="800" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yes, we could specify the distance between the title and the button, but we would then need to specify this distance to every screen device breakpoint manually also it’s more prompt to discrepancies when coding by introducing a different number.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkdzwc4odage6rrayylw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkdzwc4odage6rrayylw.png" alt="Card layout spacing" width="800" height="175"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We want to keep the same structure no matter how wide the card is, we want the title to keep it’s position on the left and the button on the right.&lt;/p&gt;

&lt;p&gt;In Figma, this is really easy. By setting its orientation to horizontal, specifying the alignment in the center and the justification to space between. Now if we make the card wider both elements will keep the space between them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3lq226exk8g2tf0faqb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3lq226exk8g2tf0faqb.gif" alt="Card layout" width="810" height="122"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So far so good from a mobile device up, but in a mobile view, we might want to make the elements inside this card stack on top of each other.&lt;/p&gt;

&lt;p&gt;By changing its direction to vertical we can achieve this in 1 click and we can maintain the paddings and other styles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxei4tl0o7wp49kdqsnmi.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxei4tl0o7wp49kdqsnmi.gif" alt="Card layout mobile" width="810" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why is this important and how does this translate to code?&lt;/p&gt;

&lt;p&gt;In the image below we can see our card component properties on Figma UI on the left, and on the right, we have the CSS properties that might be used to recreate this on code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1536pfyynqjm5ak9w359.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1536pfyynqjm5ak9w359.png" alt="Figma UI and CSS" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the CSS code example above flex-direction is set to row but if we set it to column then the elements inside will stack on top of each other.&lt;/p&gt;

&lt;p&gt;Nowadays the tools used to design UI have a very close relationship to that of the development environment, this removes communications barriers between developers and designers, making the product design process more efficient for the team.&lt;/p&gt;

&lt;p&gt;The less we can as designers utilize “hard-designed” values, floating elements, or manually positioned components, let alone not using components at all will make your work more difficult to maintain in the long run, and will slow down your team’s efforts.&lt;/p&gt;

&lt;p&gt;To summarize, being able to master your working tools and having a good understanding of coding languages will help you build better design solutions and improve the communication with the development team, and all together thrive to build an awesome product.&lt;/p&gt;




&lt;p&gt;Extras&lt;/p&gt;

&lt;p&gt;This is an example of &lt;strong&gt;Tech Stack&lt;/strong&gt; acronyms:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Back-end Stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LAMP&lt;/strong&gt; = Linux, Apache, MySQL, and PHP&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Front-end Stack&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MERN&lt;/strong&gt; = MongoDB, ExpressJs, ReactJs, NodeJs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MEAN&lt;/strong&gt; = MongoDB, ExpressJs, AngularJs, NodeJs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Design Stack?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We, designers, haven’t adopted these types of acronyms, but after reading this article maybe we should start? Here are some ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FIMP&lt;/strong&gt; = Figma, Illustrator, Miro, Photoshop&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AIMP&lt;/strong&gt; = AdobeXD, Illustrator, Miro, Photoshop&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are working with developers I invite you to search more about front-end technologies and then go ahead to this &lt;a href="https://www.figma.com/community/file/1095337897898466786/Tech-Stack-Icons-%26-Design-Stack-Icons" rel="noopener noreferrer"&gt;free file on the Figma community&lt;/a&gt; where you will find Tech Stacks and Design Stacks icons and see how many of those you can recognize!&lt;/p&gt;

</description>
      <category>stack</category>
      <category>design</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
