findEthics commited on
Commit
edabc80
·
1 Parent(s): 6ec566b

Simplify UI to minimal black and white design

Browse files

- Remove all feature lists and checkmarks from choose page
- Remove privacy notice and footer text
- Remove session warning banner for anonymous users
- Convert all colors to black and white only
- Remove gradients, shadows, and rounded corners
- Simplify buttons to flat black/white design
- Remove animations and transitions
- Keep only essential UI elements

static/css/style.css CHANGED
@@ -210,13 +210,11 @@ body {
210
  #messageInput {
211
  flex: 1;
212
  padding: 0.75rem 1rem;
213
- border: 2px solid black;
214
- border-radius: 1.25rem;
215
  font-size: 1rem;
216
  outline: none;
217
  background-color: white;
218
  color: black;
219
- transition: border-color 0.2s ease;
220
  resize: none;
221
  min-height: 44px;
222
  /* Minimum touch target size */
@@ -235,18 +233,15 @@ body {
235
 
236
  #messageInput:focus {
237
  border-color: black;
238
- border-width: 3px;
239
  }
240
 
241
  #sendButton {
242
  padding: 0.75rem 1.25rem;
243
  background-color: black;
244
  color: white;
245
- border: 2px solid black;
246
- border-radius: 1.25rem;
247
  font-size: 0.9rem;
248
  cursor: pointer;
249
- transition: all 0.2s ease;
250
  white-space: nowrap;
251
  min-height: 44px;
252
  /* Minimum touch target size */
@@ -260,20 +255,15 @@ body {
260
  #sendButton:hover {
261
  background-color: white;
262
  color: black;
263
- transform: translateY(-1px);
264
  }
265
 
266
- #sendButton:active {
267
- transform: translateY(0);
268
- }
269
 
270
  #sendButton:disabled {
271
  background-color: white;
272
  color: black;
273
- border: 2px solid black;
274
  opacity: 0.5;
275
  cursor: not-allowed;
276
- transform: none;
277
  }
278
 
279
  /* Desktop input styles */
