DesignOps - Conventions

Official Content
This documentation is valid for:

Conventions are useful for the essential difference between a designer profile and a developer profile.

In some cases, designers are creating and drawing without considering abstractions. Some of these drawings in the implementation must be, for example, an image. Therefore, the internal details of those components are not imported to GeneXus.

The freedom while designing is so great that there is no single heuristic that allows us to understand today the true meaning of what is drawn. This is why there are conventions to allow the design to be transmitted unambiguously to implementation.

Conventions

Ignore layer

Used when you draw a draft that you do not want to be imported by GeneXus.

Prefix _ (underscore)
Applies to Any element
Example
 Root or Group
 └─ _ Ignore this layer
Notes 1) Since some elements in the application are intended to be standard, the following set of keywords also ignores a layer: 'keyboard', 'status bar'

Static content

Used for defining static content (e.g. a section title or static image) that will be interpreted by GeneXus as a TextBlock in case of text layers and as an Image control for bitmaps layers or layers exported as images.

Prefix static
Applies to Text element
Example
 Root or Group
 └─ Static Header title
Notes 1) As of GeneXus 18 this convention is supported for bitmaps and layers exported as images for generating an Image control instead of an Image variable.

Dynamic content

Used for defining dynamic content (e.g. a customer name) that will be interpreted by GeneXus as a read-only Variable.

Prefix (none)
Applies to Text element
Example
 Root or Group
 └─ Customer Name

Editable content

Used for defining editable content (i.e. user input) that will be interpreted by GeneXus as an editable Variable.

Prefix input
Applies to Text element
Example
 Root or Group
 └─ Input Customer Name
Notes 1) The import process cannot infer if the value associated with an input field is a preset value or if it is an invite message. Let your developer know which case is being displayed, so he/she can customize the appropriate colors for each case. GeneXus will not set a value associated to an input field; instead, it will use that value as an invite message.

Button control

Used for defining buttons that will be interpreted by GeneXus as a Button control. Also, if the layer defines a link, GeneXus will interpret a call action to the panel defined by the target artboard; otherwise, it will display a dummy message.

Prefix button
Applies to Group
Example
 Root or Group
​​​​​​ └─ Button Cancel
    ├─ Caption     ─> caption
    └─ Background  ─> background and shape
Notes 1) If you have multiple text-layers defining the button caption, only the first one will be taken into account.

ComboBox control

Used for defining a combo-box control that will be interpreted by GeneXus as a Variable with Control Type = Combo Box.

Prefix combobox
Applies to Group
Example
 Root or Group ​​​​​​
 └─ ComboBox Country
    ├─ Uruguay          ─> displayed value
    ├─ Chevron Drawing  ─> chevron drawing
    └─ Background       ─> background and shape
Notes 1) GeneXus will always use the default combo-box control, so custom chevron drawings will not be rendered.

Check control

Used for defining a check-box control that will be interpreted by GeneXus as a Variable with Control Type = Check Box.

Prefix checkbox
Applies to Group
Example
 Root or Group ​​​​​​
 └─ CheckBox Agree 
    ├─ Are you agree?  ─> checkbox label
    ├─ Check Drawing   ─> check rectangle drawing
    └─ Background      ─> background and shape
Notes 1) GeneXus will always use the default check-box control, so custom check drawings will not be rendered.

Radio-button control

Used for defining a radio-button control that will be interpreted by GeneXus as a Variable with Control Type = Radio Button. The elements defined in the group will be the items of the radio-button.

Prefix radiobutton
Applies to Group
Example
 Root or Group ​​​​​​
 └─ RadioButton Payment Currency
    ├─ USD Item 
    │  ├─ USD                ─> first radio label
    │  └─ Radio Drawing      ─> first radio circle drawing
    ┆ ...
  ​​​​​​  ├─ UYU Item
    │  ├─ UYU                ─> last radio label  
    │  └─ Radio Drawing      ─> last radio circle drawing
  ​​​​​​  └─ Background      ─> background and shape
Notes 1) GeneXus will always use the default radio-button control, so custom radio button drawings will not be rendered.

Tabs control

