Git Product home page Git Product logo

vl.elementa's Introduction

VL.Elementa

Matrix Nuget (with prereleases)

A node based UI widgets library made in VL for Skia rendering.

The library includes:

  • A collection of ready to use widgets to handle the most common value types in vvvv Gamma
  • A set of Layout nodes to easily arrange your widgets and create responsive UIs
  • A bunch of utilities and help patches

Installing

To use the latest stable version:

  1. Go to Gamma's Quad menu > Manage Nugets > Commandline and type:

    nuget install VL.Elementa
    
  2. Press Enter and wait the ending of the installation process

Contributing to the development

  1. Clone the repository
  2. Build the solution located in the src folder in Release mode.
  3. You can then start contributing to the lib.

Contributing new widgets

Read this wiki page to get specific guidelines on how to contribute new widgets.

Licencing

MIT License - You're free to use VL.Elementa in your creative & commercial projects.

Natan Sinigaglia

Changelog

4.0.4

New

  • Massive documentation update : many new help patches, pin and nodes descriptions
  • New widgets :
    • DropdownGrid
    • DropdownGridEnum
    • IntegerPolar
    • ValuePolar
    • IntegerPolarUpDown
  • New StylePresets : readymade stylesheets you can plug to your Elementa graph. Contribute your own!
  • AnyHovered : tells you if any widget of your graph is hovered. Comes with its help patch

Changed/Updated

  • Changed pin names in Layout nodes. Inherit Size From Children and all similar names are now Auto Size
  • Masked irrelevant pins for some Layout nodes
  • Layout nodes now have an optionnal pin to that draws a helper stroke to visualize them more easily
  • Boolean widgets (bang, toggle, press) now have a new default drawer making it more obvious if they're true or not

Fixed

  • Layer Objects are now stroked when selected

3.0.0

  • NEW Style system. there's no StyleSheet property anymore in IElementum interface (everything gets managed by the Styleable component, already implemented within every widget)
  • NEW "Selector" utility library to validate conditions within an entity-component tree graph (used for the style system)
  • NEW css file parser (builds an Elementa StyleSheet)
  • NEW ClientBounds, ElementaContextReceiver and UndoRedo utility widget nodes
  • NEW DisplayText optional input pin for Toggle, Bang, Press widgets
  • NEW sticky behaviour for slider widget (and all widgets that internally use slider behaviour)
  • NEW Formattable component
  • NEW Grid layout node
  • NEW Root architecture with pluggable component processors
  • NEW EditBehaviour options for some widgets: AbsoluteEditing/RelativeEditing/StickyEditing
  • FIX in ToSkiaLayer (in Root): disabled skia rendering in the first frame to avoid UI flickering (due to frame delays in retrieving the bounds from renderer)
  • FIX in IntegerUpDown behaviour (wasn't updating Min and Max values in idle)
  • Refactoring of Layour nodes: proper cached mechanism that improves a lot performances and better modularization of the internal components.
  • Layout nodes come just with a Spectral version (no pingroup version anymore)
  • All widgets now come with a Spectral version (that expect a component spread as input, not using pingroup)
  • Styleable component now as advanced, not meant to be plugged to the widgets to customize their style
  • Taggable component reworked: now it simply contains an HashSet<Object>. it comes also as a (Spectral Advanced) version, with no pingroup.
  • Attributable component got refreshed as well: attributes come as Dictionary<String, Object>
  • renamed Typeable component to Focusable
  • Rotary widget now internally made with a slider (since they share the same behaviour).

2.2.3

  • Another small fix in Panel

2.2.2

  • Panel fix

2.2.1

  • Cleanup in the node browser
  • some fixes

2.2.0

  • New LayerElementum widget
  • New Drawable component
  • Drawing performance improved

2.1.1

  • New Image node
  • Fixes in help patches

2.1.0

  • New Panel node
  • New Folder node
  • New Style utility nodes
  • New Tooltip component
  • Added GetStyleSheet operation in IElementum
  • Added GetComponentsVersion in IElementum
  • Changed GetDirtyLayout and GetDirtyGraph operations in IElementum to GetLayoutVersion and GetGraphVersion
  • Introduced ElementaContext class: every widget have access to the graph resources
  • Added SetElementaContext and SetMe operations in IElementum
  • Introduced SetElementaContext and SetParent operations in IComponent: each component has now access to any resource of the graph and can easily edit its own parent widget
  • Different Layout/Graph/Components changes check system
  • Help patches now referencing the nuget instead of the vl file (SavingAs the patches doesn't break the reference)
  • Cleaned Root node architecture
  • fixed Moveable and Resizeable components behaviour in multi selection scenarios
  • New componentProcessors management
  • Individual help patches available for all widgets
  • Added node and pin descriptions on all widgets
  • Reorganized help patches
  • Deleted TextFieldMultiline, which is now TextField
  • Some minor fixes

2.0.0

  • New nodes to push widgets to Overlay
  • Renamed the library to VL.Elementa
  • New widget architecture : value properties and widget manager are now generic
  • completely reworked StyleSheet management
  • Style can be provided to a widget with the new Styleable component
  • Orientation, multi-components widgets and specific attributes are now handled by components (was in widget managers before)
  • Widgets can now have custom drawers
  • Layout nodes (stack, columns, etc) now provide more options to play with, allowing more precise layout
  • Added Padding to layout nodes
  • A widget's ValueProperty can be provided from outside, allowing several widgets to share the same ValueProperty
  • mapping between external ValueProperties of different types
  • New help patches explaining custom drawers, shared value properties and Moveable/Resizeable components

1.0.0

  • First version of the architecture

vl.elementa's People

Contributors

natan-sinigaglia avatar sebescudie avatar ravazquez avatar gregsn avatar azeno avatar sebllll avatar lasalillo avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.