@@ -13,39 +13,42 @@ const webcomponentName = 'mm-burger';
13
13
const template = document . createElement ( 'template' ) ;
14
14
template . innerHTML = `
15
15
<style>*,:host{box-sizing:border-box}
16
- :host{--mb-bar-width:30px;--mb-bar-height:3px;--mb-bar-spacing:7px;--mb-animate-delay:0s;display:inline-flex;align-items:center;gap:.75em;padding:0;margin:0;font-size:inherit;color:inherit;border:unset;background:0 0;cursor:pointer}
16
+ :host{--mb-bar-width:30px;--mb-bar-height:3px;--mb-bar-spacing:7px;--mb-animation-function:ease;--mb-animation-duration:0.25s;--mb-animation-delay:0s;display:inline-flex;align-items:center;gap:.75em;padding:0;margin:0;font-size:inherit;color:inherit;border:unset;background:0 0;cursor:pointer}
17
+ :host([animation=elastic]){--mb-animation-function:cubic-bezier(.5,-0.35,.35,1.5);--mb-animation-duration:0.35s}
18
+ :host([animation=funky]){--mb-animation-function:cubic-bezier(0,1.45,.5,1.45);--mb-animation-duration:0.4s}
19
+ :host([animation=shaky]){--mb-animation-function:cubic-bezier(.15,.33,1,-0.81);--mb-animation-function:cubic-bezier(0,.5,1,-1);--mb-animation-duration:0.45s}
17
20
[part=bars]{position:relative;display:block;width:var(--mb-bar-width);height:calc(var(--mb-bar-height) * 3 + var(--mb-bar-spacing) * 2)}
18
- .bar{display:block;position:absolute;left:0;right:0;height:var(--mb-bar-height);border-radius:calc(var(--mb-bar-height)/ 2);background:currentColor;color:inherit;opacity:1}
19
- .bar--top{bottom:calc(50% + var(--mb-bar-spacing) + var(--mb-bar-height)/ 2);transition:bottom .2s ease ,transform .2s ease,width .2s ease }
20
- .bar--middle{top:calc(50% - var(--mb-bar-height)/ 2);transition:opacity .2s ease }
21
- .bar--bottom{top:calc(50% + var(--mb-bar-spacing) + var(--mb-bar-height)/ 2);transition:top .2s ease ,transform .2s ease,width .2s ease }
21
+ .bar{display:block;position:absolute;left:0;right:0;height:var(--mb-bar-height);border-radius:calc(var(--mb-bar-height)/ 2);background:currentColor;color:inherit;opacity:1;transition:none var(--mb-animation-duration) var(--mb-animation-function) var(--mb-animation-delay) }
22
+ .bar--top{bottom:calc(50% + var(--mb-bar-spacing) + var(--mb-bar-height)/ 2);transition-property :bottom,transform}
23
+ .bar--middle{top:calc(50% - var(--mb-bar-height)/ 2);transition-property :opacity}
24
+ .bar--bottom{top:calc(50% + var(--mb-bar-spacing) + var(--mb-bar-height)/ 2);transition-property :top,transform}
22
25
.is-cross .bar--top{bottom:calc(50% - var(--mb-bar-height)/ 2);transform:rotate(45deg)}
23
26
.is-cross .bar--middle{opacity:0}
24
27
.is-cross .bar--bottom{top:calc(50% - var(--mb-bar-height)/ 2);transform:rotate(-45deg)}
25
- :host([fx=collapse]) .bar--top{transition:bottom .2s ease ,margin .2s ease ,transform .2s ease ;transition-delay:calc(var(--mb-animate -delay) + .2s) ,var(--mb-animate -delay),var(--mb-animate -delay)}
26
- :host([fx=collapse]) .bar--middle{transition:top .2s ease ,opacity 0s ease ;transition-delay:calc(var(--mb-animate -delay) + .3s ),calc(var(--mb-animate -delay) + .3s )}
27
- :host([fx=collapse]) .bar--bottom{transition:top .2s ease,transform .2s ease;transition -delay:var(--mb-animate -delay)}
28
- :host([fx=collapse]) .is-cross .bar--top{bottom:calc(50% - var(--mb-bar-spacing) - var(--mb-bar-height));margin-bottom:calc(var(--mb-bar-spacing) + var(--mb-bar-height)/ 2);transform:rotate(45deg);transition-delay:calc(var(--mb-animate -delay) + .1s ),calc(var(--mb-animate -delay) + .3s ),calc(var(--mb-animate -delay) + .3s )}
29
- :host([fx=collapse]) .is-cross .bar--middle{top:calc(50% + var(--mb-bar-spacing));opacity:0;transition-delay:var(--mb-animate -delay),calc(var(--mb-animate -delay) + .2s )}
30
- :host([fx=collapse]) .is-cross .bar--bottom{top:calc(50% - var(--mb-bar-height)/ 2);transform:rotate(-45deg);transition-delay:calc(var(--mb-animate -delay) + .3s ),calc(var(--mb-animate -delay) + .3s )}
31
- :host([fx=spin]) .bar--top{transition-delay:calc(var(--mb-animate -delay) + .2s) ,var(--mb-animate -delay)}
32
- :host([fx=spin]) .bar--middle{transition-duration:0s;transition- delay:calc(var(--mb-animate -delay) + .2s )}
33
- :host([fx=spin]) .bar--bottom{transition-delay:calc(var(--mb-animate -delay) + .2s) ,var(--mb-animate -delay)}
34
- :host([fx=spin]) .is-cross .bar--top{transform:rotate(135deg);transition-delay:var(--mb-animate -delay),calc(var(--mb-animate -delay) + .2s )}
35
- :host([fx=spin]) .is-cross .bar--middle{transition-delay:var(--mb-animate -delay)}
36
- :host([fx=spin]) .is-cross .bar--bottom{transform:rotate(225deg);transition-delay:var(--mb-animate -delay),calc(var(--mb-animate -delay) + .2s )}
37
- :host([fx=squeeze]) .bar--top{transition-delay:calc(var(--mb-animate -delay) + .1s ),var(--mb-animate -delay)}
38
- :host([fx=squeeze]) .bar--middle{transition-delay:calc(var(--mb-animate -delay) + .1s)}
39
- :host([fx=squeeze]) .bar--bottom{transition-delay:calc(var(--mb-animate -delay) + .1s ),var(--mb-animate -delay)}
40
- :host([fx=squeeze]) .is-cross .bar--top{transition-delay:var(--mb-animate -delay),calc(var(--mb-animate -delay) + .1s )}
41
- :host([fx=squeeze]) .is-cross .bar--middle{transition-delay:var(--mb-animate -delay)}
42
- :host([fx=squeeze]) .is-cross .bar--bottom{transition-delay:var(--mb-animate -delay),calc(var(--mb-animate -delay) + .1s )}
43
- :host([fx=tornado]) .bar--top{transition:bottom .2s ease,transform .2s ease;transition -delay:calc(var(--mb-animate -delay) + .2s )}
44
- :host([fx=tornado]) .bar--middle{transition:opacity 0s ease ,transform .2s ease ;transition-delay:calc(var(--mb-animate -delay) + .1s),calc( var(--mb-animate-delay) + .1s )}
45
- :host([fx=tornado]) .bar--bottom{transition:top .2s ease,transform .2s ease;transition -delay:var(--mb-animate -delay)}
46
- :host([fx=tornado]) .is-cross .bar--top{transform:rotate(-135deg);transition-delay:var(--mb-animate -delay)}
47
- :host([fx=tornado]) .is-cross .bar--middle{opacity:0;transform:rotate(-135deg);transition-delay:calc(var(--mb-animate -delay) + .4s),calc( var(--mb-animate-delay) + .1s )}
48
- :host([fx=tornado]) .is-cross .bar--bottom{transform:rotate(-225deg);transition-delay:calc(var(--mb-animate -delay) + .2s )}</style>
28
+ :host([fx=collapse]) .bar--top{transition-property :bottom,margin,transform;transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration)) ,var(--mb-animation -delay),var(--mb-animation -delay)}
29
+ :host([fx=collapse]) .bar--middle{transition-property :top,opacity;transition-duration:var(--mb-animation-duration),0s ;transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) * 1.3 ),calc(var(--mb-animation -delay) + var(--mb-animation-duration) * 1.3 )}
30
+ :host([fx=collapse]) .bar--bottom{transition-delay:var(--mb-animation -delay)}
31
+ :host([fx=collapse]) .is-cross .bar--top{bottom:calc(50% - var(--mb-bar-spacing) - var(--mb-bar-height));margin-bottom:calc(var(--mb-bar-spacing) + var(--mb-bar-height)/ 2);transform:rotate(45deg);transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) * .3 ),calc(var(--mb-animation -delay) + var(--mb-animation-duration) * 1.3 ),calc(var(--mb-animation -delay) + var(--mb-animation-duration) * 1.3 )}
32
+ :host([fx=collapse]) .is-cross .bar--middle{top:calc(50% + var(--mb-bar-spacing));opacity:0;transition-duration:var(--mb-animation-duration),0s;transition- delay:var(--mb-animation -delay),calc(var(--mb-animation -delay) + var(--mb-animation-duration) )}
33
+ :host([fx=collapse]) .is-cross .bar--bottom{top:calc(50% - var(--mb-bar-height)/ 2);transform:rotate(-45deg);transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) * 1.3 ),calc(var(--mb-animation -delay) + var(--mb-animation-duration) * 1.3 )}
34
+ :host([fx=spin]) .bar--top{transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration)) ,var(--mb-animation -delay)}
35
+ :host([fx=spin]) .bar--middle{transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) )}
36
+ :host([fx=spin]) .bar--bottom{transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration)) ,var(--mb-animation -delay)}
37
+ :host([fx=spin]) .is-cross .bar--top{transform:rotate(135deg);transition-delay:var(--mb-animation -delay),calc(var(--mb-animation -delay) + var(--mb-animation-duration) )}
38
+ :host([fx=spin]) .is-cross .bar--middle{transition-duration:0s;transition- delay:calc( var(--mb-animation -delay) + var(--mb-animation-duration) )}
39
+ :host([fx=spin]) .is-cross .bar--bottom{transform:rotate(225deg);transition-delay:var(--mb-animation -delay),calc(var(--mb-animation -delay) + var(--mb-animation-duration) )}
40
+ :host([fx=squeeze]) .bar--top{transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) * .4 ),var(--mb-animation -delay)}
41
+ :host([fx=squeeze]) .bar--middle{transition-delay:calc(var(--mb-animation -delay) + .1s)}
42
+ :host([fx=squeeze]) .bar--bottom{transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) * .4 ),var(--mb-animation -delay)}
43
+ :host([fx=squeeze]) .is-cross .bar--top{transition-delay:var(--mb-animation -delay),calc(var(--mb-animation -delay) + var(--mb-animation-duration) * .4 )}
44
+ :host([fx=squeeze]) .is-cross .bar--middle{transition-delay:var(--mb-animation -delay)}
45
+ :host([fx=squeeze]) .is-cross .bar--bottom{transition-delay:var(--mb-animation -delay),calc(var(--mb-animation -delay) + var(--mb-animation-duration) * .4 )}
46
+ :host([fx=tornado]) .bar--top{transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) * .6 )}
47
+ :host([fx=tornado]) .bar--middle{transition-property :opacity,transform;transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) * .3 )}
48
+ :host([fx=tornado]) .bar--bottom{transition-delay:var(--mb-animation -delay)}
49
+ :host([fx=tornado]) .is-cross .bar--top{transform:rotate(-135deg);transition-delay:var(--mb-animation -delay)}
50
+ :host([fx=tornado]) .is-cross .bar--middle{opacity:0;transform:rotate(-135deg);transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) * .3 )}
51
+ :host([fx=tornado]) .is-cross .bar--bottom{transform:rotate(-225deg);transition-delay:calc(var(--mb-animation -delay) + var(--mb-animation-duration) * .6 )}</style>
49
52
<span part="bars">
50
53
<span class="bar bar--top"></span>
51
54
<span class="bar bar--middle"></span>
0 commit comments