<?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: Parabeac</title>
    <description>The latest articles on DEV Community by Parabeac (@parabeac).</description>
    <link>https://dev.to/parabeac</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%2Forganization%2Fprofile_image%2F2496%2F0cc0d68f-cae3-46a3-92ab-2d908d43088e.png</url>
      <title>DEV Community: Parabeac</title>
      <link>https://dev.to/parabeac</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/parabeac"/>
    <language>en</language>
    <item>
      <title>Figma to Flutter: Parabeac 4.0 Updates to Components</title>
      <dc:creator>lily-099</dc:creator>
      <pubDate>Fri, 14 Apr 2023 00:23:40 +0000</pubDate>
      <link>https://dev.to/parabeac/figma-to-flutter-parabeac-40-updates-to-components-10o3</link>
      <guid>https://dev.to/parabeac/figma-to-flutter-parabeac-40-updates-to-components-10o3</guid>
      <description>&lt;p&gt;In Parabeac 4.0, &lt;a href="https://parabeac.com" rel="noopener noreferrer"&gt;Parabeac Cloud&lt;/a&gt; and &lt;a href="https://github.com/Parabeac/parabeac_core" rel="noopener noreferrer"&gt;parabeac_core’s&lt;/a&gt; latest update, we’ve simplified the way that components can be referenced. Now, you can directly reference a component as a child. Let’s jump into it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Parabeac: An Overview
&lt;/h2&gt;

&lt;p&gt;Parabeac Converts Figma designs to Flutter UI code. In our Components project type, you can convert reusable UI elements to Flutter code. For more information on how we do this, check out our &lt;a href="https://docs.parabeac.com/docs/getting-started" rel="noopener noreferrer"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flutter Components: An Overview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fomgg6jw1pt9h7lvm78cy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fomgg6jw1pt9h7lvm78cy.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;UI components (as seen above) are pieces of UI that are reusable to build the entire front end of an application (as below). Flutter allows developers to create high-quality, natively compiled applications for mobile, web, and desktop from a single codebase. In Flutter, widgets are the building blocks of any Flutter application—the central idea is that you build your UI out of widgets. Because the word component is more universal and specific to UI, we’ve chosen to use the term component—even if the terms are used interchangeably in some spheres.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fhu47vckhcj88bligdoxf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fhu47vckhcj88bligdoxf.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Old Component Referencing + Breakages
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ff9osdwjts1n2xxxyzrye.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ff9osdwjts1n2xxxyzrye.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the pre-Parabeac 4.0, layout builder was required to reference a component. If you have existing applications that reference components this way and make an update, this may cause breakages. All that is required to resolve this is delete layout builder and reference the component in the new, simplified way (shown below).&lt;/p&gt;

&lt;h2&gt;
  
  
  Parabeac 4.0+ Component Referencing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fgttid9j55kstfyy21a64.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fgttid9j55kstfyy21a64.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To use a component in Parabeac 4.0 or later, simply wrap your component in a size box that describes the desired dimensions of your component and reference the component as a child.&lt;/p&gt;

&lt;p&gt;Hope this is useful and helps you to speed up and improve your UI coding process. Head to &lt;a href="https://parabeac.com" rel="noopener noreferrer"&gt;Parabeac Cloud&lt;/a&gt; to test it out!&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>tutorial</category>
      <category>dart</category>
      <category>android</category>
    </item>
    <item>
      <title>Convert Material 3 Theme Designs to Flutter Code</title>
      <dc:creator>lily-099</dc:creator>
      <pubDate>Fri, 31 Mar 2023 20:07:16 +0000</pubDate>
      <link>https://dev.to/parabeac/convert-material-3-theme-designs-to-flutter-code-cm1</link>
      <guid>https://dev.to/parabeac/convert-material-3-theme-designs-to-flutter-code-cm1</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Parabeac — Now compatible with Google Material Design 3 Themes&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2F1%2Alsw0N-VFB_VKg2c8qeDgyA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2F1%2Alsw0N-VFB_VKg2c8qeDgyA.png" alt="https://miro.medium.com/v2/resize:fit:1400/1*lsw0N-VFB_VKg2c8qeDgyA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the release of Google’s latest design system, Material Design 3, there’s been an update to the way that colors in Light and Dark Schemes are selected. Parabeac has just released support in Parabeac Cloud and parabeac_core: now you have the option to select between Material Design 3 and Material Design 2 when converting themes to Flutter code.&lt;/p&gt;

&lt;p&gt;Take a look at our updated Figma Kickstart file &lt;a href="http://bit.ly/3TX0BmO" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Converting with Parabeac Cloud&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2F1%2AIb0XqgBE1FEEvsNDGaMp_g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2F1%2AIb0XqgBE1FEEvsNDGaMp_g.png" alt="https://miro.medium.com/v2/resize:fit:1400/1*Ib0XqgBE1FEEvsNDGaMp_g.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To convert a Material 3 Theme using Parabeac Cloud, the process remains the same as it was previously: simply create a Theme Project, select your GitHub branch, provide links to the Figma File, and convert. For more detailed instructions, &lt;a href="http://bit.ly/3ns93hw" rel="noopener noreferrer"&gt;check out our documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What’s New: Color Palette&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Based on Key tones, 13 shades shades are generated ranging from 0–100. On the bottom end of the spectrum 0 is true black (#FFFFFF) and 100 is true white white (#00000). From these key tones, the derivative palette colors are selected.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A810%2F1%2ApBxxnnVrRlt7mBc9hSBmSQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A810%2F1%2ApBxxnnVrRlt7mBc9hSBmSQ.png" alt="https://miro.medium.com/v2/resize:fit:810/1*pBxxnnVrRlt7mBc9hSBmSQ.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Parabeac has updated its Themes Figma Kickstart file to reflect this — &lt;a href="http://bit.ly/3TX0BmO" rel="noopener noreferrer"&gt;play with it here&lt;/a&gt;. To use our Figma file: edit the key tones and the palette will be generated. Then, to select the colors for the light and dark color schemes, use the dropper to choose the appropriate color from the gradient in the palette.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Accessibility and Contrast&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;One of the main goals of the Google Material 3 color palette is to improve accessibility. The new color palette is designed to meet the WCAG 2.1 AA standard for contrast ratio. This means that text and other important elements are more legible, making it easier for users with visual impairments to navigate and use the interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2F1%2A6406eaFKCcM1KhDqdkBRdw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2F1%2A6406eaFKCcM1KhDqdkBRdw.png" alt="https://miro.medium.com/v2/resize:fit:1400/1*6406eaFKCcM1KhDqdkBRdw.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While there are default values, such as Primary being set to Primary40 and On Primary set to Primary100, the user can manually set what shade from the key tone palette they would like to use — though keep in mind there are specific contrast minimums set forth by Material 3.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Updates to Typography&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2F1%2A8X2KLjxx4gMh8uhd_zrMFA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2F1%2A8X2KLjxx4gMh8uhd_zrMFA.png" alt="https://miro.medium.com/v2/resize:fit:1400/1*8X2KLjxx4gMh8uhd_zrMFA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The naming conventions for typography have also been modified as well as several new font options added.&lt;/p&gt;

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

