diff --git a/snippets/dynamic-shadow.md b/snippets/dynamic-shadow.md
new file mode 100644
index 000000000..59b447275
--- /dev/null
+++ b/snippets/dynamic-shadow.md
@@ -0,0 +1,94 @@
+### Dynamic shadow
+
+Creates a shadow similar to `box-shadow` but based on the colors of the element itself.
+
+#### HTML
+
+```html
+
+```
+
+#### CSS
+
+```css
+.dynamic-shadow-parent {
+ position: relative;
+ z-index: 1;
+}
+.dynamic-shadow {
+ position: relative;
+ width: 10rem;
+ height: 10rem;
+ background: linear-gradient(75deg, #6d78ff, #00ffb8);
+}
+.dynamic-shadow::after {
+ content: '';
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background: inherit;
+ top: 0.5rem;
+ filter: blur(0.4rem);
+ opacity: 0.7;
+ z-index: -1;
+}
+```
+
+#### Demo
+
+
+
+
+
+#### Explanation
+
+The snippet requires a somewhat complex case of stacking contexts to get right, such that the pseudo-element
+will be positioned underneath the element itself while still being visible.
+
+1. `position: relative` on the parent establishes a Cartesian positioning context for child elements.
+2. `z-index: 1` establishes a new stacking context.
+3. `position: relative` on the child establishes a positioning context for pseudo-elements.
+4. `::after` defines a pseudo-element.
+5. `position: absolute` takes the pseudo element out of the flow of the document and positions it in relation to the parent.
+6. `width: 100%` and `height: 100%` sizes the pseudo-element to fill its parent's dimensions, making it equal in size.
+7. `background: inherit` causes the pseudo-element to inherit the linear gradient specified on the element.
+8. `top: 0.5rem` offsets the pseudo-element down slightly from its parent.
+9. `filter: blur(0.4rem)` will blur the pseudo-element to create the appearance of a shadow underneath.
+10. `opacity: 0.7` makes the pseudo-element partially transparent.
+11. `z-index: -1` positions the pseudo-element behind the parent.
+
+#### Browser support
+
+⚠️ Requires prefixes for full support.
+
+* https://caniuse.com/#feat=css-filters
+
+