@teseor/css 2.3.1 → 2.4.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/dist/compiled.css +1 -1
- package/dist/index.css +6 -6
- package/package.json +1 -1
- package/src/components/navigation/tabs/api.json +5 -0
- package/src/components/navigation/tabs/index.scss +3 -1
- package/src/config/tokens/_variables.scss +5 -2
- package/src/config/tokens/core.scss +6 -6
- package/src/config/tokens/typography.scss +3 -0
- package/src/layout/sidebar-nav/api.json +14 -4
- package/src/layout/sidebar-nav/index.scss +12 -6
- package/src/utilities/position/api.json +20 -1
- package/src/utilities/position/docs.html +25 -0
- package/src/utilities/position/position.scss +39 -8
- package/src/utilities/scroll-animation/docs.html +4 -4
- package/src/utilities/scroll-snap/docs.html +30 -30
- package/src/utilities/visually-hidden/docs.html +1 -1
package/package.json
CHANGED
|
@@ -63,6 +63,11 @@
|
|
|
63
63
|
"default": "var(--ui-color-bg)",
|
|
64
64
|
"description": "Tab bg active"
|
|
65
65
|
},
|
|
66
|
+
{
|
|
67
|
+
"name": "--ui-tabs-tab-line-height",
|
|
68
|
+
"default": "var(--ui-line-height-none)",
|
|
69
|
+
"description": "Tab line height"
|
|
70
|
+
},
|
|
66
71
|
{
|
|
67
72
|
"name": "--ui-tabs-panel-padding",
|
|
68
73
|
"default": "var(--ui-space-3)",
|
|
@@ -30,6 +30,8 @@
|
|
|
30
30
|
--_tab-bg: var(--ui-tabs-tab-bg, transparent);
|
|
31
31
|
// @desc Tab bg active
|
|
32
32
|
--_tab-bg-active: var(--ui-tabs-tab-bg-active, var(--ui-color-bg, #{t.$color-bg}));
|
|
33
|
+
// @desc Tab line height
|
|
34
|
+
--_tab-line-height: var(--ui-tabs-tab-line-height, var(--ui-line-height-none, #{t.$line-height-none}));
|
|
33
35
|
// @desc Panel padding on all sides
|
|
34
36
|
--_panel-padding: var(--ui-tabs-panel-padding, var(--ui-space-3, #{t.$space-3}));
|
|
35
37
|
}
|
|
@@ -80,7 +82,7 @@
|
|
|
80
82
|
font-family: var(--_font-sans);
|
|
81
83
|
font-size: var(--_tab-font-size);
|
|
82
84
|
font-weight: var(--_weight-medium);
|
|
83
|
-
line-height:
|
|
85
|
+
line-height: var(--_tab-line-height);
|
|
84
86
|
color: var(--_color-text-muted);
|
|
85
87
|
|
|
86
88
|
background: var(--_tab-bg);
|
|
@@ -103,8 +103,8 @@ $sizes: (
|
|
|
103
103
|
// ==========================================================================
|
|
104
104
|
|
|
105
105
|
// Font families (system stack, consumers override via CSS tokens)
|
|
106
|
-
$font-sans: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;
|
|
107
|
-
$font-mono: ui-monospace,
|
|
106
|
+
$font-sans: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Helvetica Neue", arial, sans-serif;
|
|
107
|
+
$font-mono: ui-monospace, "SFMono-Regular", "SF Mono", menlo, consolas, "Liberation Mono", "Courier New", monospace;
|
|
108
108
|
|
|
109
109
|
// Font sizes (derived from base, 1.2 modular scale)
|
|
110
110
|
$font-size-base: 1rem; // 16px — core knob
|
|
@@ -117,6 +117,9 @@ $font-size-2xl: 1.75rem; // 28px
|
|
|
117
117
|
$font-size-3xl: 2rem; // 32px
|
|
118
118
|
$font-size-4xl: 2.5rem; // 40px
|
|
119
119
|
|
|
120
|
+
// Unitless line height (no extra leading)
|
|
121
|
+
$line-height-none: 1;
|
|
122
|
+
|
|
120
123
|
// Tight line heights (compact UI elements)
|
|
121
124
|
$line-height-tight-xs: $row;
|
|
122
125
|
$line-height-tight-sm: $row;
|
|
@@ -8,26 +8,26 @@
|
|
|
8
8
|
--ui-unit: calc(8px * var(--ui-scale));
|
|
9
9
|
|
|
10
10
|
// Base colors — shades auto-generated via color-mix in tokens.scale
|
|
11
|
-
--ui-color-primary: oklch(
|
|
11
|
+
--ui-color-primary: oklch(54% 0.20 260);
|
|
12
12
|
--ui-color-success: oklch(60% 0.18 145);
|
|
13
13
|
--ui-color-warning: oklch(75% 0.18 70);
|
|
14
14
|
--ui-color-danger: oklch(60% 0.22 25);
|
|
15
|
-
--ui-color-neutral: oklch(
|
|
15
|
+
--ui-color-neutral: oklch(45% 0.015 260);
|
|
16
16
|
|
|
17
17
|
// Font families — system stacks, override for brand fonts
|
|
18
|
-
--ui-font-sans: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;
|
|
19
|
-
--ui-font-mono: ui-monospace,
|
|
18
|
+
--ui-font-sans: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Helvetica Neue", arial, sans-serif;
|
|
19
|
+
--ui-font-mono: ui-monospace, "SFMono-Regular", "SF Mono", menlo, consolas, "Liberation Mono", "Courier New", monospace;
|
|
20
20
|
|
|
21
21
|
// Base font size — all font-size-* tokens derive from this via calc()
|
|
22
22
|
--ui-font-size-base: calc(1rem * var(--ui-scale));
|
|
23
23
|
|
|
24
24
|
// Base radius — sm/md/lg derive from this
|
|
25
|
-
--ui-radius-base:
|
|
25
|
+
--ui-radius-base: 6px;
|
|
26
26
|
|
|
27
27
|
// Base border width — sm/md/lg derive from this
|
|
28
28
|
--ui-border-width-base: calc(var(--ui-unit) * 0.125);
|
|
29
29
|
|
|
30
30
|
// Shadow strength — controls opacity of all shadow levels
|
|
31
|
-
--ui-shadow-strength:
|
|
31
|
+
--ui-shadow-strength: 12%;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
// Two modes: normal (for body text) and tight (for UI/forms)
|
|
18
18
|
// ==========================================================================
|
|
19
19
|
|
|
20
|
+
// Unitless line height (no extra leading)
|
|
21
|
+
--ui-line-height-none: 1;
|
|
22
|
+
|
|
20
23
|
// Tight line-heights for compact UI elements
|
|
21
24
|
--ui-line-height-tight-xs: var(--ui-row-1);
|
|
22
25
|
--ui-line-height-tight-sm: var(--ui-row-1);
|
|
@@ -76,9 +76,19 @@
|
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"name": "--ui-sidebar-nav-group-label-weight",
|
|
79
|
-
"default": "var(--ui-font-weight-
|
|
79
|
+
"default": "var(--ui-font-weight-semibold)",
|
|
80
80
|
"description": "Group label weight"
|
|
81
81
|
},
|
|
82
|
+
{
|
|
83
|
+
"name": "--ui-sidebar-nav-group-label-transform",
|
|
84
|
+
"default": "none",
|
|
85
|
+
"description": "Group label text-transform"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "--ui-sidebar-nav-group-label-letter-spacing",
|
|
89
|
+
"default": "normal",
|
|
90
|
+
"description": "Group label letter-spacing"
|
|
91
|
+
},
|
|
82
92
|
{
|
|
83
93
|
"name": "--ui-sidebar-nav-item-height",
|
|
84
94
|
"default": "var(--ui-row-2)",
|
|
@@ -116,17 +126,17 @@
|
|
|
116
126
|
},
|
|
117
127
|
{
|
|
118
128
|
"name": "--ui-sidebar-nav-item-active-bg",
|
|
119
|
-
"default": "var(--ui-color-
|
|
129
|
+
"default": "var(--ui-color-bg-muted)",
|
|
120
130
|
"description": "Item active bg"
|
|
121
131
|
},
|
|
122
132
|
{
|
|
123
133
|
"name": "--ui-sidebar-nav-item-active-color",
|
|
124
|
-
"default": "var(--ui-color-primary
|
|
134
|
+
"default": "var(--ui-color-primary)",
|
|
125
135
|
"description": "Item active color"
|
|
126
136
|
},
|
|
127
137
|
{
|
|
128
138
|
"name": "--ui-sidebar-nav-item-active-weight",
|
|
129
|
-
"default": "
|
|
139
|
+
"default": "normal",
|
|
130
140
|
"description": "Item active weight"
|
|
131
141
|
},
|
|
132
142
|
{
|
|
@@ -83,7 +83,11 @@
|
|
|
83
83
|
// @desc Group label color
|
|
84
84
|
--_color: var(--ui-sidebar-nav-group-label-color, var(--ui-color-text-muted));
|
|
85
85
|
// @desc Group label weight
|
|
86
|
-
--_weight: var(--ui-sidebar-nav-group-label-weight, var(--ui-font-weight-
|
|
86
|
+
--_weight: var(--ui-sidebar-nav-group-label-weight, var(--ui-font-weight-semibold));
|
|
87
|
+
// @desc Group label text-transform
|
|
88
|
+
--_transform: var(--ui-sidebar-nav-group-label-transform, none);
|
|
89
|
+
// @desc Group label letter-spacing
|
|
90
|
+
--_letter-spacing: var(--ui-sidebar-nav-group-label-letter-spacing, normal);
|
|
87
91
|
|
|
88
92
|
display: block;
|
|
89
93
|
|
|
@@ -92,8 +96,8 @@
|
|
|
92
96
|
|
|
93
97
|
font-size: var(--_font-size);
|
|
94
98
|
font-weight: var(--_weight);
|
|
95
|
-
letter-spacing:
|
|
96
|
-
text-transform:
|
|
99
|
+
letter-spacing: var(--_letter-spacing);
|
|
100
|
+
text-transform: var(--_transform);
|
|
97
101
|
color: var(--_color);
|
|
98
102
|
}
|
|
99
103
|
|
|
@@ -156,12 +160,14 @@
|
|
|
156
160
|
min-block-size: var(--_height);
|
|
157
161
|
padding-inline: var(--_padding-inline);
|
|
158
162
|
|
|
163
|
+
font-family: inherit;
|
|
159
164
|
font-size: var(--_font-size);
|
|
160
165
|
font-weight: var(--_weight, normal);
|
|
161
166
|
text-decoration: none;
|
|
162
167
|
color: var(--_color);
|
|
163
168
|
|
|
164
169
|
background: var(--_bg);
|
|
170
|
+
border: none;
|
|
165
171
|
border-radius: var(--_radius);
|
|
166
172
|
cursor: pointer;
|
|
167
173
|
|
|
@@ -187,11 +193,11 @@
|
|
|
187
193
|
// Active state
|
|
188
194
|
.sidebar-nav__item--active {
|
|
189
195
|
// @desc Item active bg
|
|
190
|
-
--_bg: var(--ui-sidebar-nav-item-active-bg, var(--ui-color-
|
|
196
|
+
--_bg: var(--ui-sidebar-nav-item-active-bg, var(--ui-color-bg-muted));
|
|
191
197
|
// @desc Item active color
|
|
192
|
-
--_color: var(--ui-sidebar-nav-item-active-color, var(--ui-color-primary
|
|
198
|
+
--_color: var(--ui-sidebar-nav-item-active-color, var(--ui-color-primary));
|
|
193
199
|
// @desc Item active weight
|
|
194
|
-
--_weight: var(--ui-sidebar-nav-item-active-weight,
|
|
200
|
+
--_weight: var(--ui-sidebar-nav-item-active-weight, normal);
|
|
195
201
|
}
|
|
196
202
|
|
|
197
203
|
// Nested item indent
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "position",
|
|
3
3
|
"type": "utility",
|
|
4
|
-
"utilities": [
|
|
4
|
+
"utilities": [
|
|
5
|
+
"relative",
|
|
6
|
+
"absolute",
|
|
7
|
+
"fixed",
|
|
8
|
+
"sticky",
|
|
9
|
+
"inset-0",
|
|
10
|
+
"top-0",
|
|
11
|
+
"bottom-0",
|
|
12
|
+
"start-0",
|
|
13
|
+
"end-0",
|
|
14
|
+
"top-2",
|
|
15
|
+
"bottom-2",
|
|
16
|
+
"start-2",
|
|
17
|
+
"end-2",
|
|
18
|
+
"z-10",
|
|
19
|
+
"z-20",
|
|
20
|
+
"z-50",
|
|
21
|
+
"overflow-hidden",
|
|
22
|
+
"overflow-auto"
|
|
23
|
+
],
|
|
5
24
|
"cssVars": []
|
|
6
25
|
}
|
|
@@ -9,6 +9,13 @@ description: Position, overflow, and inset utilities for controlling element pla
|
|
|
9
9
|
<div class="ui-absolute ui-top-0 ui-end-0 ui-bg-subtle ui-p-1">{{ t('absolute_top_end', 'Absolute top-end') }}</div>
|
|
10
10
|
<div class="ui-absolute ui-bottom-0 ui-start-0 ui-bg-subtle ui-p-1">{{ t('absolute_bottom_start', 'Absolute bottom-start') }}</div>
|
|
11
11
|
</div>
|
|
12
|
+
<div class="ui-sticky ui-top-0 ui-bg-muted ui-p-2">
|
|
13
|
+
<span class="ui-text-sm">{{ t('sticky_element', 'Sticky element (sticks to top on scroll)') }}</span>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="ui-relative ui-overflow-hidden ui-bg-muted" style="block-size: var(--ui-row-4); transform: translate(0)">
|
|
16
|
+
<div class="ui-fixed ui-top-0 ui-start-0 ui-bg-subtle ui-p-1">{{ t('fixed_in_container', 'Fixed (contained by transform parent)') }}</div>
|
|
17
|
+
</div>
|
|
18
|
+
<p class="ui-text-sm ui-text-muted">{{ t('position_classes', 'Also available: ui-static') }}</p>
|
|
12
19
|
|
|
13
20
|
<!-- @inset | row -->
|
|
14
21
|
<!-- Pin element to all edges or specific sides. -->
|
|
@@ -19,6 +26,24 @@ description: Position, overflow, and inset utilities for controlling element pla
|
|
|
19
26
|
<div class="ui-absolute ui-inset-block-0 ui-start-0 ui-bg-subtle ui-p-2">{{ t('inset_block_0_start_0', 'inset-block-0 + start-0') }}</div>
|
|
20
27
|
</div>
|
|
21
28
|
|
|
29
|
+
<!-- @inset-scale | row -->
|
|
30
|
+
<!-- Offset from edges using space tokens (1-4). -->
|
|
31
|
+
<div class="ui-relative ui-bg-muted" style="block-size: var(--ui-row-4)">
|
|
32
|
+
<div class="ui-absolute ui-top-1 ui-end-1 ui-bg-subtle ui-p-1">{{ t('top_1_end_1', 'top-1 end-1') }}</div>
|
|
33
|
+
<div class="ui-absolute ui-bottom-2 ui-start-2 ui-bg-subtle ui-p-1">{{ t('bottom_2_start_2', 'bottom-2 start-2') }}</div>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="ui-relative ui-bg-muted" style="block-size: var(--ui-row-4)">
|
|
36
|
+
<div class="ui-absolute ui-top-0 ui-end-2 ui-bg-subtle ui-p-1">{{ t('top_0_end_2', 'top-0 end-2') }}</div>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<!-- @z-index | row -->
|
|
40
|
+
<!-- Control stacking order. Scale: 0, 10, 20, 30, 40, 50. -->
|
|
41
|
+
<div class="ui-relative ui-bg-muted" style="block-size: var(--ui-row-4)">
|
|
42
|
+
<div class="ui-absolute ui-top-1 ui-start-1 ui-z-10 ui-bg-subtle ui-p-1">{{ t('z_10', 'z-10') }}</div>
|
|
43
|
+
<div class="ui-absolute ui-top-2 ui-start-2 ui-z-20 ui-bg ui-p-1 ui-rounded">{{ t('z_20_on_top', 'z-20 on top') }}</div>
|
|
44
|
+
<div class="ui-absolute ui-top-3 ui-start-3 ui-z-50 ui-bg-subtle ui-p-1 ui-rounded">{{ t('z_50_highest', 'z-50 highest') }}</div>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
22
47
|
<!-- @overflow | row -->
|
|
23
48
|
<!-- Control overflow behavior. -->
|
|
24
49
|
<div class="ui-overflow-hidden ui-bg-muted ui-p-2" style="block-size: var(--ui-row-3)">
|
|
@@ -35,20 +35,51 @@
|
|
|
35
35
|
inset-inline: 0;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
@each $n in (0, 1, 2, 3, 4) {
|
|
39
|
+
.top-#{$n} {
|
|
40
|
+
inset-block-start: if($n == 0, 0, var(--ui-space-#{$n}));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.bottom-#{$n} {
|
|
44
|
+
inset-block-end: if($n == 0, 0, var(--ui-space-#{$n}));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.start-#{$n} {
|
|
48
|
+
inset-inline-start: if($n == 0, 0, var(--ui-space-#{$n}));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.end-#{$n} {
|
|
52
|
+
inset-inline-end: if($n == 0, 0, var(--ui-space-#{$n}));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Z-index
|
|
57
|
+
.z-0 {
|
|
58
|
+
z-index: 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.z-10 {
|
|
62
|
+
z-index: 10;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.z-20 {
|
|
66
|
+
z-index: 20;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.z-30 {
|
|
70
|
+
z-index: 30;
|
|
40
71
|
}
|
|
41
72
|
|
|
42
|
-
.
|
|
43
|
-
|
|
73
|
+
.z-40 {
|
|
74
|
+
z-index: 40;
|
|
44
75
|
}
|
|
45
76
|
|
|
46
|
-
.
|
|
47
|
-
|
|
77
|
+
.z-50 {
|
|
78
|
+
z-index: 50;
|
|
48
79
|
}
|
|
49
80
|
|
|
50
|
-
.
|
|
51
|
-
|
|
81
|
+
.z-auto {
|
|
82
|
+
z-index: auto;
|
|
52
83
|
}
|
|
53
84
|
|
|
54
85
|
// Overflow
|
|
@@ -14,16 +14,16 @@ description: Scroll-driven animation utilities for progress indicators and viewp
|
|
|
14
14
|
|
|
15
15
|
<!-- @view_fade -->
|
|
16
16
|
<!-- Elements fade in as they enter the viewport. -->
|
|
17
|
-
<div class="ui-view-fade ui-card ui-
|
|
17
|
+
<div class="ui-view-fade ui-card ui-card--sm">{{ t('i_fade_in_on_scroll', 'I fade in on scroll') }}</div>
|
|
18
18
|
|
|
19
19
|
<!-- @view_slide_up -->
|
|
20
20
|
<!-- Elements slide up and fade in on viewport entry. -->
|
|
21
|
-
<div class="ui-view-slide-up ui-card ui-
|
|
21
|
+
<div class="ui-view-slide-up ui-card ui-card--sm">{{ t('i_slide_up_into_view', 'I slide up into view') }}</div>
|
|
22
22
|
|
|
23
23
|
<!-- @view_slide_start -->
|
|
24
24
|
<!-- Elements slide in from the start edge (left in LTR) on viewport entry. -->
|
|
25
|
-
<div class="ui-view-slide-start ui-card ui-
|
|
25
|
+
<div class="ui-view-slide-start ui-card ui-card--sm">{{ t('i_slide_from_the_start', 'I slide from the start') }}</div>
|
|
26
26
|
|
|
27
27
|
<!-- @view_scale -->
|
|
28
28
|
<!-- Elements scale up and fade in on viewport entry. -->
|
|
29
|
-
<div class="ui-view-scale ui-card ui-
|
|
29
|
+
<div class="ui-view-scale ui-card ui-card--sm">{{ t('i_scale_into_view', 'I scale into view') }}</div>
|
|
@@ -6,72 +6,72 @@ description: Scroll-snap utilities for carousels, horizontal lists, and snap-to-
|
|
|
6
6
|
<!-- @horizontal_snap -->
|
|
7
7
|
<!-- Snap children to start position on horizontal scroll. -->
|
|
8
8
|
<div class="ui-snap-x ui-flex ui-gap-2 ui-p-2 demo-narrow">
|
|
9
|
-
<div class="ui-snap-start ui-card ui-
|
|
10
|
-
<div class="ui-snap-start ui-card ui-
|
|
11
|
-
<div class="ui-snap-start ui-card ui-
|
|
12
|
-
<div class="ui-snap-start ui-card ui-
|
|
9
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('item_1', 'Item 1') }}</div>
|
|
10
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('item_2', 'Item 2') }}</div>
|
|
11
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('item_3', 'Item 3') }}</div>
|
|
12
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('item_4', 'Item 4') }}</div>
|
|
13
13
|
</div>
|
|
14
14
|
|
|
15
15
|
<!-- @center_snap -->
|
|
16
16
|
<!-- Snap children to center position. -->
|
|
17
17
|
<div class="ui-snap-x ui-flex ui-gap-2 ui-p-2 demo-narrow">
|
|
18
|
-
<div class="ui-snap-center ui-card ui-
|
|
19
|
-
<div class="ui-snap-center ui-card ui-
|
|
20
|
-
<div class="ui-snap-center ui-card ui-
|
|
18
|
+
<div class="ui-snap-center ui-card ui-card--sm demo-snap-item">{{ t('center_1', 'Center 1') }}</div>
|
|
19
|
+
<div class="ui-snap-center ui-card ui-card--sm demo-snap-item">{{ t('center_2', 'Center 2') }}</div>
|
|
20
|
+
<div class="ui-snap-center ui-card ui-card--sm demo-snap-item">{{ t('center_3', 'Center 3') }}</div>
|
|
21
21
|
</div>
|
|
22
22
|
|
|
23
23
|
<!-- @vertical_snap -->
|
|
24
24
|
<!-- Snap children on vertical scroll. -->
|
|
25
25
|
<div class="ui-snap-y" style="max-block-size: 8rem">
|
|
26
|
-
<div class="ui-snap-start ui-card ui-
|
|
27
|
-
<div class="ui-snap-start ui-card ui-
|
|
28
|
-
<div class="ui-snap-start ui-card ui-
|
|
26
|
+
<div class="ui-snap-start ui-card ui-card--sm">{{ t('section_1', 'Section 1') }}</div>
|
|
27
|
+
<div class="ui-snap-start ui-card ui-card--sm">{{ t('section_2', 'Section 2') }}</div>
|
|
28
|
+
<div class="ui-snap-start ui-card ui-card--sm">{{ t('section_3', 'Section 3') }}</div>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
<!-- @proximity_snap -->
|
|
32
32
|
<!-- Softer snap that only engages when close to a snap point. -->
|
|
33
33
|
<div class="ui-snap-x-proximity ui-flex ui-gap-2 ui-p-2 demo-narrow">
|
|
34
|
-
<div class="ui-snap-start ui-card ui-
|
|
35
|
-
<div class="ui-snap-start ui-card ui-
|
|
36
|
-
<div class="ui-snap-start ui-card ui-
|
|
34
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('proximity_1', 'Proximity 1') }}</div>
|
|
35
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('proximity_2', 'Proximity 2') }}</div>
|
|
36
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('proximity_3', 'Proximity 3') }}</div>
|
|
37
37
|
</div>
|
|
38
38
|
<div class="ui-snap-y-proximity" style="max-block-size: 8rem">
|
|
39
|
-
<div class="ui-snap-start ui-card ui-
|
|
40
|
-
<div class="ui-snap-start ui-card ui-
|
|
41
|
-
<div class="ui-snap-start ui-card ui-
|
|
39
|
+
<div class="ui-snap-start ui-card ui-card--sm">{{ t('section_1', 'Section 1') }}</div>
|
|
40
|
+
<div class="ui-snap-start ui-card ui-card--sm">{{ t('section_2', 'Section 2') }}</div>
|
|
41
|
+
<div class="ui-snap-start ui-card ui-card--sm">{{ t('section_3', 'Section 3') }}</div>
|
|
42
42
|
</div>
|
|
43
43
|
|
|
44
44
|
<!-- @end_alignment_and_stop -->
|
|
45
45
|
<!-- Snap children to end position or force stop at every snap point. -->
|
|
46
46
|
<div class="ui-snap-x ui-flex ui-gap-2 ui-p-2 demo-narrow">
|
|
47
|
-
<div class="ui-snap-end ui-card ui-
|
|
48
|
-
<div class="ui-snap-end ui-card ui-
|
|
49
|
-
<div class="ui-snap-end ui-card ui-
|
|
47
|
+
<div class="ui-snap-end ui-card ui-card--sm demo-snap-item">{{ t('end_1', 'End 1') }}</div>
|
|
48
|
+
<div class="ui-snap-end ui-card ui-card--sm demo-snap-item">{{ t('end_2', 'End 2') }}</div>
|
|
49
|
+
<div class="ui-snap-end ui-card ui-card--sm demo-snap-item">{{ t('end_3', 'End 3') }}</div>
|
|
50
50
|
</div>
|
|
51
51
|
<div class="ui-snap-x ui-flex ui-gap-2 ui-p-2 demo-narrow">
|
|
52
|
-
<div class="ui-snap-start ui-snap-always ui-card ui-
|
|
53
|
-
<div class="ui-snap-start ui-snap-always ui-card ui-
|
|
54
|
-
<div class="ui-snap-start ui-snap-always ui-card ui-
|
|
52
|
+
<div class="ui-snap-start ui-snap-always ui-card ui-card--sm demo-snap-item">{{ t('always_1', 'Always 1') }}</div>
|
|
53
|
+
<div class="ui-snap-start ui-snap-always ui-card ui-card--sm demo-snap-item">{{ t('always_2', 'Always 2') }}</div>
|
|
54
|
+
<div class="ui-snap-start ui-snap-always ui-card ui-card--sm demo-snap-item">{{ t('always_3', 'Always 3') }}</div>
|
|
55
55
|
</div>
|
|
56
56
|
|
|
57
57
|
<!-- @disable_snap -->
|
|
58
58
|
<!-- Remove snap behavior from a container. -->
|
|
59
59
|
<div class="ui-snap-none ui-flex ui-gap-2 ui-p-2 demo-narrow ui-overflow-x-auto">
|
|
60
|
-
<div class="ui-card ui-
|
|
61
|
-
<div class="ui-card ui-
|
|
60
|
+
<div class="ui-card ui-card--sm demo-snap-item">{{ t('no_snap_1', 'No snap 1') }}</div>
|
|
61
|
+
<div class="ui-card ui-card--sm demo-snap-item">{{ t('no_snap_2', 'No snap 2') }}</div>
|
|
62
62
|
</div>
|
|
63
63
|
|
|
64
64
|
<!-- @scroll_padding -->
|
|
65
65
|
<!-- Offset snap position for fixed headers or insets. -->
|
|
66
66
|
<div class="ui-snap-x ui-snap-p-1 ui-flex ui-gap-2 ui-p-2 demo-narrow">
|
|
67
|
-
<div class="ui-snap-start ui-card ui-
|
|
68
|
-
<div class="ui-snap-start ui-card ui-
|
|
67
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('p_1', 'p-1') }}</div>
|
|
68
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('p_1', 'p-1') }}</div>
|
|
69
69
|
</div>
|
|
70
70
|
<div class="ui-snap-x ui-snap-p-2 ui-flex ui-gap-2 ui-p-2 demo-narrow">
|
|
71
|
-
<div class="ui-snap-start ui-card ui-
|
|
72
|
-
<div class="ui-snap-start ui-card ui-
|
|
71
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('p_2', 'p-2') }}</div>
|
|
72
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('p_2', 'p-2') }}</div>
|
|
73
73
|
</div>
|
|
74
74
|
<div class="ui-snap-x ui-snap-p-4 ui-flex ui-gap-2 ui-p-2 demo-narrow">
|
|
75
|
-
<div class="ui-snap-start ui-card ui-
|
|
76
|
-
<div class="ui-snap-start ui-card ui-
|
|
75
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('p_4', 'p-4') }}</div>
|
|
76
|
+
<div class="ui-snap-start ui-card ui-card--sm demo-snap-item">{{ t('p_4', 'p-4') }}</div>
|
|
77
77
|
</div>
|
|
@@ -6,7 +6,7 @@ description: Hides content visually while keeping it accessible to screen reader
|
|
|
6
6
|
|
|
7
7
|
<!-- @default -->
|
|
8
8
|
<!-- Content is hidden visually but announced by screen readers -->
|
|
9
|
-
<button>
|
|
9
|
+
<button class="ui-button">
|
|
10
10
|
{{ t('submit', 'Submit') }}
|
|
11
11
|
<span class="ui-visually-hidden"> {{ t('form_to_contact_support', 'form to contact support') }}</span>
|
|
12
12
|
</button>
|