diff --git a/theme/flavors/catppuccin-macchiato.theme.css b/theme/flavors/catppuccin-macchiato.theme.css
new file mode 100644
index 0000000..900dbe2
--- /dev/null
+++ b/theme/flavors/catppuccin-macchiato.theme.css
@@ -0,0 +1,160 @@
+/**
+ * @name system24 (catppuccin macchiato)
+ * @description a tui-inspired discord theme with Catppuccin Machiato colors.
+ * @author refact0r (modified with Catppuccin Machiato colors)
+ * @version 2.0.0
+ * @invite nz87hXyvcy
+ * @website https://github.com/refact0r/system24
+ * @source https://github.com/refact0r/system24/blob/master/theme/system24theme.css
+ * @authorId 508863359777505290
+ * @authorLink https://www.refact0r.dev
+*/
+
+/* import theme modules */
+@import url('https://refact0r.github.io/system24/build/system24.css');
+
+body {
+    /* font, change to '' for default discord font */
+    --font: 'DM Mono'; /* change to '' for default discord font */
+    --code-font: 'DM Mono'; /* change to '' for default discord font */
+    font-weight: 300 /* normal text font weight. DOES NOT AFFECT BOLD TEXT */;
+
+    /* sizes */
+    --gap: 12px; /* spacing between panels */
+    --divider-thickness: 4px; /* thickness of unread messages divider and highlighted message borders */
+    --border-thickness: 2px; /* thickness of borders around main panels. DOES NOT AFFECT OTHER BORDERS */
+    --border-hover-transition: 0.2s ease; /* transition for borders when hovered */
+
+    /* animation/transition options */
+    --animations: on; /* off: disable animations/transitions, on: enable animations/transitions */
+    --list-item-transition: 0.2s ease; /* transition for list items */
+    --dms-icon-svg-transition: 0.4s ease; /* transition for the dms icon */
+
+    /* top bar options */
+    --top-bar-height: var(--gap); /* height of the top bar (discord default is 36px, old discord style is 24px, var(--gap) recommended if button position is set to titlebar) */
+    --top-bar-button-position: titlebar; /* off: default position, hide: hide buttons completely, serverlist: move inbox button to server list, titlebar: move inbox button to channel titlebar (will hide title) */
+    --top-bar-title-position: off; /* off: default centered position, hide: hide title completely, left: left align title (like old discord) */
+    --subtle-top-bar-title: off; /* off: default, on: hide the icon and use subtle text color (like old discord) */
+
+    /* window controls */
+    --custom-window-controls: off; /* off: default window controls, on: custom window controls */
+    --window-control-size: 14px; /* size of custom window controls */
+
+    /* dms button options */
+    --custom-dms-icon: hide; /* off: use default discord icon, hide: remove icon entirely, custom: use custom icon */
+    --dms-icon-svg-url: url(''); /* icon svg url. MUST BE A SVG. */
+    --dms-icon-svg-size: 90%; /* size of the svg (css mask-size property) */
+    --dms-icon-color-before: var(--icon-secondary); /* normal icon color */
+    --dms-icon-color-after: var(--white); /* icon color when button is hovered/selected */
+    --custom-dms-background: image; /* off to disable, image to use a background image (must set url variable below), color to use a custom color/gradient */
+    --dms-background-image-url: url('https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/macchiato_square.png'); /* url of the background image */
+    --dms-background-image-size: cover; /* size of the background image (css background-size property) */
+    --dms-background-color: linear-gradient(70deg, var(--blue-2), var(--purple-2), var(--red-2)); /* fixed color/gradient (css background property) */
+
+    /* background image options */
+    --background-image: off; /* off: no background image, on: enable background image (must set url variable below) */
+    --background-image-url: url(''); /* url of the background image */
+
+    /* transparency/blur options */
+    /* NOTE: TO USE TRANSPARENCY/BLUR, YOU MUST HAVE TRANSPARENT BG COLORS. FOR EXAMPLE: --bg-4: oklch(19% 0 0 / 0.7); */
+    --transparency-tweaks: off; /* off: no changes, on: remove some elements for better transparency */
+    --remove-bg-layer: off; /* off: no changes, on: remove the base --bg-3 layer for use with window transparency (WILL OVERRIDE BACKGROUND IMAGE) */
+    --panel-blur: off; /* off: no changes, on: blur the background of panels */
+    --blur-amount: 12px; /* amount of blur */
+    --bg-floating: var(--bg-3); /* set this to a more opaque color if floating panels look too transparent. only applies if panel blur is on  */
+
+    /* other options */
+    --small-user-panel: on; /* off: default user panel, on: smaller user panel like in old discord */
+
+    /* unrounding options */
+    --unrounding: on; /* off: default, on: remove rounded corners from panels */
+
+    /* styling options */
+    --custom-spotify-bar: on; /* off: default, on: custom text-like spotify progress bar */
+    --ascii-titles: on; /* off: default, on: use ascii font for titles at the start of a channel */
+    --ascii-loader: system24; /* off: default, system24: use system24 ascii loader, cats: use cats loader */
+
+    /* panel labels */
+    --panel-labels: on; /* off: default, on: add labels to panels */
+    --label-color: var(--text-muted); /* color of labels */
+    --label-font-weight: 500; /* font weight of labels */
+}
+
+/* color options */
+:root {
+    --colors: on; /* off: discord default colors, on: midnight custom colors */
+
+    /* text colors */
+    --text-0: var(--bg-4); /* text on colored elements */
+    --text-1: oklch(95% 0.02 255); /* bright text on colored elements */
+    --text-2: oklch(85% 0.05 255); /* headings and important text - #cad3f5 */
+    --text-3: oklch(75% 0.05 255); /* normal text - #b8c0e0 */
+    --text-4: oklch(60% 0.05 255); /* icon buttons and channels - #8087a2 */
+    --text-5: oklch(45% 0.05 255); /* muted channels/chats and timestamps - #5b6078 */
+
+    /* background and dark colors */
+    --bg-1: oklch(45% 0.05 255); /* dark buttons when clicked - #494d64 */
+    --bg-2: oklch(35% 0.05 255); /* dark buttons - #363a4f */
+    --bg-3: oklch(25% 0.05 255); /* spacing, secondary elements - #1e2030 */
+    --bg-4: oklch(20% 0.05 255); /* main background color - #24273a */
+    --hover: oklch(55% 0.05 255 / 0.1); /* channels and buttons when hovered */
+    --active: oklch(55% 0.05 255 / 0.2); /* channels and buttons when clicked or selected */
+    --active-2: oklch(55% 0.05 255 / 0.3); /* extra state for transparent buttons */
+    --message-hover: oklch(0% 0 0 / 0.1); /* messages when hovered */
+
+    /* accent colors */
+    --accent-1: var(--purple-1); /* links and other accent text */
+    --accent-2: var(--purple-2); /* small accent elements */
+    --accent-3: var(--purple-3); /* accent buttons */
+    --accent-4: var(--purple-4); /* accent buttons when hovered */
+    --accent-5: var(--purple-5); /* accent buttons when clicked */
+    --accent-new: var(--accent-2); /* stuff that's normally red like mute/deafen buttons */
+    --mention: linear-gradient(to right, color-mix(in oklch, var(--accent-2), transparent 90%) 40%, transparent); /* background of messages that mention you */
+    --mention-hover: linear-gradient(to right, color-mix(in oklch, var(--accent-2), transparent 95%) 40%, transparent); /* background of messages that mention you when hovered */
+    --reply: linear-gradient(to right, color-mix(in oklch, var(--text-3), transparent 90%) 40%, transparent); /* background of messages that reply to you */
+    --reply-hover: linear-gradient(to right, color-mix(in oklch, var(--text-3), transparent 95%) 40%, transparent); /* background of messages that reply to you when hovered */
+
+    /* status indicator colors */
+    --online: var(--green-2); /* change to oklch(60% 0.15 150) for default */
+    --dnd: var(--red-2); /* change to oklch(55% 0.20 15) for default */
+    --idle: var(--yellow-2); /* change to oklch(65% 0.15 85) for default */
+    --streaming: var(--purple-2); /* change to oklch(50% 0.20 300) for default */
+    --offline: var(--text-4); /* change to oklch(55% 0.05 255) for default offline color */
+
+    /* border colors */
+    --border-light: var(--hover); /* general light border color */
+    --border: var(--active); /* general normal border color */
+    --border-hover: var(--accent-2); /* border color of panels when hovered */
+    --button-border: oklch(100% 0 0 / 0.1); /* neutral border color of buttons */
+
+    /* base colors */
+    --red-1: oklch(82% 0.15 15);
+    --red-2: oklch(77% 0.15 15);
+    --red-3: oklch(77% 0.15 15);
+    --red-4: oklch(72% 0.15 15);
+    --red-5: oklch(67% 0.15 15);
+
+    --green-1: oklch(82% 0.12 145);
+    --green-2: oklch(77% 0.12 145);
+    --green-3: oklch(77% 0.12 145);
+    --green-4: oklch(72% 0.12 145);
+    --green-5: oklch(67% 0.12 145);
+
+    --blue-1: oklch(80% 0.11 230);
+    --blue-2: oklch(75% 0.11 230);
+    --blue-3: oklch(75% 0.11 230);
+    --blue-4: oklch(70% 0.11 230);
+    --blue-5: oklch(65% 0.11 230);
+
+    --yellow-1: oklch(88% 0.13 85);
+    --yellow-2: oklch(83% 0.13 85);
+    --yellow-3: oklch(83% 0.13 85);
+    --yellow-4: oklch(78% 0.13 85);
+    --yellow-5: oklch(73% 0.13 85);
+
+    --purple-1: oklch(87% 0.15 300);
+    --purple-2: oklch(82% 0.15 300);
+    --purple-3: oklch(82% 0.15 300);
+    --purple-4: oklch(77% 0.15 300);
+    --purple-5: oklch(72% 0.15 300);
+}