<?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: SHERKHAN ARIFZHONOV</title>
    <description>The latest articles on DEV Community by SHERKHAN ARIFZHONOV (@accessible89).</description>
    <link>https://dev.to/accessible89</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F773623%2Fb5572dc6-1dd6-4843-ac64-29e912dc459a.jpg</url>
      <title>DEV Community: SHERKHAN ARIFZHONOV</title>
      <link>https://dev.to/accessible89</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/accessible89"/>
    <language>en</language>
    <item>
      <title>Establishing Global Font Styles in a Flutter Project: Insights from the Xela Design System</title>
      <dc:creator>SHERKHAN ARIFZHONOV</dc:creator>
      <pubDate>Thu, 27 Jul 2023 20:40:45 +0000</pubDate>
      <link>https://dev.to/xela/establishing-global-font-styles-in-a-flutter-project-insights-from-the-xela-design-system-5838</link>
      <guid>https://dev.to/xela/establishing-global-font-styles-in-a-flutter-project-insights-from-the-xela-design-system-5838</guid>
      <description>&lt;p&gt;Hello, fellow Flutter enthusiasts! The role of fonts in your application's visual consistency and user interface experience is indispensable. They not only relay information but also set the tone and mood of your application. However, handling these styles can become an intricate task, particularly in large-scale projects.&lt;/p&gt;

&lt;p&gt;In this article, we will examine how to construct global font styles in Flutter. This approach ensures uniformity across your application, makes your design more appealing, and significantly accelerates your development workflow. We will share insights from our experience of developing the Xela Design System, a unique library packed with a plethora of ready-to-use components, inclusive of font styles.&lt;/p&gt;

&lt;p&gt;We aim to demonstrate how we exploited Flutter's capabilities to devise scalable, adaptable, and effortlessly customizable font styles in the Xela Design System. Follow along as we take you through the step-by-step process of this venture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Setting Up a Flutter Project in Android Studio&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first step in our endeavor is to establish a new Flutter project. If you've already dabbled in Flutter and Android Studio, this process should be straightforward. If you're a Flutter novice, fret not, we will walk you through all the necessary steps.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Launch Android Studio&lt;/strong&gt;: Ensure you have the latest versions of Android Studio and the Flutter plugin installed. If you don't, you can procure them from the official &lt;a href="https://developer.android.com/studio"&gt;Android Studio&lt;/a&gt; and &lt;a href="https://flutter.dev/"&gt;Flutter&lt;/a&gt; websites.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Initiate a new Flutter project&lt;/strong&gt;: Navigate to &lt;code&gt;File -&amp;gt; New -&amp;gt; New Flutter Project&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Select the type of project&lt;/strong&gt;: In the ensuing window, opt for &lt;code&gt;Flutter Application&lt;/code&gt; and click &lt;code&gt;Next&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Configure the project details&lt;/strong&gt;: Fill out the necessary fields, including the project name, its location, and a brief description. Then, select the Flutter SDK version you wish to use (if you have multiple versions installed).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Choose a package name for your project&lt;/strong&gt;: The subsequent step involves selecting your project's package name. This is conventionally the reverse URL of your website, but you can select any unique name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Wrap up&lt;/strong&gt;: Click &lt;code&gt;Finish&lt;/code&gt;, and Android Studio will construct a new Flutter project for you.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, you're equipped with a new Flutter project, primed for further adjustments and development. In the next segment, we'll delve into how to start integrating font styles into your new project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Establishing a uikit Directory within the lib Folder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Our next move is to create an organized directory structure for our project. Effectively managing the files and directories within a project is integral to smooth and efficient development. Let's create a folder named &lt;code&gt;uikit&lt;/code&gt;, which will serve as the home for our custom styles and UI components.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Access the lib directory&lt;/strong&gt;: In the left panel of Android Studio, you will find the &lt;code&gt;lib&lt;/code&gt; directory. This directory holds the primary code of your Flutter application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Generate a new directory&lt;/strong&gt;: Right-click on the &lt;code&gt;lib&lt;/code&gt; directory and then navigate to &lt;code&gt;New -&amp;gt; Directory&lt;/code&gt;. Input &lt;code&gt;uikit&lt;/code&gt; as the name for your new directory.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You now have a &lt;code&gt;uikit&lt;/code&gt; directory nested within your project's &lt;code&gt;lib&lt;/code&gt; directory. This will be our base for UI styles and components. In the upcoming steps, we'll begin populating it with our font styles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Creating a text_style.dart Dart File&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that we've got our &lt;code&gt;uikit&lt;/code&gt; folder all set up, it's time to create a Dart file that will hold our font styles. We'll name this file &lt;code&gt;text_style.dart&lt;/code&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Navigate to the uikit folder&lt;/strong&gt;: Click on the &lt;code&gt;uikit&lt;/code&gt; folder that we established in the previous step.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Generate a new Dart file&lt;/strong&gt;: Right-click on the &lt;code&gt;uikit&lt;/code&gt; folder, then select &lt;code&gt;New -&amp;gt; Dart File&lt;/code&gt;. Input &lt;code&gt;text_style&lt;/code&gt; as the name for this new file.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You've now got a &lt;code&gt;text_style.dart&lt;/code&gt; file nestled within the &lt;code&gt;uikit&lt;/code&gt; folder. This will be the file where we lay out our font styles. In the steps that follow, we'll begin adding code for our font styles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Importing Flutter's Material Package and Creating XelaTextStyle Class&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With our &lt;code&gt;text_style.dart&lt;/code&gt; file ready to go, let's get started with our coding process. We'll kick things off by importing Flutter's Material package, which provides a myriad of useful widgets and styles, and then create our &lt;code&gt;XelaTextStyle&lt;/code&gt; class to house our font styles.&lt;/p&gt;

&lt;p&gt;Incorporate the following code into &lt;code&gt;text_style.dart&lt;/code&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="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;XelaTextStyle&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Future home of our font styles&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code above starts by importing Flutter's &lt;code&gt;material.dart&lt;/code&gt; library, a fundamental part of Flutter that provides a range of widgets and functionalities for app development. Following this, we declare a new class &lt;code&gt;XelaTextStyle&lt;/code&gt; which will accommodate our font styles.&lt;/p&gt;

&lt;p&gt;In the next step, we'll begin defining specific font styles within our &lt;code&gt;XelaTextStyle&lt;/code&gt; class.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Introducing the XelaTextStyle._() Constructor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's further refine our &lt;code&gt;XelaTextStyle&lt;/code&gt; class by adding a private named constructor &lt;code&gt;XelaTextStyle._()&lt;/code&gt;. This constructor ensures that our class cannot be instantiated or extended, essentially turning it into a "static" class.&lt;/p&gt;

