@teseor/css 1.14.3 → 1.15.0
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/package.json +1 -1
- package/src/base/root.docs.html +20 -0
- package/src/base/typography/typography.docs.html +161 -0
- package/src/components/actions/button/button.docs.html +76 -0
- package/src/components/actions/button/button.visual.spec.ts +3 -3
- package/src/components/actions/button-group/button-group.docs.html +47 -0
- package/src/components/actions/button-group/button-group.visual.spec.ts +3 -3
- package/src/components/actions/close-button/close-button.docs.html +77 -0
- package/src/components/actions/close-button/close-button.visual.spec.ts +3 -3
- package/src/components/content/divider/divider.docs.html +27 -0
- package/src/components/content/divider/divider.visual.spec.ts +3 -3
- package/src/components/content/scroll-area/scroll-area-visual.png +0 -0
- package/src/components/content/scroll-area/scroll-area.docs.html +130 -0
- package/src/components/content/scroll-area/scroll-area.visual.spec.ts +3 -3
- package/src/components/content/spacer/spacer.docs.html +23 -0
- package/src/components/content/spacer/spacer.visual.spec.ts +3 -3
- package/src/components/data-display/avatar/avatar.docs.html +67 -0
- package/src/components/data-display/avatar/avatar.visual.spec.ts +3 -3
- package/src/components/data-display/badge/badge.docs.html +39 -0
- package/src/components/data-display/badge/badge.visual.spec.ts +3 -3
- package/src/components/data-display/card/card-visual.png +0 -0
- package/src/components/data-display/card/card.docs.html +36 -0
- package/src/components/data-display/card/card.visual.spec.ts +3 -3
- package/src/components/data-display/data-list/data-list-visual.png +0 -0
- package/src/components/data-display/data-list/data-list.docs.html +97 -0
- package/src/components/data-display/data-list/data-list.visual.spec.ts +3 -3
- package/src/components/data-display/icon/icon.docs.html +72 -0
- package/src/components/data-display/icon/icon.visual.spec.ts +3 -3
- package/src/components/data-display/image/image-visual.png +0 -0
- package/src/components/data-display/image/image.docs.html +67 -0
- package/src/components/data-display/image/image.visual.spec.ts +3 -3
- package/src/components/data-display/stat/stat.docs.html +35 -0
- package/src/components/data-display/stat/stat.visual.spec.ts +3 -3
- package/src/components/data-display/status/status.docs.html +67 -0
- package/src/components/data-display/status/status.visual.spec.ts +3 -3
- package/src/components/data-display/table/table.docs.html +73 -0
- package/src/components/data-display/table/table.visual.spec.ts +3 -3
- package/src/components/data-display/tag/tag.docs.html +42 -0
- package/src/components/data-display/tag/tag.visual.spec.ts +3 -3
- package/src/components/disclosure/accordion/accordion.docs.html +83 -0
- package/src/components/disclosure/accordion/accordion.visual.spec.ts +3 -3
- package/src/components/disclosure/disclosure/disclosure.docs.html +51 -0
- package/src/components/disclosure/disclosure/disclosure.visual.spec.ts +3 -3
- package/src/components/feedback/alert/alert.docs.html +90 -0
- package/src/components/feedback/alert/alert.visual.spec.ts +3 -3
- package/src/components/feedback/progress/progress.docs.html +65 -0
- package/src/components/feedback/progress/progress.visual.spec.ts +3 -3
- package/src/components/feedback/progress-circle/progress-circle.docs.html +65 -0
- package/src/components/feedback/progress-circle/progress-circle.visual.spec.ts +3 -3
- package/src/components/feedback/skeleton/skeleton.docs.html +40 -0
- package/src/components/feedback/skeleton/skeleton.visual.spec.ts +3 -3
- package/src/components/feedback/spinner/spinner.docs.html +28 -0
- package/src/components/feedback/spinner/spinner.visual.spec.ts +3 -3
- package/src/components/feedback/toast/toast-visual.png +0 -0
- package/src/components/feedback/toast/toast.docs.html +109 -0
- package/src/components/feedback/toast/toast.visual.spec.ts +3 -3
- package/src/components/forms/checkbox/checkbox.docs.html +33 -0
- package/src/components/forms/checkbox/checkbox.visual.spec.ts +3 -3
- package/src/components/forms/checkbox-group/checkbox-group.docs.html +104 -0
- package/src/components/forms/checkbox-group/checkbox-group.visual.spec.ts +3 -3
- package/src/components/forms/field/field.docs.html +63 -0
- package/src/components/forms/field/field.visual.spec.ts +3 -3
- package/src/components/forms/fieldset/fieldset.docs.html +122 -0
- package/src/components/forms/fieldset/fieldset.visual.spec.ts +3 -3
- package/src/components/forms/form/form.docs.html +132 -0
- package/src/components/forms/form/form.visual.spec.ts +3 -3
- package/src/components/forms/form-error/form-error.docs.html +18 -0
- package/src/components/forms/form-error/form-error.visual.spec.ts +3 -3
- package/src/components/forms/form-helper/form-helper.docs.html +42 -0
- package/src/components/forms/form-helper/form-helper.visual.spec.ts +3 -3
- package/src/components/forms/input/input-visual.png +0 -0
- package/src/components/forms/input/input.docs.html +69 -0
- package/src/components/forms/input/input.visual.spec.ts +3 -3
- package/src/components/forms/label/label-visual.png +0 -0
- package/src/components/forms/label/label.docs.html +29 -0
- package/src/components/forms/label/label.visual.spec.ts +3 -3
- package/src/components/forms/number-input/number-input-visual.png +0 -0
- package/src/components/forms/number-input/number-input.docs.html +100 -0
- package/src/components/forms/number-input/number-input.visual.spec.ts +3 -3
- package/src/components/forms/password-input/password-input-visual.png +0 -0
- package/src/components/forms/password-input/password-input.docs.html +88 -0
- package/src/components/forms/password-input/password-input.visual.spec.ts +3 -3
- package/src/components/forms/radio/radio.docs.html +52 -0
- package/src/components/forms/radio/radio.visual.spec.ts +3 -3
- package/src/components/forms/radio-group/radio-group.docs.html +100 -0
- package/src/components/forms/radio-group/radio-group.visual.spec.ts +3 -3
- package/src/components/forms/search-input/search-input-visual.png +0 -0
- package/src/components/forms/search-input/search-input.docs.html +87 -0
- package/src/components/forms/search-input/search-input.visual.spec.ts +3 -3
- package/src/components/forms/select/select-visual.png +0 -0
- package/src/components/forms/select/select.docs.html +70 -0
- package/src/components/forms/select/select.visual.spec.ts +3 -3
- package/src/components/forms/slider/slider-visual.png +0 -0
- package/src/components/forms/slider/slider.docs.html +25 -0
- package/src/components/forms/slider/slider.visual.spec.ts +3 -3
- package/src/components/forms/textarea/textarea-visual.png +0 -0
- package/src/components/forms/textarea/textarea.docs.html +39 -0
- package/src/components/forms/textarea/textarea.visual.spec.ts +3 -3
- package/src/components/forms/toggle/toggle.docs.html +64 -0
- package/src/components/forms/toggle/toggle.visual.spec.ts +3 -3
- package/src/components/navigation/breadcrumb/breadcrumb.docs.html +60 -0
- package/src/components/navigation/breadcrumb/breadcrumb.visual.spec.ts +3 -3
- package/src/components/navigation/dropdown-menu/dropdown-menu-visual.png +0 -0
- package/src/components/navigation/dropdown-menu/dropdown-menu.docs.html +106 -0
- package/src/components/navigation/dropdown-menu/dropdown-menu.visual.spec.ts +3 -3
- package/src/components/navigation/menu/menu.docs.html +122 -0
- package/src/components/navigation/menu/menu.visual.spec.ts +3 -3
- package/src/components/navigation/nav/nav.docs.html +74 -0
- package/src/components/navigation/nav/nav.visual.spec.ts +3 -3
- package/src/components/navigation/pagination/pagination-visual.png +0 -0
- package/src/components/navigation/pagination/pagination.docs.html +116 -0
- package/src/components/navigation/pagination/pagination.visual.spec.ts +3 -3
- package/src/components/navigation/tabs/tabs.docs.html +66 -0
- package/src/components/navigation/tabs/tabs.visual.spec.ts +3 -3
- package/src/components/overlays/dialog/dialog.docs.html +61 -0
- package/src/components/overlays/dialog/dialog.visual.spec.ts +3 -3
- package/src/components/overlays/drawer/drawer-visual.png +0 -0
- package/src/components/overlays/drawer/drawer.docs.html +90 -0
- package/src/components/overlays/drawer/drawer.visual.spec.ts +3 -3
- package/src/components/overlays/modal/modal.docs.html +69 -0
- package/src/components/overlays/modal/modal.visual.spec.ts +3 -3
- package/src/components/overlays/overlay/overlay.docs.html +30 -0
- package/src/components/overlays/overlay/overlay.visual.spec.ts +3 -3
- package/src/components/overlays/popover/popover.docs.html +41 -0
- package/src/components/overlays/popover/popover.visual.spec.ts +3 -3
- package/src/components/overlays/tooltip/tooltip.docs.html +33 -0
- package/src/components/overlays/tooltip/tooltip.visual.spec.ts +3 -3
- package/src/components/typography/blockquote/blockquote.docs.html +24 -0
- package/src/components/typography/blockquote/blockquote.visual.spec.ts +3 -3
- package/src/components/typography/code/code-visual.png +0 -0
- package/src/components/typography/code/code.docs.html +23 -0
- package/src/components/typography/code/code.visual.spec.ts +3 -3
- package/src/components/typography/code-block/code-block-visual.png +0 -0
- package/src/components/typography/code-block/code-block.docs.html +87 -0
- package/src/components/typography/code-block/code-block.visual.spec.ts +3 -3
- package/src/components/typography/heading/heading-visual.png +0 -0
- package/src/components/typography/heading/heading.docs.html +26 -0
- package/src/components/typography/heading/heading.visual.spec.ts +3 -3
- package/src/components/typography/kbd/kbd.docs.html +16 -0
- package/src/components/typography/kbd/kbd.visual.spec.ts +3 -3
- package/src/components/typography/link/link.docs.html +33 -0
- package/src/components/typography/link/link.visual.spec.ts +3 -3
- package/src/components/typography/list/list.docs.html +79 -0
- package/src/components/typography/list/list.visual.spec.ts +3 -3
- package/src/components/typography/mark/mark.docs.html +12 -0
- package/src/components/typography/mark/mark.visual.spec.ts +3 -3
- package/src/config/guides/accessibility.docs.html +108 -0
- package/src/config/guides/getting-started.docs.html +47 -0
- package/src/config/guides/theming.docs.html +71 -0
- package/src/config/tokens/colors/colors.docs.html +75 -0
- package/src/config/tokens/design-tokens.docs.html +116 -0
- package/src/config/tokens/grid/grid.docs.html +12 -0
- package/src/config/tokens/spacing/spacing.docs.html +33 -0
- package/src/debug/debug.docs.html +29 -0
- package/src/layout/app-shell/app-shell-visual.png +0 -0
- package/src/layout/app-shell/app-shell.docs.html +102 -0
- package/src/layout/app-shell/app-shell.visual.spec.ts +3 -3
- package/src/layout/aspect-ratio/aspect-ratio.docs.html +41 -0
- package/src/layout/aspect-ratio/aspect-ratio.visual.spec.ts +3 -3
- package/src/layout/box/box-visual.png +0 -0
- package/src/layout/box/box.docs.html +27 -0
- package/src/layout/box/box.visual.spec.ts +3 -3
- package/src/layout/center/center.docs.html +26 -0
- package/src/layout/center/center.visual.spec.ts +3 -3
- package/src/layout/column/column.docs.html +32 -0
- package/src/layout/column/column.visual.spec.ts +3 -3
- package/src/layout/container/container.docs.html +37 -0
- package/src/layout/content/content-visual.png +0 -0
- package/src/layout/content/content.docs.html +38 -0
- package/src/layout/content/content.visual.spec.ts +7 -3
- package/src/layout/footer/footer-visual.png +0 -0
- package/src/layout/footer/footer.docs.html +73 -0
- package/src/layout/footer/footer.visual.spec.ts +7 -3
- package/src/layout/grid/grid.docs.html +87 -0
- package/src/layout/grid/grid.visual.spec.ts +3 -3
- package/src/layout/main/main.docs.html +31 -0
- package/src/layout/nav-rail/nav-rail-visual.png +0 -0
- package/src/layout/nav-rail/nav-rail.docs.html +42 -0
- package/src/layout/nav-rail/nav-rail.visual.spec.ts +7 -3
- package/src/layout/page-header/page-header.docs.html +52 -0
- package/src/layout/page-header/page-header.visual.spec.ts +7 -3
- package/src/layout/row/row.docs.html +47 -0
- package/src/layout/row/row.visual.spec.ts +3 -3
- package/src/layout/sidebar/sidebar-visual.png +0 -0
- package/src/layout/sidebar/sidebar.docs.html +30 -0
- package/src/layout/sidebar/sidebar.visual.spec.ts +7 -3
- package/src/layout/sidebar-nav/sidebar-nav.docs.html +235 -0
- package/src/layout/sidebar-nav/sidebar-nav.visual.spec.ts +7 -3
- package/src/layout/topbar/topbar-visual.png +0 -0
- package/src/layout/topbar/topbar.docs.html +64 -0
- package/src/layout/topbar/topbar.visual.spec.ts +7 -3
- package/src/utilities/container/container.docs.html +34 -0
- package/src/utilities/display/display.docs.html +30 -0
- package/src/utilities/scroll-animation/scroll-animation.docs.html +32 -0
- package/src/utilities/scroll-snap/scroll-snap.docs.html +80 -0
- package/src/utilities/spacing/spacing.docs.html +29 -0
- package/src/utilities/text/text.docs.html +66 -0
- package/src/utilities/view-transition/view-transition.docs.html +52 -0
- package/src/utilities/visually-hidden/visually-hidden.docs.html +18 -0
- package/src/base/root.docs.json +0 -35
- package/src/base/typography/typography.docs.json +0 -328
- package/src/components/actions/button/button.docs.json +0 -264
- package/src/components/actions/button-group/button-group.docs.json +0 -151
- package/src/components/actions/close-button/close-button.docs.json +0 -265
- package/src/components/content/divider/divider.docs.json +0 -113
- package/src/components/content/scroll-area/scroll-area.docs.json +0 -273
- package/src/components/content/spacer/spacer.docs.json +0 -102
- package/src/components/data-display/avatar/avatar.docs.json +0 -245
- package/src/components/data-display/badge/badge.docs.json +0 -114
- package/src/components/data-display/card/card.docs.json +0 -229
- package/src/components/data-display/data-list/data-list.docs.json +0 -259
- package/src/components/data-display/icon/icon.docs.json +0 -307
- package/src/components/data-display/image/image.docs.json +0 -337
- package/src/components/data-display/stat/stat.docs.json +0 -114
- package/src/components/data-display/status/status.docs.json +0 -147
- package/src/components/data-display/table/table.docs.json +0 -184
- package/src/components/data-display/tag/tag.docs.json +0 -146
- package/src/components/disclosure/accordion/accordion.docs.json +0 -206
- package/src/components/disclosure/disclosure/disclosure.docs.json +0 -154
- package/src/components/feedback/alert/alert.docs.json +0 -325
- package/src/components/feedback/progress/progress.docs.json +0 -315
- package/src/components/feedback/progress-circle/progress-circle.docs.json +0 -378
- package/src/components/feedback/skeleton/skeleton.docs.json +0 -142
- package/src/components/feedback/spinner/spinner.docs.json +0 -121
- package/src/components/feedback/toast/toast.docs.json +0 -418
- package/src/components/forms/checkbox/checkbox.docs.json +0 -166
- package/src/components/forms/checkbox-group/checkbox-group.docs.json +0 -339
- package/src/components/forms/field/field.docs.json +0 -276
- package/src/components/forms/fieldset/fieldset.docs.json +0 -520
- package/src/components/forms/form/form.docs.json +0 -482
- package/src/components/forms/form-error/form-error.docs.json +0 -61
- package/src/components/forms/form-helper/form-helper.docs.json +0 -151
- package/src/components/forms/input/input.docs.json +0 -306
- package/src/components/forms/label/label.docs.json +0 -110
- package/src/components/forms/number-input/number-input.docs.json +0 -311
- package/src/components/forms/password-input/password-input.docs.json +0 -316
- package/src/components/forms/radio/radio.docs.json +0 -236
- package/src/components/forms/radio-group/radio-group.docs.json +0 -351
- package/src/components/forms/search-input/search-input.docs.json +0 -293
- package/src/components/forms/select/select.docs.json +0 -231
- package/src/components/forms/slider/slider.docs.json +0 -144
- package/src/components/forms/textarea/textarea.docs.json +0 -229
- package/src/components/forms/toggle/toggle.docs.json +0 -229
- package/src/components/navigation/breadcrumb/breadcrumb.docs.json +0 -240
- package/src/components/navigation/dropdown-menu/dropdown-menu.docs.json +0 -290
- package/src/components/navigation/menu/menu.docs.json +0 -326
- package/src/components/navigation/nav/nav.docs.json +0 -304
- package/src/components/navigation/pagination/pagination.docs.json +0 -483
- package/src/components/navigation/tabs/tabs.docs.json +0 -243
- package/src/components/overlays/dialog/dialog.docs.json +0 -200
- package/src/components/overlays/drawer/drawer.docs.json +0 -307
- package/src/components/overlays/modal/modal.docs.json +0 -252
- package/src/components/overlays/overlay/overlay.docs.json +0 -138
- package/src/components/overlays/popover/popover.docs.json +0 -154
- package/src/components/overlays/tooltip/tooltip.docs.json +0 -133
- package/src/components/typography/blockquote/blockquote.docs.json +0 -89
- package/src/components/typography/code/code.docs.json +0 -104
- package/src/components/typography/code-block/code-block.docs.json +0 -308
- package/src/components/typography/heading/heading.docs.json +0 -120
- package/src/components/typography/kbd/kbd.docs.json +0 -61
- package/src/components/typography/link/link.docs.json +0 -149
- package/src/components/typography/list/list.docs.json +0 -296
- package/src/components/typography/mark/mark.docs.json +0 -60
- package/src/config/guides/accessibility.docs.json +0 -126
- package/src/config/guides/getting-started.docs.json +0 -106
- package/src/config/guides/theming.docs.json +0 -289
- package/src/config/tokens/colors/colors.docs.json +0 -316
- package/src/config/tokens/design-tokens.docs.json +0 -239
- package/src/config/tokens/grid/grid.docs.json +0 -54
- package/src/config/tokens/spacing/spacing.docs.json +0 -114
- package/src/debug/debug.docs.json +0 -96
- package/src/layout/app-shell/app-shell.docs.json +0 -155
- package/src/layout/aspect-ratio/aspect-ratio.docs.json +0 -193
- package/src/layout/box/box.docs.json +0 -93
- package/src/layout/center/center.docs.json +0 -63
- package/src/layout/column/column.docs.json +0 -157
- package/src/layout/container/container.docs.json +0 -85
- package/src/layout/content/content.docs.json +0 -82
- package/src/layout/footer/footer.docs.json +0 -119
- package/src/layout/grid/grid.docs.json +0 -493
- package/src/layout/main/main.docs.json +0 -87
- package/src/layout/nav-rail/nav-rail.docs.json +0 -76
- package/src/layout/page-header/page-header.docs.json +0 -124
- package/src/layout/row/row.docs.json +0 -237
- package/src/layout/sidebar/sidebar.docs.json +0 -63
- package/src/layout/sidebar-nav/sidebar-nav.docs.json +0 -833
- package/src/layout/topbar/topbar.docs.json +0 -110
- package/src/utilities/container/container.docs.json +0 -121
- package/src/utilities/display/display.docs.json +0 -83
- package/src/utilities/scroll-animation/scroll-animation.docs.json +0 -100
- package/src/utilities/scroll-snap/scroll-snap.docs.json +0 -333
- package/src/utilities/spacing/spacing.docs.json +0 -133
- package/src/utilities/text/text.docs.json +0 -191
- package/src/utilities/view-transition/view-transition.docs.json +0 -63
- package/src/utilities/visually-hidden/visually-hidden.docs.json +0 -44
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Toggle
|
|
3
|
+
type: component
|
|
4
|
+
id: toggle
|
|
5
|
+
description: Switch control for boolean states. Uses checkbox semantics with role=switch for accessibility.
|
|
6
|
+
api: ./toggle.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @default -->
|
|
10
|
+
<label class="ui-toggle">
|
|
11
|
+
<input class="ui-toggle__input" type="checkbox" role="switch"></input>
|
|
12
|
+
<span class="ui-toggle__track"></span>
|
|
13
|
+
<span class="ui-toggle__thumb"></span>
|
|
14
|
+
</label>
|
|
15
|
+
|
|
16
|
+
<!-- @checked -->
|
|
17
|
+
<label class="ui-toggle">
|
|
18
|
+
<input class="ui-toggle__input" type="checkbox" role="switch" checked></input>
|
|
19
|
+
<span class="ui-toggle__track"></span>
|
|
20
|
+
<span class="ui-toggle__thumb"></span>
|
|
21
|
+
</label>
|
|
22
|
+
|
|
23
|
+
<!-- @sizes -->
|
|
24
|
+
<div style="display: flex; gap: var(--ui-space-2); align-items: center;">
|
|
25
|
+
<label class="ui-toggle ui-toggle--sm">
|
|
26
|
+
<input class="ui-toggle__input" type="checkbox" role="switch"></input>
|
|
27
|
+
<span class="ui-toggle__track"></span>
|
|
28
|
+
<span class="ui-toggle__thumb"></span>
|
|
29
|
+
</label>
|
|
30
|
+
<label class="ui-toggle">
|
|
31
|
+
<input class="ui-toggle__input" type="checkbox" role="switch" checked></input>
|
|
32
|
+
<span class="ui-toggle__track"></span>
|
|
33
|
+
<span class="ui-toggle__thumb"></span>
|
|
34
|
+
</label>
|
|
35
|
+
<label class="ui-toggle ui-toggle--lg">
|
|
36
|
+
<input class="ui-toggle__input" type="checkbox" role="switch"></input>
|
|
37
|
+
<span class="ui-toggle__track"></span>
|
|
38
|
+
<span class="ui-toggle__thumb"></span>
|
|
39
|
+
</label>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<!-- @disabled -->
|
|
43
|
+
<div style="display: flex; gap: var(--ui-space-2);">
|
|
44
|
+
<label class="ui-toggle">
|
|
45
|
+
<input class="ui-toggle__input" type="checkbox" role="switch" disabled></input>
|
|
46
|
+
<span class="ui-toggle__track"></span>
|
|
47
|
+
<span class="ui-toggle__thumb"></span>
|
|
48
|
+
</label>
|
|
49
|
+
<label class="ui-toggle">
|
|
50
|
+
<input class="ui-toggle__input" type="checkbox" role="switch" checked disabled></input>
|
|
51
|
+
<span class="ui-toggle__track"></span>
|
|
52
|
+
<span class="ui-toggle__thumb"></span>
|
|
53
|
+
</label>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<!-- @with_label -->
|
|
57
|
+
<div style="display: flex; align-items: center; gap: var(--ui-space-2);">
|
|
58
|
+
<label class="ui-toggle">
|
|
59
|
+
<input class="ui-toggle__input" type="checkbox" role="switch" id="notifications"></input>
|
|
60
|
+
<span class="ui-toggle__track"></span>
|
|
61
|
+
<span class="ui-toggle__thumb"></span>
|
|
62
|
+
</label>
|
|
63
|
+
<label for="notifications">Enable notifications</label>
|
|
64
|
+
</div>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'toggle.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'toggle.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('toggle visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'toggle');
|
|
15
15
|
await saveForLostPixel(page, 'toggle');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('toggle.visual.png');
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Breadcrumb
|
|
3
|
+
type: component
|
|
4
|
+
id: breadcrumb
|
|
5
|
+
description: Navigation hierarchy showing current page location in site structure.
|
|
6
|
+
api: ./breadcrumb.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @default -->
|
|
10
|
+
<nav class="ui-breadcrumb" aria-label="Breadcrumb">
|
|
11
|
+
<ol class="ui-breadcrumb">
|
|
12
|
+
<li class="ui-breadcrumb__item">
|
|
13
|
+
<a class="ui-breadcrumb__link" href="#">Home</a>
|
|
14
|
+
</li>
|
|
15
|
+
<li class="ui-breadcrumb__item">
|
|
16
|
+
<a class="ui-breadcrumb__link" href="#">Products</a>
|
|
17
|
+
</li>
|
|
18
|
+
<li class="ui-breadcrumb__item">
|
|
19
|
+
<span class="ui-breadcrumb__current" aria-current="page">Shoes</span>
|
|
20
|
+
</li>
|
|
21
|
+
</ol>
|
|
22
|
+
</nav>
|
|
23
|
+
|
|
24
|
+
<!-- @with_icons -->
|
|
25
|
+
<nav aria-label="Breadcrumb">
|
|
26
|
+
<ol class="ui-breadcrumb">
|
|
27
|
+
<li class="ui-breadcrumb__item">
|
|
28
|
+
<a class="ui-breadcrumb__link" href="#">
|
|
29
|
+
<svg class="ui-icon ui-icon--sm" viewBox="0 0 24 24" fill="currentColor">
|
|
30
|
+
<path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"></path>
|
|
31
|
+
</svg>
|
|
32
|
+
</a>
|
|
33
|
+
</li>
|
|
34
|
+
<li class="ui-breadcrumb__item">
|
|
35
|
+
<a class="ui-breadcrumb__link" href="#">Settings</a>
|
|
36
|
+
</li>
|
|
37
|
+
<li class="ui-breadcrumb__item">
|
|
38
|
+
<span class="ui-breadcrumb__current" aria-current="page">Profile</span>
|
|
39
|
+
</li>
|
|
40
|
+
</ol>
|
|
41
|
+
</nav>
|
|
42
|
+
|
|
43
|
+
<!-- @overflow_with_ellipsis -->
|
|
44
|
+
<!-- Truncate long breadcrumbs with hidden items and an ellipsis indicator. -->
|
|
45
|
+
<nav aria-label="Breadcrumb">
|
|
46
|
+
<ol class="ui-breadcrumb">
|
|
47
|
+
<li class="ui-breadcrumb__item">
|
|
48
|
+
<a class="ui-breadcrumb__link" href="#">Home</a>
|
|
49
|
+
</li>
|
|
50
|
+
<li class="ui-breadcrumb__item ui-breadcrumb__item--hidden">
|
|
51
|
+
<a class="ui-breadcrumb__link" href="#">Category</a>
|
|
52
|
+
</li>
|
|
53
|
+
<li class="ui-breadcrumb__item">
|
|
54
|
+
<span class="ui-breadcrumb__ellipsis">...</span>
|
|
55
|
+
</li>
|
|
56
|
+
<li class="ui-breadcrumb__item">
|
|
57
|
+
<span class="ui-breadcrumb__current" aria-current="page">Current Page</span>
|
|
58
|
+
</li>
|
|
59
|
+
</ol>
|
|
60
|
+
</nav>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'breadcrumb.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'breadcrumb.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('breadcrumb visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'breadcrumb');
|
|
15
15
|
await saveForLostPixel(page, 'breadcrumb');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('breadcrumb.visual.png');
|
|
Binary file
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Dropdown Menu
|
|
3
|
+
type: component
|
|
4
|
+
id: dropdown-menu
|
|
5
|
+
description: Trigger button with floating menu panel. Reuses the menu component for consistent item styling.
|
|
6
|
+
api: ./dropdown-menu.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @default -->
|
|
10
|
+
<div class="ui-dropdown-menu ui-dropdown-menu--open">
|
|
11
|
+
<button class="ui-dropdown-menu__trigger ui-button" type="button">
|
|
12
|
+
<span>Actions</span>
|
|
13
|
+
<span class="ui-dropdown-menu__trigger-icon">▾</span>
|
|
14
|
+
</button>
|
|
15
|
+
<div class="ui-dropdown-menu__panel" role="menu">
|
|
16
|
+
<div class="ui-menu">
|
|
17
|
+
<ul class="ui-menu__group">
|
|
18
|
+
<li>
|
|
19
|
+
<button class="ui-menu__item" role="menuitem">Edit</button>
|
|
20
|
+
</li>
|
|
21
|
+
<li>
|
|
22
|
+
<button class="ui-menu__item" role="menuitem">Duplicate</button>
|
|
23
|
+
</li>
|
|
24
|
+
<li>
|
|
25
|
+
<button class="ui-menu__item ui-menu__item--danger" role="menuitem">Delete</button>
|
|
26
|
+
</li>
|
|
27
|
+
</ul>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<!-- @with_separator -->
|
|
33
|
+
<div class="ui-dropdown-menu ui-dropdown-menu--open">
|
|
34
|
+
<button class="ui-dropdown-menu__trigger ui-button ui-button--secondary" type="button">File</button>
|
|
35
|
+
<div class="ui-dropdown-menu__panel" role="menu">
|
|
36
|
+
<div class="ui-menu">
|
|
37
|
+
<ul class="ui-menu__group">
|
|
38
|
+
<li>
|
|
39
|
+
<button class="ui-menu__item" role="menuitem">New</button>
|
|
40
|
+
</li>
|
|
41
|
+
<li>
|
|
42
|
+
<button class="ui-menu__item" role="menuitem">Open</button>
|
|
43
|
+
</li>
|
|
44
|
+
<li>
|
|
45
|
+
<button class="ui-menu__item" role="menuitem">Save</button>
|
|
46
|
+
</li>
|
|
47
|
+
<li>
|
|
48
|
+
<hr class="ui-menu__separator">
|
|
49
|
+
</li>
|
|
50
|
+
<li>
|
|
51
|
+
<button class="ui-menu__item ui-menu__item--danger" role="menuitem">Close</button>
|
|
52
|
+
</li>
|
|
53
|
+
</ul>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<!-- @top_position -->
|
|
59
|
+
<!-- Opens panel above the trigger. -->
|
|
60
|
+
<div class="ui-dropdown-menu ui-dropdown-menu--open ui-dropdown-menu--top">
|
|
61
|
+
<button class="ui-dropdown-menu__trigger ui-button">Actions</button>
|
|
62
|
+
<div class="ui-dropdown-menu__panel" role="menu">
|
|
63
|
+
<div class="ui-menu">
|
|
64
|
+
<ul class="ui-menu__group">
|
|
65
|
+
<li><button class="ui-menu__item" role="menuitem">Edit</button></li>
|
|
66
|
+
<li><button class="ui-menu__item" role="menuitem">Delete</button></li>
|
|
67
|
+
</ul>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<!-- @full_width -->
|
|
73
|
+
<!-- Panel stretches to match trigger width. -->
|
|
74
|
+
<div class="ui-dropdown-menu ui-dropdown-menu--open ui-dropdown-menu--full-width">
|
|
75
|
+
<button class="ui-dropdown-menu__trigger ui-button">Select option</button>
|
|
76
|
+
<div class="ui-dropdown-menu__panel" role="menu">
|
|
77
|
+
<div class="ui-menu">
|
|
78
|
+
<ul class="ui-menu__group">
|
|
79
|
+
<li><button class="ui-menu__item" role="menuitem">Option A</button></li>
|
|
80
|
+
<li><button class="ui-menu__item" role="menuitem">Option B</button></li>
|
|
81
|
+
</ul>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<!-- @align_end -->
|
|
87
|
+
<div style="display: flex; justify-content: flex-end">
|
|
88
|
+
<div class="ui-dropdown-menu ui-dropdown-menu--open ui-dropdown-menu--align-end">
|
|
89
|
+
<button class="ui-dropdown-menu__trigger ui-button ui-button--ghost" type="button">⋮</button>
|
|
90
|
+
<div class="ui-dropdown-menu__panel" role="menu">
|
|
91
|
+
<div class="ui-menu">
|
|
92
|
+
<ul class="ui-menu__group">
|
|
93
|
+
<li>
|
|
94
|
+
<button class="ui-menu__item" role="menuitem">View</button>
|
|
95
|
+
</li>
|
|
96
|
+
<li>
|
|
97
|
+
<button class="ui-menu__item" role="menuitem">Share</button>
|
|
98
|
+
</li>
|
|
99
|
+
<li>
|
|
100
|
+
<button class="ui-menu__item ui-menu__item--danger" role="menuitem">Remove</button>
|
|
101
|
+
</li>
|
|
102
|
+
</ul>
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'dropdown-menu.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'dropdown-menu.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('dropdown-menu visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'dropdown-menu');
|
|
15
15
|
await saveForLostPixel(page, 'dropdown-menu');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('dropdown-menu-visual.png');
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Menu
|
|
3
|
+
type: component
|
|
4
|
+
id: menu
|
|
5
|
+
api: ./menu.api.json
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- @default -->
|
|
9
|
+
<div class="ui-menu">
|
|
10
|
+
<ul class="ui-menu__group">
|
|
11
|
+
<li>
|
|
12
|
+
<button class="ui-menu__item">Edit</button>
|
|
13
|
+
</li>
|
|
14
|
+
<li>
|
|
15
|
+
<button class="ui-menu__item">Duplicate</button>
|
|
16
|
+
</li>
|
|
17
|
+
<li>
|
|
18
|
+
<button class="ui-menu__item">Archive</button>
|
|
19
|
+
</li>
|
|
20
|
+
</ul>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<!-- @with_icons_and_shortcuts -->
|
|
24
|
+
<div class="ui-menu">
|
|
25
|
+
<ul class="ui-menu__group">
|
|
26
|
+
<li>
|
|
27
|
+
<button class="ui-menu__item">
|
|
28
|
+
<span class="ui-menu__item-icon">+</span>
|
|
29
|
+
New File
|
|
30
|
+
<span class="ui-menu__item-shortcut">Cmd+N</span>
|
|
31
|
+
</button>
|
|
32
|
+
</li>
|
|
33
|
+
<li>
|
|
34
|
+
<button class="ui-menu__item">
|
|
35
|
+
<span class="ui-menu__item-icon">O</span>
|
|
36
|
+
Open
|
|
37
|
+
<span class="ui-menu__item-shortcut">Cmd+O</span>
|
|
38
|
+
</button>
|
|
39
|
+
</li>
|
|
40
|
+
<li>
|
|
41
|
+
<button class="ui-menu__item">
|
|
42
|
+
<span class="ui-menu__item-icon">S</span>
|
|
43
|
+
Save
|
|
44
|
+
<span class="ui-menu__item-shortcut">Cmd+S</span>
|
|
45
|
+
</button>
|
|
46
|
+
</li>
|
|
47
|
+
</ul>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<!-- @groups_with_labels -->
|
|
51
|
+
<div class="ui-menu">
|
|
52
|
+
<div class="ui-menu__label">Edit</div>
|
|
53
|
+
<ul class="ui-menu__group">
|
|
54
|
+
<li>
|
|
55
|
+
<button class="ui-menu__item">Cut</button>
|
|
56
|
+
</li>
|
|
57
|
+
<li>
|
|
58
|
+
<button class="ui-menu__item">Copy</button>
|
|
59
|
+
</li>
|
|
60
|
+
<li>
|
|
61
|
+
<button class="ui-menu__item">Paste</button>
|
|
62
|
+
</li>
|
|
63
|
+
</ul>
|
|
64
|
+
<div class="ui-menu__separator"></div>
|
|
65
|
+
<div class="ui-menu__label">View</div>
|
|
66
|
+
<ul class="ui-menu__group">
|
|
67
|
+
<li>
|
|
68
|
+
<button class="ui-menu__item">Zoom In</button>
|
|
69
|
+
</li>
|
|
70
|
+
<li>
|
|
71
|
+
<button class="ui-menu__item">Zoom Out</button>
|
|
72
|
+
</li>
|
|
73
|
+
</ul>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<!-- @states -->
|
|
77
|
+
<div class="ui-menu">
|
|
78
|
+
<ul class="ui-menu__group">
|
|
79
|
+
<li>
|
|
80
|
+
<button class="ui-menu__item">Normal Item</button>
|
|
81
|
+
</li>
|
|
82
|
+
<li>
|
|
83
|
+
<button class="ui-menu__item ui-menu__item--disabled" aria-disabled="true">Disabled Item</button>
|
|
84
|
+
</li>
|
|
85
|
+
<li>
|
|
86
|
+
<button class="ui-menu__item ui-menu__item--danger">Delete</button>
|
|
87
|
+
</li>
|
|
88
|
+
</ul>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
<!-- @checkable_items -->
|
|
92
|
+
<div class="ui-menu">
|
|
93
|
+
<ul class="ui-menu__group">
|
|
94
|
+
<li>
|
|
95
|
+
<button class="ui-menu__item ui-menu__item--check">
|
|
96
|
+
<span class="ui-menu__item-indicator">✓</span>
|
|
97
|
+
Show Toolbar
|
|
98
|
+
</button>
|
|
99
|
+
</li>
|
|
100
|
+
<li>
|
|
101
|
+
<button class="ui-menu__item ui-menu__item--check">
|
|
102
|
+
<span class="ui-menu__item-indicator"></span>
|
|
103
|
+
Show Sidebar
|
|
104
|
+
</button>
|
|
105
|
+
</li>
|
|
106
|
+
</ul>
|
|
107
|
+
<div class="ui-menu__separator"></div>
|
|
108
|
+
<ul class="ui-menu__group">
|
|
109
|
+
<li>
|
|
110
|
+
<button class="ui-menu__item ui-menu__item--radio">
|
|
111
|
+
<span class="ui-menu__item-indicator">•</span>
|
|
112
|
+
List View
|
|
113
|
+
</button>
|
|
114
|
+
</li>
|
|
115
|
+
<li>
|
|
116
|
+
<button class="ui-menu__item ui-menu__item--radio">
|
|
117
|
+
<span class="ui-menu__item-indicator"></span>
|
|
118
|
+
Grid View
|
|
119
|
+
</button>
|
|
120
|
+
</li>
|
|
121
|
+
</ul>
|
|
122
|
+
</div>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'menu.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'menu.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('menu visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'menu');
|
|
15
15
|
await saveForLostPixel(page, 'menu');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('menu.visual.png');
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Nav
|
|
3
|
+
type: component
|
|
4
|
+
id: nav
|
|
5
|
+
description: Horizontal or vertical navigation links for primary and secondary navigation.
|
|
6
|
+
api: ./nav.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @basic -->
|
|
10
|
+
<!-- Underline-style navigation with active state indicator. -->
|
|
11
|
+
<nav class="ui-nav">
|
|
12
|
+
<ul class="ui-nav__list">
|
|
13
|
+
<li>
|
|
14
|
+
<a class="ui-nav__item ui-nav__item--active" href="#">Dashboard</a>
|
|
15
|
+
</li>
|
|
16
|
+
<li>
|
|
17
|
+
<a class="ui-nav__item" href="#">Projects</a>
|
|
18
|
+
</li>
|
|
19
|
+
<li>
|
|
20
|
+
<a class="ui-nav__item" href="#">Settings</a>
|
|
21
|
+
</li>
|
|
22
|
+
<li>
|
|
23
|
+
<a class="ui-nav__item ui-nav__item--disabled" href="#">Disabled</a>
|
|
24
|
+
</li>
|
|
25
|
+
</ul>
|
|
26
|
+
</nav>
|
|
27
|
+
|
|
28
|
+
<!-- @pills -->
|
|
29
|
+
<!-- Background-filled variant for standalone navigation. -->
|
|
30
|
+
<nav class="ui-nav ui-nav--pills">
|
|
31
|
+
<ul class="ui-nav__list">
|
|
32
|
+
<li>
|
|
33
|
+
<a class="ui-nav__item ui-nav__item--active" href="#">Overview</a>
|
|
34
|
+
</li>
|
|
35
|
+
<li>
|
|
36
|
+
<a class="ui-nav__item" href="#">Analytics</a>
|
|
37
|
+
</li>
|
|
38
|
+
<li>
|
|
39
|
+
<a class="ui-nav__item" href="#">Reports</a>
|
|
40
|
+
</li>
|
|
41
|
+
</ul>
|
|
42
|
+
</nav>
|
|
43
|
+
|
|
44
|
+
<!-- @vertical -->
|
|
45
|
+
<!-- Vertical navigation with start-side indicator. -->
|
|
46
|
+
<nav class="ui-nav ui-nav--vertical" style="inline-size: 200px">
|
|
47
|
+
<ul class="ui-nav__list">
|
|
48
|
+
<li>
|
|
49
|
+
<a class="ui-nav__item ui-nav__item--active" href="#">Profile</a>
|
|
50
|
+
</li>
|
|
51
|
+
<li>
|
|
52
|
+
<a class="ui-nav__item" href="#">Account</a>
|
|
53
|
+
</li>
|
|
54
|
+
<li>
|
|
55
|
+
<a class="ui-nav__item" href="#">Security</a>
|
|
56
|
+
</li>
|
|
57
|
+
</ul>
|
|
58
|
+
</nav>
|
|
59
|
+
|
|
60
|
+
<!-- @vertical_pills -->
|
|
61
|
+
<!-- Vertical navigation with pill-style active indicator. -->
|
|
62
|
+
<nav class="ui-nav ui-nav--vertical ui-nav--pills" style="inline-size: 200px">
|
|
63
|
+
<ul class="ui-nav__list">
|
|
64
|
+
<li>
|
|
65
|
+
<a class="ui-nav__item ui-nav__item--active" href="#">General</a>
|
|
66
|
+
</li>
|
|
67
|
+
<li>
|
|
68
|
+
<a class="ui-nav__item" href="#">Notifications</a>
|
|
69
|
+
</li>
|
|
70
|
+
<li>
|
|
71
|
+
<a class="ui-nav__item" href="#">Billing</a>
|
|
72
|
+
</li>
|
|
73
|
+
</ul>
|
|
74
|
+
</nav>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'nav.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'nav.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('nav visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'nav');
|
|
15
15
|
await saveForLostPixel(page, 'nav');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('nav.visual.png');
|
|
Binary file
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Pagination
|
|
3
|
+
type: component
|
|
4
|
+
id: pagination
|
|
5
|
+
api: ./pagination.api.json
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- @default -->
|
|
9
|
+
<nav class="ui-pagination">
|
|
10
|
+
<a class="ui-pagination__link ui-pagination__prev" href="#">Prev</a>
|
|
11
|
+
<ul class="ui-pagination__list">
|
|
12
|
+
<li class="ui-pagination__item">
|
|
13
|
+
<a class="ui-pagination__link" href="#">1</a>
|
|
14
|
+
</li>
|
|
15
|
+
<li class="ui-pagination__item">
|
|
16
|
+
<a class="ui-pagination__link ui-pagination__link--active" aria-current="page" href="#">2</a>
|
|
17
|
+
</li>
|
|
18
|
+
<li class="ui-pagination__item">
|
|
19
|
+
<a class="ui-pagination__link" href="#">3</a>
|
|
20
|
+
</li>
|
|
21
|
+
<li class="ui-pagination__item">
|
|
22
|
+
<a class="ui-pagination__link" href="#">4</a>
|
|
23
|
+
</li>
|
|
24
|
+
<li class="ui-pagination__item">
|
|
25
|
+
<a class="ui-pagination__link" href="#">5</a>
|
|
26
|
+
</li>
|
|
27
|
+
</ul>
|
|
28
|
+
<a class="ui-pagination__link ui-pagination__next" href="#">Next</a>
|
|
29
|
+
</nav>
|
|
30
|
+
|
|
31
|
+
<!-- @with_ellipsis -->
|
|
32
|
+
<nav class="ui-pagination">
|
|
33
|
+
<a class="ui-pagination__link ui-pagination__prev" href="#">Prev</a>
|
|
34
|
+
<ul class="ui-pagination__list">
|
|
35
|
+
<li class="ui-pagination__item">
|
|
36
|
+
<a class="ui-pagination__link" href="#">1</a>
|
|
37
|
+
</li>
|
|
38
|
+
<li class="ui-pagination__item">
|
|
39
|
+
<span class="ui-pagination__ellipsis">...</span>
|
|
40
|
+
</li>
|
|
41
|
+
<li class="ui-pagination__item">
|
|
42
|
+
<a class="ui-pagination__link" href="#">4</a>
|
|
43
|
+
</li>
|
|
44
|
+
<li class="ui-pagination__item">
|
|
45
|
+
<a class="ui-pagination__link ui-pagination__link--active" aria-current="page" href="#">5</a>
|
|
46
|
+
</li>
|
|
47
|
+
<li class="ui-pagination__item">
|
|
48
|
+
<a class="ui-pagination__link" href="#">6</a>
|
|
49
|
+
</li>
|
|
50
|
+
<li class="ui-pagination__item">
|
|
51
|
+
<span class="ui-pagination__ellipsis">...</span>
|
|
52
|
+
</li>
|
|
53
|
+
<li class="ui-pagination__item">
|
|
54
|
+
<a class="ui-pagination__link" href="#">20</a>
|
|
55
|
+
</li>
|
|
56
|
+
</ul>
|
|
57
|
+
<a class="ui-pagination__link ui-pagination__next" href="#">Next</a>
|
|
58
|
+
</nav>
|
|
59
|
+
|
|
60
|
+
<!-- @disabled_states -->
|
|
61
|
+
<nav class="ui-pagination">
|
|
62
|
+
<a class="ui-pagination__link ui-pagination__prev ui-pagination__link--disabled" aria-disabled="true">Prev</a>
|
|
63
|
+
<ul class="ui-pagination__list">
|
|
64
|
+
<li class="ui-pagination__item">
|
|
65
|
+
<a class="ui-pagination__link ui-pagination__link--active" aria-current="page" href="#">1</a>
|
|
66
|
+
</li>
|
|
67
|
+
<li class="ui-pagination__item">
|
|
68
|
+
<a class="ui-pagination__link" href="#">2</a>
|
|
69
|
+
</li>
|
|
70
|
+
<li class="ui-pagination__item">
|
|
71
|
+
<a class="ui-pagination__link" href="#">3</a>
|
|
72
|
+
</li>
|
|
73
|
+
</ul>
|
|
74
|
+
<a class="ui-pagination__link ui-pagination__next" href="#">Next</a>
|
|
75
|
+
</nav>
|
|
76
|
+
|
|
77
|
+
<!-- @sizes | column -->
|
|
78
|
+
<nav class="ui-pagination ui-pagination--sm">
|
|
79
|
+
<ul class="ui-pagination__list">
|
|
80
|
+
<li class="ui-pagination__item">
|
|
81
|
+
<a class="ui-pagination__link" href="#">1</a>
|
|
82
|
+
</li>
|
|
83
|
+
<li class="ui-pagination__item">
|
|
84
|
+
<a class="ui-pagination__link ui-pagination__link--active" aria-current="page" href="#">2</a>
|
|
85
|
+
</li>
|
|
86
|
+
<li class="ui-pagination__item">
|
|
87
|
+
<a class="ui-pagination__link" href="#">3</a>
|
|
88
|
+
</li>
|
|
89
|
+
</ul>
|
|
90
|
+
</nav>
|
|
91
|
+
<nav class="ui-pagination">
|
|
92
|
+
<ul class="ui-pagination__list">
|
|
93
|
+
<li class="ui-pagination__item">
|
|
94
|
+
<a class="ui-pagination__link" href="#">1</a>
|
|
95
|
+
</li>
|
|
96
|
+
<li class="ui-pagination__item">
|
|
97
|
+
<a class="ui-pagination__link ui-pagination__link--active" aria-current="page" href="#">2</a>
|
|
98
|
+
</li>
|
|
99
|
+
<li class="ui-pagination__item">
|
|
100
|
+
<a class="ui-pagination__link" href="#">3</a>
|
|
101
|
+
</li>
|
|
102
|
+
</ul>
|
|
103
|
+
</nav>
|
|
104
|
+
<nav class="ui-pagination ui-pagination--lg">
|
|
105
|
+
<ul class="ui-pagination__list">
|
|
106
|
+
<li class="ui-pagination__item">
|
|
107
|
+
<a class="ui-pagination__link" href="#">1</a>
|
|
108
|
+
</li>
|
|
109
|
+
<li class="ui-pagination__item">
|
|
110
|
+
<a class="ui-pagination__link ui-pagination__link--active" aria-current="page" href="#">2</a>
|
|
111
|
+
</li>
|
|
112
|
+
<li class="ui-pagination__item">
|
|
113
|
+
<a class="ui-pagination__link" href="#">3</a>
|
|
114
|
+
</li>
|
|
115
|
+
</ul>
|
|
116
|
+
</nav>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'pagination.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'pagination.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('pagination visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'pagination');
|
|
15
15
|
await saveForLostPixel(page, 'pagination');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('pagination.visual.png');
|