-
Notifications
You must be signed in to change notification settings - Fork 107
Staging #109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Staging #109
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -28,6 +28,24 @@ | |
| background-color: var(--falkor-secondary); | ||
| } | ||
|
|
||
| @media (max-width: 768px) { | ||
| .chat-messages { | ||
| padding: 2px; | ||
| } | ||
|
|
||
| .chat-container { | ||
| padding-right: 10px; | ||
| padding-left: 10px; | ||
| padding-top: 10px; | ||
| padding-bottom: 10px; | ||
| /* Ensure no horizontal overflow */ | ||
| max-width: 100vw; | ||
| overflow-x: hidden; | ||
| box-sizing: border-box; | ||
| /* Ensure content is accessible when toolbar is open */ | ||
| transition: margin-left 220ms ease; | ||
| } | ||
| } | ||
|
Comment on lines
+31
to
+48
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Fix 768 vs 767 breakpoint mismatch (off-by-one at exactly 768px). JS uses Apply: -@media (max-width: 768px) {
+@media (max-width: 767px) {🤖 Prompt for AI Agents |
||
| .message-container { | ||
| display: flex; | ||
| flex-direction: row; | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,11 +2,55 @@ | |
|
|
||
| /* Layout Responsive */ | ||
| @media (max-width: 768px) { | ||
| .chat-container { | ||
| padding-right: 10px; | ||
| padding-left: 10px; | ||
| padding-top: 10px; | ||
| padding-bottom: 10px; | ||
| /* When left toolbar is open, push content to make room */ | ||
| body.left-toolbar-open .chat-container { | ||
| max-width: calc(100vw - 48px); | ||
| } | ||
|
|
||
| /* Ensure body doesn't overflow */ | ||
| body { | ||
| max-width: 100vw; | ||
| overflow-x: hidden; | ||
| } | ||
|
|
||
|
Comment on lines
+5
to
+15
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Standardize breakpoint and de-duplicate the “48px” constant via a CSS variable.
Apply: -@media (max-width: 768px) {
+@media (max-width: 767px) {
- body.left-toolbar-open .chat-container {
- max-width: calc(100vw - 48px);
- }
+ body.left-toolbar-open .chat-container {
+ max-width: calc(100vw - var(--left-toolbar-width, 48px));
+ }
@@
- #container {
+ #container {
width: 100%;
max-width: 100vw;
overflow-x: hidden;
box-sizing: border-box;
transition: margin-left 220ms ease;
}
@@
- body.left-toolbar-open #container {
- margin-left: 48px;
- width: calc(100% - 48px);
- max-width: calc(100vw - 48px);
- }
+ body.left-toolbar-open #container {
+ margin-left: var(--left-toolbar-width, 48px);
+ width: calc(100% - var(--left-toolbar-width, 48px));
+ max-width: calc(100vw - var(--left-toolbar-width, 48px));
+ }And near the top of a globally loaded CSS (or here if that’s acceptable): +:root {
+ /* Single source of truth for the mobile toolbar width */
+ --left-toolbar-width: 48px;
+}Also applies to: 16-24, 25-31, 37-41, 43-54 🤖 Prompt for AI Agents |
||
| /* Main container mobile adjustments */ | ||
| #container { | ||
| width: 100%; | ||
| max-width: 100vw; | ||
| overflow-x: hidden; | ||
| box-sizing: border-box; | ||
| transition: margin-left 220ms ease; | ||
| } | ||
|
|
||
| /* Adjust container when toolbar is open */ | ||
| body.left-toolbar-open #container { | ||
| margin-left: 48px; | ||
| width: calc(100% - 48px); | ||
| max-width: calc(100vw - 48px); | ||
| } | ||
|
|
||
| /* Prevent any background showing behind the shifted content */ | ||
| body.left-toolbar-open { | ||
| background: var(--falkor-secondary); | ||
| } | ||
|
|
||
| /* Ensure chat container fills the available space properly */ | ||
| body.left-toolbar-open .chat-container { | ||
| background: var(--falkor-secondary); | ||
| border-left: none; | ||
| } | ||
|
|
||
| /* Ensure chat header elements are properly positioned when toolbar is open */ | ||
| body.left-toolbar-open .chat-header { | ||
| padding-left: 15px; /* Add extra padding to prevent overlap */ | ||
| width: 100%; | ||
| box-sizing: border-box; | ||
| } | ||
|
|
||
| /* Ensure dropdown and buttons in header don't get cut off */ | ||
| body.left-toolbar-open .chat-header > * { | ||
| margin-left: 0; | ||
| width: 100%; | ||
| } | ||
| } | ||
|
|
||
|
|
@@ -56,22 +100,102 @@ | |
|
|
||
| /* Button Container Responsive */ | ||
| @media (max-width: 768px) { | ||
| .button-container { | ||
| flex-direction: row; | ||
| .chat-header .button-container { | ||
| width: 100%; | ||
| max-width: 100%; | ||
| padding: 0 10px; | ||
| margin: 0; | ||
| box-sizing: border-box; | ||
| gap: 8px; | ||
| flex-wrap: nowrap; | ||
| align-items: stretch; | ||
| } | ||
|
|
||
| /* Hide vertical separators on mobile */ | ||
| .vertical-separator { | ||
| display: none; | ||
| } | ||
|
|
||
| /* Make selectors and buttons fit screen width */ | ||
| #graph-select, | ||
| #custom-file-upload { | ||
| flex: 1; | ||
| min-width: 0; | ||
| padding: 8px 6px; | ||
| font-size: 13px; | ||
| text-overflow: ellipsis; | ||
| white-space: nowrap; | ||
| overflow: hidden; | ||
| height: 40px; | ||
| box-sizing: border-box; | ||
| } | ||
|
|
||
| #graph-select { | ||
| max-width: 30%; | ||
| } | ||
|
|
||
| #custom-file-upload { | ||
| max-width: 35%; | ||
| text-align: center; | ||
| display: flex; | ||
| align-items: center; | ||
| justify-content: center; | ||
| cursor: pointer; | ||
| } | ||
|
|
||
| .dropdown-container { | ||
| flex: 1; | ||
| max-width: 35%; | ||
| } | ||
|
|
||
| .custom-dropdown { | ||
| width: 100%; | ||
| height: 40px; | ||
| } | ||
|
|
||
| .dropdown-selected { | ||
| padding: 8px 6px; | ||
| font-size: 13px; | ||
| height: 100%; | ||
| box-sizing: border-box; | ||
| display: flex; | ||
| align-items: center; | ||
| justify-content: space-between; | ||
| } | ||
|
|
||
| .dropdown-text { | ||
| text-overflow: ellipsis; | ||
| white-space: nowrap; | ||
| overflow: hidden; | ||
| flex: 1; | ||
| } | ||
|
|
||
| .dropdown-arrow { | ||
| margin-left: 4px; | ||
| flex-shrink: 0; | ||
| } | ||
| } | ||
|
|
||
| /* Select Elements Responsive */ | ||
| @media (max-width: 768px) { | ||
| @media (max-width: 480px) { | ||
| .chat-header .button-container { | ||
| padding: 0; | ||
| gap: 5px; | ||
| } | ||
|
|
||
| #graph-select, | ||
| #custom-file-upload, | ||
| #open-pg-modal { | ||
| min-width: 120px; | ||
| width: auto; | ||
| padding: 8px 10px; | ||
| font-size: 14px; | ||
| flex: 1; | ||
| #custom-file-upload { | ||
| padding: 6px 4px; | ||
| font-size: 12px; | ||
| height: 36px; | ||
| } | ||
|
|
||
| .custom-dropdown { | ||
| height: 36px; | ||
| } | ||
|
|
||
| .dropdown-selected { | ||
| padding: 6px 4px; | ||
| font-size: 12px; | ||
| } | ||
| } | ||
|
|
||
|
|
@@ -99,8 +223,35 @@ | |
| } | ||
|
|
||
| .chat-input { | ||
| padding: 12px 16px; | ||
| gap: 12px; | ||
| padding: 0px; | ||
| gap: 8px; | ||
| /* Ensure it fits within viewport width */ | ||
| margin: 0; | ||
| box-sizing: border-box; | ||
| } | ||
|
|
||
| .input-container { | ||
| /* Reduce padding on mobile to maximize input space */ | ||
| padding: 8px; | ||
| gap: 4px; | ||
| min-width: 0; /* Allow container to shrink */ | ||
| flex-shrink: 1; | ||
| } | ||
|
|
||
| #message-input { | ||
| font-size: 16px !important; /* Prevent zoom on iOS */ | ||
| min-width: 0; /* Allow input to shrink */ | ||
| } | ||
|
|
||
| #message-input::placeholder { | ||
| font-size: 16px !important; | ||
| } | ||
|
|
||
| /* Ensure buttons don't overflow */ | ||
| .input-button { | ||
| width: 40px; | ||
| height: 40px; | ||
| flex-shrink: 0; /* Prevent buttons from shrinking */ | ||
| } | ||
| } | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Lower burger z-index to fit your stacking context (avoid covering modals).
Burger uses
z-index: 9999, while modals/buttons are in the ~100–2000 range. This can put the burger above dialogs/tooltips unintentionally.Apply:
#left-toolbar.collapsed #burger-toggle-btn { display: flex; width: 48px; height: 48px; margin: 6px 0; position: absolute; top: 6px; left: 6px; - z-index: 9999; /* keep on top so it's always clickable */ + z-index: 2001; /* above header buttons (2000), below modals as needed */ pointer-events: auto; }Scan z-index usage to confirm the scale:
🏁 Script executed:
Length of output: 848
Lower burger toggle z-index to sit below modals and above header buttons
The
#left-toolbar.collapsed #burger-toggle-btnis currently set toz-index: 9999, which will render it above all modals (whose highest z-index in app/public/css/modals.css is 3000) and risk covering dialogs or tooltips. We should reduce it to 2001 so it still appears above header buttons (z-index 2000) but below any modal layers.Affected location:
Lines: ~381–391
Proposed change:
#left-toolbar.collapsed #burger-toggle-btn { display: flex; width: 48px; height: 48px; margin: 6px 0; position: absolute; top: 6px; left: 6px; - z-index: 9999; /* keep on top so it's always clickable */ + z-index: 2001; /* above header buttons (2000), below modals (>=3000) */ pointer-events: auto; }📝 Committable suggestion
🤖 Prompt for AI Agents