&lt;p&gt;Modify your code 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="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;XelaTextStyle&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;XelaTextStyle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;_&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  &lt;span class="c1"&gt;// The newly added private constructor&lt;/span&gt;

  &lt;span class="c1"&gt;// Font styles will be defined here&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above snippet, we've added &lt;code&gt;XelaTextStyle._();&lt;/code&gt; to our class. This is a private named constructor, preventing the creation of instances of our &lt;code&gt;XelaTextStyle&lt;/code&gt; class. This ensures that the class remains "static", with only static members (in this case, text styles) and no capability to create an instance of the class.&lt;/p&gt;

&lt;p&gt;This approach is advantageous for grouping and organizing code, particularly for styles and templates that you'll reuse throughout your app without needing to instantiate the class each time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Integrating a Custom Font into Your Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In most design undertakings, you'll likely encounter a need to use custom fonts. For our case, we'll be incorporating the &lt;code&gt;Nunito Sans&lt;/code&gt; font from our Design System. Let's proceed to add this font to our project.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Generate an assets folder&lt;/strong&gt;: Right-click on your project's root directory and select &lt;code&gt;New -&amp;gt; Directory&lt;/code&gt;. Name this new folder &lt;code&gt;assets&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inside the assets folder, create a fonts folder&lt;/strong&gt;: Right-click on the &lt;code&gt;assets&lt;/code&gt; folder you've just created and select &lt;code&gt;New -&amp;gt; Directory&lt;/code&gt;. Label this new folder &lt;code&gt;fonts&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Include your font files&lt;/strong&gt;: Move your &lt;code&gt;Nunito Sans&lt;/code&gt; font files (usually with &lt;code&gt;.ttf&lt;/code&gt; or &lt;code&gt;.otf&lt;/code&gt; extensions) into the &lt;code&gt;fonts&lt;/code&gt; folder. You can do this by dragging and dropping the files into the Android Studio window.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Revise your pubspec.yaml&lt;/strong&gt;: Open the &lt;code&gt;pubspec.yaml&lt;/code&gt; file and include the path to your font files under the &lt;code&gt;assets&lt;/code&gt; section. Your &lt;code&gt;pubspec.yaml&lt;/code&gt; should look somewhat like this:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;flutter&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;assets&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;assets/fonts/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remember to save the changes to your &lt;code&gt;pubspec.yaml&lt;/code&gt; file and run the &lt;code&gt;flutter pub get&lt;/code&gt; command in the terminal to update your project's dependencies after each modification.&lt;/p&gt;

&lt;p&gt;You now have a custom font at your disposal for use in your Flutter application! In the following step, we'll employ this font in our text styles within the &lt;code&gt;XelaTextStyle&lt;/code&gt; class.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7: Defining a Static fontFamily Constant&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the best practices when managing font styles is to create a static constant for the font family. This enables you to change the font throughout the entire application without having to adjust every individual style.&lt;/p&gt;

&lt;p&gt;Incorporate the following code into the &lt;code&gt;XelaTextStyle&lt;/code&gt; class:&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="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;XelaTextStyle&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;XelaTextStyle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;_&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  

  &lt;span class="c1"&gt;// Font family&lt;/span&gt;
  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nunito Sans"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// Font styles will be defined here&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, we've created a static &lt;code&gt;fontFamily&lt;/code&gt; constant that contains the name of our font. In the subsequent steps, we'll use this font name when we define our font styles. Should you decide to alter the font of your application later on, you'll only need to update this single value, and the changes will be propagated across all font styles that utilize &lt;code&gt;fontFamily&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Understanding Font Styles in the Xela Design System in Figma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before we start translating our font styles into Flutter, let's first understand what styles are available in the Xela Design System in Figma. This will help us determine which styles we need to create in our Flutter project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Em19IQ7I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2aebib0hxxrljp0pesvz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Em19IQ7I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2aebib0hxxrljp0pesvz.png" alt="Xela Design System: Typography Component" width="800" height="1242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are the styles we have at our disposal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Title1, Title2, Title3&lt;/strong&gt;: These styles are typically employed for various levels of headings in your app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Headline&lt;/strong&gt;: This style is often designated for leading headlines or standout elements on the screen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Subheadline&lt;/strong&gt;: This style is used for secondary headings or supplementary text under main titles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Body, Body Bold, Body Small, Body Small Bold&lt;/strong&gt;: These styles are utilized for the primary text in your app. They include normal weight variations, bold, and a reduced font size option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Caption&lt;/strong&gt;: This style is typically designated for captions under images or smaller text notes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Button Large, Button Medium, Button Small&lt;/strong&gt;: These styles are intended for text on different sizes of buttons.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With an understanding of these styles, let's proceed to the next step where we'll start defining these styles in our Flutter project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9: Defining the Title1 Style&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's time to start applying font styles from our Design System to our Flutter project. We'll kick things off with &lt;code&gt;Title1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Incorporate the following code into the &lt;code&gt;XelaTextStyle&lt;/code&gt; class:&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="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;XelaTextStyle&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;XelaTextStyle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;_&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  

  &lt;span class="c1"&gt;// Font family&lt;/span&gt;
  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nunito Sans"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// Font styles&lt;/span&gt;
  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;Title1&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;60&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;w800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// Other styles will be defined here&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We've now defined the &lt;code&gt;Title1&lt;/code&gt; style, which can be applied throughout our app. This style sets the font size to 60, the weight to 800 (corresponding to extra bold in Flutter), and uses our custom "Nunito Sans" font.&lt;/p&gt;

&lt;p&gt;In the subsequent steps, we'll continue defining the remaining styles from our Design System.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10: Incorporating the Remaining Styles&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's proceed with adding the rest of the font styles to our &lt;code&gt;XelaTextStyle&lt;/code&gt; class. &lt;/p&gt;

&lt;p&gt;The updated &lt;code&gt;XelaTextStyle&lt;/code&gt; class should look 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="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;XelaTextStyle&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;XelaTextStyle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;_&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  

  &lt;span class="c1"&gt;// Font family&lt;/span&gt;
  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nunito Sans"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// Font styles&lt;/span&gt;
  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;Title1&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;60&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;w800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;Title2&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;48&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;w800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;Title3&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;34&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;w900&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;Headline&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;24&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;w800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;Subheadline&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;18&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;w800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;Body&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;16&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;normal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;BodyBold&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;16&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;w800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;SmallBody&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;14&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;normal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;SmallBodyBold&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;14&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;w800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;Caption&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;12&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;w700&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;ButtonLarge&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;16&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;w700&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;ButtonMedium&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;14&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;w800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt; &lt;span class="n"&gt;ButtonSmall&lt;/span&gt; &lt;span class="o"&gt;=&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;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;12&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;w800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nl"&gt;fontFamily:&lt;/span&gt; &lt;span class="n"&gt;fontFamily&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;The &lt;code&gt;XelaTextStyle&lt;/code&gt; class now includes all the font styles based on your Design System. You can employ these styles throughout your app by referencing them as &lt;code&gt;XelaTextStyle.Title1&lt;/code&gt;, &lt;code&gt;XelaTextStyle.Body&lt;/code&gt;, etc.&lt;/p&gt;

