be9d9c17a65c06f54de19b0b68061347302a9e93
gurted (verb)
“to do something smart, but also dangerous”
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:
- Write a new selection system. Godot's built-in
RichTextLabelselection 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". - Right-click Dropdown for basic text operations (Copy, Paste, Cut). Download options for images
- Select-all CTRL+A shortcut
- Scrolling in the website container
- Store tab containers so switching tabs won't erase previous tab.
- GIF support
- Video support via GDE GoZen
- Required attribute for inputs
- Installer should register gurt:// as a valid protocol thru the registry.
- < input type=datetime />, essentially a type "date" but with a vertical separator, then
mm | ss | FORMATlayout for time. - < table > component. 🔗 Related Godot proposal
- < canvas > component should be theoretically impossible by exposing Godot
_draw()APIs to Lua.
Issues:
- < br /> counts as 1 element in WebsiteContainer, therefore despite being (0,0) in size, it counts as double in spacing
Notes:
- < input /> is sort-of inline in normal web. We render it as a block element (new-line).
- A single
RichTextLabelfor inline text tags should stop, we should use invididual ones so it's easier to style and achieve separation through avboxcontainer. - 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.
Supported styles:
- Font style:
font-boldfont-italicunderline
- Font size:
text-xs→ 12text-sm→ 14text-base→ 16text-lg→ 18text-xl→ 20text-2xl→ 24text-3xl→ 30text-4xl→ 36text-5xl→ 48text-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)order-{n}(order)
Languages
GDScript
55.8%
Rust
26.5%
HTML
11.6%
Lua
2.4%
Svelte
2.2%
Other
1.4%