smodusermc commited on
Commit
d75fa58
·
verified ·
1 Parent(s): 85af911

Create style.css

Browse files
Files changed (1) hide show
  1. static/style.css +103 -0
static/style.css ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ====== CSS Custom Properties (themes) ====== */
2
+ :root {
3
+ --bg-primary: #fff;
4
+ --bg-secondary: #f0f0f0;
5
+ --text-primary: #000;
6
+ --text-secondary: #666;
7
+ --bubble-self: #25D366;
8
+ --bubble-other: #E5E5EA;
9
+ --bubble-text-self: #000;
10
+ --bubble-text-other: #000;
11
+ --header-bg: #128C7E;
12
+ --header-text: #fff;
13
+ --input-bg: #fff;
14
+ --input-border: #ccc;
15
+ --shadow: 0 2px 4px rgba(0,0,0,0.1);
16
+ }
17
+
18
+ .theme-dark {
19
+ --bg-primary: #121212;
20
+ --bg-secondary: #1e1e1e;
21
+ --text-primary: #fff;
22
+ --text-secondary: #aaa;
23
+ --bubble-self: #056162;
24
+ --bubble-other: #262D31;
25
+ --bubble-text-self: #fff;
26
+ --bubble-text-other: #fff;
27
+ --header-bg: #1e1e1e;
28
+ --input-bg: #2a2f32;
29
+ --input-border: #333;
30
+ }
31
+
32
+ .theme-custom {
33
+ /* values set via JavaScript */
34
+ }
35
+
36
+ * { margin:0; padding:0; box-sizing:border-box; }
37
+ body { font-family: system-ui, -apple-system, sans-serif; background: var(--bg-primary); color: var(--text-primary); height:100vh; overflow:hidden; }
38
+
39
+ /* ====== Layout ====== */
40
+ #app { height:100%; }
41
+ .screen { display:flex; flex-direction:column; height:100%; }
42
+ .hidden { display:none!important; }
43
+
44
+ /* ====== Auth ====== */
45
+ .auth-container { max-width:400px; margin:auto; padding:2rem; text-align:center; }
46
+ .auth-container h1 { margin-bottom:2rem; color:var(--header-bg); }
47
+ .auth-tabs { display:flex; margin-bottom:1rem; border-bottom:2px solid var(--input-border); }
48
+ .tab { flex:1; padding:0.75rem; background:none; border:none; color:var(--text-secondary); font-weight:500; cursor:pointer; }
49
+ .tab.active { color:var(--header-bg); border-bottom:3px solid var(--header-bg); }
50
+ #auth-form input { width:100%; margin:0.5rem 0; padding:0.75rem; border:1px solid var(--input-border); border-radius:8px; background:var(--input-bg); color:var(--text-primary); }
51
+ #auth-form button { width:100%; padding:0.75rem; background:var(--header-bg); color:var(--header-text); border:none; border-radius:8px; font-size:1rem; margin-top:1rem; cursor:pointer; }
52
+ .error-msg { color:red; margin-top:1rem; }
53
+
54
+ /* ====== Chat header ====== */
55
+ .chat-header { display:flex; align-items:center; justify-content:space-between; padding:0.75rem 1rem; background:var(--header-bg); color:var(--header-text); min-height:60px; }
56
+ .icon-btn { background:none; border:none; color:inherit; font-size:1.5rem; cursor:pointer; padding:0.25rem; }
57
+
58
+ /* ====== Typing ====== */
59
+ #typing-indicator { height:24px; font-size:0.85rem; padding:0 1rem; color:var(--text-secondary); background:var(--bg-secondary); display:flex; align-items:center; }
60
+
61
+ /* ====== Messages ====== */
62
+ #messages-container { flex:1; overflow-y:auto; padding:1rem; background:var(--bg-primary); }
63
+ #messages-list { display:flex; flex-direction:column; gap:0.25rem; }
64
+ .message-bubble { max-width:80%; margin-bottom:0.25rem; }
65
+ .message-self { align-self:flex-end; background:var(--bubble-self); color:var(--bubble-text-self); border-radius:18px 18px 0 18px; padding:0.6rem 1rem; }
66
+ .message-other { align-self:flex-start; background:var(--bubble-other); color:var(--bubble-text-other); border-radius:18px 18px 18px 0; padding:0.6rem 1rem; }
67
+ .message-info { display:flex; justify-content:space-between; font-size:0.7rem; opacity:0.8; margin-bottom:0.1rem; }
68
+ .message-actions { display:flex; gap:0.25rem; margin-top:0.25rem; font-size:0.8rem; }
69
+ .reply-indicator { font-size:0.8rem; padding:0.2rem 0.5rem; background:rgba(0,0,0,0.1); border-radius:8px; margin-bottom:0.25rem; }
70
+ .edited-label { font-style:italic; opacity:0.7; font-size:0.75rem; }
71
+ .deleted-bubble { opacity:0.6; font-style:italic; }
72
+ .attachment img, .attachment video { max-width:100%; max-height:300px; border-radius:8px; margin-top:0.5rem; }
73
+ .attachment audio { width:100%; margin-top:0.5rem; }
74
+ .attachment .file-preview { display:flex; align-items:center; gap:0.5rem; background:rgba(0,0,0,0.05); padding:0.5rem; border-radius:8px; cursor:pointer; }
75
+ /* Read receipts (ticks) */
76
+ .read-status { display:inline-block; margin-left:0.2rem; font-size:0.7rem; }
77
+ .read-status.double-check { color:var(--header-bg); }
78
+ .read-status.single-check { color:var(--text-secondary); }
79
+
80
+ /* ====== Reply preview ====== */
81
+ #reply-preview { background:var(--bg-secondary); padding:0.5rem 1rem; display:flex; align-items:center; justify-content:space-between; }
82
+
83
+ /* ====== Compose ====== */
84
+ .compose-area { display:flex; align-items:center; padding:0.5rem; background:var(--input-bg); border-top:1px solid var(--input-border); }
85
+ .compose-area textarea { flex:1; resize:none; border:1px solid var(--input-border); border-radius:20px; padding:0.6rem 1rem; background:var(--bg-primary); color:var(--text-primary); outline:none; font-family:inherit; }
86
+ #send-btn { background:var(--header-bg); color:white; border:none; border-radius:50%; width:40px; height:40px; font-size:1.2rem; margin-left:0.5rem; cursor:pointer; }
87
+ #upload-progress { padding:0.5rem; background:var(--bg-secondary); display:flex; align-items:center; gap:0.5rem; }
88
+
89
+ /* ====== Settings modal ====== */
90
+ .modal { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.5); display:flex; justify-content:center; align-items:center; z-index:1000; }
91
+ .modal-content { background:var(--bg-primary); padding:2rem; border-radius:12px; width:90%; max-width:400px; }
92
+ .setting-group { margin-bottom:1rem; }
93
+ .setting-group label { display:block; margin-bottom:0.25rem; font-weight:500; }
94
+ .setting-group input[type="text"], .setting-group select { width:100%; padding:0.5rem; border:1px solid var(--input-border); border-radius:6px; background:var(--input-bg); color:var(--text-primary); }
95
+ .avatar-preview { width:60px; height:60px; border-radius:50%; object-fit:cover; display:block; margin-top:0.5rem; }
96
+ .modal-actions { display:flex; justify-content:flex-end; gap:0.5rem; margin-top:1rem; }
97
+ .modal-actions button { padding:0.5rem 1rem; border:none; border-radius:6px; background:var(--header-bg); color:white; cursor:pointer; }
98
+ #load-more { text-align:center; margin:1rem; }
99
+
100
+ @media (min-width:768px) {
101
+ .message-bubble { max-width:60%; }
102
+ .compose-area { padding:0.75rem 1rem; }
103
+ }