&lt;p&gt;Please keep in mind that the font weight in Flutter might not precisely match what you see in your Design System, depending on the font you're employing. This is due to the differing interpretation of font weights between Flutter and some design systems. If the font doesn't appear as expected, you might need to adjust the font weight to achieve the desired appearance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 11: Demonstrating Font Style Usage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that we've established our font styles, let's illustrate how they can be utilized in a Flutter application.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Implementing Styles in a Text Widget&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The &lt;code&gt;Text&lt;/code&gt; widget in Flutter accepts a &lt;code&gt;style&lt;/code&gt; argument, which lets you set the text style. We can directly pass our styles from &lt;code&gt;XelaTextStyle&lt;/code&gt; into this argument.&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;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s"&gt;'Hello, Flutter!'&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;XelaTextStyle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Headline&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;ol&gt;
&lt;li&gt;&lt;strong&gt;Applying Styles to Buttons&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We can also implement our text styles in other widgets, such as buttons.&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;ElevatedButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;onPressed:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
  &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s"&gt;'Press me'&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;XelaTextStyle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ButtonLarge&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;ol&gt;
&lt;li&gt;&lt;strong&gt;Utilizing Styles in AppBar&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The AppBar in Flutter also permits you to customize the text style for its title.&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;AppBar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;title:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s"&gt;'Hello, Flutter!'&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;XelaTextStyle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Title1&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;ol&gt;
&lt;li&gt;&lt;strong&gt;Using Styles in ListTile&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;ListTile&lt;/code&gt; allows you to set text styles for its leading and title text.&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;ListTile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;leading:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s"&gt;'Leading Text'&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;XelaTextStyle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Subheadline&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="nl"&gt;title:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s"&gt;'Title Text'&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;XelaTextStyle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Body&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;As you can see, our font styles can be employed in diverse contexts within our app, fostering consistency and simplifying the management of text styles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Incorporating font styles effectively in your Flutter project is of paramount importance. It not only ensures visual consistency throughout your app but also enhances the user experience. Moreover, centralizing font styles in a dedicated class, as we've done with &lt;code&gt;XelaTextStyle&lt;/code&gt;, streamlines their management and makes it easier to apply changes uniformly.&lt;/p&gt;

&lt;p&gt;We hope this step-by-step guide has provided valuable insights into how to create and utilize font styles in a Flutter project, drawing from our experience in developing the Xela Design System. By following these practices, you can elevate the appeal and professionalism of your Flutter applications.&lt;/p&gt;

&lt;p&gt;To further simplify your Flutter UI development, we invite you to explore our website at &lt;a href="https://xelaui.com"&gt;xelaui.com&lt;/a&gt;. There, you'll discover our comprehensive Flutter library, replete with numerous pre-built components for your projects. And as a token of appreciation for our readers, we offer a &lt;strong&gt;25% discount&lt;/strong&gt; with the promo code &lt;strong&gt;4EOJFLM&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For a hands-on experience, you can check out &lt;a href="https://xelaui.com/docs-flutter/demo.html"&gt;our library's demo&lt;/a&gt; in an existing project. This demo also showcases a section dedicated to font styles, similar to what we've discussed in this article.&lt;/p&gt;

&lt;p&gt;Thank you for taking the time to read this article. We hope it will assist you in creating captivating and professional Flutter applications.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Unleashing Creativity with Xela Design System for Figma: An In-depth Look at Components (Part 3)</title>
      <dc:creator>SHERKHAN ARIFZHONOV</dc:creator>
      <pubDate>Thu, 27 Jul 2023 15:57:31 +0000</pubDate>
      <link>https://dev.to/xela/unleashing-creativity-with-xela-design-system-for-figma-an-in-depth-look-at-components-part-3-1kpe</link>
      <guid>https://dev.to/xela/unleashing-creativity-with-xela-design-system-for-figma-an-in-depth-look-at-components-part-3-1kpe</guid>
      <description>&lt;p&gt;Greetings! This is part three of our detailed exploration of the &lt;a href="https://www.figma.com/file/bLu7fYlt0X36ynSbblFiiE/XELA---Design-System-(Preview)"&gt;Xela Design System&lt;/a&gt; for Figma. This all-inclusive design kit has been instrumental in elevating the design and coding processes for myriad projects.&lt;/p&gt;

&lt;p&gt;In this piece, we are set to examine the following components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tabs&lt;/li&gt;
&lt;li&gt;Dialogs&lt;/li&gt;
&lt;li&gt;Date Picker&lt;/li&gt;
&lt;li&gt;Accordion&lt;/li&gt;
&lt;li&gt;Charts&lt;/li&gt;
&lt;li&gt;Toast&lt;/li&gt;
&lt;li&gt;Breadcrumbs&lt;/li&gt;
&lt;li&gt;Pagination&lt;/li&gt;
&lt;li&gt;Divider&lt;/li&gt;
&lt;li&gt;Lists&lt;/li&gt;
&lt;li&gt;Rating&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Xela Components: Revolutionizing Designs
&lt;/h2&gt;

&lt;p&gt;Every component within the Xela Design System is intricately designed to enhance the aesthetics and functionality of your projects. Let's unpack what each of them brings to the table:&lt;/p&gt;

&lt;h3&gt;
  
  
  Tabs:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--geNtXVhP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qjy2p1gtgcpeznnxm4fu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--geNtXVhP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qjy2p1gtgcpeznnxm4fu.png" alt="Xela Design System: Tabs Component" width="800" height="1090"&gt;&lt;/a&gt;&lt;br&gt;
Our Tabs component, featuring 74 unique variations, facilitates the seamless traversing of various sections within your app or website. With multiple states and icons, it aids in crafting an intuitive UI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dialogs:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nHdB099e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qmzc7p6s69z1b44b1vdn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nHdB099e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qmzc7p6s69z1b44b1vdn.png" alt="Xela Design Kit: Dialog Component" width="800" height="1357"&gt;&lt;/a&gt;&lt;br&gt;
Our Dialogs component, with 16 diverse variations, helps in structuring informative dialog boxes that promote smooth communication with users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Date Picker:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KyLw5mzc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9xht7k251s5kgo3lssed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KyLw5mzc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9xht7k251s5kgo3lssed.png" alt="Xela Design System: Date Picker Component" width="800" height="1074"&gt;&lt;/a&gt;&lt;br&gt;
The Date Picker component is designed to simplify date inputs, thus providing users with a reliable and easily understandable interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Accordion:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_YMYxS4U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ko738j3p1zmc57wd03iw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_YMYxS4U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ko738j3p1zmc57wd03iw.png" alt="Xela Design Kit: Accordion Component" width="800" height="2119"&gt;&lt;/a&gt;&lt;br&gt;
With 16 variations to choose from, our Accordion component effectively handles the presentation of extensive information while maintaining a neat and readable layout.&lt;/p&gt;