&lt;p&gt;Whether you’re currently using Material Design 2 or Material Design 3, we hope you use Parabeac to convert your design from Figma to Flutter Code! Head to &lt;a href="http://bit.ly/40RAuju" rel="noopener noreferrer"&gt;parabeac.com&lt;/a&gt; to learn more or to &lt;a href="https://bit.ly/3ns93hw" rel="noopener noreferrer"&gt;app.parabeac.com&lt;/a&gt; to try it today.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>frontend</category>
      <category>design</category>
      <category>dart</category>
    </item>
    <item>
      <title>Generating Flutter Themes</title>
      <dc:creator>Lily Osorno</dc:creator>
      <pubDate>Fri, 21 Oct 2022 13:58:51 +0000</pubDate>
      <link>https://dev.to/parabeac/generating-flutter-themes-3akh</link>
      <guid>https://dev.to/parabeac/generating-flutter-themes-3akh</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lioXHtJC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/85r3xlkefj4zzqu9bca1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lioXHtJC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/85r3xlkefj4zzqu9bca1.png" alt="Image description" width="720" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With Parabeac’s latest update, we now officially offer three different project types: Themes, Components and Screens. While Components and Screens have been included in previous iterations of our Figma to Flutter conversion tool, we’re excited to offer an entirely new function: Themes! &lt;/p&gt;

