hds-web 1.7.4 → 1.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,163 @@
1
+ import React from "react";
2
+ import { Typography } from "../../foundation/Typography";
3
+ import { HDSButton } from "../Buttons";
4
+ import { HDSColor } from "../../foundation/ColorPalette";
5
+ import { LinkCard } from '../Cards/Link';
6
+ //hover:scale-[1.09] hover:z-10 hover:transition hover:duration-300
7
+ export default function HeroIntegration({ heroData}) {
8
+
9
+ const stackedCircularCard = (circularCardData) => (
10
+ <div className="flex flex-row">
11
+ {circularCardData && circularCardData.map((card, index) => (
12
+ <div
13
+ key={index}
14
+ className={`w-20 h-20 ${index > 0 ? '-ml-4' : ''} ${HDSColor(card.cardBgClass)} ${HDSColor(card.cardHoverbgClass)} rounded-full flex items-center justify-center `}
15
+ >
16
+ <div className="w-14 h-14">
17
+ <img className="inline-block" src={card.img_link} alt={card.img_alt} />
18
+ </div>
19
+ </div>
20
+ ))}
21
+ </div>
22
+ )
23
+
24
+ // const scrollToNextDiv = (element) => {
25
+ // const nextDiv = element.nextElementSibling;
26
+ // if (nextDiv) {
27
+ // nextDiv.scrollIntoView({ behavior: 'smooth' });
28
+ // }
29
+ // };
30
+ // const handleClick = (event) => {
31
+ // const arrowIcon = event.target;
32
+ // const arrowContainer = arrowIcon.parentNode;
33
+ // scrollToNextDiv(arrowContainer);
34
+ // };
35
+ const title = () => (
36
+ heroData.title && (
37
+ <>
38
+ {heroData.title && (
39
+ <>
40
+ {heroData.stackedCard &&
41
+ <div className="pb-6">
42
+ {stackedCircularCard(heroData.stackedCard)}
43
+ </div>
44
+ }
45
+ <Typography textStyle='h2' as="h2" className={"pb-2 tb:text-center break-words db:text-left tb-l:text-left " + ((heroData.title_color) ? heroData.title_color : "") + ((heroData.video_url) ? " tb:text-center" : " tb:text-left")}>{heroData.title}</Typography>
46
+ </>
47
+
48
+ )
49
+ }
50
+ </>
51
+ )
52
+ )
53
+
54
+ const heroButton = () => (
55
+ heroData.buttons && (
56
+ <div className={" gap-6 flex items-center tb:justify-center tb-l:justify-start db:justify-start pt-6" + ((heroData.video_url) ? " tb:justify-center" : " tb:justify-start")}>
57
+ {heroData.buttons[0] &&
58
+ <HDSButton
59
+ type="primary"
60
+ btnTextColorClass={HDSColor('text-neutral-0')}
61
+ leftIconVariant='none'
62
+ rightIconVariant='none'
63
+ label={heroData.buttons[0].cta_text}
64
+ state='default'
65
+ size='lg'
66
+ rightAnimatedArrow='true'
67
+ rightAnimatedArrowColor='#ffffff'
68
+ />
69
+ }
70
+ {heroData.buttons[1] &&
71
+ <HDSButton
72
+ type="primaryLink"
73
+ btnTextColorClass={HDSColor('text-neutral-0')}
74
+ leftIconVariant='none'
75
+ rightIconVariant='none'
76
+ label={heroData.buttons[1].cta_text}
77
+ state='default'
78
+ size='lg'
79
+ rightAnimatedArrow='true'
80
+ rightAnimatedArrowColor='#ffffff'
81
+ />}
82
+
83
+
84
+ </div>
85
+ )
86
+ )
87
+ const LinkCardsFn = (heroData) => {
88
+ return (
89
+ heroData.linkCards && (
90
+ <div className="flex px-8 tb:px-10 tb:justify-center db-s:px-0 overflow-auto scrollbar-hide flex-row gap-6 db-s:mt-[68px] tb:flex-row ">
91
+ {heroData.linkCards.map((card, index) => (
92
+ <div key={index} className={`${HDSColor(card.cardBorderClass)} border rounded-2xl w-full pb-2 min-w-[11.5rem] max-w-[22.313rem]`}>
93
+ <LinkCard
94
+ titleTextColor={card.titleTextColor}
95
+ descTextColor={card.descTextColor}
96
+ linkUrl={card.linkUrl}
97
+ cardBgColor={card.cardBgColor}
98
+ cardHoverBg={card.cardHoverBg}
99
+ iconVariant={card.iconVariant}
100
+ iconStrokeClass={card.iconStrokeColor}
101
+ iconArrowVariant={card.iconArrowVariant}
102
+ iconArrowStrokeClass={card.iconArrowStrokeColor}
103
+ title={card.title}
104
+ description={card.description}
105
+ />
106
+ </div>
107
+ ))}
108
+ </div>
109
+ )
110
+ );
111
+ };
112
+
113
+ const imageCard = (heroData) => (
114
+ heroData.imageUrl && (
115
+ <div className="py-12 tb:py-14 db-s:pt-0 ">
116
+ <img src={heroData.imageUrl} alt={heroData.imageAlt} className='tb-l:w-full db-s:max-w-[540px]' />
117
+ </div>
118
+ )
119
+ )
120
+
121
+ return (
122
+ <div className="">
123
+ <div className="">
124
+ <div className={"max-w-7xl mx-auto pb-14 tb:pb-10 db-s:p-20 rounded-3xl overflow-hidden " + ((heroData.bg_color) ? heroData.bg_color : "")} >
125
+ <div className="w-full">
126
+ <div className={"flex flex-col px-8 db-s:px-0 tb:px-10 pt-5 tb:pt-10 db-s:flex db-s:justify-between db-s:items-center db-s:flex-row db-s:w-full db-s:gap-x-[92px]"}>
127
+ <div className='db-s:max-w-[490px] tb-l:max-w-[658px] w-full tb:flex items-start tb:flex-col mt-4 tb:mt-0'
128
+ >
129
+
130
+ {title(heroData)}
131
+ {
132
+ heroData.sub_title && (
133
+ <Typography textStyle="sub1" className={"tb-l:text-center db:text-left flex" + ((heroData.sub_title_color) ? heroData.sub_title_color : "")}>{heroData.sub_title}</Typography>
134
+ )
135
+ }
136
+ {
137
+ heroData.description && (
138
+ <Typography textStyle="sub1" className="db:text-left text-neutral-0 [&>*]:mb-8 last:[&>*]:mb-0">{heroData.description}</Typography>
139
+ )
140
+ }
141
+ {heroButton(heroData)}
142
+ </div>
143
+ <div className="h-full flex justify-center db-s:self-start w-full">{imageCard(heroData)}</div>
144
+ </div>
145
+ {LinkCardsFn(heroData)}
146
+
147
+ </div>
148
+ </div>
149
+ {/* {
150
+ heroData.scrollArrow && (
151
+ <div className="flex justify-center flex-row z-10" onClick={(e) => scrollToNextDiv(e.currentTarget)}>
152
+ <div className="flex bg-neutral-0 shadow-md -mt-5 animate-bounce justify-center rounded-full items-center w-12 h-12" onClick={handleClick} >
153
+ <Icon
154
+ variant='chevrondowndouble'
155
+ strokeClass='stroke-neutral-800' height='h-6 w-6' />
156
+ </div>
157
+ </div>
158
+ )
159
+ } */}
160
+ </div>
161
+ </div>
162
+ );
163
+ }
@@ -1,3 +1,4 @@
1
1
  export {default as Hero1} from './h1'
