diff --git a/components/src/base-heading/base-heading.story.md b/components/src/base-heading/base-heading.story.md
new file mode 100644
index 00000000..5de38427
--- /dev/null
+++ b/components/src/base-heading/base-heading.story.md
@@ -0,0 +1,14 @@
+Does not render an icon for `title` size headings.
+
+### Props
+
+| Prop | Description | Default |
+| ------ | ----------------------------------------------------------------------------------- | --------- |
+| `size` | Size of the heading. One of `title`, `large`, `medium`, `small` | `'large'` |
+| `tag` | What HTML tag to use for the heading. One of `h1`, `h2`, `h3`, `h4`, `h5`, `strong` | `h2` |
+| `icon` | What icon to render in front of the title. | -- |
+
+### Style Overrides
+
+| Variable | Default |
+| -------- | ------- |
diff --git a/components/src/base-heading/base-heading.story.vue b/components/src/base-heading/base-heading.story.vue
new file mode 100644
index 00000000..e0594c9c
--- /dev/null
+++ b/components/src/base-heading/base-heading.story.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The quick brown fox jumps over the lazy dog
+
+
+
diff --git a/components/src/base-heading/base-heading.vue b/components/src/base-heading/base-heading.vue
new file mode 100644
index 00000000..a5ed09c3
--- /dev/null
+++ b/components/src/base-heading/base-heading.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/components/src/theme/main.css b/components/src/theme/main.css
index dbc89afe..52215f8e 100644
--- a/components/src/theme/main.css
+++ b/components/src/theme/main.css
@@ -1,4 +1,4 @@
-@import url('https://fonts.googleapis.com/css2?family=Fira+Code&family=Inter:wght@300;500;700&family=Poppins:wght@600&family=Material+Symbols+Outlined:opsz,wght@20..48,100..700&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Fira+Code&family=Inter:wght@300;500;700&family=Poppins:wght@400;600&family=Material+Symbols+Outlined:opsz,wght@20..48,100..700&display=swap');
:root {
--family-display: 'Poppins', sans-serif;