&lt;p&gt;Maintaining consistent brand colors and styles is critical to making a polished and cohesive user experience. Parabeac addresses this directly with its new project type. Themes is capable of not only created ColorStyles and TextStyles, but “light” and “dark” themes (as specified in (Material Design 2)[is capable of detecting &lt;a href="https://docs.flutter.dev/development/ui/widgets/material"&gt;Material Design elements&lt;/a&gt;, as well. Having a generated list of colors and styles devs can easily reference, makes the entire process of coding an app’s UI not only easier, but faster as well.&lt;/p&gt;

&lt;p&gt;We recently released a video demo on how this works &lt;a href="https://youtu.be/sNpV9_cuS6c"&gt;here&lt;/a&gt;, but let’s dive into how to make this happen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create a Style Sheet in Figma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Clone &lt;a href="https://www.figma.com/file/BNqNAmenGsbiGAQEIOgpuR/Parabeac-Theming?node-id=4%3A2"&gt;our existing sample style sheet&lt;/a&gt;, and edit it to match your desired application colors. (or create your very own Figma file!)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KhuNfEKJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h35sym39xa7bgq7fgxwf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KhuNfEKJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h35sym39xa7bgq7fgxwf.png" alt="Style Sheet" width="720" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Convert your Figma design to Flutter using [Parabeac] Cloud](app.parabeac.com)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The process is very similar to how we’ve converted projects in the past. All you need is the link to your Figma file and access to your Figma account (either through a personal access token or by logging in through Parabeac). &lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g08AH5Ae--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6atx310j390rvt3uejz2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g08AH5Ae--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6atx310j390rvt3uejz2.png" alt="Image description" width="880" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use the themes in your project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Import the generated .g.dart files to an existing project, or build a new application on the Parabeac generated project files. If you created light or dark themes, you can call them as normal—otherwise you can call individually generated colors. As usual, all names correspond to how they were labeled in Figma.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YuAfDB29--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/znkoqua387dedlqv7v8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YuAfDB29--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/znkoqua387dedlqv7v8o.png" alt="Image description" width="880" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For more tips and tricks on how to use Themes, check out &lt;a href="https://towardsdev.com/tips-and-tricks-to-make-flutter-development-easier-with-parabeac-693d03a80b38"&gt;this handy article&lt;/a&gt; written by our very own CTO, Ivan Vigalante.&lt;/p&gt;

&lt;p&gt;For more detailed information on how themes work or how to generate them using Parabeac, check out our documentation &lt;a href="https://docs.parabeac.com/docs/learn-the-parabeac-way/global-styling"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>tutorial</category>
      <category>fluttertutorial</category>
      <category>appdevelopment</category>
    </item>
    <item>
      <title>Tips and tricks to make Flutter development easier with Parabeac</title>
      <dc:creator>Ivan</dc:creator>
      <pubDate>Mon, 26 Sep 2022 22:41:10 +0000</pubDate>
      <link>https://dev.to/parabeac/tips-and-tricks-to-make-flutter-development-easier-with-parabeac-npb</link>
      <guid>https://dev.to/parabeac/tips-and-tricks-to-make-flutter-development-easier-with-parabeac-npb</guid>
      <description>&lt;p&gt;Recently Parabeac introduced &lt;em&gt;Parabeac Themes&lt;/em&gt;, a super-simple, super-easy, and super-affordable version of our tool where developers can choose to export simple styling and theming elements. &lt;/p&gt;

&lt;p&gt;Parabeac tools quickly and precisely convert Figma application mock-ups to Flutter code, speeding the process of implementing UI designs. The good news is that developers retain full control over how the converted code is implemented and can make continuous design updates -- any future changes made in the Figma files can generate a new pull request without disrupting any previously manually written logic.&lt;/p&gt;

&lt;p&gt;But any tool is even more valuable with some user-driven “tips”. Here are some helpful ones to make Parabeac even easier:&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Tips and Tricks&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Tip #1&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;In Parabeac Themes, instead of creating a new Figma File containing a color palette for light/dark themes from scratch, copy the existing Parabeac file to your own drafts and edit the colors! You’ll already have all the color names, and won’t have to spend time creating light/dark categories.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ih9T_6kn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e58vgue115cy5iorhuyc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ih9T_6kn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e58vgue115cy5iorhuyc.png" alt="Light and dark colors example" width="880" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Tip #2&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;You don’t have to use every single pre-named color in a color scheme (i.e. “shadow” in a “light” scheme). Just use whichever colors are relevant to you!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Tip #3&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;If you want to have your app dynamically change between light and dark mode, create the light/dark ColorSchemes and ThemeDatas via Tip #1. Then, in your main.dart file, use the generated light and dark ThemeData classes to place them in the &lt;code&gt;theme&lt;/code&gt; and &lt;code&gt;darkTheme&lt;/code&gt; attributes respectively. Now, Flutter will detect whether the device is in light/dark mode and adjust many widgets according to your color palettes. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nMhuD4l---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s6kp8j338a4o0ulb8fdc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nMhuD4l---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s6kp8j338a4o0ulb8fdc.png" alt="Using your themes in your app" width="501" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Tip #4&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;For developers who use Parabeac for screens: when selecting a screen size in Figma, make sure to select the smallest screen size out of all devices you wish your app to be compatible with. Adding more screen real estate will add more padding around your design elements depending on how they’re anchored (ie. to the right/left side of the screen or centered, or to another element)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;BONUS TIP&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;If you’re willing to reach out to give us feedback or request features, we will reward you with a 1-month free subscription to our Pro pricing plan! Contact us at &lt;a href="mailto:support@parabeac.com"&gt;support@parabeac.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>programming</category>
      <category>productivity</category>
      <category>uiweekly</category>
    </item>
    <item>
      <title>Figma to Flutter : Convert Global Styles &amp; ThemeData</title>
      <dc:creator>Ivan Huerta</dc:creator>
      <pubDate>Thu, 07 Jul 2022 20:00:33 +0000</pubDate>
      <link>https://dev.to/parabeac/figma-to-flutter-convert-global-styles-themedata-3og8</link>
      <guid>https://dev.to/parabeac/figma-to-flutter-convert-global-styles-themedata-3og8</guid>
      <description>&lt;p&gt;In the latest update to [parabeac_core v3.1]([&lt;a href="https://bit.ly/3Ny3Cpq" rel="noopener noreferrer"&gt;https://bit.ly/3Ny3Cpq&lt;/a&gt;], your favorite continuous Figma to Flutter generator, we’ve added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global Styling&lt;/strong&gt;,  so you can import standardized colors and text styles set from the Figma file in your Flutter project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Material Theming Integration (beta),&lt;/strong&gt; so that global styling can integrate into your theme with one line of code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Golden Tests&lt;/strong&gt;, so devs can ensure that the UI generated scales pixel perfectly to the way it was described in Figma.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s check it out!&lt;/p&gt;

&lt;h1&gt;
  
  
  Global Styling Support
&lt;/h1&gt;

&lt;p&gt;To speed up the standardization of &lt;strong&gt;color styles&lt;/strong&gt; and &lt;strong&gt;text styles&lt;/strong&gt;, &lt;a href="[https://bit.ly/3Ny3Cpq](https://bit.ly/3Ny3Cpq)"&gt;parabeac_core&lt;/a&gt; will now export a file containing those elements for developers to easily reference.&lt;/p&gt;

&lt;p&gt;These elements are automatically detected when provided in the Figma file as seen below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fvoz6ehfpzrptttdgef6t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fvoz6ehfpzrptttdgef6t.png" alt="Figma Styling"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Generation of Global Colors
&lt;/h2&gt;

&lt;p&gt;If detected in a Figma file, &lt;a href="[https://bit.ly/3Ny3Cpq](https://bit.ly/3Ny3Cpq)"&gt;parabeac_core&lt;/a&gt;will export a file containing all global colors as constants, so devs can skip manually entering color palette data.&lt;/p&gt;

&lt;p&gt;In the example below, you can see a Figma file with globally declared colors and text styles being used to alter the counterapp’s colors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fibxshc6no162z4qqxe7x.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fibxshc6no162z4qqxe7x.gif" alt="Use of Styling GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We then simply convert using Parabeac, import the file to the .g.dart screen, and call the color names (as declared in Figma).&lt;/p&gt;

&lt;h2&gt;
  
  
  Generation of Global TextStyles
&lt;/h2&gt;

&lt;p&gt;If detected in a Figma file, &lt;a href="[https://bit.ly/3Ny3Cpq](https://bit.ly/3Ny3Cpq)"&gt;parabeac_core&lt;/a&gt; will export a file containing all global TextStyles as constants. These specifications include: fontSize, fontWeight, letterSpacing, fontFamily, color, and decoration.&lt;/p&gt;

&lt;p&gt;Below, you can see an example of what Parabeac Generates for two different styles: parabeacTextStyle and newStyle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fmdr295dv5359pldcradb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fmdr295dv5359pldcradb.png" alt="Global TextStyles"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For more detailed instructions on how to generate and import global styles, check out our new doc &lt;a href="https://bit.ly/3yjgOIy" rel="noopener noreferrer"&gt;here&lt;/a&gt;!&lt;/p&gt;

&lt;h1&gt;
  
  
  Material Theming Integration (beta)
&lt;/h1&gt;

&lt;p&gt;With the new support for styling, we also wanted to begin directly integrating these constant styles into the Flutter theme. We also now generate a file called theme.g.dart which currently supports Text Styles. The way it works is we take into account the naming set by Material 2 for text styles and automatically map that into the theme.g.dart file. The names in the standard &lt;a href="[https://api.flutter.dev/flutter/material/TextTheme-class.html](https://api.flutter.dev/flutter/material/TextTheme-class.html)"&gt;TextTheme&lt;/a&gt; documentation are the names available for automatic theme integration in the Figma file:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fyp51mmw58fh7q3psnya3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fyp51mmw58fh7q3psnya3.png" alt="Material Text Theme Specification"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Golden tests
&lt;/h1&gt;

&lt;p&gt;Next, to help ensure Parabeac provides the most accurate product possible, we’ve added Golden Tests! But before we go over them, it is helpful to understand that there are two modes of describing layout in Figma.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first is positional/constraint layout. As Flutter developers we understand this through the use of &lt;a href="[https://api.flutter.dev/flutter/widgets/Stack-class.html](https://api.flutter.dev/flutter/widgets/Stack-class.html)"&gt;Stack&lt;/a&gt; &amp;amp; &lt;a href="[https://api.flutter.dev/flutter/widgets/Positioned-class.html](https://api.flutter.dev/flutter/widgets/Positioned-class.html)"&gt;Positioned&lt;/a&gt; widgets.&lt;/li&gt;
&lt;li&gt;The second is Autolayout. In code, we know this as “Flex-based layout” and specifically in Flutter, we know this as &lt;a href="[https://api.flutter.dev/flutter/widgets/Column-class.html](https://api.flutter.dev/flutter/widgets/Column-class.html)"&gt;Columns&lt;/a&gt; &amp;amp; &lt;a href="[https://api.flutter.dev/flutter/widgets/Row-class.html](https://api.flutter.dev/flutter/widgets/Row-class.html)"&gt;Rows&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this in mind, we have created Golden Tests to match every permutation of positional layout, and as many feasible permutations of autolayout as possible.&lt;/p&gt;

&lt;p&gt;This helps us to standardize the way code is generated, particularly when adding new features. Meaning, no surprise breakages when adding new elements or features to parabeac_core. You can see the 2 additional Figma files used as Golden Tests below. &lt;a href="[https://www.figma.com/file/PxDC3cxF6tNWVZpWSTb7Hu/Test-AutoLayout?node-id=0%3A1]"&gt;Autolayout&lt;/a&gt; on the top and &lt;a href="[https://www.figma.com/file/1LeNCfa8Yu5kTJhWcWh2PL/Figma-Constraint-Permutations?node-id=0%3A1]"&gt;Constraint/Positional Layout permutations&lt;/a&gt; on the bottom.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fkivsbhr0gsmmoqtheh41.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fkivsbhr0gsmmoqtheh41.png" alt="Autolayout Permutations"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fchhjnjq1d0lv4non226l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fchhjnjq1d0lv4non226l.png" alt="Constraints and Positional Layout Permutations"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Bugfixes
&lt;/h1&gt;

&lt;p&gt;We’re always striving to provide the most accurate code possible. With the implementation of Golden Tests, we’ve discovered and improved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alignment improvements&lt;/li&gt;
&lt;li&gt;Constraints improvements&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you've made it to the end, thanks for reading! Let us know what you thought and reach out to us on our &lt;a href="https://discord.com/invite/qUrghes" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; server, we'd love to hear your feedback!&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>design</category>
      <category>figma</category>
      <category>parabeac</category>
    </item>
    <item>
      <title>Figma to Dashbook - parabeac_core v2.6</title>
      <dc:creator>Ivan Huerta</dc:creator>
      <pubDate>Thu, 07 Apr 2022 15:10:47 +0000</pubDate>
      <link>https://dev.to/parabeac/figma-to-dashbook-parabeaccore-v26-4o7e</link>
      <guid>https://dev.to/parabeac/figma-to-dashbook-parabeaccore-v26-4o7e</guid>
      <description>&lt;p&gt;In our &lt;a href="https://bit.ly/3ugBCQ2"&gt;last article&lt;/a&gt;, we covered how parabeac_core has added support for component isolation &amp;amp; Widgetbook. We have now also added Dashbook support in &lt;a href="https://github.com/Parabeac/parabeac_core"&gt;parabeac_core&lt;/a&gt; v2.6!&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s &lt;a href="https://github.com/bluefireteam/dashbook"&gt;Dashbook&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;"Dashbook is a UI development tool for Flutter, it works as a development enviroment for the project widgets and also a showcase for common widgets on the app, it is heavly inspired by Storybook library, so it should be very easy for people who has already used Storybook, to use Dashbook."&lt;/p&gt;

&lt;p&gt;To activate this feature, edit the config file in parabeac_core, located in &lt;code&gt;parabeac_core/lib/configurations/configurations.json&lt;/code&gt;. Set &lt;code&gt;"componentIsolation"&lt;/code&gt; to &lt;code&gt;"componentIsolation": "dashbook"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It will look like the following:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--48p58k0a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x1r80iaxnm682ln20dip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--48p58k0a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x1r80iaxnm682ln20dip.png" alt="Dashbook Config" width="880" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can duplicate and use this demo project here: &lt;a href="https://bit.ly/3NVsvfy"&gt;https://bit.ly/3NVsvfy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then run parabeac_core as usual and you will have a Flutter project with Dashbook ready to test your component package.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jIIUPnB1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qlqh8mpexvmm37mhgz2f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jIIUPnB1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qlqh8mpexvmm37mhgz2f.png" alt="Component Package Example Figma" width="880" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Parabeac only generates dashbook/widgetbook stories &amp;amp; use case code for Figma Components.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can then run it using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter run project_name/lib/main_dashbook.g.dart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--e2lt2wHR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a34la4xtoqimls6ujjvl.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--e2lt2wHR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a34la4xtoqimls6ujjvl.gif" alt="Running Dashbook" width="880" height="824"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next? Start adding the logic needed for this component package. Learn here! - &lt;a href="https://bit.ly/3DUxb0v"&gt;https://bit.ly/3DUxb0v&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>design</category>
    </item>
    <item>
      <title>How I added animation to my generated Flutter website using Parabeac</title>
      <dc:creator>Ivan</dc:creator>
      <pubDate>Tue, 29 Mar 2022 22:09:27 +0000</pubDate>
      <link>https://dev.to/parabeac/how-i-added-animation-to-my-website-using-parabeac-kbn</link>
      <guid>https://dev.to/parabeac/how-i-added-animation-to-my-website-using-parabeac-kbn</guid>
      <description>&lt;p&gt;While making a personal website, I wanted to add a &lt;code&gt;Down Arrow&lt;/code&gt; that moves up and down infinitely, to indicate to the user to scroll down.&lt;/p&gt;

&lt;p&gt;This can be easily done in Flutter by using the  &lt;code&gt;AnimatedPositioned&lt;/code&gt; widget. In this post, I’ll go over how to achieve this effect using Parabeac.&lt;/p&gt;

&lt;p&gt;The UI mockup of my site, created in Figma:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zAWhpwyB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7hq4woe0q0t7950nlytj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zAWhpwyB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7hq4woe0q0t7950nlytj.png" alt="UI Mockup" width="880" height="652"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparing your Figma file
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Custom Tags
&lt;/h3&gt;

&lt;p&gt;The first step to creating the animation was to name the element I wanted to convert with a &lt;code&gt;&amp;lt;custom&amp;gt;&lt;/code&gt; tag as seen in the image below: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PErCQQVY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4duqqohwdfh50fqdmlly.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PErCQQVY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4duqqohwdfh50fqdmlly.png" alt="Figma Custom Tag" width="484" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Doing this allowed me to customize the logic attached to the UI element without having to modify the UI itself once I generated the Flutter code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Editing the Dimensions of the Figma Element
&lt;/h3&gt;

&lt;p&gt;Secondly, because Parabeac takes the dimensions given in Figma and translates them to Flutter, I needed to resize the Figma element boundary to take up roughly as much space as I wanted the animation to take up. See below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0d24qyJ7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g9ty5qnh84rxl1vhvyg7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0d24qyJ7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g9ty5qnh84rxl1vhvyg7.png" alt="Figma Dimensions" width="880" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As seen in the image, I increased the height of the element in order for it to be able to freely move up and down in the code itself.&lt;/p&gt;

&lt;h3&gt;
  
  
  Editing Position Constraints
&lt;/h3&gt;

&lt;p&gt;In my case, I wanted the arrow to stick to the bottom-center of the screen as it resizes. To translate this into Flutter, I specified these constraints as seen on the right-bar of the image below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AO-DKfho--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a300zmudn64zid66lbt4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AO-DKfho--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a300zmudn64zid66lbt4.png" alt="Figma Constraints" width="880" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating the code
&lt;/h2&gt;

&lt;p&gt;Once my Figma file was ready to go, I went to &lt;a href="http://app.parabeac.com"&gt;app.parabeac.com&lt;/a&gt; to generate my code. Next, I  created a Pull Request (PR) into my GitHub repo. If you want more details on how to do this, check out:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/shorts/PCUN3OcPAKs"&gt;https://www.youtube.com/shorts/PCUN3OcPAKs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the PR was successful, I pulled the parabeac-generated branch in VSCode and was ready to add my logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding logic
&lt;/h2&gt;

&lt;p&gt;Since I tagged the &lt;code&gt;Down Arrow&lt;/code&gt; in Figma with &lt;code&gt;&amp;lt;custom&amp;gt;&lt;/code&gt;, Parabeac created a file inside the &lt;code&gt;controllers&lt;/code&gt; directory of my Flutter project named &lt;code&gt;down_arrow_custom.dart&lt;/code&gt;. This file wraps the arrow’s UI and allows for logic to be injected. The generated file looked as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VBk2syll--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9d0tjkwrof5elj9maorn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VBk2syll--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9d0tjkwrof5elj9maorn.png" alt="Custom File Boilerplate" width="535" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;widget.child&lt;/code&gt; item is the UI of the arrow. Initially, by default, the custom tags will return the UI with no logic. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;DownArrowCustom&lt;/code&gt; class is what allows me to add logic to the UI, or to completely override it. In my case, all I wanted to do was to wrap &lt;code&gt;widget.child&lt;/code&gt; with an &lt;code&gt;AnimatedPositioned&lt;/code&gt; widget that infinitely moves up and down. &lt;/p&gt;

&lt;h3&gt;
  
  
  Initializing animation variables
&lt;/h3&gt;

&lt;p&gt;In order to pull off this animation, I need a couple of things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Timer that triggers a change every X milliseconds&lt;/li&gt;
&lt;li&gt;AnimatedPositioned widget that wraps &lt;code&gt;widget.child&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;A boolean variable to tell the &lt;code&gt;AnimatedPositioned&lt;/code&gt; widget when to change positions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Timer and Duration
&lt;/h3&gt;

&lt;p&gt;For my down-arrow, I needed the timer to start as soon as the state was initialized in order to trigger the animation right when the page loads. Therefore, I defined the duration as a constant variable, and defined a &lt;code&gt;late&lt;/code&gt; &lt;code&gt;Timer&lt;/code&gt; that would be initialized on &lt;code&gt;initState&lt;/code&gt;. In addition, I had to &lt;code&gt;cancel()&lt;/code&gt; the timer inside the &lt;code&gt;dispose&lt;/code&gt; method to avoid errors and unwanted behavior when the screen is no longer being rendered.&lt;/p&gt;

&lt;p&gt;See below how I set up my timer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;_DownArrowCustomState&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;State&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;DownArrowCustom&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;late&lt;/span&gt; &lt;span class="n"&gt;Timer&lt;/span&gt; &lt;span class="n"&gt;_timer&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;/// Duration of the animation and how often it should&lt;/span&gt;
  &lt;span class="c1"&gt;///change positions.&lt;/span&gt;
  &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;_duration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;Duration&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;milliseconds:&lt;/span&gt; &lt;span class="mi"&gt;700&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;initState&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;/// Timer that triggers the callback&lt;/span&gt;
    &lt;span class="c1"&gt;/// function every 700 seconds. &lt;/span&gt;
    &lt;span class="n"&gt;_timer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Timer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;periodic&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
      &lt;span class="n"&gt;_duration&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
      &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;timer&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;/// Temporary print call for illustration purposes&lt;/span&gt;
        &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'callback!'&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
      &lt;span class="o"&gt;},&lt;/span&gt; 
    &lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;initState&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;dispose&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;/// Make sure to properly dispose of _timer!&lt;/span&gt;
    &lt;span class="n"&gt;_timer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;cancel&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;dispose&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;child&lt;/span&gt;&lt;span class="o"&gt;!;&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  AnimatedPositioned
&lt;/h3&gt;

&lt;p&gt;Next, I set up an &lt;code&gt;AnimatedPositioned&lt;/code&gt; widget that wraps &lt;code&gt;widget.child&lt;/code&gt; as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;_DownArrowCustomState&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;State&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;DownArrowCustom&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;late&lt;/span&gt; &lt;span class="n"&gt;Timer&lt;/span&gt; &lt;span class="n"&gt;_timer&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;/// Duration of the animation and how often it should&lt;/span&gt;
  &lt;span class="c1"&gt;///change positions.&lt;/span&gt;
  &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;_duration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;Duration&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;milliseconds:&lt;/span&gt; &lt;span class="mi"&gt;700&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;initState&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="o"&gt;...&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;dispose&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="o"&gt;...&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Stack&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;
        &lt;span class="n"&gt;AnimatedPositioned&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
          &lt;span class="nl"&gt;width:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
          &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
          &lt;span class="nl"&gt;bottom:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;/// Need to update this value every time Timer triggers callback&lt;/span&gt;
          &lt;span class="nl"&gt;left:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
          &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;child&lt;/span&gt;&lt;span class="o"&gt;!,&lt;/span&gt;
          &lt;span class="nl"&gt;duration:&lt;/span&gt; &lt;span class="n"&gt;_duration&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
        &lt;span class="o"&gt;),&lt;/span&gt;
      &lt;span class="o"&gt;],&lt;/span&gt;
    &lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As seen above, I created a &lt;code&gt;Stack&lt;/code&gt; that will be constrained automatically by the parent  &lt;code&gt;.g.dart&lt;/code&gt; file based on the Figma constraints I provided. I then wrapped &lt;code&gt;widget.child&lt;/code&gt; (the UI of the arrow) with an &lt;code&gt;AnimatedPositioned&lt;/code&gt; widget.&lt;/p&gt;

&lt;p&gt;Notice that the duration of the animation and how often the timer triggers the callback is the same. This is to ensure that the arrow changes positions at the same time the animation is finished (i.e. there is continuous movement, no pauses).&lt;/p&gt;

&lt;p&gt;However, the position won’t change yet because there is no trigger that will change the &lt;code&gt;bottom&lt;/code&gt; value of the &lt;code&gt;AnimatedPositioned&lt;/code&gt;. To achieve this, I need to add a boolean variable that tells the &lt;code&gt;AnimatedPositioned&lt;/code&gt; widget when to update.&lt;/p&gt;

&lt;h3&gt;
  
  
  Boolean Update Variable
&lt;/h3&gt;

&lt;p&gt;I then added a boolean, class variable named &lt;code&gt;_update&lt;/code&gt; that changes value every time the &lt;code&gt;_timer&lt;/code&gt; calls the callback method. See below for the final result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;_DownArrowCustomState&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;State&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;DownArrowCustom&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;_update&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;late&lt;/span&gt; &lt;span class="n"&gt;Timer&lt;/span&gt; &lt;span class="n"&gt;_timer&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;/// Duration of the animation and how often it should&lt;/span&gt;
  &lt;span class="c1"&gt;///change positions.&lt;/span&gt;
  &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;_duration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;Duration&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;milliseconds:&lt;/span&gt; &lt;span class="mi"&gt;700&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;initState&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;_timer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Timer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;periodic&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
      &lt;span class="n"&gt;_duration&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
      &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;timer&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;/// Set state and change the boolean so the &lt;/span&gt;
        &lt;span class="c1"&gt;///position changes.&lt;/span&gt;
        &lt;span class="n"&gt;setState&lt;/span&gt;&lt;span class="o"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_update&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;_update&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
      &lt;span class="o"&gt;},&lt;/span&gt;
    &lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;initState&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;dispose&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;_timer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;cancel&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;dispose&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Stack&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;
        &lt;span class="n"&gt;AnimatedPositioned&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
          &lt;span class="nl"&gt;width:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
          &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
          &lt;span class="nl"&gt;bottom:&lt;/span&gt; &lt;span class="n"&gt;_update&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;/// Push arrow 25 pixels up/down depending on state.&lt;/span&gt;
          &lt;span class="nl"&gt;left:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
          &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;child&lt;/span&gt;&lt;span class="o"&gt;!,&lt;/span&gt;
          &lt;span class="nl"&gt;duration:&lt;/span&gt; &lt;span class="n"&gt;_duration&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
        &lt;span class="o"&gt;),&lt;/span&gt;
      &lt;span class="o"&gt;],&lt;/span&gt;
    &lt;span class="o"&gt;);&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Final result
