Skip to content

Commit 5fe44a1

Browse files
committed
add animated light bulb
1 parent be7e479 commit 5fe44a1

File tree

4 files changed

+66
-0
lines changed

4 files changed

+66
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{# Animated lightbulb icon - use as a child of a <a> tag #}
2+
<div class="animated-icon animated-icon--lightbulb">
3+
{% include "patterns/atoms/icons/icon.html" with name="lightbulb-outer" classname="animated-icon__lightbulb-outer" %}
4+
{% include "patterns/atoms/icons/icon.html" with name="lightbulb-inner" classname="animated-icon__lightbulb-inner" %}
5+
</div>

tbx/project_styleguide/templates/patterns/atoms/sprites/sprites.html

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,4 +148,15 @@
148148
<symbol id="target-outer" viewBox="0 0 62 62" fill="none">
149149
<circle cx="31" cy="31" r="29.931" stroke="var(--color--accent-three)" stroke-width="2.138"/>
150150
</symbol>
151+
152+
{# for animated lightbulb icon - lightbulb inner #}
153+
<symbol id="lightbulb-outer" viewBox="0 0 49.613 64.802" fill="none">
154+
<path d="M49.613 24.89c.009 3.77-.84 7.494-2.484 10.885a24.747 24.747 0 01-6.999 8.683 5.98 5.98 0 00-2.33 4.722v1.778a3.56 3.56 0 01-1.038 2.513 3.538 3.538 0 01-2.505 1.041h-18.9c-.94 0-1.842-.374-2.506-1.04a3.56 3.56 0 01-1.038-2.514V49.18a5.938 5.938 0 00-2.292-4.683 24.743 24.743 0 01-6.998-8.633A24.82 24.82 0 010 25.03C-.074 11.56 10.785.33 24.216.007a24.738 24.738 0 019.674 1.721 24.797 24.797 0 018.25 5.354 24.886 24.886 0 015.53 8.147 24.95 24.95 0 011.943 9.66zm-2.363 0c.001-3.003-.597-5.975-1.758-8.743a22.519 22.519 0 00-5.005-7.371 22.437 22.437 0 00-7.466-4.844 22.382 22.382 0 00-8.755-1.555c-12.158.296-21.971 10.448-21.903 22.64.01 3.398.792 6.748 2.284 9.798a22.386 22.386 0 006.33 7.807 8.315 8.315 0 013.198 6.558v1.778a1.186 1.186 0 001.182 1.185h18.9a1.18 1.18 0 001.18-1.185V49.18a8.357 8.357 0 01.857-3.663 8.33 8.33 0 012.375-2.913 22.387 22.387 0 006.335-7.86 22.457 22.457 0 002.246-9.854z" fill="var(--color--accent-two)" />
155+
<path d="M16.99 60.38c-.46-.92-.69-1.38-.636-1.754a1.2 1.2 0 01.5-.808c.31-.216.824-.216 1.853-.216h11.786c1.029 0 1.543 0 1.853.216.27.19.451.482.5.808.055.374-.175.834-.635 1.754l-1.68 3.36c-.193.386-.29.578-.433.719a1.2 1.2 0 01-.448.277c-.19.066-.406.066-.837.066h-8.426c-.431 0-.647 0-.837-.066a1.2 1.2 0 01-.448-.277c-.144-.14-.24-.333-.433-.719z" fill="var(--color--accent-three)" />
156+
</symbol>
157+
158+
{# for animated lightbulb icon - lightbulb inner #}
159+
<symbol id="lightbulb-inner" viewBox="0 0 19.2 19.2" fill="none">
160+
<circle cx="9.6" cy="9.6" r="9.6" fill="var(--color--accent-three)"/>
161+
</symbol>
151162
</svg>

tbx/project_styleguide/templates/patterns/molecules/streamfield/blocks/showcase_block.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
{% include "patterns/atoms/icons/animated/wagtail-head.html" %}
3030
{% elif item.icon == 'target' %}
3131
{% include "patterns/atoms/icons/animated/target.html" %}
32+
{% elif item.icon == 'lightbulb' %}
33+
{% include "patterns/atoms/icons/animated/lightbulb.html" %}
3234
{% else %}
3335
{% include "patterns/atoms/icons/icon.html" with name=item.icon classname="showcase__icon" %}
3436
{% endif %}

tbx/static_src/sass/components/_animated-icon.scss

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,4 +184,52 @@
184184
}
185185
}
186186
}
187+
188+
&--lightbulb {
189+
position: relative;
190+
display: flex;
191+
align-items: center;
192+
justify-content: center;
193+
width: 80px;
194+
height: 90px;
195+
196+
#{$root}__lightbulb-inner {
197+
position: absolute;
198+
width: 19px;
199+
height: 19px;
200+
transform: scale(1);
201+
transition: transform $transition;
202+
transform-origin: 5px 20px;
203+
z-index: -1;
204+
205+
@include reduced-motion() {
206+
transition: none;
207+
}
208+
}
209+
210+
#{$root}__lightbulb-outer {
211+
position: absolute;
212+
width: 50px;
213+
height: 65px;
214+
transform: rotate(0);
215+
transition: transform $transition;
216+
transform-origin: 30px 60px;
217+
mix-blend-mode: screen;
218+
219+
@include reduced-motion() {
220+
transition: none;
221+
}
222+
}
223+
224+
a:focus &,
225+
a:hover & {
226+
#{$root}__lightbulb-outer {
227+
transform: rotate(-7deg);
228+
}
229+
230+
#{$root}__lightbulb-inner {
231+
transform: scale(2.4);
232+
}
233+
}
234+
}
187235
}

0 commit comments

Comments
 (0)