&lt;h3&gt;
  
  
  Charts:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--And-jF9A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5fiw956ydwx1xted221a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--And-jF9A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5fiw956ydwx1xted221a.png" alt="Xela Design System: Chart Component" width="800" height="677"&gt;&lt;/a&gt;&lt;br&gt;
The Charts component, boasting 25 chart variations, allows for visually appealing representation of data, thus enhancing users' comprehension.&lt;/p&gt;

&lt;h3&gt;
  
  
  Toast:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wlFrMYlL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2yzntbxb58i9ekdwqpxu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wlFrMYlL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2yzntbxb58i9ekdwqpxu.png" alt="Xela Design Kit: Toast Component" width="800" height="746"&gt;&lt;/a&gt;&lt;br&gt;
With 72 variations, our Toast component ensures that your users are well-informed about real-time updates or messages in an uncomplicated manner.&lt;/p&gt;

&lt;h3&gt;
  
  
  Breadcrumbs:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xm6YIGIc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mtjmdlzanltot2c7pllk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xm6YIGIc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mtjmdlzanltot2c7pllk.png" alt="Xela Design Kit: Breadcrumbs Component" width="800" height="756"&gt;&lt;/a&gt;&lt;br&gt;
The Breadcrumbs component enhances user navigation through your application or website by accurately displaying their current location.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pagination:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ia8GAZjU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/71o26o6471dm6s1sv26s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ia8GAZjU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/71o26o6471dm6s1sv26s.png" alt="Xela Design System: Pagination Component" width="800" height="929"&gt;&lt;/a&gt;&lt;br&gt;
Our Pagination component, with 10 unique variations, ensures a simple and user-friendly navigation experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Divider:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G86-5hVD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9bym859c77wqfzzzkxri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G86-5hVD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9bym859c77wqfzzzkxri.png" alt="Xela Design Kit: Divider Component" width="744" height="604"&gt;&lt;/a&gt;&lt;br&gt;
The Divider component aids in structuring content in a way that boosts clarity and cleanliness of design.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lists:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---UIJ_hIc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vb42aufkc9p1hlev15un.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---UIJ_hIc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vb42aufkc9p1hlev15un.png" alt="Xela Design System: List Component" width="744" height="957"&gt;&lt;/a&gt;&lt;br&gt;
The Lists component allows for a structured display of list data, improving presentation and understanding.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rating:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N9hkMOBN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rgv5bqi3j058qdqudxsg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N9hkMOBN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rgv5bqi3j058qdqudxsg.png" alt="Xela Design Kit: Rating Component" width="800" height="799"&gt;&lt;/a&gt;&lt;br&gt;
The Rating component invites users to rate items, thereby promoting interaction and encouraging user feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unleash the Potential of the Xela Design System Today!
&lt;/h2&gt;

&lt;p&gt;As a token of our gratitude, we offer an exclusive &lt;strong&gt;&lt;em&gt;25% discount&lt;/em&gt;&lt;/strong&gt; on any of our products to our readers. Use the code &lt;em&gt;4EOJFLM&lt;/em&gt; at checkout to avail this discount.&lt;/p&gt;

&lt;p&gt;Stay tuned for the upcoming parts of this series where we delve into the blocks and templates of the Xela Design System. Visit our website &lt;a href="https://xelaui.com/"&gt;XelaUI.com&lt;/a&gt; and commence your journey towards efficient design and coding with the Xela Design System!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Embark on this fascinating journey with us and share your insights and reviews - we're all ears!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ui</category>
      <category>ux</category>
      <category>design</category>
    </item>
    <item>
      <title>Unleashing Creativity with Xela Design System for Figma: An In-depth Look at Components (Part 2)</title>
      <dc:creator>SHERKHAN ARIFZHONOV</dc:creator>
      <pubDate>Tue, 25 Jul 2023 19:06:39 +0000</pubDate>
      <link>https://dev.to/xela/unleashing-creativity-with-xela-design-system-for-figma-an-in-depth-look-at-components-part-2-50dd</link>
      <guid>https://dev.to/xela/unleashing-creativity-with-xela-design-system-for-figma-an-in-depth-look-at-components-part-2-50dd</guid>
      <description>&lt;p&gt;Welcome to the second part of our detailed series on the &lt;a href="https://www.figma.com/file/bLu7fYlt0X36ynSbblFiiE/XELA---Design-System-(Preview)"&gt;Xela Design System&lt;/a&gt; for Figma. Our initial exploration brought forward several pivotal components that can elevate your design and coding processes. Now, we'll delve deeper into an array of additional components that promise to streamline your project execution.&lt;/p&gt;

&lt;p&gt;As a special thank you for joining us in this exploration, we have a unique surprise for our readers. Ensure you stick around till the end to discover an exclusive promo code offering a discount on any of our offerings.&lt;/p&gt;

&lt;p&gt;In this exploration, we'll concentrate on the following noteworthy components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Toggle&lt;/li&gt;
&lt;li&gt;Slider Input&lt;/li&gt;
&lt;li&gt;Range Slider Input&lt;/li&gt;
&lt;li&gt;Segmented Control&lt;/li&gt;
&lt;li&gt;Tooltips&lt;/li&gt;
&lt;li&gt;Tables&lt;/li&gt;
&lt;li&gt;Badge&lt;/li&gt;
&lt;li&gt;Alert&lt;/li&gt;
&lt;li&gt;Steps&lt;/li&gt;
&lt;li&gt;Chips&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Diving Deeper into Xela Components
&lt;/h2&gt;

&lt;p&gt;Let's dive in and discover the potential these components can bring to your design:&lt;/p&gt;

&lt;h3&gt;
  
  
  Toggle:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G6BMBlIV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ccagfmuesimx7x9k3642.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G6BMBlIV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ccagfmuesimx7x9k3642.png" alt="Xela Design System: Toggle Component" width="800" height="1458"&gt;&lt;/a&gt;&lt;br&gt;
With 12 different forms, our Toggle component is a sleek and user-friendly tool for binary inputs. This versatile component can be customized by size, style, and state.&lt;/p&gt;

&lt;h3&gt;
  
  
  Slider Input:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CPn714PJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hvxsjlhvnwiz9wrl1gj6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CPn714PJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hvxsjlhvnwiz9wrl1gj6.png" alt="Xela Design Kit: Slider Input Component" width="800" height="1309"&gt;&lt;/a&gt;&lt;br&gt;
This interactive component, available in 60 versions, provides an engaging way for users to pick a value from a range. Slider Input also supports tooltips and progress indication.&lt;/p&gt;

&lt;h3&gt;
  
  
  Range Slider Input:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xkmwCeD5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gweo0lbv0vus3o5n78vd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xkmwCeD5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gweo0lbv0vus3o5n78vd.png" alt="Xela Design System: Range Slider Input Component" width="800" height="606"&gt;&lt;/a&gt;&lt;br&gt;