&lt;/h2&gt;

&lt;p&gt;After updating the custom file, this was the final result when running my Flutter project:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5EojMCLa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kcc02s5odfn4wvx3u2ib.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5EojMCLa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kcc02s5odfn4wvx3u2ib.gif" alt="Final Result GIF" width="880" height="704"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Github repo: &lt;a href="https://github.com/ivan-015/flutter-portfolio-site"&gt;https://github.com/ivan-015/flutter-portfolio-site&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Deployed website (needs a sec. to load, currently in development👷🏾‍♂️😅): &lt;a href="https://y.at/%F0%9F%91%81%EF%B8%8F%F0%9F%9A%9A%E2%9D%A4%EF%B8%8F%F0%9F%92%BB"&gt;https://y.at/👁️🚚❤️💻&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>flutter</category>
    </item>
    <item>
      <title>How I generated my personal landing page with Figma &amp; Flutter using Parabeac</title>
      <dc:creator>Ivan</dc:creator>
      <pubDate>Thu, 24 Mar 2022 20:07:08 +0000</pubDate>
      <link>https://dev.to/parabeac/how-i-generated-my-personal-landing-page-with-figma-flutter-using-parabeac-188j</link>
      <guid>https://dev.to/parabeac/how-i-generated-my-personal-landing-page-with-figma-flutter-using-parabeac-188j</guid>
      <description>&lt;p&gt;In this post, I’ll share how I used Parabeac to create my portfolio website by converting my Figma design file to Flutter code and deploying the project using GitHub Pages.&lt;/p&gt;

