DesignOps - FAQ and Troubleshooting

Official Content
This documentation is valid for:

FAQ

How can you report an incident?

You can open a thread in our Technical Forum and our team will be pleased to help you. Describe how can we reproduce your problem with much detail as possible, including the error detail. When the error is displayed in the import dialog, the complete error trace can be obtained by clicking on the "show error" icon (image_2020116144227_1_png). It will also be very helpful if you provide a minimal design file (preferably a .gxsketch or an URL) ready to reproduce (including every required asset). 
Also, feel free to contact our support team.

How can you import a design that includes fonts in .ttc or .otc formats?

Modern browsers do not support eighter of .ttc (TrueType Collection) nor .otc (OpenType Colelction) file formats. So, it is highly recommended your designer avoids using these file formats in your design files. In the first place, these file formats (as their names suggest) packs a set of .ttf (TypeTrue Format) or .otf (OpenType Format) font files into a single file but, like most software, they are under a term of use (known as End User Licence Agreement or EULA), and you have to be allowed to use them. In case you have a .ttc or .otc font file and you are allowed to use it, you must unpack their individual .ttf or .otf files (online services like transfonter makes the job). Then, in order to import them to GeneXus, you have two alternatives:

  1. Replace every occurrence of the original .ttc or .otc file in your design files by their respective .ttf or .otf files [RECOMMENDED]
  2. Or, you can create a folder in the same location of your design file with the exact name of the design file suffixed by "Fonts" and put every .ttf or .otf into it.
    e.g. if your design file is called "My Design.gxsketch", you will create a folder named "My DesignFonts" (note that spaces are significant) and then you will put the .ttf or .otf into it before importing the design file.

Can you export a design from other tools and then import the converted design to GeneXus?

You can export/convert a design from other tools (e.g. Figma, Adobe XD or Lunacy to Sketch format), but you have to be careful. A conversion process might contain inconsistencies or lacks that have a direct impact on the final result. In that sense, it is highly recommended that you open the exported/converted design in the proper tool (e.g. if you are converting from .xd to .sketch, open that .sketch in Sketch) and check everything is drawn and structured as it is expected (symbols, styles, color variables, anchors, etc). Also, remember that the file itself might not contain all the required resources when importing into GeneXus (e.g. fonts or exported images), so it is recommended that you read Export design article carefully first.

Contact Unanimo.Design if you need help converting your design into a GeneXus' supported format.

Can you import a design by indicating an URL instead of a local file path?

As of GeneXus 17 upgrade 7 you can, but your URL must be accessible and must force the download of the file. In other words, the URL of your design will only work in GeneXus Design Inspector if you paste your URL in your browser and the download will automatically start (without redirects, authentications, etc). Let's take some examples for TravelAgencySample.sketch:

  • Custom hosting: https://files.genexus.com/pub/TravelAgencySample.gxsketch
    The design file is hosted in a public directory (/pub) that can be directly accessed by the browser for downloading. This URL will work in GeneXus Design Inspector without any problem.
     
  • Dropbox hostinghttps://www.dropbox.com/s/uzvma6iku9kyn9t/TravelAgencySample.gxsketch?dl=1
    The design file is hosted at Dropbox and the file will be forced to download due to "dl=1" parameter (learn more). You can paste this URL in your browser and you will notice that the file will start downloading, so this URL can be used in GeneXus Design Inspector without any problem.
     
  • Google Drive hostinghttps://drive.google.com/u/0/uc?id=1iX-rBOW8PP70Fx9JJdOre2yKyHwtHf5G&export=download
    The design file is hosted at Google Drive and it adds the "export=download" parameter in order to force de download but Google has a redirect for a virus scan bypass (this is added by Google when the file is relatively large). So, in this case, the URL will not work in GeneXus because the file cannot be directly downloaded (you can check the virus scan bypass redirect by copying the URL in your browser).

Troubleshooting

Why when you run your app it looks quite different from the design?

Cause Remember that the Design Import option tries to approximate the design to GeneXus as close as possible and depends on how much tidy is your design file. Although, it may leak some scenarios that should be analyzed case by case.
Solution  First, check if the design file follows the designer guidelines to achieve a good result. If that is not enough, think if that design can be modeled with GeneXus. If not, the developer must implement a custom solution (e.g. a User Control) and integrate it with what is imported from the design file. if you think that you can model the scenario with GeneXus but it was not generated during the import, add it manually in order to achieve the expected result. Anyway, feel free to contact support with your scenario and we will try to automate the GeneXus' object generation in a future release.

