diff --git a/aprsd/web/chat/static/css/chat.css b/aprsd/web/chat/static/css/chat.css
new file mode 100644
index 0000000..d32cc65
--- /dev/null
+++ b/aprsd/web/chat/static/css/chat.css
@@ -0,0 +1,93 @@
+.speech-wrapper {
+ padding: 5px 30px;
+ border: 1px solid #ccc;
+ height: 450px;
+ overflow-y: scroll;
+ overflow-x: none;
+ background-color: #CCCCCC;
+}
+
+.bubble-row {
+ display: flex;
+ width: 100%;
+ justify-content: flex-start;
+ &.alt {
+ justify-content: flex-end;
+ }
+}
+
+.bubble {
+ /*width: 350px; */
+ height: auto;
+ display: block;
+ background: #f5f5f5;
+ border-radius: 4px;
+ box-shadow: 2px 8px 5px #555;
+ position: relative;
+ margin: 0 0 15px;
+ &.alt {
+ margin: 0 0 15px;
+ }
+}
+
+.bubble-text {
+ padding: 5px 5px 0px 8px;
+}
+
+.bubble-name {
+ width: 280px;
+ font-weight: 600;
+ font-size: 12px;
+ margin: 0 0 4px;
+ color: #3498db;
+ display: flex;
+ align-items: center;
+ .material-symbols-rounded {
+ margin-left: auto;
+ font-weight: normal;
+ color: #808080;
+ }
+ &.alt {
+ color: #2ecc71;
+ }
+}
+
+.bubble-timestamp {
+ margin-right: auto;
+ font-size: 11px;
+ text-transform: uppercase;
+ color: #bbb
+}
+
+.bubble-message {
+ font-size: 16px;
+ margin: 0px;
+ padding: 0px 5px 5px 0px;
+ color: #2b2b2b;
+}
+
+.bubble-arrow {
+ position: absolute;
+ width: 0;
+ bottom:30px;
+ left: -16px;
+ height: 0px;
+ &.alt{
+ right: -2px;
+ bottom: 30px;
+ left: auto;
+ }
+}
+.bubble-arrow:after {
+ content: "";
+ position: absolute;
+ border: 0 solid transparent;
+ border-top: 9px solid #f5f5f5;
+ border-radius: 0 20px 0;
+ width: 15px;
+ height: 30px;
+ transform: rotate(145deg);
+}
+.bubble-arrow.alt:after {
+ transform: rotate(45deg) scaleY(-1);
+}
diff --git a/aprsd/web/chat/templates/index.html b/aprsd/web/chat/templates/index.html
index 62ccfa8..c255d42 100644
--- a/aprsd/web/chat/templates/index.html
+++ b/aprsd/web/chat/templates/index.html
@@ -15,7 +15,7 @@
-
+