&lt;p&gt;When working on a product, it’s easy to get lost in the myriad of features, bugs, and refactors to implement. Getting tunnel vision means you lose sight of what is useful to the user and what is not. Because of this, I decided to put myself in our users’ shoes and try to build my portfolio website using Parabeac. &lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up design file
&lt;/h2&gt;

&lt;p&gt;I created a new Figma Project and decided to start with the Landing Page. I knew my website was going to have a minimalist, terminal style with dark colors accentuated by bright greens. Then, I re-watched The Matrix to inspire my design (and because I love the movie). Finally, after looking at a few websites, I started designing and (tried 😅) using Figma best practices to design the page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fwh1yxm5zuto5pcdx4000.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fwh1yxm5zuto5pcdx4000.png" alt="Figma Design"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although the design was to my liking, I did not want the UI to be static. Rather, I wanted the green text that says &lt;code&gt;Software Developer&lt;/code&gt; to change to some hobbies: &lt;code&gt;Movie Enthusiast&lt;/code&gt;, and &lt;code&gt;Gamer 😎&lt;/code&gt;. The logic of animating and changing text cannot be generated by Parabeac, so I labeled the text with &lt;code&gt;&amp;lt;custom&amp;gt;&lt;/code&gt; in Figma as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fo943wcis24llw5tfbgxh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fo943wcis24llw5tfbgxh.png" alt="Custom Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By doing this, Parabeac will create a file where I can add logic and change the text dynamically once the code is generated.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating the Code Using Parabeac Nest
&lt;/h2&gt;

