2020-05-15 11:08:04 -04:00
# Design Management
2019-07-08 00:39:53 -04:00
2020-05-15 11:08:04 -04:00
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/660) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2.
2020-08-03 14:10:05 -04:00
> - Support for SVGs was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/12771) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.4.
> - Design Management was [moved](https://gitlab.com/gitlab-org/gitlab/-/issues/212566) to GitLab Core in 13.0.
2019-07-08 00:39:53 -04:00
## Overview
Design Management allows you to upload design assets (wireframes, mockups, etc.)
to GitLab issues and keep them stored in one single place, accessed by the Design
Management's page within an issue, giving product designers, product managers, and engineers a
way to collaborate on designs over one single source of truth.
You can easily share mock-ups of designs with your team, or visual regressions can be easily
viewed and addressed.
< i class = "fa fa-youtube-play youtube" aria-hidden = "true" > < / i >
For an overview, see the video [Design Management (GitLab 12.2) ](https://www.youtube.com/watch?v=CCMtCqdK_aM ).
## Requirements
Design Management requires
2020-04-01 14:07:56 -04:00
[Large File Storage (LFS) ](../../../topics/git/lfs/index.md )
2019-07-08 00:39:53 -04:00
to be enabled:
- For GitLab.com, LFS is already enabled.
- For self-managed instances, a GitLab administrator must have
2020-04-09 02:09:30 -04:00
[enabled LFS globally ](../../../administration/lfs/index.md ).
2019-07-08 00:39:53 -04:00
- For both GitLab.com and self-managed instances: LFS must be enabled for the project itself.
If enabled globally, LFS will be enabled by default to all projects. To enable LFS on the
project level, navigate to your project's **Settings > General** , expand **Visibility, project features, permissions**
and enable **Git Large File Storage** .
2020-06-17 08:08:42 -04:00
Design Management also requires that projects are using
[hashed storage ](../../../administration/raketasks/storage.md#migrate-to-hashed-storage ). Since
GitLab 10.0, newly created projects use hashed storage by default. A GitLab admin can verify the storage type of a
project by navigating to **Admin Area > Projects** and then selecting the project in question.
A project can be identified as hashed-stored if its *Gitaly relative path* contains `@hashed` .
2019-11-07 01:06:12 -05:00
2020-02-28 10:09:13 -05:00
If the requirements are not met, the **Designs** tab displays a message to the user.
2020-03-13 05:09:23 -04:00
## Supported files
Files uploaded must have a file extension of either `png` , `jpg` , `jpeg` ,
2020-08-03 14:10:05 -04:00
`gif` , `bmp` , `tiff` , `ico` , or `svg` .
2020-03-13 05:09:23 -04:00
2020-08-03 14:10:05 -04:00
Support for [PDF ](https://gitlab.com/gitlab-org/gitlab/issues/32811 ) is planned for a future release.
2020-03-13 05:09:23 -04:00
2019-07-08 00:39:53 -04:00
## Limitations
2019-08-11 18:17:32 -04:00
- Design uploads are limited to 10 files at a time.
2020-06-17 08:08:42 -04:00
- From GitLab 13.1, Design filenames are limited to 255 characters.
2019-08-11 18:17:32 -04:00
- Design Management data
2020-05-21 23:08:28 -04:00
[isn't deleted when a project is destroyed ](https://gitlab.com/gitlab-org/gitlab/-/issues/13429 ) yet.
- Design Management data [won't be moved ](https://gitlab.com/gitlab-org/gitlab/-/issues/13426 )
when an issue is moved, nor [deleted ](https://gitlab.com/gitlab-org/gitlab/-/issues/13427 )
2019-08-11 18:17:32 -04:00
when an issue is deleted.
2020-01-20 22:08:37 -05:00
- From GitLab 12.7, Design Management data [can be replicated ](../../../administration/geo/replication/datatypes.md#limitations-on-replicationverification )
2020-05-21 23:08:28 -04:00
by Geo but [not verified ](https://gitlab.com/gitlab-org/gitlab/-/issues/32467 ).
2019-10-15 17:06:25 -04:00
- Only the latest version of the designs can be deleted.
- Deleted designs cannot be recovered but you can see them on previous designs versions.
2019-07-08 00:39:53 -04:00
2020-07-16 20:09:37 -04:00
## GitLab-Figma plugin
> [Introduced](https://gitlab.com/gitlab-org/gitlab-figma-plugin/-/issues/2) in GitLab 13.2.
Connect your design environment with your source code management in a seamless workflow. The GitLab-Figma plugin makes it quick and easy to collaborate in GitLab by bringing the work of product designers directly from Figma to GitLab Issues as uploaded Designs.
To use the plugin, install it from the [Figma Directory ](https://www.figma.com/community/plugin/860845891704482356 )
and connect to GitLab through a personal access token. The details are explained in the [plugin documentation ](https://gitlab.com/gitlab-org/gitlab-figma-plugin/-/wikis/home ).
2020-07-15 11:09:21 -04:00
## The Design Management section
2019-07-08 00:39:53 -04:00
2020-07-17 08:09:53 -04:00
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/223193) in GitLab 13.2, Designs are displayed directly on the issue description rather than on a separate tab.
> - The new display is deployed behind a feature flag, enabled by default.
> - It's enabled on GitLab.com.
> - It cannot be enabled or disabled per-project.
> - It's recommended for production use.
> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-displaying-designs-on-the-issue-description-core-only). If disabled, it will move Designs back to the **Designs** tab.
2019-07-08 00:39:53 -04:00
2020-07-15 11:09:21 -04:00
You can find to the **Design Management** section in the issue description:
![Designs section ](img/design_management_v13_2.png )
2019-07-08 00:39:53 -04:00
2020-07-17 08:09:53 -04:00
### Enable or disable displaying Designs on the issue description **(CORE ONLY)**
Displaying Designs on the issue description is under development but ready for
production use. It is deployed behind a feature flag that is **enabled by
default**.
[GitLab administrators with access to the GitLab Rails console ](../../../administration/feature_flags.md )
can opt to disable it for your instance.
To disable it:
```ruby
Feature.disable(:design_management_moved)
```
To enable it:
```ruby
Feature.enable(:design_management_moved)
```
By disabling this feature, designs will be displayed on the **Designs** tab
instead of directly on the issue description.
2019-07-08 00:39:53 -04:00
## Adding designs
2020-07-15 11:09:21 -04:00
To upload Design images, drag files from your computer and drop them in the Design Management section,
or click **upload** to select images from your file browser:
2020-07-23 14:10:06 -04:00
![Designs empty state ](img/design_management_upload_v13.3.png )
2019-07-08 00:39:53 -04:00
2020-05-21 23:08:28 -04:00
[Introduced ](https://gitlab.com/gitlab-org/gitlab/-/issues/34353 ) in [GitLab Premium ](https://about.gitlab.com/pricing/ ) 12.9,
2020-06-11 17:08:37 -04:00
you can drag and drop designs onto the dedicated drop zone to upload them.
2020-03-13 05:09:23 -04:00
2020-07-15 11:09:21 -04:00
![Drag and drop design uploads ](img/design_drag_and_drop_uploads_v13_2.png )
2020-03-13 05:09:23 -04:00
2020-04-02 14:08:11 -04:00
[Introduced ](https://gitlab.com/gitlab-org/gitlab/-/issues/202634 )
in GitLab 12.10, you can also copy images from your file system and
paste them directly on GitLab's Design page as a new design.
On macOS you can also take a screenshot and immediately copy it to
the clipboard by simultaneously clicking < kbd > Control< / kbd > + < kbd > Command< / kbd > + < kbd > Shift< / kbd > + < kbd > 3< / kbd > , and then paste it as a design.
Copy-and-pasting has some limitations:
- You can paste only one image at a time. When copy/pasting multiple files, only the first one will be uploaded.
- All images will be converted to `png` format under the hood, so when you want to copy/paste `gif` file, it will result in broken animation.
2020-04-27 14:09:41 -04:00
- If you are pasting a screenshot from the clipboard, it will be renamed to `design_<timestamp>.png`
2020-04-02 14:08:11 -04:00
- Copy/pasting designs is not supported on Internet Explorer.
2020-03-13 08:09:22 -04:00
Designs with the same filename as an existing uploaded design will create a new version
2020-05-21 23:08:28 -04:00
of the design, and will replace the previous version. [Introduced ](https://gitlab.com/gitlab-org/gitlab/-/issues/34353 ) in [GitLab Premium ](https://about.gitlab.com/pricing/ ) 12.9, dropping a design on an existing uploaded design will also create a new version,
2020-03-13 08:09:22 -04:00
provided the filenames are the same.
Designs cannot be added if the issue has been moved, or its
[discussion is locked ](../../discussions/#lock-discussions ).
2020-01-30 10:09:15 -05:00
### Skipped designs
Designs with the same filename as an existing uploaded design _and_ whose content has not changed will be skipped.
This means that no new version of the design will be created. When designs are skipped, you will be made aware via a warning
message on the Issue.
2019-07-08 00:39:53 -04:00
## Viewing designs
2019-09-27 05:06:26 -04:00
Images on the Design Management page can be enlarged by clicking on them.
2020-01-16 10:08:41 -05:00
You can navigate through designs by clicking on the navigation buttons on the
top-right corner or with < kbd > Left< / kbd > /< kbd > Right< / kbd > keyboard buttons.
2019-09-18 10:02:45 -04:00
2020-03-26 08:07:48 -04:00
The number of discussions on a design — if any — is listed to the right
2019-09-18 10:02:45 -04:00
of the design filename. Clicking on this number enlarges the design
just like clicking anywhere else on the design.
When a design is added or modified, an icon is displayed on the item
2019-09-27 05:06:26 -04:00
to help summarize changes between versions.
2019-09-18 10:02:45 -04:00
| Indicator | Example |
| --------- | ------- |
2020-03-26 08:07:48 -04:00
| Discussions | ![Discussions Icon ](img/design_comments_v12_3.png ) |
2019-09-18 10:02:45 -04:00
| Modified (in the selected version) | ![Design Modified ](img/design_modified_v12_3.png ) |
| Added (in the selected version) | ![Design Added ](img/design_added_v12_3.png ) |
2019-07-08 00:39:53 -04:00
2020-01-17 01:08:39 -05:00
### Exploring designs by zooming
2020-05-21 23:08:28 -04:00
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13217) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.7.
2020-01-17 01:08:39 -05:00
2020-03-26 08:07:48 -04:00
Designs can be explored in greater detail by zooming in and out of the image.
Control the amount of zoom with the `+` and `-` buttons at the bottom of the image.
While zoomed, you can still [start new discussions ](#starting-discussions-on-designs ) on the image, and see any existing ones.
2020-05-21 23:08:28 -04:00
[Introduced ](https://gitlab.com/gitlab-org/gitlab/-/issues/197324 ) in GitLab 12.10, while zoomed in,
2020-04-06 08:10:44 -04:00
you can click-and-drag on the image to move around it.
2020-01-17 01:08:39 -05:00
![Design zooming ](img/design_zooming_v12_7.png )
2019-10-15 17:06:25 -04:00
## Deleting designs
2020-05-21 23:08:28 -04:00
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11089) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.4.
2019-10-15 17:06:25 -04:00
There are two ways to delete designs: manually delete them
individually, or select a few of them to delete at once,
as shown below.
To delete a single design, click it to view it enlarged,
then click the trash icon on the top right corner and confirm
the deletion by clicking the **Delete** button on the modal window:
![Confirm design deletion ](img/confirm_design_deletion_v12_4.png )
To delete multiple designs at once, on the design's list view,
first select the designs you want to delete:
![Select designs ](img/select_designs_v12_4.png )
Once selected, click the **Delete selected** button to confirm the deletion:
![Delete multiple designs ](img/delete_multiple_designs_v12_4.png )
2020-07-20 20:09:37 -04:00
NOTE: **Note:**
2019-10-15 17:06:25 -04:00
Only the latest version of the designs can be deleted.
Deleted designs are not permanently lost; they can be
viewed by browsing previous versions.
2020-08-13 11:10:03 -04:00
## Reordering designs
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/34382) in GitLab 13.3.
You can change designs order with dragging design to the new position:
![Reorder designs ](img/designs_reordering_v13_3.gif )
NOTE: **Note:**
You can reorder designs only on the latest version.
2020-03-26 08:07:48 -04:00
## Starting discussions on designs
2019-08-06 08:02:23 -04:00
2020-03-26 08:07:48 -04:00
When a design is uploaded, you can start a discussion by clicking on
the image on the exact location you would like the discussion to be focused on.
A pin is added to the image, identifying the discussion's location.
2019-08-06 08:02:23 -04:00
![Starting a new discussion on design ](img/adding_note_to_design_1.png )
2020-05-21 23:08:28 -04:00
[Introduced ](https://gitlab.com/gitlab-org/gitlab/-/issues/34353 ) in [GitLab Premium ](https://about.gitlab.com/pricing/ ) 12.8,
2020-03-26 08:07:48 -04:00
you can adjust a pin's position by dragging it around the image. This is useful
2020-02-17 07:09:20 -05:00
for when your design layout has changed between revisions, or if you need to move an
2020-03-26 08:07:48 -04:00
existing pin to add a new one in its place.
2020-02-14 04:08:43 -05:00
2020-03-26 08:07:48 -04:00
Different discussions have different pin numbers:
2019-08-06 08:02:23 -04:00
2020-03-26 08:07:48 -04:00
![Discussions on designs ](img/adding_note_to_design_2.png )
2019-11-15 19:06:14 -05:00
2020-03-26 08:07:48 -04:00
From GitLab 12.5 on, new discussions will be outputted to the issue activity,
2019-11-15 19:06:14 -05:00
so that everyone involved can participate in the discussion.
2020-05-28 17:08:22 -04:00
2020-06-03 14:08:28 -04:00
## Resolve Design threads
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13049) in GitLab 13.1.
2020-06-18 08:09:25 -04:00
Discussion threads can be resolved on Designs.
2020-06-03 14:08:28 -04:00
2020-06-18 08:09:25 -04:00
There are two ways to resolve/unresolve a Design thread:
2020-06-03 14:08:28 -04:00
2020-06-18 08:09:25 -04:00
1. You can mark a thread as resolved or unresolved by clicking the checkmark icon for **Resolve thread** in the top-right corner of the first comment of the discussion:
2020-06-03 14:08:28 -04:00
2020-06-18 08:09:25 -04:00
![Resolve thread icon ](img/resolve_design-discussion_icon_v13_1.png )
1. Design threads can also be resolved or unresolved in their threads by using a checkbox.
When replying to a comment, you will see a checkbox that you can click in order to resolve or unresolve
the thread once published:
![Resolve checkbox ](img/resolve_design-discussion_checkbox_v13_1.png )
Note that your resolved comment pins will disappear from the Design to free up space for new discussions.
However, if you need to revisit or find a resolved discussion, all of your resolved threads will be
available in the **Resolved Comment** area at the bottom of the right sidebar.
2020-06-03 14:08:28 -04:00
2020-05-28 17:08:22 -04:00
## Referring to designs in Markdown
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/217160) in **GitLab 13.1**.
> - It is deployed behind a feature flag, disabled by default.
> - It is disabled on GitLab.com.
> - It is not recommended for production use.
> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-design-references-core-only). **(CORE ONLY)**
We support referring to designs in [Markdown ](../../markdown.md ), which is available
throughout the application, including in merge request and issue descriptions, in discussions and comments, and in wiki pages.
At present, full URL references are supported. For example, if we refer to a design
somewhere with:
```markdown
2020-06-04 17:08:11 -04:00
See https://gitlab.com/your-group/your-project/-/issues/123/designs/homescreen.png
2020-05-28 17:08:22 -04:00
```
This will be rendered as:
2020-06-04 17:08:11 -04:00
> See [#123[homescreen.png]](https://gitlab.com/your-group/your-project/-/issues/123/designs/homescreen.png)
2020-05-28 17:08:22 -04:00
### Enable or disable design references **(CORE ONLY)**
Design reference parsing is under development and not ready for production use. It is
deployed behind a feature flag that is **disabled by default** .
[GitLab administrators with access to the GitLab Rails console ](../../../administration/feature_flags.md )
can enable it for your instance.
To enable it:
```ruby
Feature.enable(:design_management_reference_filter_gfm_pipeline)
```
To disable it:
```ruby
Feature.disable(:design_management_reference_filter_gfm_pipeline)
```
2020-06-19 14:08:39 -04:00
## Design activity records
2020-07-16 20:09:37 -04:00
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/33051) in GitLab 13.1.
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/225205) in GitLab 13.2.
2020-06-19 14:08:39 -04:00
User activity events on designs (creation, deletion, and updates) are tracked by GitLab and
displayed on the [user profile ](../../profile/index.md#user-profile ),
[group ](../../group/index.md#view-group-activity ),
and [project ](../index.md#project-activity ) activity pages.