Offering an impressive 400 variants, the Range Slider Input extends beyond the basic slider by allowing a range of values selection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Segmented Control:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GWegnBqT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y9y4zjyl0xamw6dhy44q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GWegnBqT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y9y4zjyl0xamw6dhy44q.png" alt="Xela Design System: Segmented Control Component" width="800" height="947"&gt;&lt;/a&gt;&lt;br&gt;
Our Segmented Control component, with its 66 versions, provides a logical way to organize multiple interconnected buttons, enhancing your application's navigation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tooltips:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SstfgFjG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1hsrc6zqasd5nkc417s9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SstfgFjG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1hsrc6zqasd5nkc417s9.png" alt="Xela Design Kit: Tooltip Component" width="800" height="686"&gt;&lt;/a&gt;&lt;br&gt;
Tooltips are essential for offering contextual assistance to users. With 13 versions to choose from, you can customize the tooltip that best fits your application's aesthetics.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tables:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w3lcA-iM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kfs07y5xrvfrhu5yj85o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w3lcA-iM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kfs07y5xrvfrhu5yj85o.png" alt="Xela Design System: Table Component" width="800" height="1728"&gt;&lt;/a&gt;&lt;br&gt;
Our Tables component comes in multiple layouts, perfect for clearly presenting data, making it digestible and accessible to your users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Badge:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vFOkEln0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1o2rrq9wo63f82rzewy0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vFOkEln0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1o2rrq9wo63f82rzewy0.png" alt="Xela Design Kit: Badge Component" width="704" height="1680"&gt;&lt;/a&gt;&lt;br&gt;
Available in 16 different styles, the Badge component is excellent for highlighting notifications, statuses, or supplemental information linked to your content.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alert:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AtoG2LAn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sljiz57ooefek3u3eed4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AtoG2LAn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sljiz57ooefek3u3eed4.png" alt="Xela Design System: Alert Component" width="800" height="646"&gt;&lt;/a&gt;&lt;br&gt;
The Alert component, with its 16 styles, is designed to inform users about crucial information or changes within the application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rG6vUby_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hn5ymlidfhyzzjmxk5tc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rG6vUby_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hn5ymlidfhyzzjmxk5tc.png" alt="Xela Design Kit: Steps Component" width="800" height="2058"&gt;&lt;/a&gt;&lt;br&gt;
Our Steps component, available in 128 variations, is perfect for illustrating progression or a sequence of tasks in an understandable format.&lt;/p&gt;

&lt;h3&gt;
  
  
  Chips:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zIGP58uC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o6y7m0geo4p6uypckrmo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zIGP58uC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o6y7m0geo4p6uypckrmo.png" alt="Xela Design System: Chip Component" width="800" height="791"&gt;&lt;/a&gt;&lt;br&gt;
The Chips component, with its 144 variations, is designed to showcase complex entities in a compact, user-friendly format.&lt;/p&gt;

&lt;h2&gt;
  
  
  Propel Your Design and Coding Workflow with the Xela Design System
&lt;/h2&gt;

&lt;p&gt;Harness the power of the Xela Design System and elevate your design and coding workflows to a new level. To celebrate our readers, we're gifting an exclusive &lt;strong&gt;&lt;em&gt;25% discount&lt;/em&gt;&lt;/strong&gt; on any of our products. Simply use the code &lt;em&gt;4EOJFLM&lt;/em&gt; at checkout.&lt;/p&gt;

&lt;p&gt;Look out for the next articles in this series as we'll be inspecting the blocks and templates of the Xela Design System. Discover the potency of our design system today by visiting &lt;a href="https://xelaui.com/"&gt;XelaUI.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Embark on this thrilling journey and share your experiences and feedback with us. Step into the future of design and coding with the Xela Design System!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ui</category>
      <category>ux</category>
      <category>design</category>
    </item>
    <item>
      <title>Unleashing Creativity with Xela Design System for Figma: An In-depth Look at Components (Part 1)</title>
      <dc:creator>SHERKHAN ARIFZHONOV</dc:creator>
      <pubDate>Tue, 25 Jul 2023 15:34:46 +0000</pubDate>
      <link>https://dev.to/xela/unleashing-creativity-with-xela-design-system-for-figma-an-in-depth-look-at-components-2p98</link>
      <guid>https://dev.to/xela/unleashing-creativity-with-xela-design-system-for-figma-an-in-depth-look-at-components-2p98</guid>
      <description>&lt;p&gt;Welcome to the first part of our series, where we explore the intricate details of the &lt;a href="https://www.figma.com/file/bLu7fYlt0X36ynSbblFiiE/XELA---Design-System-(Preview)"&gt;Xela Design System&lt;/a&gt; for Figma. For developers in need of an all-encompassing UI Design Kit, or designers seeking a well-structured design system, Xela Design System is the key to transforming your design and coding workflow.&lt;/p&gt;

&lt;p&gt;As a token of our appreciation for joining us on this journey, we have a special gift for our readers. Make sure you read through to the end to find an exclusive promo code for a discount on any of our products.&lt;/p&gt;

&lt;p&gt;In this article, we'll be exploring these powerful components: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Typography&lt;/li&gt;
&lt;li&gt;Colors&lt;/li&gt;
&lt;li&gt;Buttons&lt;/li&gt;
&lt;li&gt;Select&lt;/li&gt;
&lt;li&gt;Text Input&lt;/li&gt;
&lt;li&gt;Number Input&lt;/li&gt;
&lt;li&gt;Textarea&lt;/li&gt;
&lt;li&gt;User Avatar&lt;/li&gt;
&lt;li&gt;Radio Button&lt;/li&gt;
&lt;li&gt;Checkbox&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Exploring the Efficiency of Xela Components
&lt;/h2&gt;

&lt;p&gt;Each component in the Xela Design System is designed to enhance your project's visual appeal and functionality. Here's how:&lt;/p&gt;

&lt;h3&gt;
  
  
  Typography:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D-Kw4bgU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xj57vezdiurzylq740bc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D-Kw4bgU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xj57vezdiurzylq740bc.png" alt="Xela Design Kit: Typography Component" width="800" height="1242"&gt;&lt;/a&gt;&lt;br&gt;
The Typography component allows you to create uniform and visually pleasing text styles across your project. With a broad spectrum of font styles like Title 1, Title 2, Headline, Body and more, this component ensures elegance and visual consistency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Colors:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MX0wnKSw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2fqemqtxgwe8w9fztnlk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MX0wnKSw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2fqemqtxgwe8w9fztnlk.png" alt="Xela Design Kit: Colors Component" width="800" height="1711"&gt;&lt;/a&gt;&lt;br&gt;
The Colors component brings your application to life with beautifully curated colors, hues, and gradients. Create engaging and visually appealing interfaces with a wide array of color options at your disposal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Buttons:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Kc4SKxwI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8clhpvi43vpjbtuiodhp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Kc4SKxwI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8clhpvi43vpjbtuiodhp.png" alt="Xela Design Kit: Button Component" width="800" height="838"&gt;&lt;/a&gt;&lt;br&gt;
The Buttons component, featuring a staggering 288 variations, ensures you can craft the perfect call-to-action elements for every scenario.&lt;/p&gt;