Known scenarios that are not considered during the import:
+ Navigation Styles for mobile apps
+ Underline text for mobile apps
+ Partial masking on images
+ Letter, line, and paragraph spacing
+ Text on paths
+ Gradient coloring
+ Fix position when scrolling
+ Color variables
+ Font variables
+ Tint on layers

Features support status:

Why do you have complex controls in your design file that were ignored during the import?

Cause Complex controls require complex treatment. GeneXus's limitations are limitations when designing.
Solution  Keep your design simple. If there is a reason that you have to include a complex control in your design (e.g. a stepper), let it know to the developer in order to manually implement it. Complex controls like Calendars, Graphs, or Maps should be marked as "Exportable" in order to display them as images that can be easily replaced by the developer.

Why after importing a design file, it overrides your previous changes?

Cause The Design Import option does not merge changes, always overrides what you made.
Solution  Merge must be done manually. Before import, it's highly recommended to indicate a new Theme object name and package your objects into a module in order to not override what you made; then, inspect differences and merge it.

Why some controls in your objects are not generated as you expected?

Cause The design may not follow the guidelines to achieve a good import.
Solution  First, check with your designer the guides and conventions to achieve a good import. Remember that the designer must group everything that must be together in order to generate the appropriate tables containers. If the problem persists, feel free to contact support.

Why do you see black images when running your app?

Cause Black images are placeholders when your design file is not including the appropriate image for displaying it.
Solution  Check if the image is included with your design file. If it is included, check if that image includes every density variant needed (@2x, @3x, @4x), and, in case some of them are missing, tell your designer to export it with missing densities. Also, check with the designer if complex shapes (e.g. custom icons, logos) were marked as 'Exportables'. If the problem persists, feel free to contact support.

Why controls are not being displayed well when swapping between devices or when you swap between portrait and landscape modes?

Cause The design file does not contain information for making your app responsive. 
Solution  Check with your designer if controls are anchored or if they have fixed sizes when they required it. You and your designer can test if the result panel will be responsive by resizing the artboard that modeled the problematic panel. 

Why after importing a design file it generates a lot of style-classes without reusing them?

Cause The import process generates a style-class per control drawing by the designer unless your designer uses Styles when designing the application.
Solution  In order to reuse style-classes, your designer must use Styles. Currently, GeneXus supports fill, border, and text styles.

There are differences between the design and the different platforms

Cause GeneXus always tries to follow the standard design guidelines for each platform (e.g. Material Design for Android, or HIG -Human Interface Guidelines- for iOS). That fact may produce differences between the design and the final result, and even between the platforms by themself.
Solution  It is a good practice to follow the design guidelines for a specific platform. If it is required to do not follow the guidelines, it is up to you to develop a custom solution and then integrate it into the object that was imported from the design file.

Some fonts are not displayed

Cause The font was not included during the import or the font source is not supported (e.g. .variable fonts .woff2 or font collections .ttc).
Solution  Check if your font has been created as a File object in your Knowledge Base. If so, check if there is a Font node in the generated Theme object that references the File object with your font. Finally, check if the Font node has been referenced by the target style-class. If the problem persists, please send us your design file and font file so we can reproduce your problem.

The design file defines a color palette that is not included in the Color Palette object

Cause Color Variables defined in a design file are supported as of GeneXus 17 Upgrade 1.
Solution  Include these colors manually and update the style-class references to them, or upgrade to GeneXus 17 Upgrade 1.

Why do you get 'Error validating formula expression: Upper(...' message when importing a design file?

Cause Known issue. The designer combines upper-case and break-lines in a text element that produce the error when it tries to set the Initial Value of a variable.
Solution  As a work-around, your designer must write the text uppercased or delete the break-lines. This issue will be fixed in a future release.

Why do you get 'Using a place holder as an image because...' message when importing a design file?

Cause The target images cannot be found. Usually, this problem suggests that the designer forgot to mark a layer as "Exportable" (e.g. icons, logos, etc.).
Solution  Tell your designer to mark as "Exportable" the layer indicated in the message.

Why do you get 'Error: cp: %1: No such file or directory' message when exporting your design using the Sketch plugin?

Cause Probably the file path indicated in "%1" may not exist or contains blank-spaces. Try to execute that command through the Mac terminal. Sometimes when you copy a file path it translates some folders into another language that is not English.
Solution  Ensure the file path indicated in "%1" exists, it is fully in English and has no blank spaces.

I have problems importing a Mobile design file and a Web design file into the same Knowledge Base

