# Druid - Component GUI Framework

**URL:** <https://forum.defold.com/t/druid-component-gui-framework/64857>\
**Category:** The Defoldmine\
**Created:** [April 13, 2020, 5:29pm UTC](https://forum.defold.com/t/druid-component-gui-framework/64857 "2020-04-13T17:29:10Z")\
**Posts on this page:** 20\
**Page:** 9

<div class="post-metadata">

**Author:** ![Insality](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/insality/32/39737_2.png) [@Insality](https://forum.defold.com/u/Insality)\
**Post date:** [October 29, 2024, 10:07pm UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/164 "2024-10-29T22:07:44Z")

</div>

> [@Pawel](#):
>
> Druid covered by Mike!

Thanks for that! It makes me so happy to see this 🙂

---

<div class="post-metadata">

**Author:** ![megalanthus](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/megalanthus/32/25250_2.png) [@megalanthus](https://forum.defold.com/u/megalanthus)\
**Post date:** [October 30, 2024, 2:25pm UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/165 "2024-10-30T14:25:39Z")

</div>

> [@Insality](#):
>
> Basically this problem is solvable via other collections with popus, so they fully gather input.

Thank you, everything worked out! 👍

---

<div class="post-metadata">

**Author:** ![11123](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/11123/32/33380_2.png) [@11123](https://forum.defold.com/u/11123)\
**Post date:** [November 4, 2024, 2:36am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/166 "2024-11-04T02:36:11Z")

</div>

I opened the Druid 1.0 example in Defold version 1.9.2, and it shows the following error. What should I do?  
/example/components/example\_scene/example\_scene.gui  
The file ‘/example/components/example\_scene/example\_scene.gui’ could not be loaded: Message missing required fields: script

Unable to open  
/example/components/example\_scene/examplscene.gui,since it contains unrecognizabledata. Could the project be missing a requiredextension?

---

<div class="post-metadata">

**Author:** ![Potota](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/potota/32/33404_2.png) [@Potota](https://forum.defold.com/u/Potota)\
**Post date:** [November 4, 2024, 3:14am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/167 "2024-11-04T03:14:05Z")

</div>

What if you load it in the latest Defold version (currently 1.9.4)?

---

<div class="post-metadata">

**Author:** ![11123](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/11123/32/33380_2.png) [@11123](https://forum.defold.com/u/11123)\
**Post date:** [November 4, 2024, 3:42am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/168 "2024-11-04T03:42:16Z")

</div>

Success! Thank you very much!

---

<div class="post-metadata">

**Author:** ![11123](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/11123/32/33380_2.png) [@11123](https://forum.defold.com/u/11123)\
**Post date:** [November 5, 2024, 2:40am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/169 "2024-11-05T02:40:12Z")

</div>

When I use `edit -> create druid component`, the following error appears. What should I do? The operating system is Windows 11.

ERROR:EXT: Create Druid Component’s “run” in /druid/editor\_scripts/druid.editor\_script failed: Command “bash ./build/run\_python\_script\_on\_gui.sh ./build/create\_druid\_component.py ./example/examples/basic/grid/grid.gui” exited with code 49

---

<div class="post-metadata">

**Author:** ![Insality](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/insality/32/39737_2.png) [@Insality](https://forum.defold.com/u/Insality)\
**Post date:** [April 26, 2025, 9:22am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/170 "2025-04-26T09:22:05Z")

</div>

### Druid 1.1.0

 ![Release 1.1.0](https://forum-defold-uploads.b-cdn.net/original/3X/9/3/93b8a18e26b29a757e5f77fe50bbff81a3d4cac7.png)

> **[GitHub - Insality/druid: Powerful Defold UI component framework](https://github.com/Insality/druid)**
>
> Powerful Defold UI component framework

Hello there, Druid users!

The wait is over - **Druid 1.1.0** has arrived! This update brings substantial improvements and exciting new features that make building UI in Defold easier and more powerful than ever.

By the way, the PR number of this release is **#300**. It’s sounds ve-eery huge and the long journey for me!

## Highlights

- **Widgets** are here! This is the evolution of custom components, but Widgets with totally no boilerplate code and far more convenient usage. All Druid examples have been migrated to use widgets. Widgets are now a default way to create a new user custom components.

The widget code is simple as:

```lua
---@class my_widget: druid.widget
local M = {}

function M:init()
	-- Druid is available now
	self.button = self.druid:new_button("button")
end

return M

```

To instantiate a widget, you need to call

```lua
local my_widget = require("widgets.my_widget.my_widget")
self.widget = self.druid:new_widget(my_widget, "widget_template_id")

```

To create a widget with a even more fast way, now you always can right click on GUI file and select `Create Druid Widget` to create a widget file for current GUI file nearby.

- **No more calling `druid.register()`!** All Druid components are now available by default with `self.druid:new_*` functions, making getting started simpler than ever.

- **Druid UI Kit** brings fonts, atlas, and ready-to-use GUI templates right out of the box - a long-requested feature that lets you use Druid UI elements instantly in your projects. I think now it’s a possible to create even a external dependencies with a set of GUI templates and Druid’s widgets to make a ready to use UI kit for projects! The flow to init widgets always now from two steps:

- **Completely reworked documentation** with full code annotations. Let’s check the new brand [Quick API Reference](https://github.com/Insality/druid/blob/develop/api/quick_api_reference.md) to get familiar with **Druid**. Any documentation are generated from the code annotations, so in case to update documentation, you need to update annotations in the code directly.

- **Updated Editor Scripts**. The editor scripts also reworked to be in pure Lua without any dependencies, so using additional options now are much easier. Now for the “Create Widget” or “Create GUI Script” the template can be changed in dedicated “Druid Settings” menu

 ![druid_settings](https://forum-defold-uploads.b-cdn.net/original/3X/f/d/fdaf802b3c0b02ea23863582ba8e660246bd6fa8.png)

## Breaking Changes

- `druid.event` has been replaced with the [defold-event](https://github.com/Insality/defold-event) library, requiring a small migration in your code if you were using Druid events directly before. Double dependencies: `defold-event` and `druid` are now required to use **Druid**.

* * *

This release represents a major step forward in making Druid more maintainable, readable, and powerful. Check out the full changelog for all the details!

The [contributing guide](https://github.com/Insality/druid/blob/develop/CONTRIBUTING.md) is created for people who want to contribute to the Druid.

Thank you for using Druid and please share your feedback!

* * *

**Changelog 1.1.0**

- **[Docs]** Reworked all documentation pages
  - The code now is fully annotated
  - The old API website is removed
  - The API now placed as a markdown files in the `api` folder of the repository
  - Start with [Quick API Reference](https://github.com/Insality/druid/blob/develop/api/quick_api_reference.md) to learn how to use Druid

- **[BREAKING]** Remove `druid.event`, replaced with `defold-event` library. Now it required to two dependencies to use Druid.
  - This allow to make more flexible features, like shaders and sync init functions between script and gui\_script in various cases.
  - You need to migrate from `require("druid.event")` to `require("event.event")` if you are using it in your project
  - If you are used `event.is_exist()` now, you should use `#event > 0` or `not event:is_empty()` instead
  - Use 11+ version of `defold-event` library: `https://github.com/Insality/defold-event/archive/refs/tags/11.zip`
  - Read [defold-event](https://github.com/Insality/defold-event) to learn more about the library

- **[UI Kit]** Add Druid UI Kit, contains `druid.atlas`, `druid_text_bold.font`, `druid_text_regular.font` so now you can use Druid GUI files in your projects.
  - Contains mostly basic shapes for the UI and can contains several icons. Atlas is a small, only `128x128` size and will be included in build only if you use it. Probably will grow a little bit in future.
  - A long waited feature which allows try or just use some **Druid** GUI features almost instantly.
  - No more “rich\_input” template is not working! Should be good for now.
  - Now GUI files from **Druid** can be added inside your project.
  - This allow to include `Default Widgets` - ready to use GUI templates
  - Two fonts will keep in the UI Kit: `druid_text_bold.font` and `druid_text_regular.font`. They each of them `~100KB`, already contains extended characters set, with font size of `40`.

- **[Widgets]**  **Widgets here!**
  - A replacement for Druid’s `custom_components`. Basically it’s the same, but `widgets` contains no boilerplate code and more convinient to use.
  - Now I can include a kind of `widgets` with Druid and you can use it almost instantly in your project.
  - All Druid Examples was migrated to use Widgets instead of Custom Components.

- **[Widgets]** Widgets can be used in GO `script` files.
  - It’s a kind of experimental feature, but looks fun to check.
  - Added the `druid_widget.gui_script` which can register a Druid instance for this GUI scene.
  - You can use `druid.get_widget(class, url)` to get a Druid instance in GO context.
  - All top level functions from widget are available in GO context.
  - It uses an `defold-event` library, so wrapping have a costs.

- **[System]** 🎉 No need for the `druid.register()`! Now all Druid’s components are available by default and available with `self.druid:new_*` functions
  - This means the Druid will be bigger in size, but it’s much comfortable to use
  - In case you want to delete components you are not using, you can do it in fork in `druid.lua` file
  - Read [optimize\_druid\_size.md](https://github.com/Insality/druid/blob/develop/wiki/optimize_druid_size.md) to learn how to reduce the size of the Druid library if you interested
  - Any additional new widgets, utilities files will be not included until you use it
  - You still can register your custom components to make a aliases for them. Widgets are not supported here.

- **[BREAKING]** Removed old `druid.no_stencil_check` and `druid.no_auto_template` flags. Now it’s always disabled
- **[System]** Huge code refactoring and improvements. The goal is to raise maintainability and readability of the code to help people to contribute.
- **[Docs]** Add [CONTRIBUTING.md](https://github.com/Insality/druid/blob/develop/CONTRIBUTING.md) file with various information to help people to contribute to the Druid.
- **[Editor Scripts]** Updated editor scripts
- **[Editor Scripts]** Add “[Druid] Create Druid Widget” instead of “Create Custom Component”
- **[Editor Scripts]** Add “[Druid] Create Druid GUI Script”
- **[Editor Scripts]** Add “[Druid] Settings” editor dialog
  - Contains different documentation links
  - You can adjust the widget template path to use your own templates in “Create Druid Widget” editor script
  - And edit a template for the “Create GUI script” option

- **[Text]** Add `trim_left` and `scale_then_trim_left` text adjust modes
- **[Text]** Add `set_text` function instead `set_to` (the `set_to` now deprecated)
- **[Widget]** Add widget `mini_graph`
- **[Widget]** Add widget `memory_panel` (works over `mini_graph` widget)
- **[Widget]** Add widget `fps_panel` (works over `mini_graph` widget)
- **[Widget]** Add widget `properties_panel`
- **[Unit Tests]** Updated Unit tests
  - Now it’s cover more cases and more code, which is great!

A big thanks to the my Github supporters:

- [Defold Foundation](https://defold.com)
- [Pawel](https://forum.defold.com/u/pawel)
- [Ragetto](https://forum.defold.com/u/ragetto)
- [Ekharkunov](https://forum.defold.com/u/ekharkunov)

And all my other supporters! Very appreciated!

❤ Support ❤

Please support me if you like this project! It will help me keep engaged to update **Druid** and make it even better!

[![Github-sponsors](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&logoColor=#EA4AAA)](https://github.com/sponsors/insality) [![Ko-Fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/insality) [![BuyMeACoffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://www.buymeacoffee.com/insality)

---

<div class="post-metadata">

**Author:** ![Insality](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/insality/32/39737_2.png) [@Insality](https://forum.defold.com/u/Insality)\
**Post date:** [May 2, 2025, 11:56am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/171 "2025-05-02T11:56:14Z")

</div>

In **Druid 1.1.0** , Widgets were introduced, with several of them available “out of the box.”

One of them, which can be useful for your development - **[properties panel](https://insality.github.io/druid/?example=ui_example_widget_properties_panel)**

This properties panel includes controls such as buttons, sliders, inputs, etc. During development, it can be quite useful for quickly adding a control panel for various elements in your game.

I want to explain how you can use it inside your project

### Properties Panel

As a widget, initialization always follows these steps:

- Add GUI template to the scene
- Initialize widget with Druid

Let’s implement this step by step:

1. Open your GUI scene, right-click on Nodes → Add → Template…  
`/druid/widget/properties_panel/properties_panel.gui`  
Then place it on your scene:  

2. Attach a GUI Script with the default Druid template

```lua
local druid = require("druid.druid")

function init(self)
	self.druid = druid.new(self)
end

function final(self)
	self.druid:final()
end

function update(self, dt)
	self.druid:update(dt)
end

function on_message(self, message_id, message, sender)
	self.druid:on_message(message_id, message, sender)
end

function on_input(self, action_id, action)
	return self.druid:on_input(action_id, action)
end

```

1. Next, **require** the properties panel widget class and instantiate it:

```lua
local properties_panel = require("druid.widget.properties_panel.properties_panel")

function init(self)
	self.druid = druid.new(self)
	-- The "properties_panel" is the name of the template id on the GUI scene
	self.properties_panel = self.druid:new_widget(properties_panel, "properties_panel")
end

```

1. Let’s run it and verify everything works:  

You should see no errors, and an empty properties panel will appear on the scene that can be moved around the screen.

* * *

Now that everything is set up, we can add property components to the panel. To view the available widget functions, check the API documentation [here](https://github.com/Insality/druid/blob/master/api/quick_api_reference.md#properties-panel).

Let’s add a button:

```lua
 -- Each add_* function receives a created widget as its first parameter
self.properties_panel:add_button(function(widget)
	-- You can find the API for each property widget on the API page as well
	widget:set_text_property("Hello")
	widget:set_text_button("World")

	--
	widget.button.on_click:subscribe(function()
		print("Button clicked")
	end)
end)

```

So simple! Let’s check result:

Now let’s add a Slider and a Left Right Selector component. Each component has its own API for configuration and communication.

```lua
self.properties_panel:add_slider(function(slider)
	slider:set_text_property("Game Speed")

	slider:set_value(1)
	slider.on_change_value:subscribe(function(value)
		print("Slider changed", value)
	end)
end)

self.properties_panel:add_left_right_selector(function(left_right_selector)
	left_right_selector:set_text("Level")

	left_right_selector:set_value(1)
	left_right_selector:set_number_type(1, 20, true)
	left_right_selector.on_change_value:subscribe(function(value)
		print("Left Right Selector changed", value)
	end)
end)

```

As you can see, you can customize each widget and subscribe to their on\_change\_value events. Here’s the result:

There’s also an input property available:

```lua
self.properties_panel:add_input(function(input)
	input:set_text_property("Name")
	input:set_text_value("Insality")
	input.on_change_value:subscribe(function(text)
		print("Input changed", text)
	end)
end)

```

You also can provide a custom widget:

```lua
-- Require your custom Druid Widget
local property_system = require("gui.property_system.property_system")

-- And add it to the properties panel
self.properties_panel:add_widget(function()
	local widget = self.druid:new_widget(property_system, "property_system", "root")
	widget:set_system(system)
	widget:set_text(system_name)
	widget.button_inspect.on_click:subscribe(function()
		-- ...
	end)

	return widget
end)

```

Custom widgets provide a powerful way to build specialized debug panels, as shown in this example:

Thanks for reading!

I recommend copying the GUI and Lua files from the dependency folder, allowing you to modify them as needed in case of future updates.

---

<div class="post-metadata">

**Author:** ![sergey.lerg](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/sergey.lerg/32/3970_2.png) [@sergey.lerg](https://forum.defold.com/u/sergey.lerg)\
**Post date:** [May 6, 2025, 11:56am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/172 "2025-05-06T11:56:26Z")

</div>

We are having a problem with druid buttons, specifically when there is an error inside the button callback the game doesn’t crash but keeps running leading to player data corruption.  
We are using an older version of druid in which `event.lua` is inside the repo but the newest version seems to be behaving in the same way. I believe the issue is that `event.lua` uses `pcall()` for event callback invocation and ignores the error, I don’t see an option to disable this behaviour. Is there a way?

 ![image](https://forum-defold-uploads.b-cdn.net/original/3X/3/2/3237bc5a3f749aee607ba874c14a0e05c62e222d.png)

If I replace the `pcall()` with a regular function call the game crashes properly.

---

<div class="post-metadata">

**Author:** ![Insality](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/insality/32/39737_2.png) [@Insality](https://forum.defold.com/u/Insality)\
**Post date:** [May 6, 2025, 12:10pm UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/173 "2025-05-06T12:10:51Z")

</div>

I think you have two options currently

- Fork & adjust behaviour as needed in your version of Druid, especially if you are using the older one
- Since _1.1_ you can adjust the `defold-event` to make “crashable” with `event.set_logger` like this

```lua
local event = require("event.event")
event.set_logger({
	trace = function() end,
	debug = function() end,
	info = function() end,
	warn = function() end,
	error = function(_, message)
		-- Stop lua execution and throw error
		error(message)
	end,
})

```

Also it’s can be a good PR to the event module itself

---

<div class="post-metadata">

**Author:** ![gameoffate2018](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/gameoffate2018/32/20065_2.png) [@gameoffate2018](https://forum.defold.com/u/gameoffate2018)\
**Post date:** [May 15, 2025, 4:19am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/174 "2025-05-15T04:19:03Z")

</div>

Hey! I’ve been using druid and have been really enjoying it!

I have found an issue with the hover logic related to the scroll component.

If the menu is closed while hovering over a scroll component the mouse is stuck with the hover animation for the rest of the game session.

I may just have something set up incorrectly. Any ideas?

Here is a video of what I am seeing:

[![](https://img.youtube.com/vi/M3Xugq2HlPo/maxresdefault.jpg "Druid Hover Issue") ](https://www.youtube.com/watch?v=M3Xugq2HlPo)

---

<div class="post-metadata">

**Author:** ![Insality](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/insality/32/39737_2.png) [@Insality](https://forum.defold.com/u/Insality)\
**Post date:** [May 15, 2025, 6:48pm UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/175 "2025-05-15T18:48:43Z")

</div>

Thanks!

As I understand, the issue that “hand” icon appears instead of default cursor. As I remember it because the node goes disabled and no more provide events.

In the latest Druid the drag component using this systems cursor via `defos.set_cursor` and I think as a quick fix you can do something from:

1. Call `scroll.drag:set_drag_cursors(nil)`in place where scroll is created
2. You can use `defos.set_cursor(nil)` in the place where menu is disabled to return the cursor manually

I think there should be a way in Druid handle that, but currently only this

---

<div class="post-metadata">

**Author:** ![gameoffate2018](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/gameoffate2018/32/20065_2.png) [@gameoffate2018](https://forum.defold.com/u/gameoffate2018)\
**Post date:** [May 16, 2025, 1:23am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/176 "2025-05-16T01:23:02Z")

</div>

That worked! Thank you so much!!!

---

<div class="post-metadata">

**Author:** ![Insality](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/insality/32/39737_2.png) [@Insality](https://forum.defold.com/u/Insality)\
**Post date:** [July 5, 2025, 10:38am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/177 "2025-07-05T10:38:02Z")

</div>

# Memory and FPS Panel Widgets

The `Druid 1.1` comes with widgets and two included widgets are `Memory Panel` and `FPS Panel` which allow you to monitor memory and FPS in your game.

Widgets in Druid usually consists from two files: GUI, which is used to placed as a template on your GUI scene and Lua script, which is used to be created with Druid.

## Memory Panel

The `Memory Panel` is a widget which allows you to monitor memory of your game. It displays the last 3 seconds of memory allocations in graph, largest memory allocation step, total Lua memory and memory per second.

When you see an empty space in graphs - it means the garbage collector is working at this moment.

### How to add:

- Add `/druid/widget/memory_panel/memory_panel.gui` to your `*.gui` scene

 ![memory_fps_panel_add](https://forum-defold-uploads.b-cdn.net/original/3X/7/f/7ff1d437232980a6ab1daae511ad9193df0daa42.png)

 ![memory_fps_panel_select](https://forum-defold-uploads.b-cdn.net/original/3X/0/e/0eb612c8499a6472e8611d9cf4a88c8848890611.png)

- You can adjust a scale of the template if required
- Add Druid and widget setup to your `*.gui_script`

```lua
local druid = require("druid.druid")
local memory_panel = require("druid.widget.memory_panel.memory_panel")

function init(self)
	self.druid = druid.new(self)
	-- "memory_panel" is a name of the template in the GUI scene, often it matches the name of the template file
	self.memory_panel = self.druid:new_widget(memory_panel, "memory_panel")
end

function final(self)
	self.druid:final()
end

function update(self, dt)
	self.druid:update(dt)
end

function on_message(self, message_id, message, sender)
	self.druid:on_message(message_id, message, sender)
end

function on_input(self, action_id, action)
	return self.druid:on_input(action_id, action)
end

```

And make sure of:

- The `*.gui_script` is attached to your `*.gui` scene
- The GUI component is added to your game scene

## FPS Panel

The `FPS Panel` is a widget which allows you to monitor FPS of your game. It displays the last 3 seconds of FPS graph, lowest and current FPS values

### How to add:

- Add `/druid/widget/fps_panel/fps_panel.gui` to your `*.gui` scene
- You can adjust a scale of the template if required
- Add Druid and widget setup to your `*.gui_script`

```lua
local druid = require("druid.druid")
local fps_panel = require("druid.widget.fps_panel.fps_panel")

function init(self)
	self.druid = druid.new(self)
	-- "fps_panel" is a name of the template in the GUI scene, often it matches the name of the template file
	self.fps_panel = self.druid:new_widget(fps_panel, "fps_panel")
end

function final(self)
	self.druid:final()
end

function update(self, dt)
	self.druid:update(dt)
end

function on_message(self, message_id, message, sender)
	self.druid:on_message(message_id, message, sender)
end

function on_input(self, action_id, action)
	return self.druid:on_input(action_id, action)
end

```

And make sure of:

- The `*.gui_script` is attached to your `*.gui` scene
- The GUI component is added to your game scene

These widgets not only can be useful for development and profiling your game, but also as an example of how to create custom widgets with Druid and use them in your game.

Thanks for reading!

---

<div class="post-metadata">

**Author:** ![megalanthus](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/megalanthus/32/25250_2.png) [@megalanthus](https://forum.defold.com/u/megalanthus)\
**Post date:** [August 25, 2025, 4:59am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/178 "2025-08-25T04:59:15Z")

</div>

Hi! Is it possible to make a [list](https://insality.github.io/druid/?example=ui_example_data_list_basic) with variable element height?

---

<div class="post-metadata">

**Author:** ![Insality](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/insality/32/39737_2.png) [@Insality](https://forum.defold.com/u/Insality)\
**Post date:** [August 25, 2025, 8:21am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/179 "2025-08-25T08:21:32Z")

</div>

Hello! The Data List is not supporting the dynamic content size currently, only with Grid component

For dynamic component sizes I think you can only use Scroll + Layout components. But all elements should be created always in this case

---

<div class="post-metadata">

**Author:** ![megalanthus](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/megalanthus/32/25250_2.png) [@megalanthus](https://forum.defold.com/u/megalanthus)\
**Post date:** [August 25, 2025, 9:00am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/180 "2025-08-25T09:00:04Z")

</div>

Got it, thank you!

---

<div class="post-metadata">

**Author:** ![Insality](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/insality/32/39737_2.png) [@Insality](https://forum.defold.com/u/Insality)\
**Post date:** [September 9, 2025, 10:35am UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/181 "2025-09-09T10:35:16Z")

</div>

There is a Druid Workshop recorded at #MadeWithDefold Jam 2025

It learn how to make basic game GUI (popups, game gui), how to interact with your game from GUI and some basic animations and Panthera 2.0 for them

[![](https://img.youtube.com/vi/qF19qpjZe9c/maxresdefault.jpg "Druid Workshop | Defold | GUI, Popups, Widgets, Panthera 2.0") ](https://www.youtube.com/watch?v=qF19qpjZe9c)

---

<div class="post-metadata">

**Author:** ![LesniakM](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/lesniakm/32/35943_2.png) [@LesniakM](https://forum.defold.com/u/LesniakM)\
**Post date:** [September 9, 2025, 5:46pm UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/182 "2025-09-09T17:46:45Z")

</div>

This video is exactly what I was missing in Druid. I had tried it once or twice before, but I wasn’t really sure what I was doing.

The sample project, while great for users with some experience, is unfortunately too large for a beginner and includes extra libraries, which raises the entry barrier even more.

What I really needed was a minimal example showing how to build a simple GUI - something like a start screen and an options menu. But that’s in the past now, since this video covers it all (including Monarch). Thanks a lot!

---

<div class="post-metadata">

**Author:** ![Insality](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/insality/32/39737_2.png) [@Insality](https://forum.defold.com/u/Insality)\
**Post date:** [September 9, 2025, 6:00pm UTC](https://forum.defold.com/t/druid-component-gui-framework/64857/183 "2025-09-09T18:00:21Z")

</div>

Thanks a lot! My main goal was to cover all the first steps to make it easier to understand the Druid examples and start working with them. Looks like a small step forward 😃

[Previous page](https://forum.defold.com/t/druid-component-gui-framework/64857.md?page=8)

[Next page](https://forum.defold.com/t/druid-component-gui-framework/64857.md?page=10)
