@@ -53,35 +53,51 @@ export type NextTopLoaderProps = {
5353 * @default 200
5454 */
5555 speed ?: number ;
56+ /**
57+ * Defines a shadow for the TopLoader.
58+ * @default "0 0 10px ${color},0 0 5px ${color}"
59+ *
60+ * @ you can disable it by setting it to `false`
61+ */
62+ shadow ?: string | false ;
5663}
5764
5865const NextTopLoader = ( {
59- color,
60- height,
66+ color : propColor ,
67+ height : propHeight ,
6168 showSpinner,
6269 crawl,
6370 crawlSpeed,
6471 initialPosition,
6572 easing,
6673 speed,
74+ shadow,
6775} : NextTopLoaderProps ) => {
6876 const defaultColor = '#29d' ;
6977 const defaultHeight = 3 ;
7078
79+ const color = propColor ?? defaultColor ;
80+ const height = propHeight ?? defaultHeight ;
81+
82+ // Any falsy (except undefined) will disable the shadow
83+ const boxShadow = ! shadow && shadow !== undefined
84+ ? ''
85+ : shadow
86+ ? `box-shadow:${ shadow } `
87+ : `box-shadow:0 0 10px ${ color } ,0 0 5px ${ color } ` ;
88+
7189 const styles = (
7290 < style >
7391 { `#nprogress{pointer-events:none}#nprogress .bar{background:${
74- color ?? defaultColor
92+ color
7593 } ;position:fixed;z-index:1031;top:0;left:0;width:100%;height:${
76- height ?? defaultHeight
77- } px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px ${
78- color ?? defaultColor
79- } ,0 0 5px ${
80- color ?? defaultColor
94+ height
95+ } px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;${
96+ boxShadow
8197 } ;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:${
82- color ?? defaultColor
98+ color
8399 } ;border-left-color:${
84- color ?? defaultColor
100+ color
85101 } ;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}`}
86102 </ style >
87103 ) ;
@@ -183,4 +199,8 @@ NextTopLoader.propTypes = {
183199 initialPosition : PropTypes . number ,
184200 easing : PropTypes . string ,
185201 speed : PropTypes . number ,
202+ shadow : PropTypes . oneOfType ( [
203+ PropTypes . string ,
204+ PropTypes . bool ,
205+ ] ) ,
186206} ;
0 commit comments