{"id":15945,"date":"2023-09-18T11:11:18","date_gmt":"2023-09-18T05:41:18","guid":{"rendered":"https:\/\/fastbitlab.com\/?p=15945"},"modified":"2023-09-18T11:11:18","modified_gmt":"2023-09-18T05:41:18","slug":"stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/","title":{"rendered":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 57| Exercise implementation on simulator part-2"},"content":{"rendered":"<div class=\"boldgrid-section color-neutral-background-color color-neutral-text-contrast bg-background-color\" style=\"box-shadow: #cecece 0px 0px 0px 0px;\" data-bg-color-1=\"#faf5ea\">\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-lg-1 col-md-12 col-sm-12 col-xs-12\"><\/div>\n<div class=\"col-lg-10 col-md-12 col-xs-12 col-sm-12\">\n<p>&nbsp;<\/p>\n<h1 class=\"\" style=\"text-align: center; font-size: 35px; line-height: 50px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><strong>RGB Sliders Creation, Alignment, and Customization<\/strong><\/span><\/h1>\n<div class=\"row bg-editor-hr-wrap\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<div>\n<div class=\"bg-hr bg-hr-16\" style=\"border-style: solid; border-width: 0px 0px 2px;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">In this article, we&#8217;ll delve into the implementation of RGB sliders on a simulator interface. These sliders are a key component in creating an interactive RGB color mixer.<\/span><\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">In our user interface (UI) design, we aim to build three sliders, each responsible for adjusting one of the RGB color components: Red (R), Green (G), and Blue (B). Let&#8217;s get started.<\/span><\/p>\n<figure id=\"attachment_15948\" aria-describedby=\"caption-attachment-15948\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-15948 size-medium\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/09\/Figure-1-2-300x250.png\" alt=\"Figure 1. RGB Mixer demo\" width=\"300\" height=\"250\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-2-300x250.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-2.png 768w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-15948\" class=\"wp-caption-text\">Figure 1. RGB Mixer demo<\/figcaption><\/figure>\n<p class=\"\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 28px; line-height: 41px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\"><span style=\"color: #ff0000;\"><strong><span style=\"text-decoration: underline;\">Creating the Red Slider<\/span><\/strong><\/span><\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">Our first task is to create the slider for the Red component (R). We can achieve this with the following code snippet:<\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px; padding-left: 40px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><b><span style=\"color: #f00279;\">lv_obj_t<\/span>* slider_r = lv_slider_create(lv_scr_act());<\/b><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">Here, <\/span><span style=\"font-weight: 400;\">slider_r<\/span><span style=\"font-weight: 400;\"> is a variable that will store the slider object. By using <\/span><span style=\"font-weight: 400;\">lv_slider_create()<\/span><span style=\"font-weight: 400;\">, we create the slider itself. The <\/span><span style=\"font-weight: 400;\">lv_scr_act()<\/span><span style=\"font-weight: 400;\"> function is used to mention the parent of the slider, which means the slider will be placed on the active screen.<\/span><\/p>\n<pre class=\"color-5-text-contrast color5-background-color\" style=\"font-size: 14px; box-shadow: #cecece 0px 0px 0px 0px inset;\"><span style=\"font-weight: 400;\"><span style=\"color: #ff99cc;\">#include<\/span>\"lvgl\/lvgl.h\"<\/span>\r\n<span style=\"font-weight: 400;\"><span style=\"color: #ff99cc;\">void<\/span> rgb_mixer_create_ui(<span style=\"color: #ff99cc;\">void<\/span>)<\/span>\r\n<span style=\"font-weight: 400;\">{<\/span>\r\n<span style=\"font-weight: 400; color: #008000;\">    \/*Create sliders*\/<\/span>\r\n<span style=\"font-weight: 400;\"><span style=\"color: #f00279;\">     lv_obj_t<\/span>* slider_r = lv_slider_create(lv_scr_act());<\/span>\r\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p class=\"\" style=\"text-align: center;\">&nbsp;Creating a Slider<\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">After running the code, you can see the result in Figure 2, where the slider is successfully created and displayed. <\/span><span style=\"font-weight: 400;\">A slider is a child of the parent, that is the screen. That&#8217;s why, when you display the screen, it also displays its child. Screen&#8217;s child is a slider.&nbsp;<\/span><\/span><\/p>\n<figure id=\"attachment_15949\" aria-describedby=\"caption-attachment-15949\" style=\"width: 781px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-15949 \" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/09\/Figure-2-2.png\" alt=\"Figure 2. Output\" width=\"781\" height=\"388\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-2.png 1714w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-2-300x149.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-2-1024x509.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-2-768x382.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-2-1536x764.png 1536w\" sizes=\"(max-width: 781px) 100vw, 781px\" \/><figcaption id=\"caption-attachment-15949\" class=\"wp-caption-text\">Figure 2. Output<\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">With these steps, we&#8217;ve successfully created the first slider. Now, let&#8217;s proceed to create sliders for Green and Blue using a similar approach.<\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">We create the variables <\/span><span style=\"font-weight: 400;\">slider_g<\/span><span style=\"font-weight: 400;\"> and <\/span><span style=\"font-weight: 400;\">slider_b<\/span><span style=\"font-weight: 400;\"> to represent the Green and Blue sliders. We use the<\/span><span style=\"font-weight: 400;\"> lv_slider_create(<\/span><span style=\"font-weight: 400;\">)<\/span><span style=\"font-weight: 400;\"> function again, and as before, they will be created as children of the screen.<\/span><\/p>\n<pre class=\"color-5-text-contrast color5-background-color\" style=\"font-size: 14px; box-shadow: #cecece 0px 0px 0px 0px inset;\"><span style=\"font-weight: 400;\"><span style=\"color: #ff99cc;\">#include<\/span>\"lvgl\/lvgl.h\"<\/span>\r\n<span style=\"font-weight: 400;\"><span style=\"color: #ff99cc;\">void<\/span> rgb_mixer_create_ui(<span style=\"color: #ff99cc;\">void<\/span>)<\/span>\r\n<span style=\"font-weight: 400;\">{<\/span>\r\n<span style=\"font-weight: 400; color: #008000;\">     \/*Create sliders*\/<\/span>\r\n<span style=\"font-weight: 400;\"><span style=\"color: #f00279;\">    lv_obj_t<\/span>* slider_r = lv_slider_create(lv_scr_act());<\/span>\r\n<span style=\"font-weight: 400;\"><span style=\"color: #f00279;\">    lv_obj_t<\/span>* slider_g = lv_slider_create(lv_scr_act());<\/span>\r\n<span style=\"font-weight: 400;\"><span style=\"color: #f00279;\">    lv_obj_t<\/span>* slider_b = lv_slider_create(lv_scr_act());<\/span>\r\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p class=\"\" style=\"text-align: center;\">Slider creation for R, G, B<\/p>\n<p class=\"\" style=\"font-size: 20px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><strong><span style=\"text-decoration: underline; color: #d43302;\">Slider creation for R, G, B<\/span><\/strong><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">After running the code, you will notice that all three sliders are created, but by default, they are stacked on top of each other. <\/span><span style=\"font-weight: 400;\">&nbsp;<\/span><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">As a result, it&#8217;s not clear which slider corresponds to each RGB component. To address this, we need to position them separately.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_15951\" aria-describedby=\"caption-attachment-15951\" style=\"width: 691px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-15951\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/09\/Figure-5-1.png\" alt=\"Figure 3. Output User interface design\" width=\"691\" height=\"292\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-5-1.png 1360w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-5-1-300x127.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-5-1-1024x432.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-5-1-768x324.png 768w\" sizes=\"(max-width: 691px) 100vw, 691px\" \/><figcaption id=\"caption-attachment-15951\" class=\"wp-caption-text\">Figure 3. Output<\/figcaption><\/figure>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">To avoid confusion, let&#8217;s focus on one slider at a time, and then activate the others when needed. This way, we can differentiate between the RGB sliders easily.<\/span><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">In summary, this article guides us through the process of creating sliders for RGB values. After creating the sliders, we need to arrange them properly on the screen to avoid overlap. By following the steps provided, you will be able to create and manage the sliders effectively.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 28px; line-height: 40px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\"><span style=\"text-decoration: underline; color: #ff0000;\">Aligning the Sliders<\/span><\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">In Figure 4, you can observe some alignments in the RGB Mixer UI. To achieve such alignments, we need to explore object alignment techniques.<\/span><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">As you can observe, there are both y and x offsets. How can we achieve this? To achieve this, you have to explore object alignment.&nbsp;&nbsp;<\/span><\/p>\n<figure id=\"attachment_15990\" aria-describedby=\"caption-attachment-15990\" style=\"width: 469px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-15990\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/09\/Figure-1-3.png\" alt=\"Figure 1.RGB Mixer UI User interface design\" width=\"469\" height=\"294\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-3.png 1429w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-3-300x188.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-3-1024x641.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-3-768x481.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-3-320x200.png 320w\" sizes=\"(max-width: 469px) 100vw, 469px\" \/><figcaption id=\"caption-attachment-15990\" class=\"wp-caption-text\">Figure 4.RGB Mixer UI<\/figcaption><\/figure>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">You won&#8217;t find any function like lv_slider_align or anything of the sort. Because it&#8217;s a basic property, that&#8217;s why, you have to use lv_obj_align.<\/span><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">In the <\/span><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/docs.lvgl.io\/8.3\/_downloads\/39cea4971f327964c804e4e6bc96bfb4\/LVGL.pdf\"><span style=\"font-weight: 400;\">LVGL documentation<\/span><\/a><\/span><span style=\"font-weight: 400;\"> (version 8.3), you&#8217;ll find a segment titled <\/span><span style=\"color: #993366;\"><b>Alignment<\/b><\/span><span style=\"font-weight: 400;\"> within the Base object section. This is where you can utilize the lv_obj_align function.<\/span><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">Now, let&#8217;s employ the lv_obj_align function. Specify the desired alignment type. In this case, I&#8217;ll use LV_ALIGN_TOP_MID.<\/span><\/p>\n<figure id=\"attachment_15991\" aria-describedby=\"caption-attachment-15991\" style=\"width: 746px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-15991\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/09\/Figure-2-3.png\" alt=\"Figure 2. Base object alignment - User interface design\" width=\"746\" height=\"378\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-3.png 1704w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-3-300x152.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-3-1024x518.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-3-768x389.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-2-3-1536x777.png 1536w\" sizes=\"(max-width: 746px) 100vw, 746px\" \/><figcaption id=\"caption-attachment-15991\" class=\"wp-caption-text\">Figure 5. Base object alignment<\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<pre class=\"color-5-text-contrast color5-background-color\" style=\"font-size: 15px; box-shadow: #cecece 0px 0px 0px 0px inset;\"><span style=\"font-weight: 400;\"><span style=\"color: #ff99cc;\">void<\/span> rgb_mixer_create_ui(<span style=\"color: #ff99cc;\">void<\/span>)<\/span>\r\n<span style=\"font-weight: 400;\">{<\/span>\r\n\r\n <strong><span style=\"color: #008000;\">\/*Create sliders*\/<\/span><\/strong>\r\n<span style=\"font-weight: 400;\"><span style=\"color: #f00279;\">     lv_obj_t<\/span>* slider_r = lv_slider_create(lv_scr_act());\r\n<\/span><span style=\"font-weight: 400;\"><span style=\"color: #f00279;\">     lv_obj_t<\/span>* slider_g = lv_slider_create(lv_scr_act());<\/span>\r\n<span style=\"font-weight: 400;\"><span style=\"color: #f00279;\">     lv_obj_t<\/span>* slider_b = lv_slider_create(lv_scr_act());<\/span>\r\n\r\n\r\n<strong><span style=\"color: #008000;\"> \/*Align sliders*\/<\/span><\/strong>\r\n<span style=\"font-weight: 400;\">     lv_obj_align(slider_r,LV_ALIGN_TOP_MID,0, 40);<\/span>\r\n<span style=\"font-weight: 400;\">     lv_obj_align_to(slider_g, slider_r, LV_ALIGN_TOP_MID,0,40);<\/span>\r\n<span style=\"font-weight: 400;\">     lv_obj_align_to(slider_b, slider_g, LV_ALIGN_TOP_MID, 0, 40);<\/span>\r\n\r\n\r\n<strong><span style=\"color: #008000;\">\/* Create a base object to use it as rectangle *\/<\/span><\/strong>\r\n<span style=\"font-weight: 400;\"><span style=\"color: #f00279;\">     lv_obj_t<\/span>* rect = lv_obj_create(lv_scr_act());<\/span>\r\n<span style=\"font-weight: 400;\">     lv_obj_set_size(rect, 300, 80);<\/span>\r\n<span style=\"font-weight: 400;\">     lv_obj_align_to(rect, slider_b, LV_ALIGN_TOP_MID, 0, 30);\r\n<\/span><span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 20px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><strong>Slider Creation:<\/strong><\/span><\/p>\n<ul class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Three sliders (slider_r, slider_g, and slider_b) are created using the lv_slider_create() function. These sliders will presumably control an RGB colour&#8217;s red, green, and blue components.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 20px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><strong>Slider Alignment:<\/strong><\/span><\/p>\n<ul class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li><span style=\"font-weight: 400; color: #000000;\">The sliders are aligned using the lv_obj_align() and lv_obj_align_to() functions. They are aligned vertically in the middle of the screen (LV_ALIGN_TOP_MID) with a slight gap between them.<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">The slider_r is aligned directly at the middle top of the screen.<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">The slider_g is aligned to be directly below slider_r, maintaining the vertical alignment and a slight gap.<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">The slider_b is aligned to be directly below slider_g, maintaining the vertical alignment and a slight gap.<\/span><\/li>\n<\/ul>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 20px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><strong>Rectangle Creation:<\/strong><\/span><\/p>\n<ul class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li><span style=\"font-weight: 400;\">A rectangle object (rect) is created using the lv_obj_create() function. This rectangle will likely display the mixed RGB color.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Lv_obj_set_size \u2192 You can control the width and height using this function. And width and height you have to mention in pixels. The rectangle&#8217;s size is 300 pixels wide and 80 pixels tall using the lv_obj_set_size() function.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">The rectangle is aligned directly below slider_b, with a slight gap, using the lv_obj_align_to() function.<\/span><\/li>\n<\/ul>\n<p class=\"\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">You can even explore more LVGL APIs to make it better. This code creates a simple user interface for an RGB color mixer. Users can manipulate three sliders to adjust a colour&#8217;s red, green, and blue components. The resulting mixed color is displayed as a rectangle below the sliders. This interface allows users to visually control and see the effects of changing the RGB values on the color output.<\/span><\/p>\n<figure id=\"attachment_15992\" aria-describedby=\"caption-attachment-15992\" style=\"width: 692px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-15992\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/09\/Figure-3-2.png\" alt=\"Figure 3. Output- User interface design\" width=\"692\" height=\"451\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-3-2.png 1121w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-3-2-300x196.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-3-2-1024x668.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-3-2-768x501.png 768w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><figcaption id=\"caption-attachment-15992\" class=\"wp-caption-text\">Figure 6. Output<\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">In the next article, we&#8217;ll explore how to apply colors to various parts of the slider, such as the &#8216;Main,&#8217; &#8216;Indicator,&#8217; and &#8216;Knob&#8217; components, and we&#8217;ll also learn how to add labels for a more comprehensive UI. Stay tuned for more!<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 20px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><strong>FastBit Embedded Brain Academy Courses<\/strong><\/span><\/p>\n<p class=\"\" style=\"font-size: 16px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/fastbitlab.com\/course1\">https:\/\/fastbitlab.com\/course1<\/a><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<\/div>\n<div class=\"col-lg-1 col-md-12 col-sm-12 col-xs-12\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; RGB Sliders Creation, Alignment, and Customization &nbsp; In this article, we&#8217;ll delve into the implementation of RGB sliders on a simulator interface. These sliders are a key component in creating an interactive RGB color mixer. In our user interface (UI) design, we aim to build three sliders, each responsible for adjusting one of the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":15948,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[],"class_list":["post-15945","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>RGB Sliders Creation, Alignment, and Customization<\/title>\n<meta name=\"description\" content=\"Learn how to create, align, and customize RGB sliders in your User interface(UI) design. Follow our comprehensive guide for precise control\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RGB Sliders Creation, Alignment, and Customization\" \/>\n<meta property=\"og:description\" content=\"Learn how to create, align, and customize RGB sliders in your User interface(UI) design. Follow our comprehensive guide for precise control\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/\" \/>\n<meta property=\"og:site_name\" content=\"FastBit EBA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fastbiteba\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-18T05:41:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"768\" \/>\n\t<meta property=\"og:image:height\" content=\"639\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"FastBitLab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:site\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"FastBitLab\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 57| Exercise implementation on simulator part-2\",\"datePublished\":\"2023-09-18T05:41:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/\"},\"wordCount\":955,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/Figure-1-2.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/\",\"name\":\"RGB Sliders Creation, Alignment, and Customization\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/Figure-1-2.png\",\"datePublished\":\"2023-09-18T05:41:18+00:00\",\"description\":\"Learn how to create, align, and customize RGB sliders in your User interface(UI) design. Follow our comprehensive guide for precise control\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/Figure-1-2.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/Figure-1-2.png\",\"width\":768,\"height\":639,\"caption\":\"Figure 1. RGB Mixer demo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 57| Exercise implementation on simulator part-2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"name\":\"FastBit EBA\",\"description\":\"Your Online Academy of Embedded Systems\",\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\",\"name\":\"FastBit EBA\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"width\":640,\"height\":640,\"caption\":\"FastBit EBA\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/fastbiteba\\\/\",\"https:\\\/\\\/x.com\\\/fastbiteba\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fastbit-embedded-brain-academy-b3167b124\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCa1REBV9hyrzGp2mjJCagBg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\",\"name\":\"FastBitLab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"caption\":\"FastBitLab\"},\"description\":\"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RGB Sliders Creation, Alignment, and Customization","description":"Learn how to create, align, and customize RGB sliders in your User interface(UI) design. Follow our comprehensive guide for precise control","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/","og_locale":"en_US","og_type":"article","og_title":"RGB Sliders Creation, Alignment, and Customization","og_description":"Learn how to create, align, and customize RGB sliders in your User interface(UI) design. Follow our comprehensive guide for precise control","og_url":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2023-09-18T05:41:18+00:00","og_image":[{"width":768,"height":639,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-2.png","type":"image\/png"}],"author":"FastBitLab","twitter_card":"summary_large_image","twitter_creator":"@fastbiteba","twitter_site":"@fastbiteba","twitter_misc":{"Written by":"FastBitLab","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 57| Exercise implementation on simulator part-2","datePublished":"2023-09-18T05:41:18+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/"},"wordCount":955,"commentCount":0,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-2.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/","url":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/","name":"RGB Sliders Creation, Alignment, and Customization","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-2.png","datePublished":"2023-09-18T05:41:18+00:00","description":"Learn how to create, align, and customize RGB sliders in your User interface(UI) design. Follow our comprehensive guide for precise control","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-2.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/09\/Figure-1-2.png","width":768,"height":639,"caption":"Figure 1. RGB Mixer demo"},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-rgb-sliders-creation-alignment-user-interfaceui-design\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fastbitlab.com\/blog\/"},{"@type":"ListItem","position":2,"name":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 57| Exercise implementation on simulator part-2"}]},{"@type":"WebSite","@id":"https:\/\/fastbitlab.com\/blog\/#website","url":"https:\/\/fastbitlab.com\/blog\/","name":"FastBit EBA","description":"Your Online Academy of Embedded Systems","publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fastbitlab.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fastbitlab.com\/blog\/#organization","name":"FastBit EBA","url":"https:\/\/fastbitlab.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","width":640,"height":640,"caption":"FastBit EBA"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/fastbiteba\/","https:\/\/x.com\/fastbiteba","https:\/\/www.linkedin.com\/in\/fastbit-embedded-brain-academy-b3167b124\/","https:\/\/www.youtube.com\/channel\/UCa1REBV9hyrzGp2mjJCagBg"]},{"@type":"Person","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d","name":"FastBitLab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","caption":"FastBitLab"},"description":"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries."}]}},"_links":{"self":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/15945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/comments?post=15945"}],"version-history":[{"count":5,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/15945\/revisions"}],"predecessor-version":[{"id":15997,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/15945\/revisions\/15997"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/15948"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=15945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=15945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=15945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}