2
2
  export {default as HeroSecondary} from './h2'
3
- export {default as HeroCapability} from './h3'
3
+ export {default as HeroCapability} from './h3'
4
+ export {default as HeroIntegration} from './heroIntegration'
File without changes
@@ -0,0 +1,69 @@
1
+ import React from 'react';
2
+ import { LinkCard } from '../Cards/Link'
3
+ import { Typography } from '../../foundation/Typography';
4
+ import { HDSButton } from '../Buttons'
5
+
6
+ export default function LinkImagePF(props) {
7
+ const {
8
+ sectionPreFooterData
9
+ } = props;
10
+ return (
11
+ <>
12
+ <div className="w-full">
13
+ {/* <div className="rounded-3xl bg-neutral-0 shadow db:p-20 tb:p-10 px-5 py-10">
14
+ <div className="pt-10 tb:pt-16 db:pt-24">
15
+ <Typography textStyle="h4" as="h4" className="text-neutral-1000 pb-8">{sectionPreFooterData.title}</Typography>
16
+ <div className="grid grid-cols-1 tb-l:grid-cols-2 gap-10 tb:gap-20 db:gap-30">
17
+ <div className="max-w-[380px]">
18
+ {
19
+ (sectionPreFooterData.link_card.length > 0) && sectionPreFooterData.link_card.map((card, index) => (
20
+ <div key={index} className="pb-4 last:pb-0 border border-neutral-150 rounded-2xl transition ease-in duration-150 hover:shadow-xl hover:border-transparent mb-4 last:mb-0">
21
+ <LinkCard
22
+ titleTextColor={card.titleTextColor}
23
+ descTextColor={card.descTextColor}
24
+ linkUrl={card.linkUrl}
25
+ cardBgColor={card.cardBgColor}
26
+ cardHoverBg={card.cardHoverBg}
27
+ iconVariant={card.iconVariant}
28
+ iconStrokeClass={card.iconStrokeColor}
29
+ iconArrowVariant={card.iconArrowVariant}
30
+ iconArrowStrokeClass={card.iconArrowStrokeColor}
31
+ title={card.title}
32
+ description={card.description}
33
+ />
34
+ </div>
35
+ ))
36
+ }
37
+
38
+ </div>
39
+ <div className="text-center self-start">
40
+ <img
41
+ loading="lazy"
42
+ src={sectionPreFooterData.get_tickets.img_url}
43
+ width={214}
44
+ height={284}
45
+ alt={sectionPreFooterData.get_tickets.title}
46
+ className="inline-block"
47
+ />
48
+ <Typography textStyle="h3" as="h3" className="text-neutral-1000 py-6">{sectionPreFooterData.get_tickets.title}</Typography>
49
+ <a href={sectionPreFooterData.get_tickets.button.cta_link}>
50
+ <HDSButton
51
+ label={sectionPreFooterData.get_tickets.button.cta_text}
52
+ type='secondary'
53
+ leftIconVariant='none'
54
+ rightIconVariant='none'
55
+ state='default'
56
+ size='md'
57
+ rightAnimatedArrow={true}
58
+ rightAnimatedArrowColor='#3970FD'
59
+ />
60
+ </a>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div> */}
65
+ </div>
66
+ </>
67
+ )
68
+ }
69
+
@@ -13,4 +13,5 @@ export * from './Tabs';
13
13
  export * from './Tooltip';