&lt;h3&gt;
  
  
  Select:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fLiTqsVd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jeizhfuv0d489dyzusdb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fLiTqsVd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jeizhfuv0d489dyzusdb.png" alt="Xela Design Kit: Select Component" width="800" height="1177"&gt;&lt;/a&gt;&lt;br&gt;
The Select component, with its 24 Input Select and 22 Dropdown Item options, offers a simple and efficient way for users to input data, enhancing user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Text Input:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8zPIPleQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ftqqcoyk4ttcpgb9e47.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8zPIPleQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ftqqcoyk4ttcpgb9e47.png" alt="Xela Design Kit: Text Input Component" width="800" height="899"&gt;&lt;/a&gt;&lt;br&gt;
Our Text Input component is designed to streamline form creation. With 96 variations, it provides a seamless user interaction experience while maintaining aesthetic appeal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Number Input:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YGZm3Ks_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hcibvhcuhe1ruchovb0v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YGZm3Ks_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hcibvhcuhe1ruchovb0v.png" alt="Xela Design System: Number Input Component" width="768" height="1107"&gt;&lt;/a&gt;&lt;br&gt;
The Number Input component, with its 72 variations, simplifies numerical data input for users. Control states, labels, helper text, and icon positions for a personalized user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Textarea:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z8R6YJsn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d0rfarprye2l5kzn578v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z8R6YJsn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d0rfarprye2l5kzn578v.png" alt="Xela Design System: Textarea Component" width="800" height="954"&gt;&lt;/a&gt;&lt;br&gt;
The Textarea component ensures smooth text input across your application. With 48 variations, this component provides a highly customizable input field for users.&lt;/p&gt;

&lt;h3&gt;
  
  
  User Avatar:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bjXdASD---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tov7jdjn621jm6o98qwh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bjXdASD---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tov7jdjn621jm6o98qwh.png" alt="Xela Design System: User Avatar Component" width="688" height="1136"&gt;&lt;/a&gt;&lt;br&gt;
The User Avatar component adds a personalized touch to user profiles. It offers 132 variations, including size, style, type, counter text position, indicator, and decoration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Radio Button:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kog2AqmX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q9e8fj4gts8pfwfpuc5i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kog2AqmX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q9e8fj4gts8pfwfpuc5i.png" alt="Xela Design System: Radio Button Component" width="800" height="644"&gt;&lt;/a&gt;&lt;br&gt;
Our Radio Button component simplifies user choices with an easy-to-use design. This component offers 60 variations, all customizable to suit the needs of your project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Checkbox:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iFUv49WF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fuzez71axq8s7e9st0bj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iFUv49WF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fuzez71axq8s7e9st0bj.png" alt="Xela Design System: Checkbox Component" width="800" height="762"&gt;&lt;/a&gt;&lt;br&gt;
The Checkbox component facilitates multiple user choices. With 84 customizable variants, this component ensures your checkboxes align with the rest of your design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discover the Power of Xela Design System Today!
&lt;/h2&gt;

&lt;p&gt;As a token of our appreciation, we're offering an exclusive &lt;strong&gt;25% discount&lt;/strong&gt; on any of our products. Just use the code &lt;em&gt;&lt;em&gt;4EOJFLM&lt;/em&gt;&lt;/em&gt; at checkout. Transform your digital experiences with the Xela Design System today!&lt;/p&gt;

&lt;p&gt;Keep an eye out for the next parts of this series where we dive into the blocks and templates of the Xela Design System. Visit our website &lt;a href="https://xelaui.com/"&gt;XelaUI.com&lt;/a&gt; and begin your journey towards efficient design and coding with Xela Design System!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Join us on this exciting journey, and don't hesitate to share your thoughts and feedback with us!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>figma</category>
      <category>ui</category>
      <category>ux</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Boosting Developers' Efficiency with Xela Design Kit: A Comprehensive Solution for UI Design and Coding</title>
      <dc:creator>SHERKHAN ARIFZHONOV</dc:creator>
      <pubDate>Mon, 24 Jul 2023 19:52:22 +0000</pubDate>
      <link>https://dev.to/accessible89/boosting-developers-efficiency-with-xela-design-kit-a-comprehensive-solution-for-ui-design-and-coding-140l</link>
      <guid>https://dev.to/accessible89/boosting-developers-efficiency-with-xela-design-kit-a-comprehensive-solution-for-ui-design-and-coding-140l</guid>
      <description>&lt;p&gt;In search of a flexible UI Design Kit to streamline your coding process? Or maybe you're a designer hunting for a comprehensive design system? Your search ends with the &lt;a href="https://xelaui.com"&gt;Xela Design Kit&lt;/a&gt;, which is set to transform how you design and develop.&lt;/p&gt;

&lt;p&gt;The Xela Design Kit is your all-in-one remedy to every design and development requirement. It boasts potent libraries for numerous platforms: &lt;a href="https://xela-react.xelaui.com/"&gt;React&lt;/a&gt;, &lt;a href="https://xela-flutter.xelaui.com/"&gt;Flutter&lt;/a&gt;, &lt;a href="https://xela-swift.xelaui.com/"&gt;Swift&lt;/a&gt;, and &lt;a href="https://xela-jetpack.xelaui.com/"&gt;Jetpack Compose&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uaNoJZ8-IrQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Unleash the Potential of Our React and Flutter UI Kits
&lt;/h2&gt;

&lt;p&gt;React and Flutter have seen a surge in popularity among developers, owing to their strong, cross-platform capabilities that notably cut down development time. Our &lt;a href="https://xela-react.xelaui.com/?path=%2Fstory%2Ftemplates-data-table--data-table"&gt;React UI Kit&lt;/a&gt; and &lt;a href="https://xelaui.com/docs-flutter/demo.html"&gt;Flutter UI Kit&lt;/a&gt; take full advantage of these platforms, offering a plethora of responsive and interactive components. With Xela Design Kit, web and cross-platform app development becomes swift and efficient.&lt;/p&gt;

&lt;h2&gt;
  
  
  Capitalize on the Sophistication of Swift and Jetpack Compose Components
&lt;/h2&gt;

&lt;p&gt;Native development offers its unique benefits. It harnesses the device's full power and provides a smoother, more responsive user experience. Our &lt;a href="https://apps.apple.com/ru/app/xela-uikit-example-app/id1580981621"&gt;iOS UI Kit&lt;/a&gt; for Swift and &lt;a href="https://play.google.com/store/apps/details?id=tech.b2app.app.xelauikitexampleapp"&gt;Jetpack Compose Components&lt;/a&gt; for Android cater to this need with precision. They're comprehensive, customizable, and designed to enhance your native app development journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  An All-Inclusive Figma Design System
&lt;/h2&gt;

