# Gemini proposal: Frames I had an idea for a new line type for text/gemini. I'm not sure how warmly received it will be, but I figure I'd toss it out there. FRAMES are a way to create collapsible "sections" of a Gemini document. In graphical browsers I imagine these would be arranged horizontally, but they would be perfectly readable vertically as well. ``` ||| denotes the start or end of a frame | (or any non-'|' characters after the first '|') denotes a new frame section --- denotes a vertical/same section division in a frame section ``` A very good example of this would be a navigation bar. For example, ``` # Page Title ||||||||||||||||| => ../ Back => page1/ Page 1 => page2/ Page 2 => page3/ Page 3 | | | | | | | | | ## Article Title 2020-05-28 ----------------- Article contents ... ||||||||||||||||| Footer text ``` This is perfectly readable on a dumb terminal display, but on a TUI/GUI browser it may look something like this: ``` # Page Title ----------------------------- => Back | ## Article Title => Page 1 | 2020-05-28 => Page 2 |------------------ => Page 3 | Article contents | ... ----------------------------- Footer text ``` The user should be able to collapse the navigation component, if they choose. They may also choose to display it vertically. Perhaps frame sections consisting solely of links could also display the links in a line, at the client's discretion. This could also be used inline in a standard document, for figures w/ caption text, poetry next to ASCII art w/ alt-text, etc. Note that you cannot nest a frame within another frame. This vastly simplifies the syntax and implementation, as well as discouraging future extensions. Also, with this example, it may be a better idea to place the links at the *end* of the document, resulting in a right sidebar. This keeps the navigation from encroaching onto the document contents in a vertical view. Left sidebars should be short, sweet, and simple. Another idea for layout: ``` ||||||||||||||||||||| # Article Title 2020-05-28 | | | | | | | | | | | => ../ All => next/ Next => prev/ Previous ||||||||||||||||||||| Article contents ... ``` which could be displayed as ``` # Article Title | => All 2020-05-28 | => Next | => Previous ------------------------------ Article contents ... ``` Let me know what you think of this.