Skip to content

Commit 76f17ea

Browse files
committed
fix: rewrite onboarding arrow as child div with CSS border triangle instead of pseudo-elements
1 parent a1d72f1 commit 76f17ea

2 files changed

Lines changed: 32 additions & 21 deletions

File tree

public/css/style.css

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4468,15 +4468,23 @@ tbody tr:hover {
44684468
transform: translate(-50%, -50%);
44694469
}
44704470

4471-
.onboarding-card[data-arrow]::before,
4472-
.onboarding-card[data-arrow]::after {
4471+
.card-arrow {
4472+
position: absolute;
4473+
width: 0;
4474+
height: 0;
4475+
pointer-events: none;
4476+
z-index: 2;
4477+
}
4478+
4479+
.card-arrow::after {
44734480
content: '';
44744481
position: absolute;
44754482
width: 0;
44764483
height: 0;
44774484
}
44784485

4479-
.onboarding-card[data-arrow="up"]::before {
4486+
/* Up arrow (card below element) */
4487+
.card-arrow[data-dir="up"] {
44804488
top: -10px;
44814489
left: 50%;
44824490
margin-left: -10px;
@@ -4485,16 +4493,16 @@ tbody tr:hover {
44854493
border-bottom: 10px solid var(--border);
44864494
}
44874495

4488-
.onboarding-card[data-arrow="up"]::after {
4489-
top: -9px;
4490-
left: 50%;
4491-
margin-left: -9px;
4496+
.card-arrow[data-dir="up"]::after {
4497+
top: 2px;
4498+
left: -9px;
44924499
border-left: 9px solid transparent;
44934500
border-right: 9px solid transparent;
44944501
border-bottom: 9px solid var(--bg-card);
44954502
}
44964503

4497-
.onboarding-card[data-arrow="down"]::before {
4504+
/* Down arrow (card above element) */
4505+
.card-arrow[data-dir="down"] {
44984506
bottom: -10px;
44994507
left: 50%;
45004508
margin-left: -10px;
@@ -4503,16 +4511,16 @@ tbody tr:hover {
45034511
border-top: 10px solid var(--border);
45044512
}
45054513

4506-
.onboarding-card[data-arrow="down"]::after {
4507-
bottom: -9px;
4508-
left: 50%;
4509-
margin-left: -9px;
4514+
.card-arrow[data-dir="down"]::after {
4515+
bottom: 2px;
4516+
left: -9px;
45104517
border-left: 9px solid transparent;
45114518
border-right: 9px solid transparent;
45124519
border-top: 9px solid var(--bg-card);
45134520
}
45144521

4515-
.onboarding-card[data-arrow="left"]::before {
4522+
/* Left arrow (card to the right of element) */
4523+
.card-arrow[data-dir="left"] {
45164524
left: -10px;
45174525
top: 50%;
45184526
margin-top: -10px;
@@ -4521,10 +4529,9 @@ tbody tr:hover {
45214529
border-right: 10px solid var(--border);
45224530
}
45234531

4524-
.onboarding-card[data-arrow="left"]::after {
4525-
left: -9px;
4526-
top: 50%;
4527-
margin-top: -9px;
4532+
.card-arrow[data-dir="left"]::after {
4533+
left: 2px;
4534+
top: -9px;
45284535
border-top: 9px solid transparent;
45294536
border-bottom: 9px solid transparent;
45304537
border-right: 9px solid var(--bg-card);

public/js/app.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4085,12 +4085,15 @@ function positionOnboardingCard(selector) {
40854085
const card = $('#onboarding-card');
40864086
if (!card) return;
40874087

4088+
// Remove old arrow
4089+
const oldArrow = card.querySelector('.card-arrow');
4090+
if (oldArrow) oldArrow.remove();
4091+
40884092
if (!selector) {
40894093
card.classList.add('centered');
40904094
card.style.top = '';
40914095
card.style.left = '';
40924096
card.style.transform = '';
4093-
delete card.dataset.arrow;
40944097
return;
40954098
}
40964099

@@ -4142,9 +4145,10 @@ function positionOnboardingCard(selector) {
41424145
card.style.transform = 'none';
41434146

41444147
if (arrowDir) {
4145-
card.dataset.arrow = arrowDir;
4146-
} else {
4147-
delete card.dataset.arrow;
4148+
const arrow = document.createElement('div');
4149+
arrow.className = 'card-arrow';
4150+
arrow.dataset.dir = arrowDir;
4151+
card.appendChild(arrow);
41484152
}
41494153
}
41504154

0 commit comments

Comments
 (0)