36+ Embedded GUI Widgets — Built for Production

From basic buttons and sliders to real-time graphs, 3D widgets, and fully animated carousels — Sparklet's embedded GUI widget library covers every MCU and MPU display use case. MISRA C compliant. Hardware-accelerated. Drag-and-drop ready in Flint UI Designer.

What Is an Embedded GUI Widget Library?

An embedded GUI widget library is a collection of pre-built user interface components — buttons, sliders, graphs, meters, lists, and containers — that developers use to assemble display screens on microcontrollers (MCUs) and microprocessors (MPUs). Rather than drawing every pixel from scratch, engineers configure and compose widgets to build complete HMIs in hours, not weeks.

Sparklet ships with 36+ production-ready widgets across four categories: input controls, data visualisation, container and navigation, and advanced 3D components. Every widget is written in pure C, MISRA C compliant, hardware-accelerated where the platform supports it, and fully configurable through Flint UI Designer — Sparklet's no-code WYSIWYG design tool — without writing a single line of layout code.

This page covers the complete Sparklet widget catalogue, how each category is used across industries, and what sets Sparklet's widget quality apart from open-source and competing commercial frameworks. For platform-specific widget performance benchmarks, see the Performance & Memory page.

Widget Categories

Four Widget Categories — One Coherent Framework

Every widget shares the same rendering pipeline, event model, and property API. Mix and compose across categories without integration overhead. All categories are available as first-class components in Flint UI Designer's drag-and-drop palette.

Input & Control

Button (Push, Toggle, Radio), CheckBox, Slider, RotaryKnob, TextEdit, SwipeButton — all touch- and encoder-ready with configurable visual states for idle, pressed, focused, and disabled.

Data Visualisation

Graph (Line, Bar, Range), Meter, ProgressBar (linear and circular), Clock, TextArea, Static — designed for real-time data display on medical monitors, automotive clusters, and industrial dashboards.

Container & Navigation

Window, Dialog, ScrollView, GridView, Carousel, DotNavigator, FixedView, Holder, Viewport, ScrollBar, MsgBox, ListBox, ListView, ComboBox, Menu, Tab, TaskBar — structural building blocks for every screen layout.

Advanced & 3D

3DWidget, 3DView, Keyboard, KeyboardKey, CustomWidget — for applications requiring 3D model rendering, on-screen keyboard integration, or fully bespoke UI components unique to a product.

Input & Control Widgets

Touch-Ready Controls for Every Interaction Pattern

Sparklet's input widget set covers every control interaction needed on a touchscreen or encoder-driven embedded display — from momentary button presses to continuous value adjustment and free-text entry.

Three specialised button variants cover every action pattern. Push Button triggers an immediate action on press or release — ideal for Start, Stop, Confirm, or screen navigation. Toggle Button maintains state between presses (On/Off, Enable/Disable, Mute) with distinct visuals per state. Radio Button enforces single-selection within a group, auto-deselecting the previous choice — essential for mode selection, unit switching, or configuration menus. All three types support fully customisable visual states (idle, pressed, focused, disabled) and can be styled with text, icons, or image fills.

Push Toggle Radio Button embedded GUI widget

Data Visualisation Widgets

Real-Time Data Display for Dashboards, Monitors, and Instruments

Sparklet's data visualisation widgets are purpose-built for the embedded context: minimal RAM allocation, hardware-accelerated rendering where available, and configurable update rates suitable for real-time sensor feeds and live telemetry.

The Graph widget renders Line Charts, Bar Graphs, and Range (area) Graphs from live or historical data arrays. Configurable axes, grid lines, tick marks, data series colours, and legend labels make it suitable for medical patient monitors, industrial SCADA dashboards, and fitness tracker displays. Multiple data series can overlay on a single graph. Update is triggered by a single API call — the widget handles dirty-region invalidation and redraws only the changed portion of the chart, keeping frame rates high even with continuous sensor data. This is the chart widget embedded display engineers most frequently request.

Graph widget embedded display — line bar chart MCU

Container & Navigation Widgets

Screen Structure, Scrolling, and Navigation for Complex Embedded UIs

Container widgets define the structural layout of every screen. They manage child widget positioning, scrolling, layering, and navigation flow — without requiring manual coordinate calculations.

ScrollView is Sparklet's primary scrollable container — it wraps a single child widget (typically a FixedView or GridView) and provides smooth horizontal or vertical scrolling when content exceeds the visible area. Two internal ScrollBar widgets are managed automatically. Viewport clips rendering to the visible region, ensuring content outside the scroll window never consumes render cycles. This combination is the backbone of list screens, settings menus, and long-form content displays on embedded devices with small physical screens.

ScrollView widget embedded MCU GUI scrollable container

Advanced Widgets — 3D Models, Custom Components, and On-Screen Keyboards

3DWidget and 3DView

Sparklet's 3DWidget and 3DView components bring three-dimensional model rendering directly into the embedded GUI widget tree — without a separate 3D engine integration layer. Import .obj or .fbx model files through Flint UI Designer; the asset pipeline converts and optimises geometry for the target platform. On MPUs running Linux with OpenGL ES or Vulkan, the 3D widget renders at full GPU-accelerated frame rates. On capable MCUs, a software-based 3D renderer handles the same widget transparently.

Use cases include digital twin dashboards showing 3D product models, automotive instrument clusters with 3D needle and dial effects, and medical device displays with anatomical reference overlays. The 3DView widget provides the camera, lighting, and scene management; 3DWidget is the individual renderable object placed within a scene. See the 3D Graphics & Widgets page for full platform capability matrix.