Cause After importing a design file, every theme-class created will inherit from a theme-class depending on its type (e.g. ExternalDesignAttribute, ExternalDesignTable, ExternalDesignTextBlock, etc.). When you import both design files (mobile and web) into the same Knowledge Base, it may raise some inconsistencies in the hierarchy (classes inheriting from web-classes instead of mobile-classes and vice-versa).
Solution  After your first import, rename every generated root theme-classes (e.g. 'ExternalDesignAttribute' by 'ExternalDesignAttributeMobile') and then import your second design file.

I define a text-layer with multiple colors but only one has been taken into account

Cause GeneXus does not support colored substring in a text, either by an Attribute or a TextBlock style-class.
Solution  You must split your text-layer in your design in order to generate two or more Attribute/TextBlocks when each of them has a theme-class with the appropriate color. Alternatively, after you import your design into GeneXus, you can set Format property to 'HTML' and reformat your text by adding a <span style="color:{your_hex_color};"></span> in the substring.

Why are your box-shadows not being correctly displayed in mobile at runtime?

Cause When you design a mobile app, GeneXus will try to infer a material-design elevation from your box-shadow definition. This mapping is an approximation, so it can fail you do not define it correctly.
Solution  If you are using Sketch, we recommend Elevation-Shadows Sketch extension by YitingLiu for designing mobile shadows. This extension correctly maps box-shadows into material-design elevations.

Why grid's items do not change their styles despite they changed in the design file?

Cause Currently GeneXus does not support changing grid item styles specified in the design.
Solution  You must manually create those styles in the Theme or Design System object and associate them in the grid Load event for each cell.

Why after importing a design file it generates a Design System object and why does it not allow me to generate a Theme object?

Cause As of GeneXus 17 Upgrade 6, the Import Design tool is generating a Design System Object by default. 
Solution  If you really need still generating a Theme object, you have to create a file ImportDesignStyleOption.flag under your GeneXus installation. Then, when you re-open GeneXus, the Import Design dialog will display you an "Import as Design System" option (checked by default) and you need to clear it before importing your design. Take into account that the Theme object generation from the Import Design tool will no longer be maintained nor received support.

Why do you get a message 'Error reading %1: Sketch file is missing' while trying to load a design file?

Cause GeneXus cannot found the sketch file indicated in the "File path" field of the Import dialog.
Solution  This error may occur in several occasions.
+ The file path indicated does not exist in your filesystem
+ The file path is a .gxsketch were generated with a .sketchcloud file (supported as of GeneXus 17 Upgrade 6)

Why do you get a message 'Design file "%1" could not be found' when displaying the Import Design dialog?

Cause The import dialog stores the last five file paths you imported and, for the last one, it tries to load it but that file is not in the filesystem anymore.
Solution  Recreate the file in the indicated path before starting the Import Dialog. This error is fixed as of build GeneXus 17 upgrade 7 (build 155985).

Why some images are shown in blue when running an iOS app?

Cause GeneXus import all your images as Image objects, but they have set Rendering Mode property with 'Automatic' value.
Solution  Open the Image object and change the Rendering Mode property with 'Original' value for every image variation.

Why some images do not look good on Web at runtime even they have the correct gx-content-mode (or Scale Type) property set?

Cause Both properties gx-content-mode (from Design System objects) or Scale Type (for Theme objects) applies for Images controls, not for Image variables. Despite the import generates the correct value for the mentioned properties, it will not generate Image controls, It will generate Image variables.  
Solution  Use the CCS object-fit property and map the values of gx-content-mode (or Scale Type) as follows:
fill-keeping-aspect cover
fill fill
fit contain
tile not supported by object-fit
As of GeneXus 17 upgrade 7 you don't have to worry about this and GeneXus will generate the appropriate object-fit when you import your design as Web Panels.
 

I get an error 'is not a valid event' when importing a design

Cause Your design defines a Link/Interaction that is unsupported in your GeneXus upgrade.
Solution  Consider upgrading your GeneXus installation and retrying to import your design. In case you have updated GeneXus and the problem persists, please contact our support team.
Eighterway, you can inspect the .gxml and .code.gxml files generated by the Import Design tool (located at {KB_DIR}/DATA001/DesignToGxml) in order to figure out which link is unsupported and then delete it from your design file (with help of your designer). Finally, you can implement the interaction after successfully importing your design.

I get a warning 'Could not get font {font-name}' using Figma

Cause The design uses a font provided by Figma that is not found in Google's repository or is a custom font.
Solution  You have to get the font file and install it in the development machine before importing the design.