Home
Index
Code
Home
Index
Code
Subscribe
Sign in
Digital Grove
UI
UI, Part 9: Keyboard and Gamepad Navigation
Techniques for supporting keyboard and gamepad navigation without overburdening builder code.
Feb 13, 2023
•
Ryan Fleury
23
2
UI, Part 8: State Mutation, Jank, and Hotkeys
Making the case for limiting the timeframe during which important state mutations can occur, making these mutations homogeneous, and how this idea can…
Aug 23, 2022
•
Ryan Fleury
32
3
UI, Part 10: Simple Single-Line Text Input
Many custom UIs don't implement common keyboard shortcuts in their single-line text fields. It doesn't have to be this way - let's look at a way to…
Jul 25, 2022
•
Ryan Fleury
24
3
UI, Part 7: Where IMGUI Ends
Exploring strategies for high-level interface instantiation entities (windows, tabs, panels). Making the case for why their state should not be managed…
Jul 6, 2022
•
Ryan Fleury
43
2
1
UI, Part 6: Rendering
My techniques for using the GPU to render fancy UIs with not much code.
Jun 15, 2022
•
Ryan Fleury
61
4
1
UI, Part 5: Visual Content
Looking into how we might specify visual information—both styling and spacing—in a builder codepath.
Jun 10, 2022
•
Ryan Fleury
48
4
UI, Part 4: The Widget Is A Lie (Node Composition)
Ditching the idea that a "widget" must be explicitly represented in our user interface hierarchy data structure.
May 12, 2022
•
Ryan Fleury
59
7
UI, Part 3: The Widget Building Language
Details on what I've learned about building an adequate core widget hierarchy construction API.
May 10, 2022
•
Ryan Fleury
62
24
UI, Part 2: Every Single Frame (IMGUI)
Introduces the concept and structure of an "immediate mode user interface" and how we can use it to accomplish our goals, including strategies for…
May 9, 2022
•
Ryan Fleury
93
15
4
UI, Part 1: The Interaction Medium
Introducing a set of concepts, principles, goals, and ideas that have dramatically improved my ability to write production-quality user interfaces from…
May 8, 2022
•
Ryan Fleury
134
3
2
This site requires JavaScript to run correctly. Please
turn on JavaScript
or unblock scripts