@@ -302,9 +292,8 @@ body {
302
  transform: translateX(-50%);
303
  background-color: black;
304
  color: white;
305
- border: 2px solid black;
306
  padding: 0.75rem 1.25rem;
307
- border-radius: 2rem;
308
  display: flex;
309
  align-items: center;
310
  gap: 0.5rem;
@@ -512,12 +501,6 @@ uch and interaction improvements */
512
 
513
  /* Reduced motion support */
514
  @media (prefers-reduced-motion: reduce) {
515
- * {
516
- animation-duration: 0.01ms !important;
517
- animation-iteration-count: 1 !important;
518
- transition-duration: 0.01ms !important;
519
- }
520
-
521
  .spinner {
522
  animation: none;
523
  }
@@ -552,200 +535,95 @@ uch and interaction improvements */
552
  align-items: center;
553
  justify-content: center;
554
  padding: 2rem;
555
- background: linear-gradient(135deg, #f5f5f5 0%, #ffffff 100%);
556
  }
557
 
558
  .choose-wrapper {
559
- max-width: 900px;
560
- width: 100%;
561
  text-align: center;
562
  }
563
 
564
  .choose-title {
565
- font-size: 2.5rem;
566
- margin-bottom: 0.5rem;
567
- color: black;
568
- }
569
-
570
- .choose-subtitle {
571
- font-size: 1.2rem;
572
- color: #666;
573
  margin-bottom: 3rem;
574
- }
575
-
576
- .choose-options {
577
- display: grid;
578
- grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
579
- gap: 2rem;
580
- margin-bottom: 2rem;
581
- }
582
-
583
- .choose-option {
584
- background: white;
585
- border: 2px solid #e5e5e5;
586
- border-radius: 12px;
587
- padding: 2rem;
588
- transition: all 0.3s ease;
589
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
590
- }
591
-
592
- .choose-option:hover {
593
- border-color: #000;
594
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
595
- }
596
-
597
- .choose-option h2 {
598
- margin-bottom: 1.5rem;
599
- font-size: 1.5rem;
600
  color: black;
 
601
  }
602
 
603
- .option-features ul {
604
- list-style: none;
605
- padding: 0;
606
- margin-bottom: 1.5rem;
607
- text-align: left;
608
- }
609
 
610
- .option-features li {
611
- padding: 0.5rem 0;
612
- padding-left: 1.5rem;
613
- position: relative;
 
614
  }
615
 
616
- .option-features li:before {
617
- content: "✓";
618
- position: absolute;
619
- left: 0;
620
- color: #10b981;
621
- font-weight: bold;
622
- }
623
 
624
- .privacy-notice {
625
- background: #fef3c7;
626
- border: 1px solid #fbbf24;
627
- border-radius: 8px;
628
- padding: 1rem;
629
- margin-bottom: 1.5rem;
630
- font-size: 0.9rem;
631
- text-align: left;
632
- }
633
 
634
- .privacy-notice p {
635
- margin: 0;
636
- color: #92400e;
637
- }
638
 
639
  .choose-button {
640
  display: inline-block;
641
- padding: 0.75rem 2rem;
642
  background: black;
643
  color: white;
644
  text-decoration: none;
645
- border-radius: 8px;
646
- font-weight: 500;
647
- transition: all 0.3s ease;
648
- border: 2px solid black;
649
- margin: 0.5rem;
650
  }
651
 
652
  .choose-button:hover {
653
  background: white;
654
  color: black;
655
- transform: translateY(-2px);
656
  }
657
 
658
- .anonymous-button {
659
- background: #6b7280;
660
- border-color: #6b7280;
661
- }
662
-
663
- .anonymous-button:hover {
664
- background: white;
665
- color: #6b7280;
666
- }
667
-
668
- .register-button {
669
- background: #10b981;
670
- border-color: #10b981;
671
- }
672
-
673
- .register-button:hover {
674
- background: white;
675
- color: #10b981;
676
- }
677
 
678
  .auth-buttons {
679
  display: flex;
680
- justify-content: center;
681
  gap: 1rem;
682
- flex-wrap: wrap;
683
  }
684
 
685
- .choose-footer {
686
- margin-top: 3rem;
687
- color: #666;
688
- font-size: 0.9rem;
689
- }
690
 
691
  /* Anonymous User Styles */
692
  .anonymous-user {
693
- color: #6b7280;
694
- font-style: italic;
695
- }
696
-
697
- .session-warning {
698
- background: #fef3c7;
699
- border-bottom: 2px solid #fbbf24;
700
- padding: 0.75rem;
701
- text-align: center;
702
- color: #92400e;
703
- }
704
-
705
- .warning-content {
706
- max-width: 800px;
707
- margin: 0 auto;
708
  }
709
 
710
- .warning-content a {
711
- color: #92400e;
712
- font-weight: bold;
713
- }
714
 
715
  .session-expiry-warning {
716
  position: fixed;
717
  top: 0;
718
  left: 0;
719
  right: 0;
720
- background: #ef4444;
721
  color: white;
722
  padding: 1rem;
723
  text-align: center;
724
  z-index: 10000;
725
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
726
  }
727
 
728
  .session-expiry-warning button {
729
  background: white;
730
- color: #ef4444;
731
- border: none;
732
  padding: 0.5rem 1rem;
733
  margin: 0 0.5rem;
734
- border-radius: 4px;
735
  cursor: pointer;
736
- font-weight: bold;
737
  }
738
 
739
  .session-expiry-warning button:hover {
740
- background: #fee2e2;
 
741
  }
742
 
743
  /* System message styles */
744
  .message.system .message-content {
745
- background: #f3f4f6;
746
- color: #4b5563;
747
- border: 1px solid #d1d5db;
748
- font-style: italic;
749
  }
750
 
751
  /* Mobile responsive for choice page */
 
210
  #messageInput {
211
  flex: 1;
212
  padding: 0.75rem 1rem;
213
+ border: 1px solid black;
 
214
  font-size: 1rem;
215
  outline: none;
216
  background-color: white;
217
  color: black;
 
218
  resize: none;
219
  min-height: 44px;
220
  /* Minimum touch target size */
 
233
 
234
  #messageInput:focus {
235
  border-color: black;
 
236
  }
237
 
238
  #sendButton {
239
  padding: 0.75rem 1.25rem;
240
  background-color: black;
241
  color: white;
242
+ border: 1px solid black;
 
243
  font-size: 0.9rem;
244
  cursor: pointer;
 
245
  white-space: nowrap;
246
  min-height: 44px;
247
  /* Minimum touch target size */
 
255
  #sendButton:hover {
256
  background-color: white;
257
  color: black;
 
258
  }