&lt;p&gt;The Xela Design Kit also features a &lt;a href="https://www.figma.com/file/bLu7fYlt0X36ynSbblFiiE/XELA---Design-System-(Preview)"&gt;Figma Design System&lt;/a&gt;. It's a unified collection of design components that helps maintain consistency across platforms. It's versatile, user-friendly, and aids in speedy prototyping.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Xela Design Kit Stands Out
&lt;/h2&gt;

&lt;p&gt;At Xela, we acknowledge that time is precious. That's why we've developed an all-embracing UI design system that conserves your time and energy. With our design kits and libraries, you can concentrate on your application's logic and functionality, leaving the visuals and interface to us.&lt;/p&gt;

&lt;p&gt;Additionally, all our UI kits and libraries are supplemented with extensive documentation. Be it a beginner or a seasoned developer, you'll find our guides simple to grasp and implement. We've got your back!&lt;/p&gt;

&lt;p&gt;In essence, the Xela Design Kit is not merely a product; it's our pledge to assist developers and designers in crafting remarkable digital experiences. It's a tool that bridges the gap between design and code, realizing your vision.&lt;/p&gt;

&lt;p&gt;Ready to explore the Xela Design Kit? Visit our website &lt;a href="https://xelaui.com/"&gt;XelaUI.com&lt;/a&gt; or try our &lt;a href="https://xela-react.xelaui.com/?path=%2Fstory%2Ftemplates-data-table--data-table"&gt;desktop&lt;/a&gt; and &lt;a href="https://xelaui.com/docs-flutter/demo.html"&gt;mobile&lt;/a&gt; demos to witness the prowess of our design system. Your journey towards more efficient design and coding begins with the Xela Design Kit. Join us in embracing the future of design and development.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ui</category>
      <category>designsystem</category>
    </item>
    <item>
      <title>Аfter several years of development, we are finally launched. B2App No code mobile app builder.</title>
      <dc:creator>SHERKHAN ARIFZHONOV</dc:creator>
      <pubDate>Fri, 11 Mar 2022 14:04:55 +0000</pubDate>
      <link>https://dev.to/accessible89/after-several-years-of-development-we-are-finally-launched-b2app-no-code-mobile-app-builder-18il</link>
      <guid>https://dev.to/accessible89/after-several-years-of-development-we-are-finally-launched-b2app-no-code-mobile-app-builder-18il</guid>
      <description>&lt;p&gt;For several years, I nurtured the idea of ​​a mobile application builder, because I understood that it is very difficult and time-consuming to develop mobile applications, and for online stores this is a huge plus in sales.&lt;/p&gt;

&lt;p&gt;In total, at the end of 2019, I finally began to experiment with the interface of the future constructor, created the project architecture, deleted it and changed it again.&lt;/p&gt;

&lt;p&gt;Somewhere in the middle of 2020, the MVP of the project was finally ready and he created only android applications, moreover, written in Java.&lt;/p&gt;

&lt;p&gt;Until the end of 2020, I improved the project written for iOS on SwiftUI and realized that I made a mistake in choosing a technology for android, especially after creating it on SwiftUI. Since the beginning of 2021, the news came out that Jetpack Compose became stable enough for large projects, and I completely rewrote the Android version on Jetpack Compose.&lt;/p&gt;

&lt;p&gt;Finally, a few days ago we finished working on the landing page, connecting payment and editing in the constructor itself and launched.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://b2app.tech"&gt;B2App&lt;/a&gt; - Android &amp;amp; iOS native apps builder without using code for online stores based on Woocommerce, Shopify, Shops-Script and others. It will allow you to create a beautiful and multifunctional mobile application in a few clicks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do we need it?
&lt;/h2&gt;

&lt;p&gt;Mobile e-commerce apps allow you to sell products to your customers more flexibly. But their development is long and expensive, with the help of B2App you can get it in minutes and without using code for Android and iOS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is it for?
&lt;/h2&gt;

&lt;p&gt;For any owners of online stores based on Woocommerce, Shopify and other platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes it stand out from the crowd?
&lt;/h2&gt;

&lt;p&gt;Easy to use - pre-built templates &amp;amp; themes, the intuitive interface lets you customize colors, layouts, and more. Native Apps with world class UI. Build and update App in Real-Time - no need update app in AppStore.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next for B2App - No code mobile app builder for eCommerce.
&lt;/h2&gt;

&lt;p&gt;The ability to get the source code of the project for Android and iOS in a matter of minutes from the created application in B2App for further use and customization. The ability to create not only e-commerce projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://b2app.tech"&gt;B2App No code mobile app builder&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>appbuilder</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>Figma2Android: How we made a Figma plugin to speed up UI development in Jetpack Compose.</title>
      <dc:creator>SHERKHAN ARIFZHONOV</dc:creator>
      <pubDate>Mon, 13 Dec 2021 09:38:53 +0000</pubDate>
      <link>https://dev.to/accessible89/figma2android-how-we-made-a-figma-plugin-to-speed-up-ui-development-in-jetpack-compose-55cj</link>
      <guid>https://dev.to/accessible89/figma2android-how-we-made-a-figma-plugin-to-speed-up-ui-development-in-jetpack-compose-55cj</guid>
      <description>&lt;p&gt;Figma2Android is a Figma plugin that quickly and easily converts designs from Figma to Jetpack Compose (Android) code.&lt;/p&gt;

&lt;p&gt;I (developer) with my partner (designer) do the Figma Design System and libraries for them in SwiftUI (iOS) and Jetpack Compose (Android) to order, and when developing one of the libraries, we realized that it takes a lot of time to transfer the properties of an element from Figma, such as dimensions, colors, styles, padding and more. That is, application development has become more of a transfer of properties into code. Figma already had similar plugins for SwiftUI, VueJS, Html and much more, and one for Jetpack Compose, but it required a bunch of body movements besides installing the plugin itself. Then the idea arose why not write your own converter from Figma to Jetpack Compose, in addition, in those solutions, some properties of the elements that we needed in our work were not implemented.&lt;/p&gt;

&lt;p&gt;In begin, we saw the plugin as a simple internal tool for converting the properties of a selected element into code, but with a deeper study of the Figma API, ideas began to appear that it is possible to export completely blocks and pages, including their properties and child elements. Then, of course, the fantasy played out and I wanted to immediately export a ready-made functional element, for example, it is not easy to Text, and also a TextField, but then the plugin would become more difficult to use and there would be more design requirements, which is a waste of time for us at the moment, in the future it is possible we will implement this one of the ideas for the development of the plug-in, about the ideas for the development of the plug-in will be described in more detail below.&lt;/p&gt;

