Refine client rule delete strike animation
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
export const HARBOR_VERSIONS = Object.freeze({
|
||||
macClient: '0.6.4',
|
||||
gatewayClient: '0.6.3',
|
||||
macClient: '0.6.5',
|
||||
gatewayClient: '0.6.4',
|
||||
gatewayBackend: '0.6.0',
|
||||
});
|
||||
|
||||
|
||||
@@ -391,12 +391,12 @@ function LocalRulesPanel({
|
||||
key={rule._key}
|
||||
style={{ viewTransitionName: rule.removing ? 'none' : rule._key }}
|
||||
inert={rule.removing ? true : undefined}
|
||||
onAnimationEnd={(event) => {
|
||||
if (event.animationName === 'client-local-rule-leave') {
|
||||
onRemoveComplete(rule._key);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<span
|
||||
className="client-delete-strike"
|
||||
aria-hidden="true"
|
||||
onAnimationEnd={() => onRemoveComplete(rule._key)}
|
||||
/>
|
||||
<button
|
||||
className="client-local-rule-enabled"
|
||||
type="button"
|
||||
|
||||
@@ -958,23 +958,22 @@ p {
|
||||
animation: client-local-rule-leave 760ms cubic-bezier(0.7, 0, 0.84, 0) both;
|
||||
}
|
||||
|
||||
.client-deletable-row::after {
|
||||
content: '';
|
||||
.client-delete-strike {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
z-index: 6;
|
||||
height: 2px;
|
||||
background: oklch(0.67 0.24 27);
|
||||
box-shadow: 0 0 4px oklch(0.67 0.24 27), 0 0 12px oklch(0.67 0.24 27 / 0.8);
|
||||
background: oklch(0.68 0.15 28);
|
||||
box-shadow: 0 0 6px oklch(0.68 0.15 28 / 0.45);
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
transform: scaleX(0);
|
||||
transform-origin: left center;
|
||||
}
|
||||
|
||||
.client-deletable-row.is-removing::after {
|
||||
.client-deletable-row.is-removing > .client-delete-strike {
|
||||
animation: client-delete-strike 760ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
||||
}
|
||||
|
||||
@@ -2987,7 +2986,7 @@ p {
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.client-operation-progress::before,
|
||||
.client-deletable-row::after,
|
||||
.client-delete-strike,
|
||||
.client-power,
|
||||
.client-power::before,
|
||||
.client-power::after,
|
||||
|
||||
@@ -20,7 +20,8 @@ test('rule editor add latency stays constant and dirty exits are guarded', () =>
|
||||
assert.match(component, /Ждёт перезапуска/);
|
||||
assert.match(component, /Перезапустить VPN/);
|
||||
assert.match(component, /client-deletable-row/);
|
||||
assert.match(styles, /\.client-deletable-row\.is-removing::after[\s\S]*client-delete-strike/);
|
||||
assert.match(component, /className="client-delete-strike"[\s\S]*onAnimationEnd/);
|
||||
assert.match(styles, /\.client-deletable-row\.is-removing > \.client-delete-strike[\s\S]*client-delete-strike/);
|
||||
assert.match(styles, /@keyframes client-delete-strike[\s\S]*scaleX\(0\)[\s\S]*scaleX\(1\)/);
|
||||
assert.match(styles, /\.client-local-rule:has\(\.client-rule-type\.is-open\)[\s\S]*z-index: 5/);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user