├── LICENSE
├── README.md
├── changelog.md
├── contents
├── c-0-1-1.xhtml
├── c-0-1-1.xml
├── c-0-1.xhtml
├── c-0-1.xml
├── c-0-2-1.xhtml
├── c-0-2-1.xml
├── c-0-2-2.xhtml
├── c-0-2-2.xml
├── c-0-2.xhtml
├── c-0-2.xml
├── c-0-3-1.xhtml
├── c-0-3-1.xml
├── c-0-3-2.xhtml
├── c-0-3-2.xml
├── c-0-3-3.xhtml
├── c-0-3-3.xml
├── c-0-3.xhtml
├── c-0-3.xml
├── c-0-4.xhtml
├── c-0-4.xml
├── c-0.html
├── c-0.xml
├── image1.jpg
└── style.css
├── index.html
├── init.json
├── media
├── icon-192.png
└── socmedia.png
└── src
├── buttons.js
├── init.js
├── loader.js
├── orbital.html
└── orbital.js
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 tearflake
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # FlakeUI (v0.7-update)
2 |
3 | tags: user-interface, graph-visualization, zooming-elements-based, parent-children-orbiting, fractal-structure-inspired
4 |
5 | > ## promotional material
6 | >
7 | > 
8 | >
9 | > Would you like to bring a touch of adventurous spirit to your contents? Presenting your contents, FlakeUI does things a bit differently. As an original graph content navigating environment, it provides unusual experience in discovering information among your content selection. Possible applications are surely endless, and they are waiting to be discovered by that awesome child of creativity in you.
10 |
11 | ## 1. about flake-ui
12 |
13 | FlakeUI is a fractal-structure inspired, parent-child orbiting, and zooming-elements based graph user interface. Javascript based FlakeUI is best used in HTML pages where visitors often return, like in a curated selection of web links, searchable hierarchical catalog of arbitrary items, or maybe even some cool mobile content start pages if someone decides to go in PWA (progressive web application) direction.
14 |
15 | ## 2. contents creation
16 |
17 | Composing contents in FlakeUI consists of editing external content XHTML pages and arranging them using parent-children structure described in a set of XML files. Supported interaction includes navigating graph content nodes and following hyperlinks inside nodes.
18 |
19 | ## 3. contents navigation
20 |
21 | The final result brings all the imported content pages to be shown inside orbitable and zoomable ovals that form a seamless dynamic asymptotic fractal. We navigate the entire fractal structure using only five kinds of gestures:
22 |
23 | 1. dragging inside the central oval area to pan its contents
24 | 2. dragging orbiting ovals around the central oval to rotate them
25 | 3. dragging orbiting ovals towards center to zoom them in
26 | 4. dragging central oval out towards orbit to zoom it out
27 | 5. using mouse wheel to switch between navigating and panning mode
28 |
29 | ## 4. giving it a try
30 |
31 | To get started with site creation using FlakeUI, please refer to the [example site](https://tearflake.github.io/flake-ui/) containing use instructions.
32 |
33 | ## 5. licensing
34 |
35 | This software is released under [MIT license](LICENSE).
36 |
37 |
--------------------------------------------------------------------------------
/changelog.md:
--------------------------------------------------------------------------------
1 | - v 0.1 - beta
2 | - the first official testing version
3 |
4 | - v 0.1 - release
5 | - initial release version
6 |
7 | - v 0.1 - update
8 | - SEO friendly implementation
9 | - gradual oval transparency
10 | - changed responsive mode scaling policy
11 | - HTML pages rendering support
12 | - user defined foreground/background color
13 | - optional hiding help pictograms
14 |
15 | - - -
16 |
17 | - v 0.3 - beta
18 | - improved device-pixel-ratio consistency for mobile platforms
19 | - new HTML renderer
20 | - progressive page loading for supporting bigger sites
21 | - cast shadow effect
22 |
23 | - v 0.3 - release
24 | - bug fixes
25 |
26 | - v 0.3 - update
27 | - slower processor friendly implementation & energy consumption optimisation
28 | - minimalistic visual design
29 | - user interface scaling
30 | - pinch-zoom support
31 |
32 | - - -
33 |
34 | - v 0.5 - beta
35 | - UX improvement
36 | - halign, valign, hlock, vlock, backcolor for each oval.
37 | - native HTML renderer, improved loading speed at the expense of rendering speed
38 | - CSS animations support
39 | - responsive mode matches native appearance in scale
40 |
41 | - v 0.5 - release
42 | - bug fixes
43 |
44 | - v 0.5 - update
45 | - only top two levels navigation
46 | - each oval structure stored into separate XML - scallable dynamic loading of each XML
47 | - mouse wheel event resembles pinch-zoom
48 | - updated scaling policy
49 | - directional shift for larger scaling
50 |
51 | - - -
52 |
53 | - v 0.7 - beta
54 | - mobile UX improvement
55 | - Safari support
56 | - fixed font blur on zoom
57 | - navigation buttons
58 | - command button
59 |
60 | - v 0.7 - release
61 | - orbital orientation
62 | - bug fixes
63 | - removed unnecessary features
64 |
65 | - v 0.7 - update
66 | - compacting designer experience
67 | - revised necessary features
68 | - updated scaling policy
69 | - bug fixes
70 |
71 |
--------------------------------------------------------------------------------
/contents/c-0-1-1.xhtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 1.1. possible use cases
9 |
10 |
C
11 |
12 | onsidering FlakeUI static limitations, what kind of content can we build with it? Let's overview a
13 | few examples of static content pages:
14 |
15 |
16 |
17 |
personal or business showcase
18 |
notice board
19 |
catalog of items
20 |
happenings schedule
21 |
presentation slide show
22 |
...
23 |
24 |
25 |
26 | As the list goes on, we strenghten our belief that FlakeUI could still find a use in various
27 | cases, especially in a combination with server side scripting technologies.
28 |
12 | lakeUI is intended to display static contents arranged within zoomable oval system.
13 | The latest version of FlakeUI loads content element pages on display demand, thus it is
14 | scallable as long as all the visible ovals together with their parent ovals fit into RAM.
15 |
16 |
17 | However, interaction with pages is reduced only to page panning and following hyperlinks.
18 | This limitation entails having no fancy event dependent animations or dynamic content tree
19 | structure. Still, FlakeUI could be used in a various scenarios where these limitations
20 | meet our expectations.
21 |
12 | he center oval of the FlakeUI content pages serves for reading the content. By dragging its content,
13 | the content scrolls in dragging direction. Content size isn't restricted, but it is recommended to
14 | keep it within oval bounds. Scroll bars are not present as they could put graphical appearance
15 | of the content out of the balance.
16 |
17 |
18 | On mobile platforms, it is possible to pinch-zoom the content of the central oval for clearer view. Desktop
19 | platforms provide the same functionality with mouse wheel.
20 |
12 | he structure of content in FlakeUI is visualized in a distinctive way, resembling a form of a fractal
13 | arranged ovals where child ovals orbit around each parent oval recursively. Ovals themselves store
14 | textual or graphic information fitting into hierarchical parent-children relations. Dragging ovals
15 | around their parents enables walking horizontally through the tree (navigating through siblings), while
16 | dragging in or out of oval parent or children positions enables walking vertically through the
17 | hierarchical structure of data (focusing a parent or a child oval at central browsing area).
18 |
12 | lakeUI brings a simple and minimalistic kind of content structuring and organization. All the pages are
13 | displayed inside a number of ovals that hierarchically relate between each other. Central oval is supposed
14 | to be used for reading and viewing content, while orbiting ovals are supposed to be used for content
15 | navigation. All the actions of browsing content are performed by dragging displayed elements by mouse
16 | (click-drag-release cycles), or by touch screen interaction (touch-drag-release cycles). Of course,
17 | hyperlinking is also supported by usual click or touch interaction.
18 |
12 | irst, we need to make sure we have installed a local web server like
13 | Apache HTTP Server
14 | or similar software. We also need to make sure to have an access to a file manager and
15 | a text editor which we will use to access and edit FlakeUI content files.
16 |
17 |
18 | To install FlakeUI, we have to download the FlakeUI software bundle from
19 | dedicated github pages. After
20 | downloading the software, we have to unpack the downloaded zip archive to a local server folder.
21 | Unpacking the archive will produce the following file-folder structure:
22 |
45 | Now that we have unpacked the archive, we can test it by entering the local HTTP server address
46 | into a web browser (usually localhost). We should be able to see the exact copy of
47 | these instructions in the browser.
48 |
17 | ext, we have to modify the example content to adjust it to our own requirements and introduce
18 | our own contents instead of the existing one. Freshly unpacked files represent an example content
19 | containing these instructions we are currently reading. There are several files and folders
20 | of our interest:
21 |
22 |
23 |
24 |
25 | index.html - this is the main file containing visible page
26 | title, social media promotional informations, and meaningful
27 | SEO
28 | texts enclosed within noscript tags.
29 |
30 |
31 |
32 | init.json - in this file we can setup various FlakeUI rendering
33 | parameters. The most important parts in this file is home property
34 | that points to the top XML file.
35 |
36 |
37 | contents/ - this is a folder where we keep our site content files
38 | (HTML, CSS, images, ...). Nevertheles, the content files may reside in any
39 | folder, but it is recommended to place the entire structure under the
40 | contents/ folder to keep our site clean and tidy.
41 |
42 | A site structure is spanned over multiple cascading XML files, each representing an oval, pointing
43 | to its content and a number of children XML structure files, recursively. The structure resembles a
44 | graph ramification of contents from the home node downwards.
45 |
46 | It may be wise to exclude HTML pages in this folder from search engine indexing by setting
47 | meta tag with name="robots" and
48 | content="noindex" attributes. All the search engine information
49 | can be then extracted from noscript tag in the
50 | index.html placed in the FlakeUI interface home folder.
51 |
52 |
53 |
54 |
55 | Hopefully, examining the default content example (that is, files containing these instructions) should
56 | be descriptive enough to compose our own contents. This is the steep part where we will be using
57 | file manager
58 | and
59 | text editor
60 | to arrange and edit files of our interest. Please refer to provided links if you need to get more
61 | familiar with mentioned notions. This procedure is what makes FlakeUI content creating experience
62 | "slack", and requires a bit more advanced knowledge from the content creators, especially considering
63 | possible use of server side scripting or other technologies.
64 |
65 |
66 | Upon each edit, we would want to test if changes we made reflect what we want them to be. Again, we
67 | can test them by entering the local HTTP server address into a web browser.
68 |
12 | inally, when we are done testing our site, we would want to publish it to a remote online server. To do
13 | this, we have to copy the entire file and folder structure from below the flakeUI-home-folder, to the
14 | remote online server home folder. We can usually do this by using control panel pages provided by the
15 | remote server, or using a custom
16 | FTP client software
17 | if we have an access to remote site FTP user name and password. If everything goes well, our new content
18 | should be happily spinning on the world wide web.
19 |
12 | o populate FlakeUI interface with custom content, it is necessary to prepare XHTML files
13 | representing our pages, to have an access to arbitrary textual editor, and it may be a good practice
14 | to have a local web server at disposition for testing our new site. FlakeUI represents a so-called flat
15 | file interface, meaning there is no basic information stored in remote databases, yet all the information
16 | needed for basic functioning is extracted only from file and folder structure accessed over HTTP interface.
17 |
18 |
19 | To corroborate flat file data system, it is possible to pair it with server side scripting technologies
20 | like ASP, PHP, Node.js, and others. FlakeUI should collaborate very well with such technologies, as long
21 | as the outcome conforms FlakeUI file and folder structures.
22 |
20 | Permission is hereby granted, free of charge, to any person obtaining a copy
21 | of this software and associated documentation files (the "Software"), to deal
22 | in the Software without restriction, including without limitation the rights
23 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
24 | copies of the Software, and to permit persons to whom the Software is
25 | furnished to do so, subject to the following conditions:
26 |
27 |
28 | The above copyright notice and this permission notice shall be included in all
29 | copies or substantial portions of the Software.
30 |
31 |
32 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
34 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
35 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
36 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
37 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
38 | SOFTWARE.
39 |
13 | hese pages are displayed with FlakeUI, and they contain FlakeUI use and content building instructions.
14 | The current version of FlakeUI represents an innovative graph based user interface hosting a digital
15 | content.
16 |
17 |
18 | When creating a FlakeUI based content, one should possess a basic knowledge about editing XML, XHTML,
19 | and JSON files in text editor. XML files in FlakeUI define a hierarchical structure of XHTML content files.
20 | Some graph styling parameters can be adjusted by editing main JSON file placed in the FlakeUI root folder.
21 | The structured content is then spanned within asymptotic dynamically orbitable and zoomable fractal which can
22 | be navigated using mouse or touch gestures.
23 |
24 |
25 | Finally, the entire FlakeUI folder tree may be hosted as a standalone or embedded content at any HTTP address
26 | space.
27 |