Files
leonwww/README.md

36 lines
2.7 KiB
Markdown
Raw Normal View History

2025-07-25 22:22:30 +03:00
gurted (verb)
> “to do something smart, but also dangerous”
2025-07-30 19:34:10 +03:00
wayfinder (noun)
> “a person helping others navigate”
In traditional web, you might be familiar with the term "browser." A **wayfinder** is that, but for the **GURT** protocol.
TODO:
1. Write a new **selection system**. Godot's built-in `RichTextLabel` selection is limited by the node's boundaries. In normal web, holding click and dragging your mouse across the screen will select text across multiple nodes. Godot doesn't have a "set_selected_text" property, despite having one for "get_selected_text".
2. **Right-click Dropdown** for basic text operations (Copy, Paste, Cut). Download options for images
3. **Select-all CTRL+A shortcut**
4. **Scrolling** in the website container
5. **Store** tab containers so switching tabs won't erase previous tab.
2025-07-22 22:14:37 +03:00
6. **GIF** support
7. **Video** support via [GDE GoZen](https://github.com/VoylinsGamedevJourney/gde_gozen)
2025-07-26 13:25:29 +03:00
8. **Required** attribute for inputs
9. Installer should register **gurt://** as a valid protocol thru the registry.
10. < input type=**datetime** />, essentially a type "date" but with a vertical separator, then `mm | ss | FORMAT` layout for time.
11. **< table >** component. [🔗 Related Godot proposal](https://github.com/godotengine/godot-proposals/issues/97)
2025-08-01 21:16:48 +03:00
12. **< canvas >** component should be theoretically impossible by exposing Godot `_draw()` APIs to Lua.
2025-08-12 21:30:41 +03:00
13. `grid` display property for CSS, using `GridContainer` in Godot.
14. Position `absolute` can be achieved by wrapping inside a Control node with a 0,0 size (so it's ignored by the layout), and moving the inner child according to CSS.
2025-07-22 22:14:37 +03:00
Issues:
2025-07-23 20:42:02 +03:00
1. **< br />** counts as 1 element in **WebsiteContainer**, therefore despite being (0,0) in size, it counts as double in spacing
2025-08-10 13:52:27 +03:00
2. **Tween** API doesn't modify CSS, it operates independently at Godot level.
2025-08-10 15:24:49 +03:00
3. Certain properties like `scale` and `rotate` don't apply to the `active` pseudo-class because they rely on mouse_enter and mouse_exit events
4. `<div style="bg-[#3b82f6] w-[100px] h-[100px] flex hover:scale-110 transition hover:rotate-45">Box</div>` something like this has the "Box" text (presumably the PanelContainer) as the target of the hover, not the div itself (which has the w/h size)
2025-08-12 21:30:41 +03:00
5. font in button doesn't comply with CSS, its the projects default
2025-09-07 20:43:41 +03:00
6. The HTML, or Lua, doesn't support non-UTF8 characters. The HTML parser relies on `PackedByteArray` (for the XMLParser, from my memory).
2025-07-23 20:42:02 +03:00
Notes:
2025-07-25 13:43:11 +03:00
- **< input />** is sort-of inline in normal web. We render it as a block element (new-line).
2025-07-31 22:02:03 +03:00
- Fonts use **Flash of Unstyled Text (FOUT)** as opposed to **Flash of Invisible Text (FOIT)**, meaning the text with custom fonts will render with a generic font (sans-serif) while the custom ones downloads.