&lt;p&gt;Once my Figma file was ready to generate, I went to Github, created a new repo, and initialized it with a &lt;code&gt;main&lt;/code&gt; branch. Then, I went to &lt;a href="http://app.parabeac.com" rel="noopener noreferrer"&gt;app.parabeac.com&lt;/a&gt; to start my new project. I followed the prompts, crossed my fingers, and began the conversion. After a few minutes, I got the success message:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fqnbwnl99fatf03bh64bd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fqnbwnl99fatf03bh64bd.png" alt="PR Success"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After I saw this success message, I immediately cloned the Git Repo, checked out the generated branch, and opened it in VSCode:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F872j2vsv1y9mbnritct5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F872j2vsv1y9mbnritct5.png" alt="VSCode Project"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I modified the &lt;code&gt;main.dart&lt;/code&gt; file to open the &lt;code&gt;Landing&lt;/code&gt; page (as seen above), and ran it with the following result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F7vtvv36j5l62a5sehpml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F7vtvv36j5l62a5sehpml.png" alt="First Conversion"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not bad! Next, let’s make the text dynamic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Customizing logic
&lt;/h2&gt;

&lt;p&gt;The first thing I do when I want to add some logic to my Flutter UI code is look it up on YouTube and hope there’s a Widget of the Week video on it. I searched “flutter animated text”, crossed my fingers once again, and hit the jackpot. This was the first video in the search: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=foQTKCQqVWk" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=foQTKCQqVWk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After reading the &lt;a href="https://pub.dev/packages/animated_text_kit" rel="noopener noreferrer"&gt;docs&lt;/a&gt;, I decided this was exactly what I wanted, so I went to my terminal and ran &lt;code&gt;flutter pub add animated_text_kit&lt;/code&gt; on my project. Then, I went to the file &lt;code&gt;software_developer_custom.dart&lt;/code&gt;, named after the text element in Figma, which had this boilerplate: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fo5gpqru9s6ar901hvzqn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fo5gpqru9s6ar901hvzqn.png" alt="Custom File Boilerplate"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rather than returning &lt;code&gt;widget.child&lt;/code&gt;, which is the static text that displays &lt;code&gt;Software Developer&lt;/code&gt;, I want to use the package I just installed to make the text dynamic. I replaced the build method as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fv1ydsq546s3vccj1mwmd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fv1ydsq546s3vccj1mwmd.png" alt="Adding Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, I added the &lt;code&gt;AnimatedTextKit&lt;/code&gt; widget, which will animate the texts I provided in a loop. Here’s the final result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fi0w5y2io7924gvhyb9sw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fi0w5y2io7924gvhyb9sw.gif" alt="Website Gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And there it is! My landing page is mostly ready. There are still some easter eggs I want to implement, but I first need to design the rest of the website. &lt;/p&gt;

&lt;p&gt;As a final touch, I set up GitHub pages and deployed the site. Click &lt;a href="https://github.com/ivan-015/flutter-portfolio-site" rel="noopener noreferrer"&gt;here&lt;/a&gt; to see the Github repo and source code, and &lt;a href="https://ivan-015.github.io/flutter-portfolio-site/#/" rel="noopener noreferrer"&gt;here&lt;/a&gt; to see the website. &lt;/p&gt;

&lt;p&gt;DISCLAIMER: no &lt;code&gt;.g.dart&lt;/code&gt; files were modified during the making of this article.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>showdev</category>
      <category>productivity</category>
      <category>startup</category>
    </item>
    <item>
      <title>Figma + Flutter Complex Fills, Drop Shadows, SVGs and Borders - parabeac_core v2.5</title>
      <dc:creator>Ivan Huerta</dc:creator>
      <pubDate>Wed, 23 Mar 2022 15:02:18 +0000</pubDate>
      <link>https://dev.to/parabeac/figma-flutter-complex-fills-drop-shadows-svgs-and-borders-parabeaccore-v25-f8i</link>
      <guid>https://dev.to/parabeac/figma-flutter-complex-fills-drop-shadows-svgs-and-borders-parabeaccore-v25-f8i</guid>
      <description>&lt;p&gt;As &lt;a href="https://github.com/Parabeac/parabeac_core" rel="noopener noreferrer"&gt;parabeac_core&lt;/a&gt; matures as a continuous Figma to Flutter generator, we wanted to add more robust support for styling. In the latest release (parabeac_core v2.5) we did exactly that. Some of the support we added were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Complex Fill Support

&lt;ul&gt;
&lt;li&gt;Mixed Solid Color&lt;/li&gt;
&lt;li&gt;Image&lt;/li&gt;
&lt;li&gt;Linear Gradients&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Rectangle and Text Drop Shadow Support&lt;/li&gt;

&lt;li&gt;

Border Support

&lt;ul&gt;
&lt;li&gt;Border Radius&lt;/li&gt;
&lt;li&gt;Border Thickness&lt;/li&gt;
&lt;li&gt;Border Color&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Image Vectors map to SVG&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Let’s walk through how some of this works!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you’d like to test any of this out, feel free to duplicate this Figma file:&lt;/em&gt; &lt;a href="https://www.figma.com/file/25pZ3AFZH0rGBwOMoB7l1W/parabeac_core-v2.5-Styling-Tests?node-id=0%3A1" rel="noopener noreferrer"&gt;https://www.figma.com/file/25pZ3AFZH0rGBwOMoB7l1W/parabeac_core-v2.5-Styling-Tests?node-id=0%3A1&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Complex Fill Support
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Mixed Color
&lt;/h3&gt;

