diff --git a/README.md b/README.md
index 6bd9a41..cd4dc2a 100644
--- a/README.md
+++ b/README.md
@@ -138,4 +138,16 @@ Please see our [Contributing guide](CONTRIBUTING.md) for details. Thank you for
[](themes/prism-one-light.css)
* [__Laserwave__](themes/prism-laserwave.css) (originally by [Jared Jones](https://github.com/Jaredk3nt), adapted by [Simon Jespersen](https://github.com/simjes))
-[](themes/prism-laserwave.css)
\ No newline at end of file
+[](themes/prism-laserwave.css)
+
+* [__Catppuccin Latte__](themes/prism-catppuccin-latte.css) (originally by [Catppuccin](https://catppuccin.com/), adapted by [pluttan](https://github.com/pluttan))
+[](themes/prism-catppuccin-latte.css)
+
+* [__Catppuccin Frappé__](themes/prism-catppuccin-frappe.css) (originally by [Catppuccin](https://catppuccin.com/), adapted by [pluttan](https://github.com/pluttan))
+[](themes/prism-catppuccin-frappe.css)
+
+* [__Catppuccin Macchiato__](themes/prism-catppuccin-macchiato.css) (originally by [Catppuccin](https://catppuccin.com/), adapted by [pluttan](https://github.com/pluttan))
+[](themes/prism-catppuccin-macchiato.css)
+
+* [__Catppuccin Mocha__](themes/prism-catppuccin-mocha.css) (originally by [Catppuccin](https://catppuccin.com/), adapted by [pluttan](https://github.com/pluttan))
+[](themes/prism-catppuccin-mocha.css)
diff --git a/screenshots/prism-catppuccin-frappe.png b/screenshots/prism-catppuccin-frappe.png
new file mode 100644
index 0000000..72df444
Binary files /dev/null and b/screenshots/prism-catppuccin-frappe.png differ
diff --git a/screenshots/prism-catppuccin-latte.png b/screenshots/prism-catppuccin-latte.png
new file mode 100644
index 0000000..8aa93f6
Binary files /dev/null and b/screenshots/prism-catppuccin-latte.png differ
diff --git a/screenshots/prism-catppuccin-macchiato.png b/screenshots/prism-catppuccin-macchiato.png
new file mode 100644
index 0000000..032cb93
Binary files /dev/null and b/screenshots/prism-catppuccin-macchiato.png differ
diff --git a/screenshots/prism-catppuccin-mocha.png b/screenshots/prism-catppuccin-mocha.png
new file mode 100644
index 0000000..e55851f
Binary files /dev/null and b/screenshots/prism-catppuccin-mocha.png differ
diff --git a/themes/prism-catppuccin-frappe.css b/themes/prism-catppuccin-frappe.css
new file mode 100644
index 0000000..15fa780
--- /dev/null
+++ b/themes/prism-catppuccin-frappe.css
@@ -0,0 +1,136 @@
+/*
+ * Catppuccin Theme
+ * https://catppuccin.com/
+ * https://github.com/catppuccin
+ *
+ * Ported for PrismJS by pluttan [https://github.com/pluttan]
+ */
+
+/* Set the main properties of the code, code blocks, and inline code */
+code[class*="language-"],
+pre[class*="language-"] {
+ background: #303446;
+ color: #c6d0f5;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ /* this is the default */
+ /* The following properties are standard, please leave them as they are */
+ font-size: 1em;
+ direction: ltr;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ line-height: 1.5;
+ /* The default is 4, but you could change it if you really, really want to */
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+ /* The following properties are also standard */
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+/* Optional: What the code looks like when highlighted */
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection,
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection {
+ background: #949cbb40;
+}
+
+/* Properties specific to code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ /* this is standard */
+ margin: 0.5em 0;
+ /* this is the default */
+ overflow: auto;
+ /* this is standard */
+}
+
+/* Properties specific to inline code */
+:not(pre) > code[class*="language-"] {
+ padding: 0.1em;
+ /* this is the default */
+ white-space: normal;
+ /* this is standard */
+}
+
+/**
+ * These are the minimum tokens you must style, you can rearrange them and/or style more tokens as you want
+ * The concepts behind these standard tokens, as well as some examples, can be found here: https://prismjs.com/tokens.html
+ */
+.token.comment,
+.token.prolog,
+.token.cdata,
+.token.doctype {
+ color: #949cbb;
+}
+
+.token.punctuation,
+.token.symbol,
+.token.builtin {
+ color: #c6d0f5;
+}
+
+.token.boolean,
+.token.constant,
+.token.number,
+.token.regex {
+ color: #ef9f76;
+}
+
+.token.keyword,
+.token.tag {
+ color: #8caaee;
+}
+
+.token.property,
+.token.selector,
+.token.entity,
+.token.attr-name {
+ color: #e5c890;
+}
+
+.token.deleted {
+ color: #e78284;
+}
+
+.token.function,
+.token.class-name,
+.token.important,
+.token.atrule,
+.token.variable {
+ color: #ca9ee6;
+}
+
+.token.string,
+.token.char,
+.token.inserted,
+.token.attr-value,
+.token.url {
+ color: #a6d189;
+}
+
+.token.operator {
+ color: #81c8be;
+}
+
+/* The following rules are pretty similar across themes, but feel free to adjust them */
+.token.bold {
+ font-weight: bold;
+}
+
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
+
+.token.namespace {
+ opacity: 0.7;
+}
diff --git a/themes/prism-catppuccin-latte.css b/themes/prism-catppuccin-latte.css
new file mode 100644
index 0000000..a5cc857
--- /dev/null
+++ b/themes/prism-catppuccin-latte.css
@@ -0,0 +1,135 @@
+/*
+ * Catppuccin Theme
+ * https://catppuccin.com/
+ * https://github.com/catppuccin
+ *
+ * Ported for PrismJS by pluttan [https://github.com/pluttan]
+ */
+
+/* Set the main properties of the code, code blocks, and inline code */
+code[class*="language-"],
+pre[class*="language-"] {
+ background: #eff1f5;
+ color: #4c4f69;
+ font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
+ /* this is the default */
+ /* The following properties are standard, please leave them as they are */
+ font-size: 1em;
+ direction: ltr;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ line-height: 1.5;
+ /* The default is 4, but you could change it if you really, really want to */
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+ /* The following properties are also standard */
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+/* Optional: What the code looks like when highlighted */
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection,
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection {
+ background: #7c7f9340;
+}
+
+/* Properties specific to code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ /* this is standard */
+ margin: 0.5em 0;
+ /* this is the default */
+ overflow: auto;
+}
+
+/* Properties specific to inline code */
+:not(pre) > code[class*="language-"] {
+ padding: 0.1em;
+ /* this is the default */
+ white-space: normal;
+ /* this is standard */
+}
+
+/**
+ * These are the minimum tokens you must style, you can rearrange them and/or style more tokens as you want
+ * The concepts behind these standard tokens, as well as some examples, can be found here: https://prismjs.com/tokens.html
+ */
+.token.comment,
+.token.prolog,
+.token.cdata,
+.token.doctype {
+ color: #7c7f93;
+}
+
+.token.punctuation,
+.token.symbol,
+.token.builtin {
+ color: #4c4f69;
+}
+
+.token.boolean,
+.token.constant,
+.token.number,
+.token.regex {
+ color: #fe640b;
+}
+
+.token.keyword,
+.token.tag {
+ color: #1e66f5;
+}
+
+.token.property,
+.token.selector,
+.token.entity,
+.token.attr-name {
+ color: #df8e1d;
+}
+
+.token.deleted {
+ color: #d20f39;
+}
+
+.token.function,
+.token.class-name,
+.token.important,
+.token.atrule,
+.token.variable {
+ color: #8839ef;
+}
+
+.token.string,
+.token.char,
+.token.inserted,
+.token.attr-value,
+.token.url {
+ color: #40a02b;
+}
+
+.token.operator {
+ color: #179299;
+}
+
+/* The following rules are pretty similar across themes, but feel free to adjust them */
+.token.bold {
+ font-weight: bold;
+}
+
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
+
+.token.namespace {
+ opacity: 0.7;
+}
diff --git a/themes/prism-catppuccin-macchiato.css b/themes/prism-catppuccin-macchiato.css
new file mode 100644
index 0000000..25c7af5
--- /dev/null
+++ b/themes/prism-catppuccin-macchiato.css
@@ -0,0 +1,136 @@
+/*
+ * Catppuccin Theme
+ * https://catppuccin.com/
+ * https://github.com/catppuccin
+ *
+ * Ported for PrismJS by pluttan [https://github.com/pluttan]
+ */
+
+/* Set the main properties of the code, code blocks, and inline code */
+code[class*="language-"],
+pre[class*="language-"] {
+ background: #24273a;
+ color: #cad3f5;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ /* this is the default */
+ /* The following properties are standard, please leave them as they are */
+ font-size: 1em;
+ direction: ltr;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ line-height: 1.5;
+ /* The default is 4, but you could change it if you really, really want to */
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+ /* The following properties are also standard */
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+/* Optional: What the code looks like when highlighted */
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection,
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection {
+ background: #939ab740;
+}
+
+/* Properties specific to code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ /* this is standard */
+ margin: 0.5em 0;
+ /* this is the default */
+ overflow: auto;
+ /* this is standard */
+}
+
+/* Properties specific to inline code */
+:not(pre) > code[class*="language-"] {
+ padding: 0.1em;
+ /* this is the default */
+ white-space: normal;
+ /* this is standard */
+}
+
+/**
+ * These are the minimum tokens you must style, you can rearrange them and/or style more tokens as you want
+ * The concepts behind these standard tokens, as well as some examples, can be found here: https://prismjs.com/tokens.html
+ */
+.token.comment,
+.token.prolog,
+.token.cdata,
+.token.doctype {
+ color: #939ab7;
+}
+
+.token.punctuation,
+.token.symbol,
+.token.builtin {
+ color: #cad3f5;
+}
+
+.token.boolean,
+.token.constant,
+.token.number,
+.token.regex {
+ color: #f5a97f;
+}
+
+.token.keyword,
+.token.tag {
+ color: #8aadf4;
+}
+
+.token.property,
+.token.selector,
+.token.entity,
+.token.attr-name {
+ color: #eed49f;
+}
+
+.token.deleted {
+ color: #ed8796;
+}
+
+.token.function,
+.token.class-name,
+.token.important,
+.token.atrule,
+.token.variable {
+ color: #c6a0f6;
+}
+
+.token.string,
+.token.char,
+.token.inserted,
+.token.attr-value,
+.token.url {
+ color: #a6da95;
+}
+
+.token.operator {
+ color: #8bd5ca;
+}
+
+/* The following rules are pretty similar across themes, but feel free to adjust them */
+.token.bold {
+ font-weight: bold;
+}
+
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
+
+.token.namespace {
+ opacity: 0.7;
+}
diff --git a/themes/prism-catppuccin-mocha.css b/themes/prism-catppuccin-mocha.css
new file mode 100644
index 0000000..de67c36
--- /dev/null
+++ b/themes/prism-catppuccin-mocha.css
@@ -0,0 +1,136 @@
+/*
+ * Catppuccin Theme
+ * https://catppuccin.com/
+ * https://github.com/catppuccin
+ *
+ * Ported for PrismJS by pluttan [https://github.com/pluttan]
+ */
+
+/* Set the main properties of the code, code blocks, and inline code */
+code[class*="language-"],
+pre[class*="language-"] {
+ background: #1e1e2e;
+ color: #cdd6f4;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ /* this is the default */
+ /* The following properties are standard, please leave them as they are */
+ font-size: 1em;
+ direction: ltr;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ line-height: 1.5;
+ /* The default is 4, but you could change it if you really, really want to */
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+ /* The following properties are also standard */
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+/* Optional: What the code looks like when highlighted */
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection,
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection {
+ background: #9399b240;
+}
+
+/* Properties specific to code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ /* this is standard */
+ margin: 0.5em 0;
+ /* this is the default */
+ overflow: auto;
+ /* this is standard */
+}
+
+/* Properties specific to inline code */
+:not(pre) > code[class*="language-"] {
+ padding: 0.1em;
+ /* this is the default */
+ white-space: normal;
+ /* this is standard */
+}
+
+/**
+ * These are the minimum tokens you must style, you can rearrange them and/or style more tokens as you want
+ * The concepts behind these standard tokens, as well as some examples, can be found here: https://prismjs.com/tokens.html
+ */
+.token.comment,
+.token.prolog,
+.token.cdata,
+.token.doctype {
+ color: #9399b2;
+}
+
+.token.punctuation,
+.token.symbol,
+.token.builtin {
+ color: #cdd6f4;
+}
+
+.token.boolean,
+.token.constant,
+.token.number,
+.token.regex {
+ color: #fab387;
+}
+
+.token.keyword,
+.token.tag {
+ color: #89b4fa;
+}
+
+.token.property,
+.token.selector,
+.token.entity,
+.token.attr-name {
+ color: #f9e2af;
+}
+
+.token.deleted {
+ color: #f38ba8;
+}
+
+.token.function,
+.token.class-name,
+.token.important,
+.token.atrule,
+.token.variable {
+ color: #cba6f7;
+}
+
+.token.string,
+.token.char,
+.token.inserted,
+.token.attr-value,
+.token.url {
+ color: #a6e3a1;
+}
+
+.token.operator {
+ color: #94e2d5;
+}
+
+/* The following rules are pretty similar across themes, but feel free to adjust them */
+.token.bold {
+ font-weight: bold;
+}
+
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
+
+.token.namespace {
+ opacity: 0.7;
+}