UAsset
Motion icon · Free

Frame icon — animated SVG

A free frame motion icon that acts out its meaning. The animation is pure CSS inside the SVG, so it works in any website or app without Lottie or JavaScript. 24px grid, 2px stroke, round caps. Free for personal and commercial use.

Open in UAsset

Hover SVG code (plays when hovered)

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="uah-frame" overflow="visible"><style>.uah-frame g.uam,.uah-frame [class^=p]{transform-box:fill-box;transform-origin:center}:is(.uah-frame:hover,:hover>.uah-frame,:focus-visible>.uah-frame) .pa{animation:uaLcornersA 0.55s cubic-bezier(.34,1.56,.64,1) 0s 1 both}:is(.uah-frame:hover,:hover>.uah-frame,:focus-visible>.uah-frame) .pb{animation:uaLcornersB 0.55s cubic-bezier(.34,1.56,.64,1) 0s 1 both}:is(.uah-frame:hover,:hover>.uah-frame,:focus-visible>.uah-frame) .pc{animation:uaLcornersC 0.55s cubic-bezier(.34,1.56,.64,1) 0s 1 both}:is(.uah-frame:hover,:hover>.uah-frame,:focus-visible>.uah-frame) .pd{animation:uaLcornersD 0.55s cubic-bezier(.34,1.56,.64,1) 0s 1 both}@keyframes uaLcornersA{0%,100%{transform:none}45%{transform:translate(-1.6px,-1.6px)}}@keyframes uaLcornersB{0%,100%{transform:none}45%{transform:translate(1.6px,-1.6px)}}@keyframes uaLcornersC{0%,100%{transform:none}45%{transform:translate(1.6px,1.6px)}}@keyframes uaLcornersD{0%,100%{transform:none}45%{transform:translate(-1.6px,1.6px)}}@media (prefers-reduced-motion:reduce){.uah-frame *{animation:none!important}}</style><g class="uam"><path pathLength="1" d="M22 6H2M22 18H2M6 2v20M18 2v20"/></g></svg>

Looping SVG code

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="ual-frame" overflow="visible"><style>.ual-frame g.uam,.ual-frame [class^=p]{transform-box:fill-box;transform-origin:center}.ual-frame .pa{animation:uaLcornersAL 1.43s cubic-bezier(.34,1.56,.64,1) 0s infinite}.ual-frame .pb{animation:uaLcornersBL 1.43s cubic-bezier(.34,1.56,.64,1) 0s infinite}.ual-frame .pc{animation:uaLcornersCL 1.43s cubic-bezier(.34,1.56,.64,1) 0s infinite}.ual-frame .pd{animation:uaLcornersDL 1.43s cubic-bezier(.34,1.56,.64,1) 0s infinite}@keyframes uaLcornersAL{0.0%,38.0%{transform:none}17.1%{transform:translate(-1.6px,-1.6px)}}@keyframes uaLcornersBL{0.0%,38.0%{transform:none}17.1%{transform:translate(1.6px,-1.6px)}}@keyframes uaLcornersCL{0.0%,38.0%{transform:none}17.1%{transform:translate(1.6px,1.6px)}}@keyframes uaLcornersDL{0.0%,38.0%{transform:none}17.1%{transform:translate(-1.6px,1.6px)}}@media (prefers-reduced-motion:reduce){.ual-frame *{animation:none!important}}</style><g class="uam"><path pathLength="1" d="M22 6H2M22 18H2M6 2v20M18 2v20"/></g></svg>

Static SVG code

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path pathLength="1" d="M22 6H2M22 18H2M6 2v20M18 2v20"/></svg>

Tags: creative, frame, line, outline, stroke

More Creative motion icons

LayersPaletteBrushPen ToolCropTypeSparklesEraserHighlighterPaint BucketPipetteMagic WandBezier CurveShapesColor SwatchesPaint RollerSpray CanPencil RulerStickerGridVideo EditBrand MarkPen ToolCrop

Browse categories