--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/svghmi/library.rst Mon Apr 15 19:13:17 2024 +0200
@@ -0,0 +1,53 @@
+Pre-made Widget Library
+=======================
+
+Each widget type such as for example ``HMI:Meter`` can be applied to different
+SVG elements to make a new widget in an HMI.
+
++------------------------------------+---------------------------------+
+| Meter Widget Template (`HMI:Meter`)| Voltmeter (`HMI:Meter`) |
++====================================+=================================+
+| .. image:: svghmi_meter.svg | .. image:: svghmi_voltmeter.svg |
++------------------------------------+---------------------------------+
+
+It is possible to collect customized widgets into libraries in order to re-use
+them in future HMI designs.
+
+
+Widget selection and configuration
+----------------------------------
+
+SVGHMI comes with a UI dedicated to:
+
+ * Select SVG widget from a library
+
+ Button on top of library tree opens a directory selector dialog to select another widget library.
+ When a widget is selected in library tree, a miniature of this widget is displayed in preview panel.
+
+ * Set widget arguments
+
+ Given values are checked against expected argument types and boundaries, and validity is shown as a
+ check mark on the right side of each argument.
+
+ * Bind widget to HMI Tree variables
+
+ Variables are dragged from HMI Tree to text fields in "Widget's variables" section, and then a
+ valid path corresponding to selected variable is assigned to this field.
+
+ .. image:: svghmi_library_ui.svg
+
+ * Place widget in HMI design
+
+ Once configured, widget is placed in HMI design by dragging widget preview in Inkscape directly.
+
+ .. image:: svghmi_dnd.svg
+
+
+How to create a widget library
+------------------------------
+
+ A widget library is a directory containing SVG files organized into arbitrarily nested subdirectories.
+
+ Individual SVG file must only contain one widget, no nested widgets, and no pages.
+ It can be created by simply copying an existing widget into an empty SVG file.
+ Existing attributes are ignored when using widget from library and can be left as-is.
\ No newline at end of file