CustomWidget

CustomWidget is the Sparklet escape hatch for UI elements that no pre-built widget satisfies. It provides a registered draw callback, an event callback, and a property map — the same interfaces used by every built-in widget. Custom widgets integrate seamlessly into the Flint Designer property inspector and layout system; once registered, a custom widget is treated identically to a built-in one. This means teams can build proprietary gauge styles, brand-specific controls, or application-specific visualisations and deploy them through Flint's drag-and-drop environment like any standard component. Custom widgets are fully hardware-acceleration aware — the draw callback receives the same GDI context as built-in widgets, giving access to DMA2D, D/AVE2D, and Mali GPU drawing primitives.

Keyboard and KeyboardKey

The Keyboard widget is a configurable on-screen keyboard container. KeyboardKey is the individual key component within it. Together they form a flexible OSK system: Flint ships default QWERTY and numeric layouts, but any custom layout — regional character sets, function-key panels, calculator pads, industrial shortcut bars — can be assembled by adding KeyboardKey widgets to a Keyboard container in the designer. The Keyboard widget automatically connects to focused TextEdit widgets, manages shift/caps state, and fires character-entry events to the application layer.

Widget Capability Overview

WidgetCategoryKey PropertiesHardware AccelEvents
Button (Push/Toggle/Radio)InputLabel, icon, states, styleYes (blit)Press, Release, Value-change
SliderInputRange, orientation, stepYes (fill)Press, Drag, Release, Value-change
RotaryKnobInputAngle range, value rangeYes (rotate)Rotate, Release, Value-change
Graph (Line/Bar/Range)Data VizAxes, series, grid, legendYes (line draw)Data-update
MeterData VizNeedle, arc, zones, scaleYes (arc, rotate)Value-change
ProgressBarData VizMin/max, orientation, typeYes (fill-rect, arc)Value-change
ScrollViewContainerAxis, scroll speed, inertiaYes (blit)Scroll, Scroll-end
CarouselContainerOrientation, snap, inertiaYes (blit)Swipe, Page-change
DialogContainerButtons, content, modalNoButton-press, Dismiss
3DWidgetAdvanced.obj/.fbx model, materialGPU (OpenGL ES / Vulkan)Rotate, Scale, Tap
CustomWidgetAdvancedCustom draw/event callbacksFull GDI accessAll via callback

What Sets Sparklet's Widget Library Apart

Six reasons embedded teams choose Sparklet widgets over LVGL, TouchGFX, and emWin alternatives.
MISRA C

MISRA C Compliant Widget Code

Every widget in Sparklet's library is written to MISRA C standards — a hard requirement for automotive (ISO 26262), medical (IEC 62304), and safety-critical industrial HMIs. LVGL, TouchGFX, and emWin do not offer full MISRA C compliance across their widget codebase.

Hardware Accelerated

Hardware-Accelerated Rendering

Widgets delegate fill, blit, alpha blend, and rotate operations to platform-specific 2D hardware (DMA2D on STM32, D/AVE2D on Renesas, Mali GPU on RA8D1 and i.MX 8) automatically. The same widget code achieves 60fps on accelerated platforms and degrades gracefully to software rendering on bare MCUs — no code changes required.

Animated

Built-In Animation for Every Widget

Every widget property — position, size, opacity, colour, value — supports keyframe animation through Flint's animation timeline. Smooth state transitions, easing curves, and sequenced multi-widget animations are configured in the designer, not coded. Animated widgets run through Sparklet's execution engine without consuming extra RAM for animation buffers.

No-Code Configuration

Drag-and-Drop in Flint UI Designer

Every widget is a first-class Flint Designer component. Drag onto canvas, configure properties visually, connect to state machines and data bindings, export optimised C code. No manual coordinate calculations, no layout XML, no separate widget configuration step. From first widget placement to compiled, running embedded UI in under a day.

Low Memory

Minimal RAM Footprint

Widget instances carry only the state data they need. Sparklet's widget allocator is configurable — applications include only the widget types they use, keeping Flash size bounded. The full widget library runs in as little as 16 KB RAM for simple single-screen applications, scaling to 200 KB for complex multi-screen HMIs with animation and data binding.

Cross-Platform

Same Widget API Across All Platforms

The Sparklet widget API is identical on Renesas RH850, NXP i.MX RT1170, STM32H7, Infineon TRAVEO, Nuvoton, Rockchip, and the Windows/Linux PC simulator. Code written and tested in the simulator runs unmodified on target hardware. Platform-specific GPU calls are handled entirely inside the rendering layer — widget code never contains hardware-specific branches.

Frequently Asked Questions About Sparklet's Embedded GUI Widget Library

Sparklet includes 36+ widgets across four categories. Input and control: Button (Push, Toggle, Radio), CheckBox, Slider, RotaryKnob, TextEdit, SwipeButton. Data visualisation: Graph (Line, Bar, Range), Meter, ProgressBar (linear and circular), Clock, Static, TextArea, ImageHolder. Container and navigation: Window, Dialog, ScrollView, GridView, Carousel, DotNavigator, FixedView, Holder, Viewport, ScrollBar, MsgBox, ListBox, ListView, ComboBox, Menu, Tab, TaskBar. Advanced: 3DWidget, 3DView, Keyboard, KeyboardKey, CustomWidget.

See Every Widget in Action — Free Evaluation

Download the Sparklet evaluation binary and Flint UI Designer. Explore the full 36+ widget catalogue in the Windows PC simulator — no target hardware required. Build your first embedded UI screen today.