Compare commits

..

8 Commits

Author SHA1 Message Date
d8f67ebd27 note 2026-02-26 10:23:39 -05:00
github-actions[bot]
99f467fa69 Archive previous documentation and generate v0.10.2 docs [skip ci] 2026-02-26 15:17:17 +00:00
141a22cd9c v0.10.2 release 2026-02-26 10:16:46 -05:00
eb3afc11ac address: Themes not included (#1) 2026-02-26 10:01:22 -05:00
d72f442de7 v0.10.1 release 2026-02-26 01:58:07 -05:00
3713f45a76 fix: stops debug draw flashing 2026-02-26 01:58:07 -05:00
c4fc62af20 fix: onEvent not correctly triggering in immediate mode (#2) 2026-02-26 01:57:58 -05:00
github-actions[bot]
71f7776f78 Archive previous documentation and generate v0.10.0 docs [skip ci] 2026-02-25 18:21:34 +00:00
104 changed files with 7584 additions and 12 deletions

1
.gitignore vendored
View File

@@ -1,5 +1,4 @@
OverlayStats.lua
themes/metal/
themes/space/
.DS_STORE
tasks

View File

@@ -63,7 +63,7 @@ local enums = utils.enums
---@class FlexLove
local flexlove = Context
flexlove._VERSION = "0.10.0"
flexlove._VERSION = "0.10.2"
flexlove._DESCRIPTION = "UI Library for LÖVE Framework based on flexbox"
flexlove._URL = "https://github.com/mikefreno/FlexLove"
flexlove._LICENSE = [[

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FlexLöve v0.9.2 - API Reference</title>
<title>FlexLöve v0.10.2 - API Reference</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css">
<style>
* {
@@ -321,13 +321,15 @@
<div class="container">
<nav class="sidebar">
<div class="sidebar-header">
<h2>FlexLöve <span style="font-size: 0.6em; color: #8b949e;">v0.9.2</span></h2>
<h2>FlexLöve <span style="font-size: 0.6em; color: #8b949e;">v0.10.2</span></h2>
<a href="index.html">← Back to Home</a>
<div class="version-selector">
<select id="version-dropdown" onchange="window.versionNavigate(this.value)">
<option value="">📚 Switch Version</option>
<option value="current">v0.9.2 (Latest)</option>
<option value="current">v0.10.2 (Latest)</option>
<option value="v0.10.0">v0.10.0</option>
<option value="v0.9.2">v0.9.2</option>
<option value="v0.9.0">v0.9.0</option>
<option value="v0.8.0">v0.8.0</option>
<option value="v0.7.3">v0.7.3</option>

View File

@@ -285,7 +285,7 @@ cp FlexLove/FlexLove.lua your-project/</code></pre>
<div class="footer">
<p>
FlexLöve v0.10.0 | MIT License |
FlexLöve v0.10.2 | MIT License |
<a href="https://github.com/mikefreno/FlexLove" style="color: #58a6ff"
>GitHub Repository</a
>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -64,6 +64,19 @@ function Context.clearFrameElements()
end
end
--- Calculate the depth (nesting level) of an element
---@param elem Element
---@return number
local function getElementDepth(elem)
local depth = 0
local current = elem.parent
while current do
depth = depth + 1
current = current.parent
end
return depth
end
--- Sort elements by z-index (called after all elements are registered)
function Context.sortElementsByZIndex()
-- Sort elements by z-index (lowest to highest)
@@ -80,7 +93,13 @@ function Context.sortElementsByZIndex()
return z
end
return getEffectiveZIndex(a) < getEffectiveZIndex(b)
local za = getEffectiveZIndex(a)
local zb = getEffectiveZIndex(b)
if za ~= zb then
return za < zb
end
-- Tiebreaker: deeper elements (children) sort higher
return getElementDepth(a) < getElementDepth(b)
end)
end
@@ -153,6 +172,7 @@ function Context.getTopElementAt(x, y)
return nil
end
local fallback = nil
for i = #Context._zIndexOrderedElements, 1, -1 do
local element = Context._zIndexOrderedElements[i]
@@ -161,11 +181,15 @@ function Context.getTopElementAt(x, y)
if interactive then
return interactive
end
return element
-- Non-interactive element hit: remember as fallback but keep looking
-- for interactive children/siblings at same or lower z-index
if not fallback then
fallback = element
end
end
end
return nil
return fallback
end
--- Set the focused element (centralizes focus management)

View File

@@ -2040,9 +2040,16 @@ function Element.new(props)
self._dirty = false -- Element properties have changed, needs layout
self._childrenDirty = false -- Children have changed, needs layout
-- Debug draw: assign a stable random color for element boundary visualization
-- Uses a vibrant HSL-based color to ensure good visibility against any background
local hue = math.random() * 360
-- Debug draw: assign a deterministic color for element boundary visualization
-- Uses a hash of the element ID to produce a stable hue, so colors don't flash each frame
local function hashStringToHue(str)
local hash = 5381
for i = 1, #str do
hash = ((hash * 33) + string.byte(str, i)) % 360
end
return hash
end
local hue = hashStringToHue(self.id or tostring(self))
local function hslToRgb(h)
local s, l = 0.9, 0.55
local c = (1 - math.abs(2 * l - 1)) * s

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

BIN
themes/metal/Guide.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

38
themes/metal/README.md Normal file
View File

@@ -0,0 +1,38 @@
This image pack is not fully converted to 9 patch, it is being done as I have a need for.
- [x] Bar
- [x] BarDropdown
- [x] BarKnob
- [x] BarKnobDropdown
- [x] BarToggle
- [x] Button
- [ ] Cursor
- [ ] Filler
- [x] Frame
- [ ] IconConfirm
- [x] Select
- [ ] Slot
- [x] TextField
- [ ] Toggle
You can compare the BarKnob's for a before and after for the 9 patch additions
This theme is a part of the [Complete UI Essential Pack](https://crusenho.itch.io/complete-ui-essential-pack) by [Crusenho](https://crusenho.itch.io/)
This theme is governed by the following license:
Attribution 4.0 International (CC BY 4.0)
You are free to:
Share — copy and redistribute the material in any medium or format for any purpose, even commercially.
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
The licensor cannot revoke these freedoms as long as you follow the license terms.
Under the following terms:
Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
No additional restrictions - You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
License Link: <https://creativecommons.org/licenses/by/4.0/>

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Some files were not shown because too many files have changed in this diff Show More