&lt;p&gt;When we made it for ourselves and began to use it, we realized that such a tool would greatly facilitate the work of most developers on Jetpack Compose, and especially those projects that are starting to move from Android Layout to Jetpack Compose and decided to release it as a final product as a plugin and release it. See it in Figma Community.&lt;br&gt;
When creating the plugin, we used several different technologies, below is a list and a small description of what, where and how it was used.&lt;/p&gt;

&lt;p&gt;Jetpack Compose (Android) — well, of course, the first item is Jetpack Compose itself, now there is a lot of controversy about the pros and cons of this technology, but for me who develops and supports projects simultaneously on SwiftUI and Android Layout, the release of the stable version was a holiday, I think this is the future, if you understand how to use it correctly, you can do incredible things.&lt;/p&gt;

&lt;p&gt;Figma API + TypeScript + Visual Studio Code — Figma’s Plugins API is well documented, plus, of course, I had to use console output in order to better understand the content of each Figma element and its properties. Also, the Figma API documentation explains quite well how to deploy development tools in this case, Visual Studio Code and TypeScript as the development language of the plugin itself.&lt;/p&gt;

&lt;p&gt;Gumroad + Gumroad API + PHP — we used these tools for the future monetization of our product, plus see how difficult it will be to integrate a subscription into the plugin. More details on monetization will be given below.&lt;/p&gt;

&lt;p&gt;SVG Path Data — I had to study and add almost at the very end, since today icons are used a lot in any interface, and without them the converted result looked frankly bad, of course, as a developer, I recommend exporting icons separately and adding them to the project resources, but what can you do for the sake of a beautiful picture :)&lt;/p&gt;

&lt;p&gt;I’ll tell you a little about the difficulties we encountered.&lt;br&gt;
Group in Figma, namely GroupNode and not FrameNode, inside them designers very often create such game that it is impossible to convert them normally into some readable and editable code, because of this there was a decision to refuse to export them altogether, as explained to me my partner is a designer that a well-done design should use AutoLayout and Frame, and everything will be logical and convenient there, which I myself was convinced of when developing the plugin.&lt;br&gt;
Constraints Sigma — in the ideology of Jetpack Compose, you do not need to use Constraints, although there is support for them, we tried to convert Constraints from Figma to Jetpack Compose without using Constraints in the code using indentation and positioning.&lt;/p&gt;

&lt;p&gt;Text — in Figma, text has vertical positioning, which Jetpack Compose Text does not, I struggled for a long time to solve this problem and as a result I simply ignore the height of the text block, and position itself depending on Constraints or the parent of the text if it is AutoLayout. I understand that this is most likely not the best solution, but in my opinion this is the best compromise. The second problem that we did not touch is fonts, each font has different default properties, such as size, leading, kerning, tracking and much more, which can be rendered in one form in Figma, since it is still browser rendering and with differences in mobile rendering, so we decided not to export the fonts, but left the export of their properties, such as size, letter spacing, and weight.&lt;/p&gt;

&lt;p&gt;Learning the principles of design in Figma. I think every good programmer understands that in order to create a truly useful product, you need to at least understand how the users who will use this product think. Oddly enough, the use of ready-made designs from Figma did not help at all in understanding the construction of the design and is very different from the principles of building interfaces in programming, although at first glance everything is very similar to each other. Thanks to my design partner, I managed to study this issue and finally understand how designers think.&lt;/p&gt;

&lt;p&gt;Images in Figma — we wanted to export images from Figma, but realized that this is a useless function for real use in projects, since any raster image is loaded from the Internet or from project resources anyway, plus this would greatly slow down design conversion into the code, since working with images in Figma is asynchronous.&lt;/p&gt;

&lt;p&gt;Monetization in the plugin is a coin with two sides, on the one hand, I want to share a good tool with the community for free, on the other hand, I still need to eat. Therefore, for the initial period, we made a Promo period for everyone — full functionality with the export of all child elements. In the future, there will be a FREE version where the selected element without child elements is exported, and the PRO version where all the functionality will be plus all future updates of the plugin with additional functionality, in fact, we set the nominal price for the plugin at $5/mon so that we would be interested in it in the future. I can say by myself the amount of time it saves during development is in no way comparable to its price.&lt;/p&gt;

&lt;p&gt;Before publishing a plugin in Figma, we read a lot of articles on the Internet about creating plugins and the difficulties faced by developers, and we can say that if you passed approval in the AppStore and GooglePlayStore, then go through the review in Figma for free :). The Figma team is great, they wrote the complete instructions in the documentation that you need to check in your plugin, and you just need to read and do what they write. We did not have any difficulties, only for a long time, so please be patient. In terms of timeline, we sent it for review on October 26, and received approval on November 1, I still think it’s not very long if you remember the times when Apple could review an application for 3–4 weeks.&lt;/p&gt;

&lt;p&gt;In future plans for the development of the Figma2Android plugin:&lt;/p&gt;

&lt;p&gt;Add the ability to select export with children or just the selected item.&lt;/p&gt;

&lt;p&gt;More complete support for Shapes&lt;/p&gt;

&lt;p&gt;Different types of export for example: export of the selected Instance element immediately into a separate component in the code.&lt;/p&gt;

&lt;p&gt;Ability to export ready-made functional elements such as TextField, CheckBox, etc.&lt;/p&gt;

&lt;p&gt;Release a similar plugin for SwiftUI&lt;/p&gt;

&lt;p&gt;and much more :)&lt;/p&gt;

&lt;p&gt;And of course we will be glad to hear your comments and suggestions for plugin development.&lt;/p&gt;

&lt;p&gt;Links to tools and documentation when developing a plugin, and of course the plugin itself and its documentation:&lt;/p&gt;

&lt;p&gt;Figma plugin: Figma2Android — &lt;a href="https://www.figma.com/community/plugin/1030354617366499719/Figma2Android"&gt;https://www.figma.com/community/plugin/1030354617366499719/Figma2Android&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Documentation for Figma2Android — &lt;a href="https://figma2android.tech/docs.html"&gt;https://figma2android.tech/docs.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contact us — &lt;a href="https://figma2android.tech/contact.php"&gt;https://figma2android.tech/contact.php&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figma Plugins API — &lt;a href="https://www.figma.com/plugin-docs/intro/"&gt;https://www.figma.com/plugin-docs/intro/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Figma Plugins API Reference — &lt;a href="https://www.figma.com/plugin-docs/api/api-reference/"&gt;https://www.figma.com/plugin-docs/api/api-reference/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gumroad — &lt;a href="https://gumroad.com/"&gt;https://gumroad.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gumroad API — &lt;a href="https://app.gumroad.com/api"&gt;https://app.gumroad.com/api&lt;/a&gt;&lt;/p&gt;

</description>
      <category>figma</category>
      <category>programming</category>
      <category>android</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
