@gitlab/ui 115.9.0 → 115.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/base/avatar_link/avatar_link.js +1 -1
- package/dist/components/base/avatars_inline/avatars_inline.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/dist/tokens/build/js/tokens.dark.js +1 -1
- package/dist/tokens/build/js/tokens.js +1 -1
- package/dist/tokens/css/tokens.css +1 -1
- package/dist/tokens/css/tokens.dark.css +1 -1
- package/dist/tokens/figma/contextual.tokens.json +1 -1
- package/dist/tokens/js/tokens.dark.js +1 -1
- package/dist/tokens/js/tokens.js +1 -1
- package/dist/tokens/json/tokens.dark.json +2 -2
- package/dist/tokens/json/tokens.json +2 -2
- package/dist/tokens/scss/_tokens.dark.scss +1 -1
- package/dist/tokens/scss/_tokens.scss +1 -1
- package/package.json +10 -10
- package/src/components/base/avatar_link/avatar_link.vue +1 -1
- package/src/components/base/avatars_inline/avatars_inline.vue +1 -1
- package/src/components/base/markdown/markdown_typescale_demo.html +41 -71
- package/src/scss/variables.scss +1 -1
- package/src/tokens/build/css/tokens.css +1 -1
- package/src/tokens/build/css/tokens.dark.css +1 -1
- package/src/tokens/build/figma/contextual.tokens.json +1 -1
- package/src/tokens/build/js/tokens.dark.js +1 -1
- package/src/tokens/build/js/tokens.js +1 -1
- package/src/tokens/build/json/tokens.dark.json +2 -2
- package/src/tokens/build/json/tokens.json +2 -2
- package/src/tokens/build/scss/_tokens.dark.scss +1 -1
- package/src/tokens/build/scss/_tokens.scss +1 -1
- package/src/tokens/contextual/table.tokens.json +1 -1
- package/src/components/base/accordion/accordion.md +0 -3
- package/src/components/base/accordion/accordion_item.md +0 -3
- package/src/components/base/alert/alert.md +0 -35
- package/src/components/base/animated_icon/animated_icon.md +0 -4
- package/src/components/base/avatar/avatar.md +0 -1
- package/src/components/base/avatar_labeled/avatar_labeled.md +0 -20
- package/src/components/base/avatar_link/avatar_link.md +0 -33
- package/src/components/base/avatars_inline/avatars_inline.md +0 -38
- package/src/components/base/badge/badge.md +0 -30
- package/src/components/base/banner/banner.md +0 -35
- package/src/components/base/breadcrumb/breadcrumb.md +0 -52
- package/src/components/base/broadcast_message/broadcast_message.md +0 -25
- package/src/components/base/button/button.md +0 -119
- package/src/components/base/button_group/button_group.md +0 -44
- package/src/components/base/card/card.md +0 -4
- package/src/components/base/collapse/collapse.md +0 -64
- package/src/components/base/datepicker/datepicker.md +0 -8
- package/src/components/base/daterange_picker/daterange_picker.md +0 -32
- package/src/components/base/drawer/drawer.md +0 -17
- package/src/components/base/dropdown/dropdown.md +0 -72
- package/src/components/base/dropdown/dropdown_item.md +0 -2
- package/src/components/base/dropdown/dropdown_section_header.md +0 -7
- package/src/components/base/dropdown/dropdown_text.md +0 -7
- package/src/components/base/filtered_search/filtered_search.md +0 -76
- package/src/components/base/filtered_search/filtered_search_suggestion.md +0 -15
- package/src/components/base/filtered_search/filtered_search_suggestion_list.md +0 -13
- package/src/components/base/filtered_search/filtered_search_term.md +0 -7
- package/src/components/base/filtered_search/filtered_search_token.md +0 -23
- package/src/components/base/filtered_search/filtered_search_token_segment.md +0 -14
- package/src/components/base/form/form_checkbox/form_checkbox.md +0 -6
- package/src/components/base/form/form_input/form_input.md +0 -306
- package/src/components/base/form/form_radio/form_radio.md +0 -23
- package/src/components/base/form/form_radio_group/form_radio_group.md +0 -63
- package/src/components/base/form/form_select/form_select.md +0 -1
- package/src/components/base/form/form_textarea/form_textarea.md +0 -3
- package/src/components/base/icon/icon.md +0 -27
- package/src/components/base/infinite_scroll/infinite_scroll.md +0 -104
- package/src/components/base/keyset_pagination/keyset_pagination.md +0 -49
- package/src/components/base/label/label.md +0 -15
- package/src/components/base/link/link.md +0 -187
- package/src/components/base/loading_icon/loading_icon.md +0 -3
- package/src/components/base/modal/modal.md +0 -30
- package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.md +0 -184
- package/src/components/base/new_dropdowns/listbox/listbox.md +0 -195
- package/src/components/base/pagination/pagination.md +0 -45
- package/src/components/base/path/path.md +0 -41
- package/src/components/base/progress_bar/progress_bar.md +0 -25
- package/src/components/base/search_box_by_click/search_box_by_click.md +0 -1
- package/src/components/base/search_box_by_type/search_box_by_type.md +0 -1
- package/src/components/base/segmented_control/segmented_control.md +0 -26
- package/src/components/base/skeleton_loader/skeleton_loader.md +0 -70
- package/src/components/base/sorting/sorting.md +0 -80
- package/src/components/base/table/table.md +0 -71
- package/src/components/base/table_lite/table_lite.md +0 -68
- package/src/components/base/tabs/tabs/tabs.md +0 -80
- package/src/components/base/toast/toast.md +0 -48
- package/src/components/base/toggle/toggle.md +0 -4
- package/src/components/base/token/token.md +0 -12
- package/src/components/base/tooltip/tooltip.md +0 -52
- package/src/scss/typescale/typeface_demo.html +0 -70
- package/src/scss/typescale/typescale.md +0 -81
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
Tabs are used to divide content into meaningful, related sections. Tabs allow users to focus on one
|
|
2
|
-
specific view at a time while maintaining sight of all the relevant content options available. Each
|
|
3
|
-
tab, when active, will reveal it’s own unique content.
|
|
4
|
-
|
|
5
|
-
## Using the component Vue
|
|
6
|
-
|
|
7
|
-
~~~html
|
|
8
|
-
<gl-tabs>
|
|
9
|
-
<gl-tab title="Tab 1">
|
|
10
|
-
Tab panel 1
|
|
11
|
-
</gl-tab>
|
|
12
|
-
<gl-tab title="Tab 2">
|
|
13
|
-
Tab panel 2
|
|
14
|
-
</gl-tab>
|
|
15
|
-
</gl-tabs>
|
|
16
|
-
~~~
|
|
17
|
-
|
|
18
|
-
## Using the component HTML
|
|
19
|
-
|
|
20
|
-
~~~html
|
|
21
|
-
<div class="tabs gl-tabs">
|
|
22
|
-
<ul role="tablist" class="nav gl-tabs-nav">
|
|
23
|
-
<li role="presentation" class="nav-item">
|
|
24
|
-
<a
|
|
25
|
-
role="tab"
|
|
26
|
-
target="_self"
|
|
27
|
-
href="#"
|
|
28
|
-
class="nav-link gl-tab-nav-item gl-tab-nav-item-active gl-tab-nav-item-active-indigo"
|
|
29
|
-
>Tab 1</a>
|
|
30
|
-
</li>
|
|
31
|
-
<li role="presentation" class="nav-item">
|
|
32
|
-
<a role="tab" target="_self" href="#" class="nav-link gl-tab-nav-item">Tab 2</a>
|
|
33
|
-
</li>
|
|
34
|
-
</ul>
|
|
35
|
-
<div class="tab-content gl-tab-content">
|
|
36
|
-
<div role="tabpanel" class="tab-pane gl-tab-content active">Tab panel 1</div>
|
|
37
|
-
<div role="tabpanel" class="tab-pane gl-tab-content">Tab panel 2</div>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
~~~
|
|
41
|
-
|
|
42
|
-
## Adding Action Buttons to the Tabs
|
|
43
|
-
|
|
44
|
-
Action buttons are rendered in separate toolbar slots (`#toolbar-start` & `#toolbar-end`) and can
|
|
45
|
-
be populated via props: `action-primary`, `action-secondary` and
|
|
46
|
-
`action-tertiary`. These props allow you to handle how a primary, secondary and tertiary button will
|
|
47
|
-
behave and look. The props receive an object as such:
|
|
48
|
-
|
|
49
|
-
~~~js
|
|
50
|
-
{
|
|
51
|
-
text: 'Save Changes',
|
|
52
|
-
attributes: {
|
|
53
|
-
variant: 'info',
|
|
54
|
-
disabled: this.someState,
|
|
55
|
-
class: 'some-class',
|
|
56
|
-
...
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
~~~
|
|
60
|
-
|
|
61
|
-
## Scrollable tab buttons
|
|
62
|
-
|
|
63
|
-
By default, `GlTab` will wrap tab buttons when they overflow the container. To
|
|
64
|
-
enable horizontally scrolling for the tab buttons, use the `GlScrollableTabs`
|
|
65
|
-
component. This is a separate Vue component because of some limitations:
|
|
66
|
-
|
|
67
|
-
- The action props (e.g., `action-primary`) are not respected in `GlScrollableTabs`. At the
|
|
68
|
-
moment, BootstrapVue does not provide a reliable way for us to achieve this desired combination.
|
|
69
|
-
|
|
70
|
-
`GlScrollableTabs` composes `GlTabs` and passes through every listener, slot, or prop (with the above
|
|
71
|
-
exceptions).
|
|
72
|
-
|
|
73
|
-
~~~html
|
|
74
|
-
<gl-scrollable-tabs
|
|
75
|
-
scroll-left-label="Custom scroll left text"
|
|
76
|
-
scroll-right-label="Custom scroll right text"
|
|
77
|
-
>
|
|
78
|
-
<gl-tab v-for="tab in tabs" :key="tab.key" :title="tab.title"> {{ tab.content }} </gl-tab>
|
|
79
|
-
</gl-scrollable-tabs>
|
|
80
|
-
~~~
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
Toasts are used to display system messages. The messages are short and straightforward. It may
|
|
3
|
-
contain a dismiss button, and an action button depending on the situation.
|
|
4
|
-
|
|
5
|
-
## Using the plugin
|
|
6
|
-
|
|
7
|
-
In order to use the plugin, it needs to be included in your application with `Vue.use`.
|
|
8
|
-
|
|
9
|
-
```js
|
|
10
|
-
// myApp.js
|
|
11
|
-
|
|
12
|
-
import { GlToast } from '@gitlab/ui';
|
|
13
|
-
|
|
14
|
-
// Note, this has to be done before `Vue.new()`
|
|
15
|
-
Vue.use(GlToast);
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Once included in your application, the toast plugin is globally available.
|
|
19
|
-
|
|
20
|
-
```js
|
|
21
|
-
// myComponent.vue
|
|
22
|
-
|
|
23
|
-
this.$toast.show('Hello GitLab!');
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Below is an example with options
|
|
27
|
-
|
|
28
|
-
```js
|
|
29
|
-
// myComponent.vue
|
|
30
|
-
|
|
31
|
-
this.$toast.show('This is a toast with an option.', {
|
|
32
|
-
action: {
|
|
33
|
-
text: 'Undo',
|
|
34
|
-
onClick: () => { ... },
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Options
|
|
40
|
-
|
|
41
|
-
Below are the options you can pass to create a toast
|
|
42
|
-
|
|
43
|
-
| **Option** | **Type** | **Default** | **Description** |
|
|
44
|
-
| ------------- | ------------- | ----------- | ---------------------------------------- |
|
|
45
|
-
| autoHideDelay | Number | 5000 | Display time of the toast in millisecond |
|
|
46
|
-
| action | Object | close | Add single actions to toast |
|
|
47
|
-
| toastClass | String, Array | 'gl-toast' | Custom css class name of the toast |
|
|
48
|
-
| onComplete | Function | null | Trigger when toast is completed |
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
## Usage
|
|
2
|
-
|
|
3
|
-
Tokens are an object that has been created after a user action, like selecting an autocompleted item
|
|
4
|
-
while searching. They have a close action in the form of an 'x'.
|
|
5
|
-
|
|
6
|
-
## Using the component
|
|
7
|
-
|
|
8
|
-
~~~html
|
|
9
|
-
<gl-token>
|
|
10
|
-
Token
|
|
11
|
-
</gl-token>
|
|
12
|
-
~~~
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
Using the tooltip component is recommended if you have HTML content.
|
|
2
|
-
It is also currently required if the tooltip content needs to change while it's visible
|
|
3
|
-
(see [this upstream issue][this upstream issue]). In all other cases, please use the directive.
|
|
4
|
-
|
|
5
|
-
[this upstream issue]: https://github.com/bootstrap-vue/bootstrap-vue/issues/2142
|
|
6
|
-
|
|
7
|
-
## Using the component
|
|
8
|
-
|
|
9
|
-
~~~html
|
|
10
|
-
<gl-button ref="someButton">
|
|
11
|
-
...
|
|
12
|
-
</gl-button>
|
|
13
|
-
|
|
14
|
-
<gl-tooltip :target="() => $refs.someButton">
|
|
15
|
-
some <em>tooltip<em/> text
|
|
16
|
-
</gl-tooltip>
|
|
17
|
-
~~~
|
|
18
|
-
|
|
19
|
-
## Using the directive
|
|
20
|
-
|
|
21
|
-
You will need to import and register `GlTooltipDirective` before you can use it.
|
|
22
|
-
|
|
23
|
-
~~~html
|
|
24
|
-
<script>
|
|
25
|
-
import { GlTooltipDirective } from '@gitlab/ui';
|
|
26
|
-
|
|
27
|
-
export default {
|
|
28
|
-
directives: {
|
|
29
|
-
GlTooltip: GlTooltipDirective,
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
</script>
|
|
33
|
-
|
|
34
|
-
<element
|
|
35
|
-
v-gl-tooltip.${modifier}
|
|
36
|
-
title="some tooltip text"
|
|
37
|
-
>
|
|
38
|
-
...
|
|
39
|
-
</element>
|
|
40
|
-
~~~
|
|
41
|
-
|
|
42
|
-
## Directive attributes
|
|
43
|
-
|
|
44
|
-
`v-gl-tooltip` directive uses the same attributes as [`v-b-tooltip`][`v-b-tooltip`].
|
|
45
|
-
|
|
46
|
-
## Under the hood
|
|
47
|
-
|
|
48
|
-
Tooltip uses [`<b-tooltip>`][`<b-tooltip>`] and [`v-b-tooltip`][`v-b-tooltip`] internally.
|
|
49
|
-
|
|
50
|
-
[`<b-tooltip>`]: https://bootstrap-vue.org/docs/components/tooltip
|
|
51
|
-
|
|
52
|
-
[`v-b-tooltip`]: https://bootstrap-vue.org/docs/directives/tooltip
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
<table>
|
|
2
|
-
<thead>
|
|
3
|
-
<tr>
|
|
4
|
-
<th class="gl-pb-5 gl-pr-10">
|
|
5
|
-
<h4>Primary typeface</h4>
|
|
6
|
-
<h1>GitLab Sans</h1>
|
|
7
|
-
</th>
|
|
8
|
-
<th class="gl-pb-5 monospace">
|
|
9
|
-
<h4>Monospaced typeface</h4>
|
|
10
|
-
<h1>GitLab Mono</h1>
|
|
11
|
-
</th>
|
|
12
|
-
</tr>
|
|
13
|
-
</thead>
|
|
14
|
-
<tbody>
|
|
15
|
-
<tr>
|
|
16
|
-
<td class="gl-pb-5 gl-pr-10">
|
|
17
|
-
<p class="sm">
|
|
18
|
-
UI Small Paragraph • 0.75rem (12px)<br />
|
|
19
|
-
ABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
|
|
20
|
-
abcdefghijklmnopqrstuvwxyz<br />
|
|
21
|
-
1234567890
|
|
22
|
-
</p>
|
|
23
|
-
</td>
|
|
24
|
-
<td class="gl-pb-5">
|
|
25
|
-
<p class="monospace sm">
|
|
26
|
-
UI Small Monospace • 0.75rem (12px)<br />
|
|
27
|
-
ABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
|
|
28
|
-
abcdefghijklmnopqrstuvwxyz<br />
|
|
29
|
-
1234567890
|
|
30
|
-
</p>
|
|
31
|
-
</td>
|
|
32
|
-
</tr>
|
|
33
|
-
<tr>
|
|
34
|
-
<td class="gl-pb-5 gl-pr-10">
|
|
35
|
-
<p>
|
|
36
|
-
UI Paragraph • 0.875rem (14px)<br />
|
|
37
|
-
ABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
|
|
38
|
-
abcdefghijklmnopqrstuvwxyz<br />
|
|
39
|
-
1234567890
|
|
40
|
-
</p>
|
|
41
|
-
</td>
|
|
42
|
-
<td class="gl-pb-5">
|
|
43
|
-
<p class="monospace">
|
|
44
|
-
UI Monospace • 0.875rem (14px)<br />
|
|
45
|
-
ABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
|
|
46
|
-
abcdefghijklmnopqrstuvwxyz<br />
|
|
47
|
-
1234567890
|
|
48
|
-
</p>
|
|
49
|
-
</td>
|
|
50
|
-
</tr>
|
|
51
|
-
<tr>
|
|
52
|
-
<td class="gl-pb-5 gl-pr-10">
|
|
53
|
-
<p class="lg">
|
|
54
|
-
UI Large Paragraph • 1rem (16px)<br />
|
|
55
|
-
ABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
|
|
56
|
-
abcdefghijklmnopqrstuvwxyz<br />
|
|
57
|
-
1234567890
|
|
58
|
-
</p>
|
|
59
|
-
</td>
|
|
60
|
-
<td class="gl-pb-5">
|
|
61
|
-
<p class="monospace lg">
|
|
62
|
-
UI Large Monospace • 1rem (16px)<br />
|
|
63
|
-
ABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
|
|
64
|
-
abcdefghijklmnopqrstuvwxyz<br />
|
|
65
|
-
1234567890
|
|
66
|
-
</p>
|
|
67
|
-
</td>
|
|
68
|
-
</tr>
|
|
69
|
-
</tbody>
|
|
70
|
-
</table>
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
GitLab UI typescale is an implementation of the Pajamas [typescale specification](https://www.figma.com/file/qEddyqCrI7kPSBjGmwkZzQ/Pajamas-UI-Kit---Beta?node-id=542%3A2).
|
|
2
|
-
|
|
3
|
-
## Usage
|
|
4
|
-
|
|
5
|
-
When you import GitLab UI SCSS, the typescale is not applied automatically. To apply the UI
|
|
6
|
-
Typescale, include the `gl-typescale-ui` `@mixin` in your application SCSS code:
|
|
7
|
-
|
|
8
|
-
```scss
|
|
9
|
-
@import '@gitlab/ui/src/scss/gitlab_ui';
|
|
10
|
-
|
|
11
|
-
@include gl-typescale-ui;
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
You can also include the Typescale and omit the rest of GitLab UI CSS. The following
|
|
15
|
-
code demonstrates the minimal configuration required to use the UI Typescale in a project:
|
|
16
|
-
|
|
17
|
-
```scss
|
|
18
|
-
@import '@gitlab/ui/src/scss/variables';
|
|
19
|
-
@import '@gitlab/ui/src/scss/mixins';
|
|
20
|
-
@import '@gitlab/ui/src/scss/typescale/index';
|
|
21
|
-
|
|
22
|
-
@include gl-typescale-ui;
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Implementation notes
|
|
26
|
-
|
|
27
|
-
### Font stack
|
|
28
|
-
|
|
29
|
-
The Typescale uses the following font stack:
|
|
30
|
-
|
|
31
|
-
- Regular: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans', Ubuntu,
|
|
32
|
-
Cantarell, 'Helvetica Neue', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
|
|
33
|
-
'Noto Color Emoji'`
|
|
34
|
-
- Monospace: `'Menlo', 'DejaVu Sans Mono', 'Liberation Mono', 'Consolas', 'Ubuntu Mono',
|
|
35
|
-
'Courier New', 'andale mono', 'lucida console', monospace`
|
|
36
|
-
|
|
37
|
-
### Font-size
|
|
38
|
-
|
|
39
|
-
Text size is determined by the following parameters:
|
|
40
|
-
|
|
41
|
-
- Content type:
|
|
42
|
-
- UI: default
|
|
43
|
-
- Markdown: `markdown`
|
|
44
|
-
- Compact Markdown: `compact-markdown`
|
|
45
|
-
- Media breakpoints:
|
|
46
|
-
- `min-width: 0`: default
|
|
47
|
-
- `min-width: 768px`: `md`
|
|
48
|
-
- `min-width: 992px`: `lg`
|
|
49
|
-
- `min-width: 1200px`: `xl`
|
|
50
|
-
- Font family:
|
|
51
|
-
- Regular: default
|
|
52
|
-
- Monospace: `monospace`
|
|
53
|
-
- Element type:
|
|
54
|
-
- small paragraph / UI text: `sm`
|
|
55
|
-
- medium paragraph / UI text: default
|
|
56
|
-
- large paragraph / UI text: `lg`
|
|
57
|
-
- headers: `h1..h6`
|
|
58
|
-
|
|
59
|
-
#### Variables
|
|
60
|
-
|
|
61
|
-
Typescale variables are located in the `scss/variables.scss`. They follow the naming convention:
|
|
62
|
-
`$gl-font-size-[content-type]-[font-family]-[element-type]-[breakpoint]`. Default typescale
|
|
63
|
-
parameters are omitted from the variable name. For example:
|
|
64
|
-
|
|
65
|
-
```sass
|
|
66
|
-
// content-type: UI, font-family: regular, element-type: h1, media breakpoint: default
|
|
67
|
-
$gl-font-size-h1: px-to-rem(23px);
|
|
68
|
-
|
|
69
|
-
// content-type: markdown, font-family: regular, element-type: h1, media-breakpoint: min-width: 1200px
|
|
70
|
-
$gl-font-size-markdown-h1-xl: px-to-rem(32px);
|
|
71
|
-
|
|
72
|
-
// content-type: compact markdown, font-family: regular, element-type: large paragraph / label
|
|
73
|
-
$gl-font-size-compact-markdown-lg: px-to-rem(15px);
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Line-height
|
|
77
|
-
|
|
78
|
-
The minimum line-height in Pajamas’ typescale specification is `16px`/`1rem`. Label text, which is
|
|
79
|
-
any text that is neither paragraph nor a header, uses this line-height. Paragraphs have a
|
|
80
|
-
line-height of `20px`/`1.25rem`. You can see the line-height for other typescale’s elements in the
|
|
81
|
-
[typescale sketch file](https://gitlab-org.gitlab.io/gitlab-design/hosted/pedro/%23168-responsive-type-spec-previews/).
|