diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml
index d66f10fa17..ab61cf04c5 100644
--- a/crates/gpui/Cargo.toml
+++ b/crates/gpui/Cargo.toml
@@ -181,6 +181,10 @@ path = "examples/input.rs"
name = "shadow"
path = "examples/shadow.rs"
+[[example]]
+name = "svg"
+path = "examples/svg/svg.rs"
+
[[example]]
name = "text_wrapper"
path = "examples/text_wrapper.rs"
diff --git a/crates/gpui/examples/svg/dragon.svg b/crates/gpui/examples/svg/dragon.svg
new file mode 100644
index 0000000000..e2de1a0ece
--- /dev/null
+++ b/crates/gpui/examples/svg/dragon.svg
@@ -0,0 +1,240 @@
+
+
+
+
+
+
diff --git a/crates/gpui/examples/svg/svg.rs b/crates/gpui/examples/svg/svg.rs
new file mode 100644
index 0000000000..79b83b31e1
--- /dev/null
+++ b/crates/gpui/examples/svg/svg.rs
@@ -0,0 +1,82 @@
+use std::path::PathBuf;
+
+use gpui::*;
+use std::fs;
+
+struct Assets {
+ base: PathBuf,
+}
+
+impl AssetSource for Assets {
+ fn load(&self, path: &str) -> Result