Skip to content

Commit 251a0ad

Browse files
committed
feat(label animations): added pulse animation
1 parent 40e3e16 commit 251a0ad

File tree

3 files changed

+90
-50
lines changed

3 files changed

+90
-50
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?php
2+
3+
namespace App\Actions\FontAwesome\v6;
4+
5+
use Lorisleiva\Actions\Concerns\AsAction;
6+
7+
class GetLabelAnimationMarkup
8+
{
9+
use AsAction;
10+
11+
public function handle(string $animation, string $animationDuration)
12+
{
13+
if ($animation == 'blink') {
14+
return <<<EOD
15+
<style>
16+
17+
@keyframes blink {
18+
0% {
19+
opacity: 1;
20+
}
21+
49% {
22+
opacity: 1;
23+
}
24+
50% {
25+
opacity: 0;
26+
}
27+
99% {
28+
opacity: 0;
29+
}
30+
100% {
31+
opacity: 1;
32+
}
33+
}
34+
35+
@-webkit-keyframes blink {
36+
0% {
37+
opacity: 1;
38+
}
39+
49% {
40+
opacity: 1;
41+
}
42+
50% {
43+
opacity: 0;
44+
}
45+
99% {
46+
opacity: 0;
47+
}
48+
100% {
49+
opacity: 1;
50+
}
51+
}
52+
53+
.labelAnimation {
54+
animation: blink {$animationDuration} linear infinite;
55+
-webkit-animation: blink {$animationDuration} linear infinite;
56+
}
57+
</style>
58+
EOD;
59+
} elseif ($animation == 'pulse') {
60+
return <<<EOD
61+
<style>
62+
63+
@keyframes pulse {
64+
0% {
65+
opacity: 1.0;
66+
}
67+
25% {
68+
opacity: 1.0;
69+
}
70+
100% {
71+
opacity: 0.0;
72+
}
73+
}
74+
75+
.labelAnimation {
76+
animation-name: pulse;
77+
animation-duration: {$animationDuration};
78+
animation-iteration-count: infinite;
79+
animation-direction: alternate;
80+
}
81+
</style>
82+
EOD;
83+
}
84+
85+
return '';
86+
}
87+
}

app/Actions/FontAwesome/v6/GetLabelMarkup.php

Lines changed: 2 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -21,62 +21,14 @@ public function handle(Request $request, int $markerSize)
2121
// LABEL ANIMATION
2222
$labelAnimation = $request->get('labelAnimation', null);
2323
$labelAnimationDuration = $request->get('labelAnimationDuration', '1s');
24-
$labelAnimationMarkup = null;
25-
26-
if ($labelAnimation == 'blink') {
27-
$labelAnimationMarkup = <<<EOD
28-
<style>
29-
30-
@keyframes blink {
31-
0% {
32-
opacity: 1;
33-
}
34-
49% {
35-
opacity: 1;
36-
}
37-
50% {
38-
opacity: 0;
39-
}
40-
99% {
41-
opacity: 0;
42-
}
43-
100% {
44-
opacity: 1;
45-
}
46-
}
47-
48-
@-webkit-keyframes blink {
49-
0% {
50-
opacity: 1;
51-
}
52-
49% {
53-
opacity: 1;
54-
}
55-
50% {
56-
opacity: 0;
57-
}
58-
99% {
59-
opacity: 0;
60-
}
61-
100% {
62-
opacity: 1;
63-
}
64-
}
65-
66-
.labelAnimation {
67-
animation: blink {$labelAnimationDuration} linear infinite;
68-
-webkit-animation: blink {$labelAnimationDuration} linear infinite;
69-
}
70-
</style>
71-
EOD;
72-
}
24+
$labelAnimationMarkup = GetLabelAnimationMarkup::run($labelAnimation, $labelAnimationDuration);
7325

7426
// GENERATE LABEL MARKUP
7527
$labelMarkup = '';
7628
if ($request->has('label')) {
7729
$labelMarkup = <<<EOD
7830
<!--! Icon Label -->
79-
<svg x="60%" y="60%" width="40%" height="40%" viewbox="0 0 100 100" class="labelAnimation">
31+
<svg x="70%" y="70%" width="30%" height="30%" viewbox="0 0 100 100" class="labelAnimation">
8032
<circle cx="50%" cy="50%" fill="{$labelColor}" r="50%" />
8133
<text x="50%" y="50%" fill="{$labelFontColor}" text-anchor="middle" dy=".3em" font-size="{$labelTextSize}" font-family="{$labelFont}">{$labelText}</text>
8234
{$labelAnimationMarkup}

resources/views/components/editor.blade.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
<select x-model="labelAnimation" class="border border-transparent shadow px-4 py-2 leading-normal text-gray-700 bg-white rounded-md focus:outline-none focus:shadow-outline w-full">
7676
<option>none</option>
7777
<option>blink</option>
78+
<option>pulse</option>
7879
</select>
7980
</div>
8081
<div>

0 commit comments

Comments
 (0)