Change style of the close button
Browse files- index.html +17 -2
- src/config.ts +0 -1
- src/popover.ts +4 -10
- src/style.css +25 -0
index.html
CHANGED
@@ -335,6 +335,23 @@ npm install driver.js</pre
|
|
335 |
<script type="module">
|
336 |
import { driver } from "./src/driver.ts";
|
337 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
338 |
const basicTourSteps = [
|
339 |
{
|
340 |
element: ".page-header",
|
@@ -596,7 +613,6 @@ npm install driver.js</pre
|
|
596 |
const driverObj = driver({
|
597 |
prevBtnText: "<ββ",
|
598 |
nextBtnText: "ββ>",
|
599 |
-
closeBtnText: "X",
|
600 |
});
|
601 |
|
602 |
driverObj.highlight({
|
@@ -605,7 +621,6 @@ npm install driver.js</pre
|
|
605 |
side: "left",
|
606 |
title: "Button from Config",
|
607 |
showButtons: ["close", "next", "previous"],
|
608 |
-
closeBtnText: "xx",
|
609 |
nextBtnText: "==>",
|
610 |
prevBtnText: "<==",
|
611 |
description: "These buttons are configured using driver config.",
|
|
|
335 |
<script type="module">
|
336 |
import { driver } from "./src/driver.ts";
|
337 |
|
338 |
+
const driverObj = driver({
|
339 |
+
animate: false,
|
340 |
+
});
|
341 |
+
|
342 |
+
driverObj.highlight({
|
343 |
+
element: "h1",
|
344 |
+
popover: {
|
345 |
+
title: "A popover",
|
346 |
+
side: 'bottom',
|
347 |
+
description: "Working on the close functionality right now. Turning it into a small cross button on top right corner.",
|
348 |
+
showButtons: ["close", "next", "previous"],
|
349 |
+
onCloseClick: () => {
|
350 |
+
driverObj.destroy();
|
351 |
+
}
|
352 |
+
}
|
353 |
+
});
|
354 |
+
|
355 |
const basicTourSteps = [
|
356 |
{
|
357 |
element: ".page-header",
|
|
|
613 |
const driverObj = driver({
|
614 |
prevBtnText: "<ββ",
|
615 |
nextBtnText: "ββ>",
|
|
|
616 |
});
|
617 |
|
618 |
driverObj.highlight({
|
|
|
621 |
side: "left",
|
622 |
title: "Button from Config",
|
623 |
showButtons: ["close", "next", "previous"],
|
|
|
624 |
nextBtnText: "==>",
|
625 |
prevBtnText: "<==",
|
626 |
description: "These buttons are configured using driver config.",
|
src/config.ts
CHANGED
@@ -22,7 +22,6 @@ export type Config = {
|
|
22 |
// Button texts
|
23 |
nextBtnText?: string;
|
24 |
prevBtnText?: string;
|
25 |
-
closeBtnText?: string;
|
26 |
doneBtnText?: string;
|
27 |
|
28 |
// Called after the popover is rendered
|
|
|
22 |
// Button texts
|
23 |
nextBtnText?: string;
|
24 |
prevBtnText?: string;
|
|
|
25 |
doneBtnText?: string;
|
26 |
|
27 |
// Called after the popover is rendered
|
src/popover.ts
CHANGED
@@ -22,7 +22,6 @@ export type Popover = {
|
|
22 |
|
23 |
// Button texts
|
24 |
doneBtnText?: string;
|
25 |
-
closeBtnText?: string;
|
26 |
nextBtnText?: string;
|
27 |
prevBtnText?: string;
|
28 |
|
@@ -72,15 +71,12 @@ export function renderPopover(element: Element, step: DriveStep) {
|
|
72 |
showButtons,
|
73 |
disableButtons,
|
74 |
|
75 |
-
// doneBtnText = 'Done',
|
76 |
-
closeBtnText = getConfig("closeBtnText") || "Close",
|
77 |
nextBtnText = getConfig("nextBtnText") || "Next →",
|
78 |
prevBtnText = getConfig("prevBtnText") || "← Previous",
|
79 |
} = step.popover || {};
|
80 |
|
81 |
popover.nextButton.innerHTML = nextBtnText;
|
82 |
popover.previousButton.innerHTML = prevBtnText;
|
83 |
-
popover.closeButton.innerHTML = closeBtnText;
|
84 |
|
85 |
if (title) {
|
86 |
popover.title.innerText = title;
|
@@ -98,12 +94,11 @@ export function renderPopover(element: Element, step: DriveStep) {
|
|
98 |
|
99 |
const showButtonsConfig: AllowedButtons[] = showButtons || getConfig("showButtons")!;
|
100 |
|
101 |
-
|
|
|
102 |
popover.footer.style.display = "flex";
|
103 |
-
|
104 |
popover.nextButton.style.display = showButtonsConfig.includes("next") ? 'block' : 'none';
|
105 |
popover.previousButton.style.display = showButtonsConfig.includes("previous") ? 'block' : 'none';
|
106 |
-
popover.closeButton.style.display = showButtonsConfig.includes("close") ? 'block' : 'none';
|
107 |
} else {
|
108 |
popover.footer.style.display = "none";
|
109 |
}
|
@@ -576,7 +571,7 @@ function createPopover(): PopoverDOM {
|
|
576 |
|
577 |
const closeButton = document.createElement("button");
|
578 |
closeButton.classList.add("driver-popover-close-btn");
|
579 |
-
closeButton.
|
580 |
|
581 |
const footerButtons = document.createElement("span");
|
582 |
footerButtons.classList.add("driver-popover-navigation-btns");
|
@@ -591,10 +586,9 @@ function createPopover(): PopoverDOM {
|
|
591 |
|
592 |
footerButtons.appendChild(previousButton);
|
593 |
footerButtons.appendChild(nextButton);
|
594 |
-
|
595 |
-
footer.appendChild(closeButton);
|
596 |
footer.appendChild(footerButtons);
|
597 |
|
|
|
598 |
wrapper.appendChild(arrow);
|
599 |
wrapper.appendChild(title);
|
600 |
wrapper.appendChild(description);
|
|
|
22 |
|
23 |
// Button texts
|
24 |
doneBtnText?: string;
|
|
|
25 |
nextBtnText?: string;
|
26 |
prevBtnText?: string;
|
27 |
|
|
|
71 |
showButtons,
|
72 |
disableButtons,
|
73 |
|
|
|
|
|
74 |
nextBtnText = getConfig("nextBtnText") || "Next →",
|
75 |
prevBtnText = getConfig("prevBtnText") || "← Previous",
|
76 |
} = step.popover || {};
|
77 |
|
78 |
popover.nextButton.innerHTML = nextBtnText;
|
79 |
popover.previousButton.innerHTML = prevBtnText;
|
|
|
80 |
|
81 |
if (title) {
|
82 |
popover.title.innerText = title;
|
|
|
94 |
|
95 |
const showButtonsConfig: AllowedButtons[] = showButtons || getConfig("showButtons")!;
|
96 |
|
97 |
+
popover.closeButton.style.display = showButtonsConfig.includes("close") ? 'block' : 'none';
|
98 |
+
if (showButtonsConfig?.includes("next") || showButtonsConfig?.includes("previous")) {
|
99 |
popover.footer.style.display = "flex";
|
|
|
100 |
popover.nextButton.style.display = showButtonsConfig.includes("next") ? 'block' : 'none';
|
101 |
popover.previousButton.style.display = showButtonsConfig.includes("previous") ? 'block' : 'none';
|
|
|
102 |
} else {
|
103 |
popover.footer.style.display = "none";
|
104 |
}
|
|
|
571 |
|
572 |
const closeButton = document.createElement("button");
|
573 |
closeButton.classList.add("driver-popover-close-btn");
|
574 |
+
closeButton.innerHTML = "×";
|
575 |
|
576 |
const footerButtons = document.createElement("span");
|
577 |
footerButtons.classList.add("driver-popover-navigation-btns");
|
|
|
586 |
|
587 |
footerButtons.appendChild(previousButton);
|
588 |
footerButtons.appendChild(nextButton);
|
|
|
|
|
589 |
footer.appendChild(footerButtons);
|
590 |
|
591 |
+
wrapper.appendChild(closeButton);
|
592 |
wrapper.appendChild(arrow);
|
593 |
wrapper.appendChild(title);
|
594 |
wrapper.appendChild(description);
|
src/style.css
CHANGED
@@ -49,6 +49,10 @@
|
|
49 |
background-color: #fff;
|
50 |
}
|
51 |
|
|
|
|
|
|
|
|
|
52 |
.driver-popover-title {
|
53 |
font: 19px / normal sans-serif;
|
54 |
font-weight: 700;
|
@@ -59,6 +63,27 @@
|
|
59 |
margin: 0;
|
60 |
}
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
.driver-popover-title[style*="block"] + .driver-popover-description {
|
63 |
margin-top: 5px;
|
64 |
}
|
|
|
49 |
background-color: #fff;
|
50 |
}
|
51 |
|
52 |
+
.driver-popover * {
|
53 |
+
font-family: "Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", Helvetica, Arial, sans-serif;
|
54 |
+
}
|
55 |
+
|
56 |
.driver-popover-title {
|
57 |
font: 19px / normal sans-serif;
|
58 |
font-weight: 700;
|
|
|
63 |
margin: 0;
|
64 |
}
|
65 |
|
66 |
+
.driver-popover-close-btn {
|
67 |
+
all: unset;
|
68 |
+
position: absolute;
|
69 |
+
top: 0;
|
70 |
+
right: 0;
|
71 |
+
width: 32px;
|
72 |
+
height: 28px;
|
73 |
+
cursor: pointer;
|
74 |
+
font-size: 18px;
|
75 |
+
font-weight: 500;
|
76 |
+
color: #d2d2d2;
|
77 |
+
z-index: 1;
|
78 |
+
text-align: center;
|
79 |
+
transition: color;
|
80 |
+
transition-duration: 200ms;
|
81 |
+
}
|
82 |
+
|
83 |
+
.driver-popover-close-btn:hover {
|
84 |
+
color: #2d2d2d;
|
85 |
+
}
|
86 |
+
|
87 |
.driver-popover-title[style*="block"] + .driver-popover-description {
|
88 |
margin-top: 5px;
|
89 |
}
|