&lt;p&gt;Remember in grade school when the teacher asked you to mix 2 colors to make a new color? Well that’s exactly what we added support for in Figma. If you mix blue &amp;amp; red, you now get a magenta color in Flutter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fjumldv5d3ru362s822v4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fjumldv5d3ru362s822v4.png" alt="Mixed Color Support"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Container&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nl"&gt;width:&lt;/span&gt; &lt;span class="mf"&gt;197.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mf"&gt;120.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;decoration:&lt;/span&gt; &lt;span class="n"&gt;BoxDecoration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x70991d66&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Image Fill
&lt;/h3&gt;

&lt;p&gt;Say you wanted to add an image to this mix. Good news! We make this easy by converting this fill into an image with a mixed green fill, so you’ll never have to miss out on the rock staring at you ;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Foia47szmst62vrqi3dme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Foia47szmst62vrqi3dme.png" alt="Image Fill Support"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s"&gt;'assets/images/imagewithtint.png'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;package:&lt;/span&gt; &lt;span class="s"&gt;'foo'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;width:&lt;/span&gt; &lt;span class="mf"&gt;197.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mf"&gt;120.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;fit:&lt;/span&gt; &lt;span class="n"&gt;BoxFit&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;none&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Gradient Fill
&lt;/h3&gt;

&lt;p&gt;For the first time we’re adding support for Gradients, you can use Linear Gradient and we’ll convert the code directly. Diamond and Radial gradients are not supported directly yet but we do generate an image for them so that the output is still correct.&lt;/p&gt;

&lt;p&gt;Linear Gradient:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F727g766grg73qvvinywm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F727g766grg73qvvinywm.png" alt="Linear Gradient Support"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Container&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;width:&lt;/span&gt; &lt;span class="mf"&gt;197.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mf"&gt;124.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;decoration:&lt;/span&gt; &lt;span class="n"&gt;BoxDecoration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nl"&gt;gradient:&lt;/span&gt; &lt;span class="n"&gt;LinearGradient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;begin:&lt;/span&gt; &lt;span class="n"&gt;Alignment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1.0000000596046466&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.999999849557967&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="nl"&gt;end:&lt;/span&gt; &lt;span class="n"&gt;Alignment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;1.0000002100466796&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="nl"&gt;colors:&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;[&lt;/span&gt;
        &lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0xffff0000&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x00c4c4c4&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="nl"&gt;stops:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="nl"&gt;tileMode:&lt;/span&gt; &lt;span class="n"&gt;TileMode&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;clamp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Radial/Diamond Gradients get converted to images for now.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F6vi4bapz962zb6ftk7d9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F6vi4bapz962zb6ftk7d9.png" alt="Radial/Diamond Gradient Support"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Rectangle and Text Drop Shadow Support
&lt;/h1&gt;

&lt;p&gt;Now by adding a drop shadow in Figma to Rectangles and Text, we print that out directly to the code, see below:&lt;/p&gt;

&lt;p&gt;(Text)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fbqabp7obrhke6ujutivq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fbqabp7obrhke6ujutivq.png" alt="Text Drop Shadow"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;AutoSizeText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s"&gt;'Howdy'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;style:&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="s"&gt;'Roboto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontSize:&lt;/span&gt; &lt;span class="mf"&gt;12.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontWeight:&lt;/span&gt; &lt;span class="n"&gt;FontWeight&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;w400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;letterSpacing:&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Colors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;black&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;shadows:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="n"&gt;Shadow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0xe5000000&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="nl"&gt;offset:&lt;/span&gt; &lt;span class="n"&gt;Offset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;4.0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="nl"&gt;blurRadius:&lt;/span&gt; &lt;span class="mf"&gt;4.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="nl"&gt;textAlign:&lt;/span&gt; &lt;span class="n"&gt;TextAlign&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)),&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Rectangle)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fs1al05ca4xzgg0g7h329.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fs1al05ca4xzgg0g7h329.png" alt="Rectangle Drop Shadow"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Container&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;width:&lt;/span&gt; &lt;span class="mf"&gt;197.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mf"&gt;120.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;decoration:&lt;/span&gt; &lt;span class="n"&gt;BoxDecoration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x99378c59&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nl"&gt;border:&lt;/span&gt; &lt;span class="n"&gt;Border&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0xff0085ff&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="nl"&gt;width:&lt;/span&gt; &lt;span class="mf"&gt;3.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nl"&gt;boxShadow:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="n"&gt;BoxShadow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x40000000&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="nl"&gt;spreadRadius:&lt;/span&gt; &lt;span class="mf"&gt;4.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nl"&gt;blurRadius:&lt;/span&gt; &lt;span class="mf"&gt;4.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nl"&gt;offset:&lt;/span&gt; &lt;span class="n"&gt;Offset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;4.0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Border Support
&lt;/h1&gt;

&lt;p&gt;Previously, our border support was limited, but we now support border color, border radius, and border thickness. Here’s how it works:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fpc3xz0e9q4regxd3ga0m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fpc3xz0e9q4regxd3ga0m.png" alt="Border Support"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Container&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;width:&lt;/span&gt; &lt;span class="mf"&gt;197.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mf"&gt;120.000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;decoration:&lt;/span&gt; &lt;span class="n"&gt;BoxDecoration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x99378c59&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nl"&gt;borderRadius:&lt;/span&gt; &lt;span class="n"&gt;BorderRadius&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Radius&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;circular&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="nl"&gt;border:&lt;/span&gt; &lt;span class="n"&gt;Border&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Color&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0xff0085ff&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="nl"&gt;width:&lt;/span&gt; &lt;span class="mf"&gt;3.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Image Vectors Map To SVG
&lt;/h1&gt;

&lt;p&gt;Lastly, previously complex shapes convert to images, but when scaling these images, they tend to be low quality images. With our latest update, these are now turned into &amp;amp; used as SVGs so that you have pixel-perfect scaling!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fcv6l0218lejdw495f4id.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fcv6l0218lejdw495f4id.png" alt="SVG Figma"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F053nko7asbpm5zbs3nei.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F053nko7asbpm5zbs3nei.png" alt="SVG Flutter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re reading this, thanks for checking this out! We’d love to hear your thoughts &amp;amp; feedback. Be sure to join our community on &lt;a href="https://discord.com/invite/qUrghes" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; or email us for support at &lt;a href="mailto:support@parabeac.com"&gt;support@parabeac.com&lt;/a&gt;😎&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>figma</category>
      <category>design</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Figma to Widgetbook - parabeac_core v2.4</title>
      <dc:creator>Ivan Huerta</dc:creator>
      <pubDate>Fri, 25 Feb 2022 23:00:19 +0000</pubDate>
      <link>https://dev.to/parabeac/figma-to-widgetbook-parabeaccore-v24-1hai</link>
      <guid>https://dev.to/parabeac/figma-to-widgetbook-parabeaccore-v24-1hai</guid>
      <description>&lt;p&gt;Hey everyone, recently we added support for &lt;a href="https://dev.to/parabeac/generating-isolated-component-packages-for-flutter-56n7"&gt;component isolation&lt;/a&gt; in our Figma to Flutter converter &lt;a href="https://github.com/Parabeac/parabeac_core" rel="noopener noreferrer"&gt;parabeac_core&lt;/a&gt; which was a big step in helping developers generate code in a large scale application where it is necessary to isolate UI components into their own packages.&lt;/p&gt;