259
 
 
 
 
260
 
261
  #sendButton:disabled {
262
  background-color: white;
263
  color: black;
264
+ border: 1px solid black;
265
  opacity: 0.5;
266
  cursor: not-allowed;
 
267
  }
268
 
269
  /* Desktop input styles */
 
292
  transform: translateX(-50%);
293
  background-color: black;
294
  color: white;
295
+ border: 1px solid black;
296
  padding: 0.75rem 1.25rem;
 
297
  display: flex;
298
  align-items: center;
299
  gap: 0.5rem;
 
501
 
502
  /* Reduced motion support */
503
  @media (prefers-reduced-motion: reduce) {
 
 
 
 
 
 
504
  .spinner {
505
  animation: none;
506
  }
 
535
  align-items: center;
536
  justify-content: center;
537
  padding: 2rem;
538
+ background: white;
539
  }
540
 
541
  .choose-wrapper {
 
 
542
  text-align: center;
543
  }
544
 
545
  .choose-title {
546
+ font-size: 2rem;
 
 
 
 
 
 
 
547
  margin-bottom: 3rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
548
  color: black;
549
+ font-weight: normal;
550
  }
551
 
 
 
 
 
 
 
552
 
553
+ .choose-options {
554
+ display: flex;
555
+ flex-direction: column;
556
+ align-items: center;
557
+ gap: 1rem;
558
  }
559
 
 
 
 
 
 
 
 
560
 
 
 
 
 
 
 
 
 
 
561
 
 
 
 
 
562
 
563
  .choose-button {
564
  display: inline-block;
565
+ padding: 1rem 3rem;
566
  background: black;
567
  color: white;
568
  text-decoration: none;
569
+ border: 1px solid black;
570
+ font-weight: normal;
571
+ text-transform: uppercase;
572
+ letter-spacing: 1px;
573
+ font-size: 0.9rem;
574
  }
575
 
576
  .choose-button:hover {
577
  background: white;
578
  color: black;
 
579
  }
580
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
581
 
582
  .auth-buttons {
583
  display: flex;
 
584
  gap: 1rem;
 
585
  }
586
 
 
 
 
 
 
587
 
588
  /* Anonymous User Styles */
589
  .anonymous-user {
590
+ color: black;
591
+ font-style: normal;
 
 
 
 
 
 
 
 
 
 
 
 
 
592
  }
593
 
 
 
 
 
594
 
595
  .session-expiry-warning {
596
  position: fixed;
597
  top: 0;
598
  left: 0;
599
  right: 0;
600
+ background: black;
601
  color: white;
602
  padding: 1rem;
603
  text-align: center;
604
  z-index: 10000;
 
605
  }
606
 
607
  .session-expiry-warning button {
608
  background: white;
609
+ color: black;
610
+ border: 1px solid white;
611
  padding: 0.5rem 1rem;
612
  margin: 0 0.5rem;
 
613
  cursor: pointer;
 
614
  }
615
 
616
  .session-expiry-warning button:hover {
617
+ background: black;
618
+ color: white;
619
  }
620
 
621
  /* System message styles */
622
  .message.system .message-content {
623
+ background: white;
624
+ color: black;
625
+ border: 1px solid black;
626
+ font-style: normal;
627
  }
628
 
629
  /* Mobile responsive for choice page */
static/js/chat.js CHANGED
@@ -482,9 +482,7 @@ class ChatApp {
482
  }
483
 
484
  showAnonymousWelcome() {
485
- // Show welcome message for anonymous users
486
- const welcomeMessage = `Welcome to Anonymous Chat! You can send up to ${this.anonymousRateLimit} messages per hour. Your chat history is temporary and will be lost when you close your browser.`;
487
- this.addMessage(welcomeMessage, 'system', false);
488
  }
489
  }
490
 
 
482
  }
483
 
484
  showAnonymousWelcome() {
485
+ // No welcome message for minimal UI
 
 
486
  }
487
  }
488
 
templates/choose.html CHANGED
@@ -1,75 +1,26 @@
1
  {% extends "base.html" %}
2
 
3
- {% block title %}Choose Access Mode - Chatty{% endblock %}
4
 
5
  {% block content %}
6
  <div class="choose-container">
7
  <div class="choose-wrapper">
