hestiaGUI Technical Specification - ZORALab's Hestia
The technical specifications to refer when using the package. Easy-going, offline supported (via web PWA installation), and detailed oriented. Courtesy from ZORALab's Hestia.
Objectives and Purposes
Main Purpose
This package's primary purpose is to facilitate all graphical user interface
(GUI
) components across different technologies like web,
Qt
, etc. Each leaf package offers their common data structure for
rendering across different GUI outputs. Currently, we're supporting the
following outputs:
Web (HTML+CSS)
As A Common Utilities Provider
Since this is a parent package to all GUI component, this package supplies all common utilities that are used across all leaf packages. In any cases, it's rare for you to import this package unless you're a leaf package GUI component designer.
Product Designs
Web HTML+CSS First
While there are various UI systems in the market, ZORALab's Hestia prioritizes Web HTML+CSS first mainly as the world from 2023 are moving towards portable computing devices like phone, tablet, watches, and even AR/VR headsets. To ensure a system is available across each different devices under 1 single design, network-based UI is very important than device-based version.
GUI As An Option
The sole reason GUI is made available are mainly to design an product interface for those users who are not technically backed. Hence, a product MUST be able to perform data processing and exchange while having GUI as an optional interface for asthetics and easy to use purposes.
Capable of Rendering HTML, CSS, and CSS Variables List Outputs Independently
Aligning to ZORALab's Hestia main purpose, all GUI components MUST support Web UI and WASM rendering. Hence, each leaf package is capable of rendering HTML, CSS, and its associated CSS Variables list independently when given the same data structure.
Extended Naming Convention
Aside complying to the naming convention stated in the main spec, hestiaGUI
extends from it to include some artistic related aspects. Due to GUI being an
artwork as its core, all leaf packages shall lead with the main artist's handle
instead of the conventional hestia-
prefix. That way, we can
automatically credit the designer.
Common Design Practice
Normally, the design direction shall always be as little as dependency as
possible. However, for coloring and site-wide control values, it's best to use
a -CORE
UI component to unify them instead. It's easier to maintain
and is easier to manage as well. Each commonly used components only use the
following APIs:
ToCSS ToCSS_VARIABLES ToJS (If possible, don't use it)
Debugger Design Practice
Normally, the debugger design direction shall always be NO dependency and all settings must be independent / design resistance. The UI shall survive even in brutal design deployment. All CSS variables shall be used inside its elements and are not exported. A common one uses the following APIs:
ToCSS ToJS (If possible, don't use it) ToHTML (Generate the HTML codes based on technologies)
Constants
This package does not offer any constant value.
Variables
This package does not offer any variable.
Offered Functions
This package does not offer any function.
Data Types
This package does not offer any data type.
Catalog
Here are all of the leaf libraries' specifications for you to browse through.
Package | Details |
---|---|
googleFONT_NOTOSANS | For styling with Google's Noto Sans font. |
zoralabBADGE | For styling a badge. |
zoralabDIALOG | For styling a dialog. |
zoralabDIVIDER | For styling a divider. |
zoralabDIVIDER_CUT | For styling a cutting indication divider. |
zoralabDIVIDER_DASH | For styling a dash-line divider. |
zoralabDIVIDER_PAGE | For styling a page break divider syntax. |
zoralabDLIST | For styling a definitions list. |
zoralabDRAWER | For providing standardized values needed for styling a navigation drawer. |
zoralabDRAWER_LEFT | For styling a left-side navigation drawer. |
zoralabDRAWER_RIGHT | For styling a right-side navigation drawer. |
zoralabDRAWER_TOP | For styling a top-side navigation drawer. |
zoralabANCHOR | For styling an anchor link syntax. |
zoralabFORM | For styling a form. |
zoralabIFRAME | For styling an iframe. |
zoralabNOTE | For styling a notice. |
zoralabNOTE_ERROR | For styling a red notice. |
zoralabNOTE_SUCCESS | For styling a green notice. |
zoralabNOTE_WARNING | For styling a yellow notice. |
zoralabOLIST | For styling an ordered list. |
zoralabPICTURE | For styling a picture. |
zoralabPRE | For styling a preformatted syntax. |
zoralabSPLIT_SKEW | For styling a skew design section splitter. |
zoralabARROW | For styling a creative arrow. |
zoralabTABLE | For styling a table. |
zoralabTILE | For styling a tile. |
zoralabTOC | For styling a table of content. |
zoralabULIST | For styling an unordered list. |
zoralabBLOCKQUOTE | For styling a blockquote syntax. |
zoralabBUTTON | For styling a button. |
zoralabCARD | For styling a card. |
zoralabCODE | For styling a code syntax. |
zoralabCORE | For providing fundamental UI control variables and values. |
zoralabDEBUGGER | For styling a in-page debugger. |
Epilogue
Looks like we have arrived to the last station. Intrigued to get in touch? Please feel free to start contacting us via the following public channels:
GitHub Discussion Portal