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.
2025-07-28 00:35:36 +02:00
p, pre, br, b, img, separator, i, u, small, mark, code tags
2025-07-22 15:34:42 +03:00
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-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-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-23 20:42:02 +03:00
- A single `RichTextLabel` for inline text tags should stop, we should use invididual ones so it's easier to style and achieve separation through a `vboxcontainer` .
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.
2025-07-28 15:22:34 +03:00
Supported styles:
- **Font style:**
- `font-bold`
- `font-italic`
- `underline`
- **Font size:**
- `text-xs` → 12
- `text-sm` → 14
- `text-base` → 16
- `text-lg` → 18
- `text-xl` → 20
- `text-2xl` → 24
- `text-3xl` → 30
- `text-4xl` → 36
- `text-5xl` → 48
- `text-6xl` → 60
- **Font family:**
- `font-mono`
- **Text color:**
- `text-[color]`
- **Background color:**
- `bg-[color]`
- **Flexbox**
- `flex` / `inline-flex` (display: flex/inline-flex)
- `flex-row` , `flex-row-reverse` , `flex-col` , `flex-col-reverse` (flex-direction)
- `flex-nowrap` , `flex-wrap` , `flex-wrap-reverse` (flex-wrap)
- `justify-start` , `justify-end` , `justify-center` , `justify-between` , `justify-around` , `justify-evenly` (justify-content)
- `items-start` , `items-end` , `items-center` , `items-baseline` , `items-stretch` (align-items)
- `content-start` , `content-end` , `content-center` , `content-between` , `content-around` , `content-evenly` , `content-stretch` (align-content)
- `gap-{size}` , `row-gap-{size}` , `col-gap-{size}` (gap, row-gap, column-gap)
- `flex-grow-{n}` (flex-grow)
- `flex-shrink-{n}` (flex-shrink)
- `basis-{size}` (flex-basis)
- `self-auto` , `self-start` , `self-end` , `self-center` , `self-stretch` , `self-baseline` (align-self)
2025-07-30 14:39:33 +03:00
- `order-{n}` (order)