AnatoliiG commited on
Commit
17af010
·
1 Parent(s): 29c8255

Update styles.py

Browse files
Files changed (1) hide show
  1. src/ui/styles.py +37 -16
src/ui/styles.py CHANGED
@@ -1,4 +1,9 @@
1
  CSS = """
 
 
 
 
 
2
  /* 1. Глобальный контейнер: занимаем все пространство без прокрутки страницы */
3
  .gradio-container {
4
  max-width: 100% !important;
@@ -8,19 +13,25 @@ CSS = """
8
  display: flex !important;
9
  flex-direction: column !important;
10
  background-color: var(--background-fill-primary) !important;
 
11
  }
12
 
13
- /* 2. Основной ряд: Sidebar + Chat */
 
14
  #main-row {
15
- flex-grow: 1 !important;
16
- height: 100vh !important;
 
17
  margin: 0 !important;
18
  gap: 0 !important;
19
  overflow: hidden !important;
20
  }
21
 
22
- /* 3. Сайдбар */
23
  #sidebar-container {
 
 
 
24
  border-right: 1px solid var(--border-color-primary) !important;
25
  background-color: var(--background-fill-secondary) !important;
26
  padding: 1.25rem !important;
@@ -28,10 +39,9 @@ CSS = """
28
  display: flex !important;
29
  flex-direction: column !important;
30
  box-shadow: 2px 0 8px rgba(0, 0, 0, 0.02) !important;
 
31
  }
32
 
33
-
34
-
35
  /* Убираем "старение" (побледнение) при обновлении данных */
36
  .stale {
37
  opacity: 1 !important;
@@ -42,17 +52,20 @@ CSS = """
42
  #col-chat-main {
43
  display: flex !important;
44
  flex-direction: column !important;
45
- height: 100vh !important;
46
  padding: 0 !important;
47
  margin: 0 !important;
48
  gap: 0 !important;
49
  background: var(--background-fill-primary) !important;
 
 
50
  }
51
 
52
- /* ЧАТБОТ: Растягиваем на всю высоту */
53
  #chatbot {
54
- flex-grow: 1 !important;
55
- height: 100% !important;
 
56
  border: none !important;
57
  border-radius: 0 !important;
58
  margin: 0 !important;
@@ -61,28 +74,36 @@ CSS = """
61
  overflow-y: auto !important;
62
  }
63
 
64
- /* Фикс для внутренней обертки Gradio Chatbot */
65
  #chatbot > .wrapper {
66
- flex-grow: 1 !important;
67
  display: flex !important;
68
  flex-direction: column !important;
 
 
69
  }
70
 
71
- /* 6. Поле ввода: всегда внизу */
72
  #input-area {
73
- padding: 1rem 2rem !important;
74
  border-top: 1px solid var(--border-color-primary) !important;
75
  background: var(--background-fill-primary) !important;
76
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.02) !important;
77
  flex-shrink: 0 !important;
 
 
 
78
  }
79
 
 
80
  #input-area textarea {
81
  border-radius: 10px !important;
82
  border: 1px solid var(--border-color-primary) !important;
83
  padding: 12px 16px !important;
84
  font-size: 1rem !important;
85
  transition: border-color 0.2s ease !important;
 
 
86
  }
87
 
88
  #input-area textarea:focus {
@@ -98,8 +119,8 @@ CSS = """
98
 
99
  /* Кастомный скроллбар */
100
  ::-webkit-scrollbar {
101
- width: 6px;
102
- height: 6px;
103
  }
104
 
105
  ::-webkit-scrollbar-track {
 
1
  CSS = """
2
+ html, body, .gradio-container {
3
+ height: 100% !important;
4
+ margin: 0 !important;
5
+ }
6
+
7
  /* 1. Глобальный контейнер: занимаем все пространство без прокрутки страницы */
8
  .gradio-container {
9
  max-width: 100% !important;
 
13
  display: flex !important;
14
  flex-direction: column !important;
15
  background-color: var(--background-fill-primary) !important;
16
+ overflow: hidden !important;
17
  }
18
 
19
+ /* 2. Основной ряд: Sidebar + Chat
20
+ Сделано flex: main-row занимает оставшееся пространство и не вызывает лишнюю высоту */
21
  #main-row {
22
+ display: flex !important;
23
+ flex: 1 1 auto !important;
24
+ height: 100% !important;
25
  margin: 0 !important;
26
  gap: 0 !important;
27
  overflow: hidden !important;
28
  }
29
 
30
+ /* 3. Сайдбар: фиксированная ширина, скролл при переполнении */
31
  #sidebar-container {
32
+ width: 320px !important;
33
+ min-width: 240px !important;
34
+ max-width: 380px !important;
35
  border-right: 1px solid var(--border-color-primary) !important;
36
  background-color: var(--background-fill-secondary) !important;
37
  padding: 1.25rem !important;
 
39
  display: flex !important;
40
  flex-direction: column !important;
41
  box-shadow: 2px 0 8px rgba(0, 0, 0, 0.02) !important;
42
+ overflow: auto !important;
43
  }
44
 
 
 
45
  /* Убираем "старение" (побледнение) при обновлении данных */
46
  .stale {
47
  opacity: 1 !important;
 
52
  #col-chat-main {
53
  display: flex !important;
54
  flex-direction: column !important;
55
+ height: 100% !important;
56
  padding: 0 !important;
57
  margin: 0 !important;
58
  gap: 0 !important;
59
  background: var(--background-fill-primary) !important;
60
+ flex: 1 1 auto !important;
61
+ overflow: hidden !important;
62
  }
63
 
64
+ /* ЧАТБОТ: Растягиваем на всю доступную высоту, min-height:0 для корректного flex-scroll */
65
  #chatbot {
66
+ flex: 1 1 auto !important;
67
+ height: auto !important;
68
+ min-height: 0 !important;
69
  border: none !important;
70
  border-radius: 0 !important;
71
  margin: 0 !important;
 
74
  overflow-y: auto !important;
75
  }
76
 
77
+ /* Фикс для внутренней обертки Gradio Chatbot - предотвращаем overflow issues */
78
  #chatbot > .wrapper {
79
+ flex: 1 1 auto !important;
80
  display: flex !important;
81
  flex-direction: column !important;
82
+ min-height: 0 !important;
83
+ overflow: auto !important;
84
  }
85
 
86
+ /* 6. Поле ввода: фиксируем снизу с помощью sticky, чтобы всегда быть видимым */
87
  #input-area {
88
+ padding: 0.75rem 1rem !important;
89
  border-top: 1px solid var(--border-color-primary) !important;
90
  background: var(--background-fill-primary) !important;
91
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.02) !important;
92
  flex-shrink: 0 !important;
93
+ position: sticky !important;
94
+ bottom: 0 !important;
95
+ z-index: 10 !important;
96
  }
97
 
98
+ /* Текстовое поле адаптируется по ширине и не выходит за границы */
99
  #input-area textarea {
100
  border-radius: 10px !important;
101
  border: 1px solid var(--border-color-primary) !important;
102
  padding: 12px 16px !important;
103
  font-size: 1rem !important;
104
  transition: border-color 0.2s ease !important;
105
+ width: 100% !important;
106
+ box-sizing: border-box !important;
107
  }
108
 
109
  #input-area textarea:focus {
 
119
 
120
  /* Кастомный скроллбар */
121
  ::-webkit-scrollbar {
122
+ width: 8px;
123
+ height: 8px;
124
  }
125
 
126
  ::-webkit-scrollbar-track {