8
- <h1 class="choose-title">Welcome to Chatty</h1>
9
- <p class="choose-subtitle">Ethics Chat Application</p>
10
 
11
  <div class="choose-options">
12
- <!-- Anonymous Access Option -->
13
- <div class="choose-option anonymous-option">
14
- <h2>Chat Anonymously</h2>
15
- <div class="option-features">
16
- <ul>
17
- <li>No registration required</li>
18
- <li>Start chatting immediately</li>
19
- <li>Session-based conversation</li>
20
- <li>Limited to {{ config.ANONYMOUS_RATE_LIMIT }} messages per hour</li>
21
- </ul>
22
- </div>
23
- <div class="privacy-notice">
24
- <p><strong>Privacy Notice:</strong> Your chat history will be stored temporarily in your browser session and will be lost when you close the browser or after {{ config.ANONYMOUS_SESSION_TIMEOUT // 3600 }} hour(s) of inactivity.</p>
25
- </div>
26
- <a href="{{ url_for('anonymous') }}" class="choose-button anonymous-button">
27
- Start Anonymous Chat
28
- </a>
29
- </div>
30
 
31
- <!-- Authenticated Access Option -->
32
- <div class="choose-option auth-option">
33
- <h2>Login or Register</h2>
34
- <div class="option-features">
35
- <ul>
36
- <li>Save your chat history permanently</li>
37
- <li>Access conversations from any device</li>
38
- <li>No message limits</li>
39
- <li>Personalized experience</li>
40
- </ul>
41
- </div>
42
- <div class="auth-buttons">
43
- <a href="{{ url_for('login') }}" class="choose-button login-button">
44
- Login
45
- </a>
46
- <a href="{{ url_for('register') }}" class="choose-button register-button">
47
- Create Account
48
- </a>
49
- </div>
50
  </div>
51
  </div>
52
-
53
- <div class="choose-footer">
54
- <p>By using this service, you agree to our ethical guidelines and responsible AI usage.</p>
55
- </div>
56
  </div>
57
  </div>
58
- {% endblock %}
59
-
60
- {% block scripts %}
61
- <script>
62
- document.addEventListener('DOMContentLoaded', function() {
63
- // Add hover effects
64
- const options = document.querySelectorAll('.choose-option');
65
- options.forEach(option => {
66
- option.addEventListener('mouseenter', function() {
67
- this.style.transform = 'translateY(-5px)';
68
- });
69
- option.addEventListener('mouseleave', function() {
70
- this.style.transform = 'translateY(0)';
71
- });
72
- });
73
- });
74
- </script>
75
  {% endblock %}
 
1
  {% extends "base.html" %}
2
 
3
+ {% block title %}Chatty{% endblock %}
4
 
5
  {% block content %}
6
  <div class="choose-container">
7
  <div class="choose-wrapper">
8
+ <h1 class="choose-title">Chatty</h1>
 
9
 
10
  <div class="choose-options">
11
+ <a href="{{ url_for('anonymous') }}" class="choose-button">
12
+ Chat Anonymously
13
+ </a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
+ <div class="auth-buttons">
16
+ <a href="{{ url_for('login') }}" class="choose-button">
17
+ Login
18
+ </a>
19
+ <a href="{{ url_for('register') }}" class="choose-button">
20
+ Register
21
+ </a>
 
 
 
 
 
 
 
 
 
 
 
 
22
  </div>
23
  </div>
 
 
 
 
24
  </div>
25
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  {% endblock %}
templates/index.html CHANGED
@@ -4,15 +4,6 @@
4
 
5
  {% block content %}
6
  <div class="chat-container">
7
- {% if is_anonymous %}
8
- <div class="session-warning">
9
- <div class="warning-content">
10
- <strong>Anonymous Session:</strong> Your chat history is temporary and will be lost when you close your browser.
11
- <a href="{{ url_for('register') }}">Create an account</a> to save your conversations permanently.
12
- </div>
13
- </div>
14
- {% endif %}
15
-
16
  <div class="chat-messages" id="chatMessages">
17
  <!-- Messages will be dynamically added here -->
18
  </div>
 
4
 
5
  {% block content %}
6
  <div class="chat-container">
 
 
 
 
 
 
 
 
 
7
  <div class="chat-messages" id="chatMessages">
8
  <!-- Messages will be dynamically added here -->
9
  </div>