14
14
  export * from './Hero';
15
15
  export * from './Tables';
16
- export * from './Carousels';
16
+ export * from './Carousels';
17
+ export * from './Pre-footers';
@@ -3,10 +3,12 @@ import { Typography } from "../../foundation/Typography";
3
3
  import { HDSColor } from "../../foundation/ColorPalette";
4
4
  import { HDSButton } from '../../components/Buttons';
5
5
  import { Icon } from '../../components/common-components/Icon';
6
+ import ReactMarkdown from "react-markdown";
6
7
 
7
8
  export default function TextCard(props) {
8
9
  const titleColor = HDSColor(props.title_color);
9
- const currentImgActive = (props.feature_cards_links && props.feature_cards_links[0]?.title )? props.feature_cards_links[0].title : null;
10
+ const subtitleColorClass = HDSColor(props.subtitle_color)
11
+ const currentImgActive = (props.feature_cards_links && props.feature_cards_links[0]?.title) ? props.feature_cards_links[0].title : null;
10
12
  const [imgActive, setImgActive] = useState(currentImgActive);
11
13
  return (
12
14
  <>
@@ -16,35 +18,45 @@ export default function TextCard(props) {
16
18
  <div className={'grid grid-cols-1 tb-l:grid-cols-2 gap-10' + ((props.feature_cards_links) ? ' tb:gap-0 tb-l:gap-0' : ' tb:gap-16 tb-l:gap-36')}>
17
19
  <div>
18
20
  {
19
- !props.feature_cards_links && (<Typography textStyle="h3" as="h3" className={`${titleColor} pb-6`}>{props.title}</Typography>)
21
+ !props.feature_cards_links && (<Typography textStyle="h3" as="h3" className={`${HDSColor(titleColor)} pb-6`}>{props.title}</Typography>)
22
+ }
23
+ {
24
+ !props.feature_cards_links && props.subtitle && (<Typography textStyle="sub1" className={`${(subtitleColorClass)} pb-2 -mt-4`}>{props.subtitle}</Typography>)
20
25
  }
21
26
  {
22
27
  props.descriptions && props.descriptions.map((desc, i) => (
23
- <Typography key={i} textStyle="body1" className="pb-6 pr-8">{desc.description}</Typography>
28
+ <Typography
29
+ key={i}
30
+ textStyle="body1"
31
+ className="pb-6 pr-8 [&>p]:pb-2 last:[&>p]:pb-0 [&>ul]:ps-4 [&>ul>li]:list-disc [&>ul>li]:pb-2 last:[&>ul>li]:pb-0 [&>p>a]:text-blue-600">
32
+ <ReactMarkdown>
33
+ {desc.description}
34
+ </ReactMarkdown>
35
+ </Typography>
24
36
  ))
25
37
  }
26
38
  {
27
39
  props.descriptions_list && (
28
40
  <div className="pb-6">
29
- {
30
- props.descriptions_list && props.descriptions_list.map((descList, j) => {
31
- const iconBgColor = HDSColor(descList.icon_bg_color);
32
- const iconColor = HDSColor(descList.icon_color);
33
- return (
34
- <div className='flex items-start pb-4 last:pb-0' key={j}>
35
- <div className={`${iconBgColor} w-6 h-6 min-w-[24px] min-h-[24px] rounded-full mr-2 flex items-center justify-center`}>
36
- <Icon
37
- height={`h-3 w-3 stroke-[1.5px]` }
38
- variant={descList.icon_name}
39
- strokeClass={iconColor}
40
- />
41
+ {
42
+ props.descriptions_list && props.descriptions_list.map((descList, j) => {
43
+ const iconBgColor = HDSColor(descList.icon_bg_color);
44
+ const iconColor = HDSColor(descList.icon_color);
45
+ return (
46
+ <div className='flex items-start pb-4 last:pb-0' key={j}>
47
+ <div className={`${iconBgColor} w-6 h-6 min-w-[24px] min-h-[24px] rounded-full mr-2 flex items-center justify-center`}>
48
+ <Icon
49
+ height={`h-3 w-3 stroke-[1.5px]`}
50
+ variant={descList.icon_name}
51
+ strokeClass={iconColor}
52
+ />
53
+ </div>
54
+ <Typography textStyle='body1' className='text-neutral-1000'>{descList.description}</Typography>
41
55
  </div>
42
- <Typography textStyle='body1' className='text-neutral-1000'>{descList.description}</Typography>
43
- </div>
44
- )
45
- })
56
+ )
57
+ })
46
58
 
47
- }
59
+ }
48
60
  </div>
49
61
  )
50
62
  }
@@ -56,11 +68,11 @@ export default function TextCard(props) {
56
68
  const currentStrokeColor = HDSColor(list.icon_color)
57
69
  const imgBgColor = HDSColor(list.tab_img_bg_class)
58
70
  return (
59
- <div key={i} className='border-b border-b-neutral-150 last:border-b-0 cursor-pointer' onClick={()=>setImgActive(list.title)}>
71
+ <div key={i} className='border-b border-b-neutral-150 last:border-b-0 cursor-pointer' onClick={() => setImgActive(list.title)}>
60
72
  <div className={'m-2 p-0 tb:p-6 rounded-lg transition ease-in duration-200 hover:bg-neutral-50' + ((imgActive === list.title) ? " bg-neutral-150" : "")} key={i}>
61
73
  <div className='flex items-center pb-4'>
62
74
  <Icon
63
- height={`w-6 h-6 mr-2 stroke-[1.5px]` }
75
+ height={`w-6 h-6 mr-2 stroke-[1.5px]`}
64
76
  variant={list.icon_name}
65
77
  strokeClass={currentStrokeColor}
66
78
  />
@@ -75,7 +87,7 @@ export default function TextCard(props) {
75
87
  <div className='flex items-start pb-4 last:pb-0' key={j}>
76
88
  <div className={`${iconBgColor} w-5 h-5 min-w-[20px] min-h-[20px] rounded-full mr-2 flex items-center justify-center`}>
77
89
  <Icon
78
- height={`h-3 w-3 stroke-[1.5px]` }
90
+ height={`h-3 w-3 stroke-[1.5px]`}
79
91
  variant={descList.icon_name}
80
92
  strokeClass={iconColor}
81
93
  />
@@ -106,7 +118,7 @@ export default function TextCard(props) {
106
118
  {
107
119
  list.tab_img_url && (
108
120
  <div className={`${imgBgColor} tb-l:hidden p-12 rounded-2xl mt-8`}>
109
- <img src={list.tab_img_url} alt={list.title} loading="lazy"/>
121
+ <img src={list.tab_img_url} alt={list.title} loading="lazy" />
110
122
  </div>
111
123
  )
112
124
  }
@@ -130,7 +142,7 @@ export default function TextCard(props) {
130
142
  size='md'
131
143
  rightAnimatedArrow={true}
132
144
  rightAnimatedArrowColor='#3970FD'
133
- />
145
+ />
134
146
  )
135
147
  }
136
148
  </div>
@@ -162,7 +174,7 @@ export default function TextCard(props) {
162
174
  />
163
175
  </video>
164
176
  ) : (
165
- <img src={img.tab_img_url} alt={img.title} loading="lazy"/>
177
+ <img src={img.tab_img_url} alt={img.title} loading="lazy" />
166
178
  )
167
179
  }
168
180
  </div>
@@ -174,55 +186,55 @@ export default function TextCard(props) {
174
186
  }
175
187
  </>
176
188
  ) : (
177
- <>
178
- {
179
- props.iframe_url || props.video_url ? (
180
- <div>
181
- {
182
- props.iframe_url ? (
183
- <div className="relative pb-[56.2%]">
184
- <iframe
185
- loading="lazy"
186
- title={props.title}
187
- src={props.iframe_url}
188
- frameBorder="0"
189
- allowFullScreen
190
- className="absolute w-full h-full rounded-2xl db:rounded-3xl"
191
- ></iframe>
192
- </div>
193
- ) : (
194
- <video
189
+ <>
190
+ {
191
+ props.iframe_url || props.video_url ? (
192
+ <div>
193
+ {
194
+ props.iframe_url ? (
195
+ <div className="relative pb-[56.2%]">
196
+ <iframe
195
197
  loading="lazy"
196
- controls={false}
197
- autoPlay
198
- loop
199
- muted
200
- poster={props.video_poster}
201
- className="rounded-2xl db:rounded-3xl"
202
- >
203
- <source
204
- src={props.video_url}
205
- type="video/mp4"
206
- />
207
- </video>
208
- )
209
- }
210
- </div>
211
- ) : (
212
- <>
213
- {props.img_url && (
214
- <div className={`${HDSColor(props.img_bg_class)} px-5 py-10 flex items-center justify-center db:p-8 rounded-2xl db:rounded-3xl`}>
215
- <img className='rounded-2xl db:rounded-3xl inline-block' src={props.img_url} alt={props.title} loading="lazy" />
198
+ title={props.title}
199
+ src={props.iframe_url}
200
+ frameBorder="0"
201
+ allowFullScreen
202
+ className="absolute w-full h-full rounded-2xl db:rounded-3xl"
203
+ ></iframe>
216
204
  </div>
217
- )}
218
- </>
219
- )
220
- }
205
+ ) : (
206
+ <video
207
+ loading="lazy"
208
+ controls={false}
209
+ autoPlay
210
+ loop
211
+ muted
212
+ poster={props.video_poster}
213
+ className="rounded-2xl db:rounded-3xl"
214
+ >
215
+ <source
216
+ src={props.video_url}
217
+ type="video/mp4"
218
+ />
219
+ </video>
220
+ )
221
+ }
222
+ </div>
223
+ ) : (
224
+ <>
225
+ {props.img_url && (
226
+ <div className={`${HDSColor(props.img_bg_class)} px-5 py-10 flex items-center justify-center db:p-8 rounded-2xl db:rounded-3xl`}>
227
+ <img className='rounded-2xl db:rounded-3xl inline-block' src={props.img_url} alt={props.title} loading="lazy" />
228
+ </div>
229
+ )}
230
+ </>
231
+ )
232
+ }
221
233
 
222
- </>
234
+ </>
223
235
  )
224
236
  }
225
- </div>
237
+ </div>
226
238
 
227
239
 
228
240
  </>
package/src/index.css CHANGED
@@ -440,3 +440,179 @@
440
440
  }
441
441
 
442
442
 
443
+
444
+
445
+ #load {
446
+ position: absolute;
447
+ width: 600px;
448
+ height: 36px;
449
+ left: 50%;
450
+ top: 40%;
451
+ margin-left: -300px;
452
+ overflow: visible;
453
+ -webkit-user-select: none;
454
+ -moz-user-select: none;
455
+ -ms-user-select: none;
456
+ user-select: none;
457
+ cursor: default;
458
+ }
459
+
460
+ #load div {
461
+ position: absolute;
462
+ width: 200px;
463
+ opacity: 0;
464
+ animation: move 10s linear infinite;
465
+ -o-animation: move 10s linear infinite;
466
+ -moz-animation: move 10s linear infinite;
467
+ -webkit-animation: move 10s linear infinite;
468
+ color: #35C4F0;
469
+ }
470
+
471
+ #load div:nth-child(2) {
472
+ animation-delay: 0.2s;
473
+ -o-animation-delay: 0.2s;
474
+ -moz-animation-delay: 0.2s;
475
+ -webkit-animation-delay: 0.2s;
476
+ }
477
+
478
+ #load div:nth-child(3) {
479
+ animation-delay: 0.4s;
480
+ -o-animation-delay: 0.4s;
481
+ -webkit-animation-delay: 0.4s;
482
+ -webkit-animation-delay: 0.4s;
483
+ }
484
+
485
+ #load div:nth-child(4) {
486
+ animation-delay: 0.6s;
487
+ -o-animation-delay: 0.6s;
488
+ -moz-animation-delay: 0.6s;
489
+ -webkit-animation-delay: 0.6s;
490
+ }
491
+
492
+ #load div:nth-child(5) {
493
+ animation-delay: 0.8s;
494
+ -o-animation-delay: 0.8s;
495
+ -moz-animation-delay: 0.8s;
496
+ -webkit-animation-delay: 0.8s;
497
+ }
498
+
499
+ #load div:nth-child(6) {
500
+ animation-delay: 1s;
501
+ -o-animation-delay: 1s;
502
+ -moz-animation-delay: 1s;
503
+ -webkit-animation-delay: 1s;
504
+ }
505
+
506
+ #load div:nth-child(7) {
507
+ animation-delay: 1.2s;
508
+ -o-animation-delay: 1.2s;
509
+ -moz-animation-delay: 1.2s;
510
+ -webkit-animation-delay: 1.2s;
511
+ }
512
+
513
+ @keyframes move {
514
+ 0% {
515
+ left: 0;
516
+ opacity: 0;
517
+ }
518
+
519
+ 35% {
520
+ left: 41%;
521
+
522
+ opacity: 1;
523
+ }
524
+
525
+ 65% {
526
+ left: 59%;
527
+
528
+ opacity: 1;
529
+ }
530
+
531
+ 100% {
532
+ left: 100%;
533
+
534
+ opacity: 0;
535
+ }
536
+ }
537
+
538
+ @-moz-keyframes move {
539
+ 0% {
540
+ left: 0;
541
+ opacity: 0;
542
+ }
543
+
544
+ 35% {
545
+ left: 41%;
546
+ -moz-transform: rotate(0deg);
547
+ transform: rotate(0deg);
548
+ opacity: 1;
549
+ }
550
+
551
+ 65% {
552
+ left: 59%;
553
+ -moz-transform: rotate(0deg);
554
+ transform: rotate(0deg);
555
+ opacity: 1;
556
+ }
557
+
558
+ 100% {
559
+ left: 100%;
560
+ -moz-transform: rotate(-180deg);
561
+ transform: rotate(-180deg);
562
+ opacity: 0;
563
+ }
564
+ }
565
+
566
+ @-webkit-keyframes move {
567
+ 0% {
568
+ left: 0;
569
+ opacity: 0;
570
+ }
571
+
572
+ 35% {
573
+ left: 41%;
574
+ -webkit-transform: rotate(0deg);
575
+ transform: rotate(0deg);
576
+ opacity: 1;
577
+ }
578
+
579
+ 65% {
580
+ left: 59%;
581
+ -webkit-transform: rotate(0deg);
582
+ transform: rotate(0deg);
583
+ opacity: 1;
584
+ }
585
+
586
+ 100% {
587
+ left: 100%;
588
+
589
+ opacity: 0;
590
+ }
591
+ }
592
+
593
+ @-o-keyframes move {
594
+ 0% {
595
+ left: 0;
596
+ opacity: 0;
597
+ }
598
+
599
+ 35% {
600
+ left: 41%;
601
+ -o-transform: rotate(0deg);
602
+ transform: rotate(0deg);
603
+ opacity: 1;
604
+ }
605
+
606
+ 65% {
607
+ left: 59%;
608
+ -o-transform: rotate(0deg);
609
+ transform: rotate(0deg);
610
+ opacity: 1;
611
+ }
612
+
613
+ 100% {
614
+ left: 100%;
615
+
616
+ opacity: 0;
617
+ }
618
+ }