diff --git a/README.md b/README.md index 681033df..196ba219 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ + [![](media/druid_logo.png)](https://insality.github.io/druid/) +[![Github-sponsors](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&logoColor=#EA4AAA)](https://github.com/sponsors/insality) [![Ko-Fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/insality) [![BuyMeACoffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://www.buymeacoffee.com/insality) + [![GitHub release (latest by date)](https://img.shields.io/github/v/release/insality/druid)](https://github.com/Insality/druid/releases) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/insality/druid/Run%20tests)](https://github.com/Insality/druid/actions) [![codecov](https://codecov.io/gh/Insality/druid/branch/master/graph/badge.svg)](https://codecov.io/gh/Insality/druid) @@ -115,51 +118,36 @@ druid.on_window_callback(event) ## Components -**Druid** provides the following *basic* components: - -- **[Button](docs_md/01-components.md#button)** - Basic Druid button input component. Handles all types of interactions (tap, long-tap, hold-tap, double-tap, simple key triggers, etc) - -- **[Text](docs_md/01-components.md#text)** - Basic Druid text component. Wrap on gui text node, handle text size adjusting. - -- **[Scroll](docs_md/01-components.md#scroll)** - Basic Druid scroll component - -- **[Blocker](docs_md/01-components.md#blocker)** - Block input in node zone component - -- **[Back Handler](docs_md/01-components.md#back-handler)** - Handle back button (Android back button, backspace key) - -- **[Static Grid](docs_md/01-components.md#static-grid)** - Component to manage node positions with equal sizes - -- **[Hover](docs_md/01-components.md#hover)** - System Druid component, handle hover node state - -- **[Swipe](docs_md/01-components.md#swipe)** - System Druid component, handle swipe gestures on node - -- **[Drag](docs_md/01-components.md#drag)** - System Druid component, handle drag input on node - -**Druid** also provides the following *extended* components: - -***Note**: In the future, to use extended components, you should register them first. This is required to make **Druid** modular - to exclude unused components from builds* - -- **[Checkbox](docs_md/01-components.md#checkbox)** - Checkbox component +Here is full **Druid** components list: + +| Name | Description | API page | Example Link | Is Basic component[^1] | Preview | +|------|-------------|----------|------------|-------------|---------| +| **[Button](docs_md/01-components.md#button)** | Basic input component. Handles all types of interactions: click, long click, hold click, double click, etc | [Button API](https://insality.github.io/druid/modules/Button.html) | [Button Example](https://insality.github.io/druid/druid/?example=general_buttons) | ✅ | | +| **[Text](docs_md/01-components.md#text)** | Wrap on GUI text node, handle different text size adjusting, providing additional text API | [Text API](https://insality.github.io/druid/modules/Button.html) | [Text Example](https://insality.github.io/druid/druid/?example=texts_general) | ✅ | | +| **[Scroll](docs_md/01-components.md#scroll)** | Scroll component | [Scroll API](https://insality.github.io/druid/modules/Scroll.html) | [Scroll Example](https://insality.github.io/druid/druid/?example=general_scroll) | ✅ | | +| **[Blocker](docs_md/01-components.md#blocker)** | Block user input in node zone area | [Blocker API](https://insality.github.io/druid/modules/Blocker.html) | ❌ | ✅ | | +| **[Back Handler](docs_md/01-components.md#back-handler)** | Handle back button (Android back button, backspace key) | [Back Handler API](https://insality.github.io/druid/modules/BackHandler.html) | ❌ | ✅ | | +| **[Static Grid](docs_md/01-components.md#static-grid)** | Component to manage node positions with equal sizes | [Static Grid API](https://insality.github.io/druid/modules/StaticGrid.html) | [Static Gid Example](https://insality.github.io/druid/druid/?example=general_grid) | ✅ | | +| **[Hover](docs_md/01-components.md#hover)** | Handle hover node state on node | [Hover API](https://insality.github.io/druid/modules/Hover.html) | ❌ | ✅ | | +| **[Swipe](docs_md/01-components.md#swipe)** | Handle swipe gestures on node | [Swipe API](https://insality.github.io/druid/modules/Swipe.html) | [Swipe Example](https://insality.github.io/druid/druid/?example=general_swipe) | ✅ | | +| **[Drag](docs_md/01-components.md#drag)** | Handle drag input on node | [Drag API](https://insality.github.io/druid/modules/Drag.html) | [Drag Example](https://insality.github.io/druid/druid/?example=general_drag) | ✅ | | +| **[Checkbox](docs_md/01-components.md#checkbox)** | Checkbox component | [Checkbox API](https://insality.github.io/druid/modules/Checkbox.html) | [Checkbox Example](https://insality.github.io/druid/druid/?example=general_checkboxes) | ❌ | | +| **[Checkbox group](docs_md/01-components.md#checkbox-group)** | Several checkboxes in one group | [Checkbox group API](https://insality.github.io/druid/modules/CheckboxGroup.html) | [Checkbox group Example](https://insality.github.io/druid/druid/?example=general_checkboxes) | ❌ | | +| **[Radio group](docs_md/01-components.md#radio-group)** | Several checkboxes in one group with a single choice | [Radio group API](https://insality.github.io/druid/modules/RadioGroup.html) | [Radio Group Example](https://insality.github.io/druid/druid/?example=general_checkboxes) | ❌ | | +| **[Dynamic Grid](docs_md/01-components.md#dynamic-grid)** | Component to manage node positions with different sizes. Only in one row or column | [Dynamic Grid API](https://insality.github.io/druid/modules/DynamicGrid.html) | [Dynamic Grid Example](https://insality.github.io/druid/druid/?example=general_grid) | ❌ | | +| **[Data List](docs_md/01-components.md#data-list)** | Component to manage data for huge datasets in scroll | [Data List API](https://insality.github.io/druid/modules/DataList.html) | [Data List Example](https://insality.github.io/druid/druid/?example=general_data_list) | ❌ | | +| **[Input](docs_md/01-components.md#input)** | User text input component | [Input API](https://insality.github.io/druid/modules/Input.html) | [Input Example](https://insality.github.io/druid/druid/?example=general_input) | ❌ | | +| **[Lang text](docs_md/01-components.md#lang-text)** | Wrap on Text component to handle localization | [Lang Text API](https://insality.github.io/druid/modules/LangText.html) | ❌ | ❌ | | +| **[Progress](docs_md/01-components.md#progress)** | Progress bar component | [Progress API](https://insality.github.io/druid/modules/Progress.html) | [Progress Example](https://insality.github.io/druid/druid/?example=general_progress_bar) | ❌ | | +| **[Slider](docs_md/01-components.md#slider)** | Slider component | [Slider API](https://insality.github.io/druid/modules/Slider.html) | [Slider Example](https://insality.github.io/druid/druid/?example=general_sliders) | ❌ | | +| **[Timer](docs_md/01-components.md#timer)** | Handle timers on GUI text node | [Timer API](https://insality.github.io/druid/modules/Timer.html) | ❌ | ❌ | | +| **[Hotkey](docs_md/01-components.md#hotkey)** | Handle keyboard hotkeys with key modificators | [Hotkey API](https://insality.github.io/druid/modules/Hotkey.html) | [Hotkey Example](https://insality.github.io/druid/druid/?example=general_hokey) | ❌ | | +| **[Layout](docs_md/01-components.md#layout)** | Handle node size depends on layout mode and screen aspect ratio | [Layout API](https://insality.github.io/druid/modules/Layout.html) | [Layout Example](https://insality.github.io/druid/druid/?example=general_layout) | ❌ | | + +For a complete overview, see: **_[components.md](docs_md/01-components.md)_**. + +[^1]: Non basic components before use should be registered first to be included in build -- **[Checkbox group](docs_md/01-components.md#checkbox-group)** - Several checkboxes in one group - -- **[Dynamic Grid](docs_md/01-components.md#dynamic-grid)** - Component to manage node positions with different sizes. Only in one row or column - -- **[Data List](docs_md/01-components.md#data-list)** - Component to manage data for huge dataset in scroll - -- **[Input](docs_md/01-components.md#input)** - User text input component - -- **[Lang text](docs_md/01-components.md#lang-text)** - Wrap on Text component to handle localization - -- **[Progress](docs_md/01-components.md#progress)** - Progress bar component - -- **[Radio group](docs_md/01-components.md#radio-group)** - Several checkboxes in one group with a single choice - -- **[Slider](docs_md/01-components.md#slider)** - Slider component - -- **[Timer](docs_md/01-components.md#timer)** - Handle timer work on gui text node - -For a complete overview, see: _[components.md](docs_md/01-components.md)_. ## Basic usage @@ -285,3 +273,10 @@ https://insality.github.io/druid/ ## Issues and suggestions If you have any issues, questions or suggestions please [create an issue](https://github.com/Insality/druid/issues) or contact me: [insality@gmail.com](mailto:insality@gmail.com) + + +## ❤️ Support project ❤️ + +Please support me if you like this project! It will help me keep engaged to update **Druid** and make it even better! + +[![Github-sponsors](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&logoColor=#EA4AAA)](https://github.com/sponsors/insality) [![Ko-Fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/insality) [![BuyMeACoffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://www.buymeacoffee.com/insality) diff --git a/media/preview/button.gif b/media/preview/button.gif new file mode 100644 index 00000000..c60d2787 Binary files /dev/null and b/media/preview/button.gif differ diff --git a/media/preview/checkbox.gif b/media/preview/checkbox.gif new file mode 100644 index 00000000..461b0657 Binary files /dev/null and b/media/preview/checkbox.gif differ diff --git a/media/preview/checkbox_group.gif b/media/preview/checkbox_group.gif new file mode 100644 index 00000000..65cf80f9 Binary files /dev/null and b/media/preview/checkbox_group.gif differ diff --git a/media/preview/data_list.gif b/media/preview/data_list.gif new file mode 100644 index 00000000..d8d70f93 Binary files /dev/null and b/media/preview/data_list.gif differ diff --git a/media/preview/drag.gif b/media/preview/drag.gif new file mode 100644 index 00000000..320f443e Binary files /dev/null and b/media/preview/drag.gif differ diff --git a/media/preview/dynamic_grid.gif b/media/preview/dynamic_grid.gif new file mode 100644 index 00000000..ce114d86 Binary files /dev/null and b/media/preview/dynamic_grid.gif differ diff --git a/media/preview/hotkey.gif b/media/preview/hotkey.gif new file mode 100644 index 00000000..5acf1c80 Binary files /dev/null and b/media/preview/hotkey.gif differ diff --git a/media/preview/hover.gif b/media/preview/hover.gif new file mode 100644 index 00000000..7497feb5 Binary files /dev/null and b/media/preview/hover.gif differ diff --git a/media/preview/input.gif b/media/preview/input.gif new file mode 100644 index 00000000..e9d11872 Binary files /dev/null and b/media/preview/input.gif differ diff --git a/media/preview/lang_text.gif b/media/preview/lang_text.gif new file mode 100644 index 00000000..97f8f42a Binary files /dev/null and b/media/preview/lang_text.gif differ diff --git a/media/preview/layout.gif b/media/preview/layout.gif new file mode 100644 index 00000000..b90ac3a5 Binary files /dev/null and b/media/preview/layout.gif differ diff --git a/media/preview/progress.gif b/media/preview/progress.gif new file mode 100644 index 00000000..95ad35d6 Binary files /dev/null and b/media/preview/progress.gif differ diff --git a/media/preview/radio_group.gif b/media/preview/radio_group.gif new file mode 100644 index 00000000..d3185cc8 Binary files /dev/null and b/media/preview/radio_group.gif differ diff --git a/media/preview/scroll.gif b/media/preview/scroll.gif new file mode 100644 index 00000000..e8e3373f Binary files /dev/null and b/media/preview/scroll.gif differ diff --git a/media/preview/slider.gif b/media/preview/slider.gif new file mode 100644 index 00000000..eacc906b Binary files /dev/null and b/media/preview/slider.gif differ diff --git a/media/preview/static_grid.gif b/media/preview/static_grid.gif new file mode 100644 index 00000000..a9112e80 Binary files /dev/null and b/media/preview/static_grid.gif differ diff --git a/media/preview/swipe.gif b/media/preview/swipe.gif new file mode 100644 index 00000000..870e26c7 Binary files /dev/null and b/media/preview/swipe.gif differ diff --git a/media/preview/text.gif b/media/preview/text.gif new file mode 100644 index 00000000..719a82fb Binary files /dev/null and b/media/preview/text.gif differ diff --git a/media/preview/timer.gif b/media/preview/timer.gif new file mode 100644 index 00000000..c3a0bb5a Binary files /dev/null and b/media/preview/timer.gif differ