Karol Lewandowski d8e83b57ea
UI Guidelines (#1308)
* Add UI Guidelines to  SDK docs

* Add UI Guidelines to  SDK docs

* Fixing build errors

* optimize PNGs

* add UI guidelines landing page placeholder

* IJ SDK Docs <-> UI guidelines crosslinks updated

* split_button.md: remove reference to removed setting

* use <ui-path>

* use MD instead of <note>

* use %gh-ic% links

* drop_down.md: fix <control>

* code samples: fix most obvious issues

* remove obsolete `_defaults.md`

* ijs.tree: UI cleanup

* Delete "under construction" pages

* Fix headers

* Add link-summary

* Remove invalid links

* Delete unused files

* Remove ''@2x' from image file names

* Use Markdown syntax for some images and tables

* Rename non-unique files to unique

* Remove alpha in images where content is unreadable

* align quotation marks

* Controls: cleanup/fixes, add code links, edit

* tooltip.md: fix HTML

* misc fixes

* typography.md: fix table contents

* typography.md: fix table header

* UI guidelines landing page + TOC fixes

* remove unused icons_list.md

* Normalize image paths

* validation_errors.md: Fix broken tab

* "correct"/"incorrect" labels styling

* Resize images to 50%

* button.topic: fixes

* grammar, spelling, minor edits

* remove '&nbsp;'

* fix 99px

* cleanup

* UI_kit.md: minor

* Fix "MRK058: Large image in paragraph rendered as a block element by default."

* button.topic: Add img[alt]

* mnemonics.md: Update "Contact Us" link to the IJSDK YouTrack

* split_button.md: Use ui-path

* UI landing: add feedback snippet

* Improve code snippets formatting and naming

* Fix code samples

* Fix code samples

* Add Kotlin variants for code samples

* Add icons_list.md

* crosslinks

* Change external link to https://intellij-icons.jetbrains.design/

* icons list -> https://intellij-icons.jetbrains.design

* Hide info about reducing split button to simple action button (now it is available through the registry only)

* reformat

* icons_style.md: Images in new line

---------

Co-authored-by: marianna.kononenko <marianna.kononenko@jetbrains.com>
Co-authored-by: Yann Cébron <yann.cebron@jetbrains.com>
2024-05-16 13:51:56 +02:00

4.5 KiB

Link

UI guidelines on using links.

Implementation: ActionLink, DropDownLink

{width=120}

When to use

Use a regular link for navigation between pages of the same window.

{width=494}

This option is in the Settings dialog. "Configure servers" opens another page of the same dialog.

{width=411}

Do not use a button to navigate to another page of the same window.

Use an external link for navigation to web resources. See below for the external link icon.

{width=248}

Use a regular or drop-down link for secondary actions in packed or small UI areas.

{width=367}

The "Reset" action is a link for two reasons: (1) The action appears only when the default value in the field is changed and reverting to a default is considered a rare scenario. (2) A lightweight link fits better than a button in this busy layout.

{width=550}

The "Modify options" drop-down link fits into the top right corner of a busy layout.

Do not use links for primary actions or when a UI is not constrained. Use a button or a drop down list instead. These controls can be selected from the keyboard and are bigger and easier to click.

{width=451}

How to use

Writing guidelines

Use sentence capitalization.

Add an ellipsis to a button-link if it opens another UI area where input is possible. See examples for the Button.

Do not use words like "navigate" or "click here". A link already implies navigation or clicking.

{width=398}

When possible, replace "Learn more" and other generic phrases with more informative ones.

{width=316}

A link can be a part of a checkbox or radio button label or of any stand-alone text, like the text in an empty state or in context help.

{width=403}

Make a link the minimum phrase that is enough to understand what will happen without reading the whole text.

{width=489}

Use a link as a secondary action for some items of a tree or table.

{width=387}

If an action is needed for all items of a tree or table:

  • Add an icon button to a toolbar.
  • For a list of choices, add a separate table column of drop-down cells (see Table).
  • If a link in every tree or table line has meaningful formatting, leave it: {width=342} Links in the "Push Commits" window have the format that helps understand the relation between them: "[remote repository] : [branch]". Moving these links elsewhere would break this meaning.

Always add the arrow icon for an external link. The icon shows that the user will switch to a browser and lose the current context.

{width=248}

val externalLink = ActionLink("External link") {
  BrowserUtil.browse("https://www.jetbrains.com")
}.apply {
  setExternalLinkIcon()
}
ActionLink externalLink = new ActionLink(
    "External link",
    event -> BrowserUtil.browse("https://www.jetbrains.com")
);
externalLink.setExternalLinkIcon();

An exception is a help topic link in empty states. The help icon already hints that this is an external help resource, so the arrow icon is unnecessary.

{width=164}

Drop-down links show a context menu or a popup. Use DropDownLink to implement a drop-down link.

{width=445}

Placement

Lay out button-links as buttons and dropdown-links as combo boxes. See Layout.

Built-in behavior

A focused link is activated from the keyboard with Space.