diff --git a/snippets/hover-underline-animation.md b/snippets/hover-underline-animation.md
new file mode 100644
index 000000000..5fd2a1e12
--- /dev/null
+++ b/snippets/hover-underline-animation.md
@@ -0,0 +1,89 @@
+### Hover underline animation
+
+Creates an animated underline effect when the text is hovered over.
+
+#### HTML
+
+```html
+
+```
+
+#### CSS
+
+```css
+.hover-underline-animation {
+ display: inline-block;
+ position: relative;
+ color: deeppink;
+}
+.hover-underline-animation::after {
+ content: '';
+ position: absolute;
+ width: 100%;
+ transform: scaleX(0);
+ height: 2px;
+ bottom: 0;
+ left: 0;
+ background-color: deeppink;
+ transform-origin: bottom right;
+ transition: transform 0.2s ease-out;
+}
+.hover-underline-animation:hover::after {
+ transform: scaleX(1);
+ transform-origin: bottom left;
+}
+```
+
+#### Demo
+
+
+
Hover this text to see the effect!
+
+
+
+
+#### Explanation
+
+1. `display: inline-block` makes the block `p` an `inline-block` to prevent the underline from
+spanning the entire parent width rather than just the content (text).
+2. `position: relative` on the element establishes a Cartesian positioning context for psuedo-elements.
+3. `::after` defines a pseudo-element.
+4. `position: absolute` takes the pseudo element out of the flow of the document and positions it in relation to the parent.
+5. `width: 100%` ensures the pseudo-element spans the entire width of the text block.
+6. `transform: scaleX(0)` initially scales the pseudo element to 0 so it has no width and is not visible.
+7. `bottom: 0` and `left: 0` position it to the bottom left of the block.
+8. `transition: transform 0.25s ease-out` means changes to `transform` will be transitioned over 0.25 seconds
+with an `ease-out` timing function.
+9. `transform-origin: bottom right` means the transform anchor point is positioned at the bottom right of the block.
+10. `:hover::after` then uses `scaleX(1)` to transition the width to 100%, then changes the `transform-origin`
+to `bottom left` so that the anchor point is reversed, allowing it transition out in the other direction when
+hovered off.
+
+#### Browser support
+
+✅ No caveats.
+
+* https://caniuse.com/#feat=transforms2d
+* https://caniuse.com/#feat=css-transitions