Used for defining tabs controls that will be interpreted by GeneXus as a Tab control. The elements defined in the group are just two: a group for the tab-strip and a group for the tab-content.

Prefix tabs
Applies to Group
Example
 Root or Group ​​​​​​
 └─ Tabs Information
     ├─ Tab Strip
     │  ├─ About        ─> match this artboard's suffix / selected style applied
     │  ┆ ...
     │  └─ Directions   ─> match another artboard's suffix / unselected style applied
     └─ Tab Content
        └─ (tab content design for the 'about' section)
Notes 1) Selected tab-item in the tab-strip must be differentiated from other tab-items (e.g. by changing its font-color).
2) The tab-content variation must be designed in separated Artboards sharing the same prefix. For instance, you want to design a panel "Attraction" containing a tab with "About" and "Directions" items, then you should design the two Artboards and named them as "Attraction - About" and "Attraction - Directions", both of them will be equal except for the tab-content section and the tab-item style.
3) Scrollable tab strips are not allowed and it is recommended to have at most 4 tabs.
4) The tab-strip must be defined as a group (not as a symbol).
5) Each tab-item only allows text layers (no icons are allowed nor selector bar).

List & Carousel

Used for defining a list (vertical scroll) or carousel (horizontal scroll) that will be interpreted by GeneXus as a Grid control with the appropriate item orientation.

Prefix grid (vertical | horizontal)
Applies to Group
Example
 Root or Group ​​​​​​
 └─ Grid Attractions
    ├─ Attraction 1
    │  ├─ Attraction Name   ─> first overridden value/style
    │  └─ Attraction Image  ─> first overridden style
    ┆ ...
    └─ Attraction N
       ├─ Attraction Name   ─> first overridden value/style
       └─ Attraction Image  ─> first overridden style
Notes 1) When orientation is not indicated in the naming convention, GeneXus will try to infer it.
2) It is highly recommended that you use symbols/components as items of the list (reusability).

Important:
  • Grid designs for Mobile admit instances of multiple symbols/components (displayed as different layouts)
  • Grid designs for Web admit instances of a single symbol/component (because they only admit a single layout). Other instances different from the first symbol/component instance will be ignored.
In both cases (mobile or web designs), text and image overrides are allowed, and style overrides are supported as of GeneXus 17 Upgrade 9.

Navigation bar

Used for rendering the navigation bar for a mobile app panel that will be interpreted by GeneXus as the Application Bar of the target panel.

Prefix navigation
Applies to Group
Example
 Root Layer ​​​​​​
 └─ Navigation Bar
    ├─ Back Icon       ─> optional left icon
    ├─ Title           ─> title
    ├─ Profile Icon    ╮
    ┆   ...           ├> optional sequence of right icons
    └─ Cart Icon       ╯
Notes 1) Only applies for Mobile applications. For Web applications, this convention will be ignored and will be generated as is.
2) Only one left icon is admitted (e.g. for defining a back button).
3) Only one centered text is admitted as a title.
4) Multiple right stacked icons are admitted (i.e. multiple options).

Navigation tab

Used for rendering a navigation tab for mobile apps that will be interpreted by GeneXus as a Menu object referencing multiple target Panels.

Prefix tabbar
Applies to Group
Example
 Root Layer ​​​​​​
 └─ TabBar Menu
    ├─ Attractions           ─> group's name references 'Attractions' artboard
    │  ├─ Attractions Label
    │  └─ Attractions Icon
    ┆  ...
    └─ Profile               ─> group's name references 'Profile' artboard
       ├─ Profile Label
       └─ Prifile Icon
Notes 1) Does not apply to web applications. For mobile applications, it is recommended to have at most 5 tabs.
2) Each tab-item must be grouped and each group name must match exactly with the Artboard's name being displayed (or the first one you linked with other Artboards). For instance, if the navigation tab has an item for displaying the Artboard named "User Profile", then that item (the layer-group) must be also named "User Profile" too.
3) Each tab-item must contain at least a text layer (representing the tab caption) or an image/exported layer (representing the tab icon).

Scope

Generators .NET, .NET Core, Java, Android, Apple, Angular

See also

Availability

These conventions are available as of GeneXus 17.