4848 rel ="stylesheet "
4949 href ="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css "
5050 />
51+ < link
52+ rel ="stylesheet "
53+ href ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/dark.min.css "
54+ />
5155 </ head >
5256 < body >
5357 < div class ="page-wrap ">
5458 < section class ="section__header " id ="boarding-demo-head ">
5559 < h1 class ="brand ">
56- < img id ="logo_img " src ="./images/boarding.svg " />
60+ < img id ="logo_img " src ="./images/boarding.svg " height =" 67 " />
5761 < span id ="name_boarding "> Boarding.js</ span >
5862 </ h1 >
5963 < p class ="text-muted tagline ">
@@ -87,34 +91,9 @@ <h1 class="brand">
8791 </ div >
8892 </ section >
8993
90- < blockquote style ="font-size: 0.8rem ">
91- < p >
92- 💡 This library is a a port of
93- < a
94- href ="https://github.com/kamranahmedse/driver.js "
95- target ="_blank "
96- rel ="noopener noreferrer "
97- > driver.js</ a
98- > . The reason behind refactoring that library, is because driver.js
99- under the hood works by elevating elements using css with z-index.
100- This means it can very easily break your layout if you rely anywhere
101- on the css stacking context.
102- </ p >
103- < p >
104- So how does this library approach the problem? It doesn't touch any
105- styles at all. Instead the library renders the overlay using an SVG
106- element. This means it works with < strong > any</ strong > layout.
107- </ p >
108- < p class ="zero-bottom ">
109- It has the small downside that an SVG is less customizable in terms of
110- how it looks visually than the approach that driver.js had. But maybe
111- better support for styling will be added in the future, since there
112- are other ways to approach that problem.
113- </ p >
114- </ blockquote >
11594 < blockquote >
11695 < p >
117- A lightweight (~7.5kb gzipped) yet powerful JavaScript engine that
96+ A lightweight (~6.7kb gzipped) yet powerful JavaScript engine that
11897 helps you drive the user's focus on page.
11998 </ p >
12099 < p class ="zero-bottom ">
@@ -150,12 +129,36 @@ <h3>What are the features?</h3>
150129 < li id ="keyboard_feature ">
151130 ⌨️ User Friendly – < strong > Controllable by keys</ strong >
152131 </ li >
132+ < li id ="complex_layouts_feature ">
133+ 🏗️ < strong > Works with complex layouts</ strong > – no z-index
134+ conflicts
135+ </ li >
136+ < li id ="dynamic_content_feature ">
137+ ⚡ < strong > Dynamic content support</ strong > – define steps for
138+ elements not yet mounted
139+ </ li >
140+ < li id ="auto_positioning_feature ">
141+ 🎯 < strong > Auto popover positioning</ strong > with full alignment
142+ control
143+ </ li >
144+ < li id ="click_handling_feature ">
145+ 🖱️ < strong > Flexible click handling</ strong > – control user
146+ interactions with strictClickHandling
147+ </ li >
148+ < li id ="step_preparation_feature ">
149+ 🔧 < strong > Step preparation</ strong > – validate moves with
150+ prepareElement
151+ </ li >
152+ < li id ="typescript_feature ">
153+ 📘 < strong > Written in TypeScript</ strong > – fully typed for better
154+ DX
155+ </ li >
153156 < li id ="free_use_feature ">
154157 🆓 < strong > MIT Licensed</ strong > – Free for personal and commercial
155158 use
156159 </ li >
157160 < li id ="lightweight_feature ">
158- 🕊️ Lightweight – Only < strong > ~7.5kb </ strong > when gzipped
161+ 🕊️ Lightweight – Only < strong > ~6.7kb </ strong > when gzipped
159162 </ li >
160163 < li id ="major_browsers_feature ">
161164 🌀 < strong > Consistent behavior</ strong > across all major browsers
@@ -171,94 +174,6 @@ <h3>How does it do that?</h3>
171174 you several hooks when highlighting, highlighted or un-highlighting
172175 elements making it highly customizable.
173176 </ p >
174- < h3 id ="comparison-table "> How does it compare to driver.js?</ h3 >
175- < div style ="overflow-x: auto ">
176- < table >
177- < tr >
178- < th style ="width: 50% "> Features</ th >
179- < th > Boarding.js</ th >
180- < th > Driver.js</ th >
181- </ tr >
182- < tr >
183- < td >
184- Works with complex layouts < br /> < small
185- > (no z-index conflicts)</ small
186- >
187- </ td >
188- < td > < i class ="fa fa-check "> </ i > </ td >
189- < td > < i class ="fa fa-remove "> </ i > </ td >
190- </ tr >
191- < tr >
192- < td >
193- Define steps for elements which are not mounted yet < br /> < small
194- > (for highly interactive websites, such as react applications,
195- where elements might only appear once an action has been
196- taken)</ small
197- >
198- </ td >
199- < td > < i class ="fa fa-check "> </ i > </ td >
200- < td > < i class ="fa fa-remove "> </ i > </ td >
201- </ tr >
202- < tr >
203- < td >
204- Has the concept of a stage< br /> < small
205- > (a customizable background for the highlighted
206- element)</ small
207- >
208- < br />
209- < br />
210- < small
211- > * Boarding.js will add the
212- < code > boarding-highlighted-element</ code > class to the
213- higlighted element for optional custom styling.</ small
214- >
215- </ td >
216- < td > < i class ="fa fa-remove "> </ i > *</ td >
217- < td > < i class ="fa fa-check "> </ i > </ td >
218- </ tr >
219- < tr >
220- < td > Auto popover positioning</ td >
221- < td > < i class ="fa fa-check "> </ i > </ td >
222- < td > < i class ="fa fa-remove "> </ i > </ td >
223- </ tr >
224- < tr >
225- < td >
226- Control popover
227- < a href ="#single-element-with-popover-position "> alignment</ a >
228- </ td >
229- < td > < i class ="fa fa-check "> </ i > </ td >
230- < td > < i class ="fa fa-remove "> </ i > </ td >
231- </ tr >
232- < tr >
233- < td >
234- Control allowed user (click) actions < br /> < small
235- > (< a href ="#api_section "> strictClickHandling</ a > )</ small
236- >
237- </ td >
238- < td > < i class ="fa fa-check "> </ i > </ td >
239- < td > < i class ="fa fa-remove "> </ i > </ td >
240- </ tr >
241- < tr >
242- < td >
243- Allow preparing/validating a move before it happens < br /> < small
244- > (< a href ="#api_section "> prepareElement</ a > )</ small
245- >
246- </ td >
247- < td > < i class ="fa fa-check "> </ i > </ td >
248- < td > < i class ="fa fa-remove "> </ i > </ td >
249- </ tr >
250- < tr >
251- < td > Written in TypeScript</ td >
252- < td > < i class ="fa fa-check "> </ i > </ td >
253- < td > < i class ="fa fa-remove "> </ i > </ td >
254- </ tr >
255- </ table >
256- </ div >
257- < p >
258- Besides the above, Boarding.js also has a few more options available
259- for each individual step, a more stable event system and more hooks
260- for it, such as < code > onBeforeHighlighted</ code > .
261- </ p >
262177 </ section >
263178 < hr class ="hr__fancy " />
264179 < section class ="section__examples ">
@@ -750,6 +665,29 @@ <h4>API Methods</h4>
750665 </ p >
751666 </ section >
752667 < hr class ="hr__fancy " />
668+ < blockquote style ="font-size: 0.8rem ">
669+ < p class ="zero-bottom ">
670+ 💡 This library started as a rewrite of
671+ < a
672+ href ="https://github.com/kamranahmedse/driver.js "
673+ target ="_blank "
674+ rel ="noopener noreferrer "
675+ > driver.js</ a
676+ >
677+ to address several shortcomings. It has since evolved into its own
678+ fully-featured project with unique approaches and capabilities.
679+ Inspired by these improvements,
680+ < a
681+ href ="https://github.com/kamranahmedse "
682+ target ="_blank "
683+ rel ="noopener noreferrer "
684+ > Kamran Ahmed</ a
685+ >
686+ subsequently rewrote large parts of driver.js (v1.0.3+) incorporating
687+ similar approaches.
688+ </ p >
689+ </ blockquote >
690+ < hr class ="hr__fancy " />
753691 < div class ="section__example ">
754692 < h4 > Contributing</ h4 >
755693 < p >
@@ -773,6 +711,10 @@ <h4>Contributing</h4>
773711 </ div >
774712
775713 < script async defer src ="//buttons.github.io/buttons.js "> </ script >
714+ < script src ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js "> </ script >
715+ < script >
716+ hljs . highlightAll ( ) ;
717+ </ script >
776718 < script type ="module " src ="/src/main.ts "> </ script >
777719 </ body >
778720</ html >
0 commit comments