&lt;p&gt;Many development teams creating component packages in other frameworks will use tools like Storybook.js for testing. For Flutter, &lt;a href="https://www.widgetbook.io/" rel="noopener noreferrer"&gt;Widgetbook&lt;/a&gt; is one of the best options which is why &lt;a href="https://github.com/Parabeac/parabeac_core" rel="noopener noreferrer"&gt;parabeac_core&lt;/a&gt; now has the option to export the code to be immediately testable in Widgetbook. Here's how!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: We also have our video guide here: &lt;a href="https://youtu.be/aKsmXR1vF2M" rel="noopener noreferrer"&gt;https://youtu.be/aKsmXR1vF2M&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the config file of parabeac_core, (&lt;code&gt;parabeac_core/lib/configurations/configurations.json&lt;/code&gt;) set &lt;code&gt;"componentIsolation"&lt;/code&gt; to &lt;code&gt;"componentIsolation": "widgetbook"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F3amu6wo5f1zqig4rvpro.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F3amu6wo5f1zqig4rvpro.png" alt="Configuration File parabeac_core"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run parabeac_core as usual and viola, you have a Flutter project with Widgetbook ready to test your component package.&lt;br&gt;
 You can duplicate and use this demo project here: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.figma.com/file/R7GBEc0mfXsJi6B7y3lITe/Parabeac-Widgetbook-Example?node-id=0%3A1" rel="noopener noreferrer"&gt;https://www.figma.com/file/R7GBEc0mfXsJi6B7y3lITe/Parabeac-Widgetbook-Example?node-id=0%3A1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fy7farrl4f1gvsawiajpl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fy7farrl4f1gvsawiajpl.png" alt="Parabeac Figma Component Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F5q8igh4pi94bpg666epa.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F5q8igh4pi94bpg666epa.gif" alt="Parabeac Widgetbook Gen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can then run it by running: &lt;br&gt;
&lt;code&gt;flutter run project_name/lib/main_widgetbook.g.dart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Next? Start adding the logic needed for this component package. Learn here! - &lt;a href="https://docs.parabeac.com/docs/how-to-guides/component-isolation" rel="noopener noreferrer"&gt;https://docs.parabeac.com/docs/how-to-guides/component-isolation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>figma</category>
      <category>widgetbook</category>
      <category>parabeac</category>
    </item>
    <item>
      <title>Calling All Africa Flutter Developers &amp; Figma Designers!</title>
      <dc:creator>Ivan Huerta</dc:creator>
      <pubDate>Sat, 12 Feb 2022 08:06:57 +0000</pubDate>
      <link>https://dev.to/parabeac/calling-all-africa-flutter-developers-figma-designers-4i5o</link>
      <guid>https://dev.to/parabeac/calling-all-africa-flutter-developers-figma-designers-4i5o</guid>
      <description>&lt;p&gt;In partnership with our Parabeac Africa Chapter led by Will Odia, we are throwing our first challenge where you can win up to $300 USD by building an app prototype or component package using Figma, Flutter &amp;amp; Parabeac! You can use &lt;a href="https://github.com/Parabeac/parabeac_core"&gt;parabeac_core&lt;/a&gt; which is our open-source tool that converts Figma files into Flutter code or Parabeac Nest which is a web app that enables you to take the design file, generate code, and merge it into a Github repo.&lt;/p&gt;

&lt;p&gt;To participate in the challenge, create an app prototype or a component package using Parabeac and submit your video(s) here: &lt;a href="https://airtable.com/shrq1fHwJtTs1mu9v"&gt;https://airtable.com/shrq1fHwJtTs1mu9v&lt;/a&gt;&lt;br&gt;
There are two challenges available:&lt;/p&gt;

&lt;p&gt;Video Submission: Judged by Parabeac team members; We will select 1st ($300), 2nd, ($200) &amp;amp; 3rd ($100) place winners based on the video submitted and a review of the codebase. (3 min max)&lt;/p&gt;

&lt;p&gt;TikTok Submission ($100): The video with the most views highlighting the prototype/package built with Parabeac will be the winner. (Be sure to use the #parabeac hashtag)&lt;/p&gt;

&lt;p&gt;Be sure to watch this video to help give you ideas on submissions!&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=FmopfwIzVIU&amp;amp;t=2"&gt;https://www.youtube.com/watch?v=FmopfwIzVIU&amp;amp;t=2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>africa</category>
      <category>design</category>
      <category>figma</category>
    </item>
    <item>
      <title>Generating Isolated Component Packages for Flutter</title>
      <dc:creator>Ivan Huerta</dc:creator>
      <pubDate>Thu, 03 Feb 2022 01:10:45 +0000</pubDate>
      <link>https://dev.to/parabeac/generating-isolated-component-packages-for-flutter-56n7</link>
      <guid>https://dev.to/parabeac/generating-isolated-component-packages-for-flutter-56n7</guid>
      <description>&lt;p&gt;Our open-source Figma to Flutter converter has been used across various projects. While many developers will include UI directly in their Flutter project, we learned that for other companies and projects, the best use case of Parabeac was generating components, particularly for projects looking to scale. With the uptrend of tools like Storybook &amp;amp; Component Isolation that help test &amp;amp; scale UI, we decided to add changes to &lt;a href="https://github.com/Parabeac/parabeac_core" rel="noopener noreferrer"&gt;parabeac_core&lt;/a&gt; that enables this development workflow.&lt;/p&gt;

&lt;p&gt;So what does a component package look like?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fl2v3lqh3dcuuo8eyvc0o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fl2v3lqh3dcuuo8eyvc0o.png" alt="Component Package"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's relatively simple, but the main idea is to completely isolate your UI code from your application code. The code &amp;amp; assets generated from &lt;a href="https://github.com/Parabeac/parabeac_core" rel="noopener noreferrer"&gt;parabeac_core&lt;/a&gt; are now prepared to be used as a package.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fznz2l8hkswn874rs6s37.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fznz2l8hkswn874rs6s37.png" alt="Component Isolation with Parabeac"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To use the component package in your Flutter app, you'll want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add Base BLoC to the component package&lt;/li&gt;
&lt;li&gt;Push to Github&lt;/li&gt;
&lt;li&gt;Import into Flutter Project&lt;/li&gt;
&lt;li&gt;Override BLoC with application logic in the Flutter Project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can import the component package as easy as doing the following the pubspec.yaml:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;example_project:
    git: git@github.com:&amp;lt;gh_username&amp;gt;/example_component_package.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can learn how to create your own component package by following the steps in our developer guide here: &lt;a href="https://docs.parabeac.com/docs/how-to-create-a-component-package" rel="noopener noreferrer"&gt;https://docs.parabeac.com/docs/how-to-create-a-component-package&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading! We'd love to hear your feedback so that we can continue improving the project. Leave a comment or reach out to us on our &lt;a href="https://discord.com/invite/qUrghes" rel="noopener noreferrer"&gt;Discord server&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>parabeac</category>
      <category>design</category>
      <category>news</category>
    </item>
  </channel>
</rss>
