@celestia-island/hikari 0.43.10 → 0.43.13
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/components/HkAboutModal.scss +12 -1
- package/src/components/HkAdaptiveDialog.scss +2 -2
- package/src/components/HkAffixPicker.scss +55 -27
- package/src/components/HkAlert.scss +35 -31
- package/src/components/HkAltSignIn.scss +10 -4
- package/src/components/HkAuthMethodList.scss +5 -5
- package/src/components/HkAuthSubmitButton.scss +3 -3
- package/src/components/HkAvatar.scss +10 -49
- package/src/components/HkBadge.scss +6 -9
- package/src/components/HkBlockingToast.scss +27 -10
- package/src/components/HkBoard.scss +26 -6
- package/src/components/HkBreadcrumb.scss +82 -268
- package/src/components/HkButton.scss +26 -3
- package/src/components/HkCaptchaWidget.scss +2 -3
- package/src/components/HkCard.scss +14 -8
- package/src/components/HkCheckbox.scss +11 -9
- package/src/components/HkColorPicker.scss +22 -8
- package/src/components/HkContextRing.scss +8 -4
- package/src/components/HkCookieConsent.scss +12 -3
- package/src/components/HkDatePicker.scss +49 -65
- package/src/components/HkDateTimePicker.scss +48 -31
- package/src/components/HkDivider.scss +14 -15
- package/src/components/HkDraggableGrid.scss +41 -11
- package/src/components/HkDraggableList.scss +22 -11
- package/src/components/HkDrawer.scss +24 -4
- package/src/components/HkEmptyState.scss +10 -11
- package/src/components/HkErrorLanding.scss +5 -5
- package/src/components/HkExpansionPanel.scss +6 -2
- package/src/components/HkFab.scss +29 -12
- package/src/components/HkFileBrowserDialog.scss +21 -10
- package/src/components/HkFileField.scss +20 -9
- package/src/components/HkFilePickerField.scss +12 -6
- package/src/components/HkGaugeRing.scss +8 -0
- package/src/components/HkHoverRevealAction.scss +30 -12
- package/src/components/HkIcon.scss +0 -18
- package/src/components/HkIconButton.scss +29 -62
- package/src/components/HkIconButtonVars.scss +8 -28
- package/src/components/HkImageLightbox.scss +4 -3
- package/src/components/HkImagePreview.scss +17 -9
- package/src/components/HkImageViewer.scss +8 -0
- package/src/components/HkInput.scss +28 -28
- package/src/components/HkJsonTree.scss +13 -9
- package/src/components/HkKeywordSearchModal.scss +40 -29
- package/src/components/HkLabel.scss +8 -3
- package/src/components/HkListTransition.scss +16 -1
- package/src/components/HkLoadMore.scss +11 -2
- package/src/components/HkLocalizedInput.scss +11 -11
- package/src/components/HkLogWindow.scss +22 -4
- package/src/components/HkLogo.scss +12 -3
- package/src/components/HkMarkdownRenderer.scss +19 -13
- package/src/components/HkMediaControlBar.scss +2 -4
- package/src/components/HkMediaSlider.scss +0 -2
- package/src/components/HkMenu.scss +32 -20
- package/src/components/HkMenuIdentityItem.scss +3 -3
- package/src/components/HkMinimap.scss +23 -8
- package/src/components/HkModal.scss +17 -20
- package/src/components/HkModalBreadcrumb.scss +25 -6
- package/src/components/HkModelTag.scss +23 -13
- package/src/components/HkNavItem.scss +27 -14
- package/src/components/HkNumberInput.scss +25 -21
- package/src/components/HkPageHeader.scss +7 -6
- package/src/components/HkPasswordInput.scss +36 -36
- package/src/components/HkPhaseTransition.scss +16 -0
- package/src/components/HkPhoneInput.scss +10 -5
- package/src/components/HkPickerPane.scss +32 -5
- package/src/components/HkPlaceholderMarquee.scss +7 -2
- package/src/components/HkPlaceholderMarquee.test.ts +27 -0
- package/src/components/HkPlaceholderMarquee.tsx +14 -6
- package/src/components/HkPopover.scss +18 -10
- package/src/components/HkPopupSelect.scss +28 -7
- package/src/components/HkProgressBar.scss +29 -7
- package/src/components/HkProgressDialog.scss +4 -2
- package/src/components/HkProgressRing.scss +7 -14
- package/src/components/HkProtocolModal.scss +0 -3
- package/src/components/HkQrCode.scss +2 -2
- package/src/components/HkRadio.scss +15 -6
- package/src/components/HkRichInput.scss +29 -13
- package/src/components/HkRollingNumber.scss +14 -6
- package/src/components/HkScrollContainer.scss +20 -8
- package/src/components/HkSearchInput.scss +12 -10
- package/src/components/HkSecretRevealModal.scss +11 -1
- package/src/components/HkSelect.scss +35 -17
- package/src/components/HkSelectionGrid.scss +41 -20
- package/src/components/HkSelectionWaterfall.scss +21 -9
- package/src/components/HkShareBar.scss +14 -5
- package/src/components/HkSidebar.scss +23 -9
- package/src/components/HkSkeleton.scss +16 -8
- package/src/components/HkSlider.scss +12 -2
- package/src/components/HkSpinner.scss +15 -9
- package/src/components/HkSplash.scss +10 -10
- package/src/components/HkStatCard.scss +7 -3
- package/src/components/HkStatusPill.scss +4 -7
- package/src/components/HkStepFlow.scss +24 -4
- package/src/components/HkSwitch.scss +41 -9
- package/src/components/HkTable.scss +25 -20
- package/src/components/HkTabs.scss +40 -26
- package/src/components/HkTag.scss +35 -29
- package/src/components/HkTagInput.scss +22 -16
- package/src/components/HkTextarea.scss +8 -6
- package/src/components/HkThemeToggle.scss +28 -18
- package/src/components/HkTimeline.scss +46 -29
- package/src/components/HkTimeline.test.tsx +39 -0
- package/src/components/HkTimeline.tsx +16 -2
- package/src/components/HkTitleBar.scss +16 -7
- package/src/components/HkToast.scss +40 -10
- package/src/components/HkTokenUsagePanel.scss +11 -6
- package/src/components/HkToolBlock.scss +23 -11
- package/src/components/HkTooltip.scss +5 -9
- package/src/components/HkTree.scss +26 -35
- package/src/components/HkVoiceInputPopup.scss +11 -6
- package/src/components/HkWindowedItem.scss +3 -9
- package/src/components/HkZoomToolbar.scss +12 -10
- package/src/components/_menu-item.scss +4 -3
- package/src/components/window-close.scss +8 -13
- package/src/composables/layoutGeometry.test.ts +177 -0
- package/src/composables/layoutGeometry.ts +231 -0
- package/src/composables/useOverlayScrollbar.test.ts +32 -0
- package/src/composables/useOverlayScrollbar.ts +9 -1
- package/src/composables/usePointerReorder.test.ts +5 -2
- package/src/composables/usePointerReorder.ts +83 -147
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
// transient toasts read as one stack; the card itself follows the toast
|
|
5
5
|
// item conventions (variant background, icon column, clamped message)
|
|
6
6
|
// with a button row appended. Pointer events pass through the column
|
|
7
|
-
// and re-enable on the card, exactly like toasts.
|
|
7
|
+
// and re-enable on the per-card slot, exactly like toasts.
|
|
8
8
|
|
|
9
9
|
.hk-blocking-toast-container {
|
|
10
10
|
position: fixed;
|
|
11
11
|
top: 4rem;
|
|
12
|
-
|
|
12
|
+
inset-inline-end: 1rem;
|
|
13
13
|
z-index: var(--hk-z-toast, 4000);
|
|
14
14
|
max-width: 24rem;
|
|
15
15
|
pointer-events: none;
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
position: relative;
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-direction: column;
|
|
22
|
-
gap: var(--
|
|
22
|
+
gap: var(--space-12, 12px);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
.hk-blocking-toast-slot {
|
|
@@ -30,13 +30,12 @@
|
|
|
30
30
|
.hk-blocking-toast-card {
|
|
31
31
|
display: flex;
|
|
32
32
|
align-items: flex-start;
|
|
33
|
-
gap: var(--
|
|
34
|
-
padding: var(--
|
|
33
|
+
gap: var(--space-8, 8px);
|
|
34
|
+
padding: var(--space-12, 12px) var(--space-16, 16px);
|
|
35
35
|
border-radius: var(--hi-radius-sm, 4px);
|
|
36
|
-
font-size: var(--
|
|
36
|
+
font-size: var(--text-base, 0.875rem);
|
|
37
37
|
line-height: 1.4;
|
|
38
38
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
|
39
|
-
pointer-events: auto;
|
|
40
39
|
backdrop-filter: blur(12px);
|
|
41
40
|
}
|
|
42
41
|
|
|
@@ -53,11 +52,10 @@
|
|
|
53
52
|
min-width: 0;
|
|
54
53
|
display: flex;
|
|
55
54
|
flex-direction: column;
|
|
56
|
-
gap: var(--
|
|
55
|
+
gap: var(--space-8, 8px);
|
|
57
56
|
}
|
|
58
57
|
|
|
59
58
|
.hk-blocking-toast-title {
|
|
60
|
-
font-size: 1em;
|
|
61
59
|
font-weight: 700;
|
|
62
60
|
}
|
|
63
61
|
|
|
@@ -73,7 +71,7 @@
|
|
|
73
71
|
.hk-blocking-toast-actions {
|
|
74
72
|
display: flex;
|
|
75
73
|
justify-content: flex-end;
|
|
76
|
-
gap: var(--
|
|
74
|
+
gap: var(--space-8, 8px);
|
|
77
75
|
}
|
|
78
76
|
|
|
79
77
|
// Variant backgrounds follow the HkToast conventions (including the
|
|
@@ -118,6 +116,25 @@
|
|
|
118
116
|
transform: translateX(1rem);
|
|
119
117
|
}
|
|
120
118
|
|
|
119
|
+
// RTL: the fixed column sits at the inline-end (physical left) side, so
|
|
120
|
+
// the slide direction flips with it (house pattern: HkTimeline.scss).
|
|
121
|
+
// The leave-pin contract writes physical right/top inline, which within
|
|
122
|
+
// the shrink-to-fit column is edge-agnostic (slot width == column width).
|
|
123
|
+
[dir="rtl"] .hk-blocking-toast-enter-from,
|
|
124
|
+
[dir="rtl"] .hk-blocking-toast-leave-to {
|
|
125
|
+
transform: translateX(-1rem);
|
|
126
|
+
}
|
|
127
|
+
|
|
121
128
|
.hk-blocking-toast-move {
|
|
122
129
|
transition: transform var(--hi-duration-normal, 0.3s) ease;
|
|
123
130
|
}
|
|
131
|
+
|
|
132
|
+
// Reduced motion: drop the slide/FLIP choreography, cards snap in and
|
|
133
|
+
// out (house pattern: HkListTransition.scss / HkExpansionPanel.scss).
|
|
134
|
+
@media (prefers-reduced-motion: reduce) {
|
|
135
|
+
.hk-blocking-toast-enter-active,
|
|
136
|
+
.hk-blocking-toast-leave-active,
|
|
137
|
+
.hk-blocking-toast-move {
|
|
138
|
+
transition: none;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -37,10 +37,8 @@
|
|
|
37
37
|
pointer-events: none;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
stroke-linecap: round;
|
|
43
|
-
}
|
|
40
|
+
// Edge ink (fill/stroke/linecap) is set as presentation attributes on every
|
|
41
|
+
// emitted path (HkBoard.tsx) — no CSS declaration here, only per-edge attrs.
|
|
44
42
|
|
|
45
43
|
.hk-board-node {
|
|
46
44
|
position: absolute;
|
|
@@ -63,8 +61,9 @@
|
|
|
63
61
|
justify-content: center;
|
|
64
62
|
padding: 0 var(--space-6);
|
|
65
63
|
box-sizing: border-box;
|
|
64
|
+
// NOTE: no text-overflow here — the shell is a flex container, ellipsis
|
|
65
|
+
// only renders on block containers; clipping is owned by overflow: hidden.
|
|
66
66
|
overflow: hidden;
|
|
67
|
-
text-overflow: ellipsis;
|
|
68
67
|
white-space: nowrap;
|
|
69
68
|
font-size: var(--text-2xs);
|
|
70
69
|
color: rgb(var(--color-text));
|
|
@@ -72,12 +71,33 @@
|
|
|
72
71
|
border: 1px solid rgb(var(--color-primary) / 45%);
|
|
73
72
|
border-radius: var(--radius-sm);
|
|
74
73
|
box-shadow: var(--shadow-elevated);
|
|
74
|
+
transition:
|
|
75
|
+
border-color 200ms ease,
|
|
76
|
+
box-shadow 200ms ease;
|
|
77
|
+
|
|
78
|
+
// Every visible node is click-interactive (HkBoard.tsx emits `nodeClick`
|
|
79
|
+
// on a short tap for draggable and read-only nodes alike), so the shell
|
|
80
|
+
// carries hover/press emphasis. The press ring draws INSIDE the border
|
|
81
|
+
// box (HkSelectionGrid model) so overlapping chrome cannot shave it.
|
|
82
|
+
&:hover {
|
|
83
|
+
border-color: rgb(var(--color-primary) / 80%);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&:active {
|
|
87
|
+
box-shadow:
|
|
88
|
+
var(--shadow-elevated),
|
|
89
|
+
inset 0 0 0 1px rgb(var(--color-primary) / 45%);
|
|
90
|
+
}
|
|
75
91
|
}
|
|
76
92
|
|
|
77
93
|
.hk-board-minimap {
|
|
78
94
|
position: absolute;
|
|
79
|
-
|
|
95
|
+
// Logical property: the corner dock mirrors in RTL (same spot in LTR).
|
|
96
|
+
inset-inline-end: var(--space-10);
|
|
80
97
|
bottom: var(--space-10);
|
|
81
98
|
z-index: 6;
|
|
99
|
+
// Defensive re-enable (the inner HkMinimap root asserts it too,
|
|
100
|
+
// HkMinimap.scss:15): keeps the dock alive if a host ever parks the
|
|
101
|
+
// board under an ancestor `pointer-events: none`.
|
|
82
102
|
pointer-events: auto;
|
|
83
103
|
}
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
line-height: 1.5;
|
|
29
29
|
|
|
30
30
|
// Gap
|
|
31
|
-
gap:
|
|
31
|
+
gap: var(--space-8);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
// ------
|
|
@@ -46,27 +46,6 @@
|
|
|
46
46
|
// Position
|
|
47
47
|
position: relative;
|
|
48
48
|
|
|
49
|
-
// Not the last item
|
|
50
|
-
&:not(:last-child) {
|
|
51
|
-
// Separator
|
|
52
|
-
.hk-breadcrumb-separator {
|
|
53
|
-
margin-left: 0.5rem;
|
|
54
|
-
color: var(--hi-color-text-secondary);
|
|
55
|
-
opacity: 0.5;
|
|
56
|
-
// DISABLED - migrated to JS animation
|
|
57
|
-
|
|
58
|
-
// transition: all vars.$hikari-duration-fast vars.$hikari-ease-smooth;
|
|
59
|
-
|
|
60
|
-
// Glow effect on separator
|
|
61
|
-
filter: drop-shadow(0 0 4px var(--hi-primary));
|
|
62
|
-
|
|
63
|
-
svg {
|
|
64
|
-
width: 1rem;
|
|
65
|
-
height: 1rem;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
49
|
// Last item (current page)
|
|
71
50
|
&:last-child {
|
|
72
51
|
.hk-breadcrumb-link {
|
|
@@ -91,59 +70,57 @@
|
|
|
91
70
|
text-decoration: none;
|
|
92
71
|
white-space: nowrap;
|
|
93
72
|
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
//
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
73
|
+
// Transitions — house convention (200ms ease on color/background/
|
|
74
|
+
// box-shadow, cf. HkSelectionGrid). The old value was commented out as
|
|
75
|
+
// "migrated to JS animation", but HkBreadcrumb.tsx ships no animation
|
|
76
|
+
// code, so hover/focus snapped.
|
|
77
|
+
transition:
|
|
78
|
+
color 200ms ease,
|
|
79
|
+
background 200ms ease,
|
|
80
|
+
box-shadow 200ms ease,
|
|
81
|
+
filter 200ms ease;
|
|
101
82
|
|
|
102
83
|
// Padding
|
|
103
|
-
padding:
|
|
104
|
-
margin: -
|
|
84
|
+
padding: var(--space-4) var(--space-8);
|
|
85
|
+
margin: calc(-1 * var(--space-4)) calc(-1 * var(--space-8));
|
|
105
86
|
border-radius: vars.$hikari-radius-fui-sm;
|
|
106
87
|
|
|
107
88
|
// Display
|
|
108
89
|
display: inline-flex;
|
|
109
90
|
align-items: center;
|
|
110
|
-
gap:
|
|
91
|
+
gap: var(--space-6);
|
|
111
92
|
|
|
112
|
-
//
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
// DISABLED - migrated to JS animation
|
|
93
|
+
// Interactive affordance only for REAL links: items without `to` render
|
|
94
|
+
// as a <span class="hk-breadcrumb-link"> (HkBreadcrumb.tsx) — a pointer
|
|
95
|
+
// cursor + hover fill on that dead span read as a broken link.
|
|
96
|
+
&[href] {
|
|
97
|
+
cursor: pointer;
|
|
118
98
|
|
|
119
|
-
//
|
|
99
|
+
// Hover state
|
|
100
|
+
&:hover {
|
|
101
|
+
color: var(--hi-color-text-primary);
|
|
102
|
+
background: var(--hi-primary);
|
|
120
103
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
height: 100%;
|
|
104
|
+
// Glow effect on text
|
|
105
|
+
text-shadow: 0 0 8px var(--hi-primary);
|
|
124
106
|
}
|
|
125
|
-
}
|
|
126
107
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
background: var(--hi-primary);
|
|
131
|
-
|
|
132
|
-
.hk-breadcrumb-icon {
|
|
133
|
-
color: var(--hi-color-primary);
|
|
134
|
-
filter: drop-shadow(0 0 4px var(--hi-primary));
|
|
108
|
+
// Press feedback (house idiom: HkButton brightness dip)
|
|
109
|
+
&:active {
|
|
110
|
+
filter: brightness(0.95);
|
|
135
111
|
}
|
|
136
|
-
|
|
137
|
-
// Glow effect on text
|
|
138
|
-
text-shadow: 0 0 8px var(--hi-primary);
|
|
139
112
|
}
|
|
140
113
|
|
|
141
|
-
//
|
|
114
|
+
// Keyboard focus (spans are not focusable, so <a href> only): house
|
|
115
|
+
// double ring (HkButton pattern). The former single 2px primary ring
|
|
116
|
+
// shared its ink with the focus fill and merged into it / got shaved
|
|
117
|
+
// per-side by overlapping chrome.
|
|
142
118
|
&:focus-visible {
|
|
143
119
|
outline: none;
|
|
144
120
|
background: var(--hi-primary);
|
|
145
121
|
box-shadow:
|
|
146
|
-
0 0 0 2px var(--
|
|
122
|
+
0 0 0 2px rgb(var(--color-surface)),
|
|
123
|
+
0 0 0 4px rgb(var(--color-primary)),
|
|
147
124
|
0 0 12px var(--hi-primary);
|
|
148
125
|
}
|
|
149
126
|
|
|
@@ -158,65 +135,38 @@
|
|
|
158
135
|
// Breadcrumb Separator
|
|
159
136
|
// ------
|
|
160
137
|
|
|
138
|
+
// Separator styling lives at TOP LEVEL, not scoped under
|
|
139
|
+
// `.hk-breadcrumb-item:not(:last-child)` — every rendered separator sits in
|
|
140
|
+
// a non-last item (HkBreadcrumb.tsx renders it only for index < len-1), and
|
|
141
|
+
// the deeper base specificity made the sm/lg size overrides below
|
|
142
|
+
// cascade-dead. Spacing uses a logical property so it mirrors in RTL.
|
|
161
143
|
.hk-breadcrumb-separator {
|
|
162
144
|
// Layout
|
|
163
145
|
display: inline-flex;
|
|
164
146
|
align-items: center;
|
|
165
147
|
|
|
166
148
|
// Typography
|
|
167
|
-
font-size:
|
|
168
|
-
|
|
169
|
-
// Transitions
|
|
170
|
-
// DISABLED - migrated to JS animation
|
|
149
|
+
font-size: var(--text-base);
|
|
171
150
|
|
|
172
|
-
//
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
color: var(--hi-color-primary);
|
|
177
|
-
opacity: 0.8;
|
|
178
|
-
filter: drop-shadow(0 0 6px var(--hi-primary));
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// ------
|
|
183
|
-
// Separator Variants
|
|
184
|
-
// ------
|
|
185
|
-
|
|
186
|
-
// Slash separator
|
|
187
|
-
.hk-breadcrumb-separator-slash {
|
|
188
|
-
&::before {
|
|
189
|
-
content: '/';
|
|
190
|
-
}
|
|
191
|
-
}
|
|
151
|
+
// Spacing
|
|
152
|
+
margin-inline-start: var(--space-8);
|
|
153
|
+
color: var(--hi-color-text-secondary);
|
|
154
|
+
opacity: 0.5;
|
|
192
155
|
|
|
193
|
-
//
|
|
194
|
-
|
|
195
|
-
&::before {
|
|
196
|
-
content: '›';
|
|
197
|
-
font-size: 1.1em;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
156
|
+
// Glow effect on separator
|
|
157
|
+
filter: drop-shadow(0 0 4px var(--hi-primary));
|
|
200
158
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
content: '»';
|
|
205
|
-
font-size: 0.9em;
|
|
159
|
+
svg {
|
|
160
|
+
width: 1rem;
|
|
161
|
+
height: 1rem;
|
|
206
162
|
}
|
|
207
163
|
}
|
|
208
164
|
|
|
209
|
-
//
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
// Dot separator
|
|
215
|
-
.hk-breadcrumb-separator-dot {
|
|
216
|
-
&::before {
|
|
217
|
-
content: '•';
|
|
218
|
-
font-size: 1.2em;
|
|
219
|
-
}
|
|
165
|
+
// RTL mirrors the chevron: the tsx always renders a right-pointing glyph,
|
|
166
|
+
// which reads backwards on the flipped axis (HkTimeline precedent —
|
|
167
|
+
// scaleX mirrors paint only; the box is symmetric around its center).
|
|
168
|
+
[dir="rtl"] .hk-breadcrumb-separator svg {
|
|
169
|
+
transform: scaleX(-1);
|
|
220
170
|
}
|
|
221
171
|
|
|
222
172
|
// ------
|
|
@@ -234,15 +184,12 @@
|
|
|
234
184
|
// Layout
|
|
235
185
|
display: inline-flex;
|
|
236
186
|
align-items: center;
|
|
237
|
-
gap:
|
|
187
|
+
gap: var(--space-4);
|
|
238
188
|
|
|
239
189
|
// Arrow icon
|
|
240
190
|
.hk-breadcrumb-dropdown-arrow {
|
|
241
191
|
width: 0.75rem;
|
|
242
192
|
height: 0.75rem;
|
|
243
|
-
// DISABLED - migrated to JS animation
|
|
244
|
-
|
|
245
|
-
// transition: transform vars.$hikari-duration-fast vars.$hikari-ease-smooth;
|
|
246
193
|
|
|
247
194
|
svg {
|
|
248
195
|
width: 100%;
|
|
@@ -277,12 +224,7 @@
|
|
|
277
224
|
0 0 0 1px var(--hi-white-5, rgba(255, 255, 255, 0.05)) inset;
|
|
278
225
|
|
|
279
226
|
// Padding
|
|
280
|
-
padding:
|
|
281
|
-
|
|
282
|
-
// Transitions
|
|
283
|
-
// DISABLED - migrated to JS animation
|
|
284
|
-
|
|
285
|
-
// transition: all vars.$hikari-duration-normal vars.$hikari-ease-smooth;
|
|
227
|
+
padding: var(--space-8);
|
|
286
228
|
|
|
287
229
|
// Animation
|
|
288
230
|
opacity: 0;
|
|
@@ -312,62 +254,30 @@
|
|
|
312
254
|
@include mi.item;
|
|
313
255
|
|
|
314
256
|
// Spacing
|
|
315
|
-
margin:
|
|
257
|
+
margin: var(--space-2) 0;
|
|
316
258
|
|
|
317
|
-
// Typography
|
|
318
|
-
|
|
259
|
+
// Typography — the mixin owns the row ink (rgb(var(--color-text) / 88%));
|
|
260
|
+
// the former full-opacity color here silently defeated it in-rule.
|
|
319
261
|
text-decoration: none;
|
|
320
262
|
white-space: nowrap;
|
|
321
263
|
}
|
|
322
264
|
|
|
323
|
-
// ------
|
|
324
|
-
// Icon Styles
|
|
325
|
-
// ------
|
|
326
|
-
|
|
327
|
-
.hk-breadcrumb-icon {
|
|
328
|
-
// Layout
|
|
329
|
-
display: inline-flex;
|
|
330
|
-
align-items: center;
|
|
331
|
-
|
|
332
|
-
// Size
|
|
333
|
-
width: 1rem;
|
|
334
|
-
height: 1rem;
|
|
335
|
-
|
|
336
|
-
// Color
|
|
337
|
-
color: var(--hi-color-text-secondary);
|
|
338
|
-
|
|
339
|
-
// Transitions
|
|
340
|
-
// DISABLED - migrated to JS animation
|
|
341
|
-
|
|
342
|
-
// transition: all vars.$hikari-duration-fast vars.$hikari-ease-smooth;
|
|
343
|
-
|
|
344
|
-
svg {
|
|
345
|
-
width: 100%;
|
|
346
|
-
height: 100%;
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
|
|
350
265
|
// ------
|
|
351
266
|
// Size Variants
|
|
352
267
|
// ------
|
|
353
268
|
|
|
354
269
|
.hk-breadcrumb-sm {
|
|
355
|
-
font-size:
|
|
356
|
-
gap:
|
|
270
|
+
font-size: var(--text-xs);
|
|
271
|
+
gap: var(--space-6);
|
|
357
272
|
|
|
358
273
|
.hk-breadcrumb-link {
|
|
359
|
-
padding:
|
|
360
|
-
margin: -
|
|
361
|
-
|
|
362
|
-
.hk-breadcrumb-icon {
|
|
363
|
-
width: 0.875rem;
|
|
364
|
-
height: 0.875rem;
|
|
365
|
-
}
|
|
274
|
+
padding: var(--space-2) var(--space-6);
|
|
275
|
+
margin: calc(-1 * var(--space-2)) calc(-1 * var(--space-6));
|
|
366
276
|
}
|
|
367
277
|
|
|
368
278
|
.hk-breadcrumb-separator {
|
|
369
|
-
margin-
|
|
370
|
-
font-size:
|
|
279
|
+
margin-inline-start: var(--space-6);
|
|
280
|
+
font-size: var(--text-xs);
|
|
371
281
|
|
|
372
282
|
svg {
|
|
373
283
|
width: 0.875rem;
|
|
@@ -376,28 +286,21 @@
|
|
|
376
286
|
}
|
|
377
287
|
}
|
|
378
288
|
|
|
379
|
-
.hk-breadcrumb-md
|
|
380
|
-
|
|
381
|
-
gap: 0.5rem;
|
|
382
|
-
}
|
|
289
|
+
// NOTE: no .hk-breadcrumb-md rule — the tsx always applies the md class
|
|
290
|
+
// (default size) and it restated the base values exactly.
|
|
383
291
|
|
|
384
292
|
.hk-breadcrumb-lg {
|
|
385
|
-
font-size:
|
|
386
|
-
gap:
|
|
293
|
+
font-size: var(--text-md);
|
|
294
|
+
gap: var(--space-10);
|
|
387
295
|
|
|
388
296
|
.hk-breadcrumb-link {
|
|
389
|
-
padding:
|
|
390
|
-
margin: -
|
|
391
|
-
|
|
392
|
-
.hk-breadcrumb-icon {
|
|
393
|
-
width: 1.125rem;
|
|
394
|
-
height: 1.125rem;
|
|
395
|
-
}
|
|
297
|
+
padding: var(--space-6) var(--space-10);
|
|
298
|
+
margin: calc(-1 * var(--space-6)) calc(-1 * var(--space-10));
|
|
396
299
|
}
|
|
397
300
|
|
|
398
301
|
.hk-breadcrumb-separator {
|
|
399
|
-
margin-
|
|
400
|
-
font-size:
|
|
302
|
+
margin-inline-start: var(--space-10);
|
|
303
|
+
font-size: var(--text-md);
|
|
401
304
|
|
|
402
305
|
svg {
|
|
403
306
|
width: 1.125rem;
|
|
@@ -418,9 +321,6 @@
|
|
|
418
321
|
background: var(--hi-card-bg);
|
|
419
322
|
padding: 0.375rem 0.75rem;
|
|
420
323
|
border-radius: vars.$hikari-radius-fui-sm;
|
|
421
|
-
// DISABLED - migrated to JS animation
|
|
422
|
-
|
|
423
|
-
// transition: all vars.$hikari-duration-fast vars.$hikari-ease-smooth;
|
|
424
324
|
|
|
425
325
|
&:not(:last-child):hover {
|
|
426
326
|
background: var(--hi-primary);
|
|
@@ -442,19 +342,16 @@
|
|
|
442
342
|
padding: 0.375rem 0.875rem;
|
|
443
343
|
border-radius: 999px;
|
|
444
344
|
border: 1px solid var(--hi-color-border);
|
|
445
|
-
// DISABLED - migrated to JS animation
|
|
446
|
-
|
|
447
|
-
// transition: all vars.$hikari-duration-fast vars.$hikari-ease-smooth;
|
|
448
345
|
|
|
449
|
-
&:not(:last-child) {
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
border-color: var(--hi-primary);
|
|
453
|
-
}
|
|
346
|
+
&:not(:last-child):hover {
|
|
347
|
+
background: var(--hi-primary);
|
|
348
|
+
border-color: var(--hi-primary);
|
|
454
349
|
}
|
|
455
350
|
|
|
351
|
+
// Solid fill: the former linear-gradient(135deg, primary, primary) had
|
|
352
|
+
// identical stops and rendered exactly this solid.
|
|
456
353
|
&:last-child {
|
|
457
|
-
background:
|
|
354
|
+
background: var(--hi-primary);
|
|
458
355
|
border-color: var(--hi-primary);
|
|
459
356
|
box-shadow:
|
|
460
357
|
0 0 12px var(--hi-primary),
|
|
@@ -463,29 +360,6 @@
|
|
|
463
360
|
}
|
|
464
361
|
}
|
|
465
362
|
|
|
466
|
-
// ------
|
|
467
|
-
// Separator Animations
|
|
468
|
-
// ------
|
|
469
|
-
|
|
470
|
-
// Animated separator (pulsing glow)
|
|
471
|
-
.hk-breadcrumb-separator-animated {
|
|
472
|
-
// DISABLED - migrated to JS animation
|
|
473
|
-
|
|
474
|
-
// animation: breadcrumb-separator-pulse 2s ease-in-out infinite;
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
// DISABLED - migrated to JS animation
|
|
478
|
-
// @keyframes breadcrumb-separator-pulse {
|
|
479
|
-
// 0%, 100% {
|
|
480
|
-
// opacity: 0.5;
|
|
481
|
-
// filter: drop-shadow(0 0 4px var(--hi-primary));
|
|
482
|
-
// }
|
|
483
|
-
// 50% {
|
|
484
|
-
// opacity: 1;
|
|
485
|
-
// filter: drop-shadow(0 0 8px var(--hi-primary));
|
|
486
|
-
// }
|
|
487
|
-
// }
|
|
488
|
-
|
|
489
363
|
// ------
|
|
490
364
|
// Collapsible Breadcrumb (for mobile)
|
|
491
365
|
// ------
|
|
@@ -508,73 +382,13 @@
|
|
|
508
382
|
}
|
|
509
383
|
}
|
|
510
384
|
|
|
511
|
-
// ------
|
|
512
|
-
// Animations
|
|
513
|
-
// ------
|
|
514
|
-
|
|
515
|
-
// Fade-in animation
|
|
516
|
-
.hk-breadcrumb-animate-in {
|
|
517
|
-
.hk-breadcrumb-item {
|
|
518
|
-
opacity: 0;
|
|
519
|
-
// DISABLED - migrated to JS animation
|
|
520
|
-
|
|
521
|
-
// animation: breadcrumb-fade-in vars.$hikari-duration-normal vars.$hikari-ease-smooth forwards;
|
|
522
|
-
|
|
523
|
-
@for $i from 1 through 10 {
|
|
524
|
-
&:nth-child(#{$i}) {
|
|
525
|
-
animation-delay: #{$i * 0.1s};
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
// DISABLED - migrated to JS animation
|
|
532
|
-
// @keyframes breadcrumb-fade-in {
|
|
533
|
-
// from {
|
|
534
|
-
// opacity: 0;
|
|
535
|
-
// transform: translateY(-4px);
|
|
536
|
-
// }
|
|
537
|
-
// to {
|
|
538
|
-
// opacity: 1;
|
|
539
|
-
// transform: translateY(0);
|
|
540
|
-
// }
|
|
541
|
-
// }
|
|
542
|
-
|
|
543
|
-
// Slide-in animation
|
|
544
|
-
.hk-breadcrumb-slide-in {
|
|
545
|
-
.hk-breadcrumb-item {
|
|
546
|
-
opacity: 0;
|
|
547
|
-
// DISABLED - migrated to JS animation
|
|
548
|
-
|
|
549
|
-
// animation: breadcrumb-slide-in vars.$hikari-duration-normal vars.$hikari-ease-smooth forwards;
|
|
550
|
-
|
|
551
|
-
@for $i from 1 through 10 {
|
|
552
|
-
&:nth-child(#{$i}) {
|
|
553
|
-
animation-delay: #{$i * 0.08s};
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
// DISABLED - migrated to JS animation
|
|
560
|
-
// @keyframes breadcrumb-slide-in {
|
|
561
|
-
// from {
|
|
562
|
-
// opacity: 0;
|
|
563
|
-
// transform: translateX(-8px);
|
|
564
|
-
// }
|
|
565
|
-
// to {
|
|
566
|
-
// opacity: 1;
|
|
567
|
-
// transform: translateX(0);
|
|
568
|
-
// }
|
|
569
|
-
// }
|
|
570
|
-
|
|
571
385
|
// ------
|
|
572
386
|
// Custom Colors
|
|
573
387
|
// ------
|
|
574
388
|
|
|
575
389
|
.hk-breadcrumb-primary {
|
|
576
390
|
.hk-breadcrumb-link {
|
|
577
|
-
|
|
391
|
+
&[href]:hover {
|
|
578
392
|
color: var(--hi-color-primary);
|
|
579
393
|
text-shadow: 0 0 8px var(--hi-color-primary);
|
|
580
394
|
}
|
|
@@ -583,7 +397,7 @@
|
|
|
583
397
|
|
|
584
398
|
.hk-breadcrumb-success {
|
|
585
399
|
.hk-breadcrumb-link {
|
|
586
|
-
|
|
400
|
+
&[href]:hover {
|
|
587
401
|
color: var(--hi-color-success);
|
|
588
402
|
text-shadow: 0 0 8px var(--hi-color-success);
|
|
589
403
|
}
|
|
@@ -592,7 +406,7 @@
|
|
|
592
406
|
|
|
593
407
|
.hk-breadcrumb-warning {
|
|
594
408
|
.hk-breadcrumb-link {
|
|
595
|
-
|
|
409
|
+
&[href]:hover {
|
|
596
410
|
color: var(--hi-color-warning);
|
|
597
411
|
text-shadow: 0 0 8px var(--hi-color-warning);
|
|
598
412
|
}
|
|
@@ -601,7 +415,7 @@
|
|
|
601
415
|
|
|
602
416
|
.hk-breadcrumb-danger {
|
|
603
417
|
.hk-breadcrumb-link {
|
|
604
|
-
|
|
418
|
+
&[href]:hover {
|
|
605
419
|
color: var(--hi-color-danger);
|
|
606
420
|
text-shadow: 0 0 8px var(--hi-color-danger);
|
|
607
421
|
}
|