Repository navigation
fix(webapp): תפריטי הסרגל העליון לחיצים שוב, וסרגל החיפוש נצמד רק בזמן חיפוש - #3536
Conversation
…ן חיפוש אחרי #3535, חלונית הקיצורים ותפריט האפקטים בסרגל העליון נפתחו אבל לא הגיבו לנגיעה. הסרגל (.navbar) יושב בשכבה שמתחת ל-.main-content: ה-z-index שלו מת כי הוא static, וה-transform וה-backdrop-filter שלו כולאים בתוכו את החלוניות. מאז #3535 החלוניות כבר לא נחתכות, ולכן הן יוצאות אל מעל התוכן, והנגיעה הולכת לתוכן. עכשיו הסרגל עולה מעל התוכן רק בזמן שאחד התפריטים שלו פתוח (.navbar:has(...)), ולא לתמיד: נמדד שהרמה קבועה מסתירה את 🔖, את כותרת פאנל הסימניות ואת החלונות שנפתחים מתוך התוכן. חלונית האפקטים מעוגנת לצד השמאלי של השרביט, ורשימת ההמבורגר הפתוחה כבר לא חותכת אותה. סרגלי החיפוש בתצוגת קובץ וב-Markdown נצמדים רק כשיש טקסט בתיבה, וגם הרווח מעל כותרות Markdown חל רק אז. בדיקות: tests/test_navbar_menus_browser.py (חדש), עדכון של tests/test_view_file_scroll_browser.py, ושומר טקסטואלי ל-CI ב-tests/test_navbar_and_search_bars_css.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Pzf4XyLpo6NFzLyZVnWxm
|
ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
Sorry @amirbiron, you've used your own review budget of 250,000 diff characters for the last 7 days. You can request another review in 23 hours and 15 minutes by commenting |
🧯 Dangerous deletes guard reportPolicy: see .cursorrules — dangerous deletions are blocked unless wrapped safely. Summary:
Flagged findings (file:line:snippet): Excluded matches (by path pattern) |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (11)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughתבניות ה-WebApp עודכנו כדי להציג תפריטי ניווט ללא חיתוך ולהעלות את סרגל הניווט מעל התוכן רק כאשר תפריט פתוח. סרגלי החיפוש בתצוגות קובץ ו-Markdown נדבקים רק בזמן חיפוש. נוספו בדיקות CSS ודפדפן לתנאים אלה. Changesסרגלי ניווט וחיפוש
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to This change restores touch interaction for the top-bar menus and makes search toolbars sticky only while searching. The changes are limited to CSS and tests, and no concrete merge-blocking issue was identified. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 77.14% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 35 functions across 6 files. (5 skipped: 5 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. כשהתפריט נפתח, הסרגל עולה, Comment |
Reviewer's GuideFixes navbar menu touch handling by conditionally raising the navbar and correcting dropdown overflow/positioning, while changing file and Markdown search toolbars to stick only during active searches; adds browser and CI-safe CSS regression tests covering the responsive interactions and scrolling behavior. Sequence diagram for conditional navbar menu interactionsequenceDiagram
actor User
participant Navbar
participant MainContent
participant Menu
User->>Menu: tap menu button
Menu->>Navbar: activate menu
Navbar->>Navbar: apply :has(...active) rule
Navbar->>MainContent: render above content
User->>Menu: tap dropdown item
Menu-->>User: receive touch
User->>Menu: close menu
Navbar->>MainContent: return below content
Flow diagram for search toolbar sticky behaviorflowchart TD
A[Search input state] --> B{Input has text?}
B -->|Yes| C["Apply :has(:not(:placeholder-shown))"]
C --> D[Toolbar position: sticky]
D --> E[Headings use scroll-margin-top]
B -->|No| F[Toolbar scrolls with document]
F --> G[Headings have no search offset]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
⏱️ Performance report(No performance test durations collected. Mark tests with |
📖 Documentation PreviewThe documentation has been built successfully!
To view locally:
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
השומר החדש tests/test_navbar_and_search_bars_css.py שכפל את הפרסור של כללי CSS מ-tests/test_sticky_notes_touch_action.py. זה עותק שני של אותו כלל (R6). עכשיו שניהם קוראים דרך tests/_css_rules.py. הקובץ מסיר הערות, מפרק רשימת בוררים בפסיקים שמחוץ לסוגריים (:has(a, b) הוא בורר אחד), ושולף את בלוקי ה-<style> מתבנית בלי Jinja. ההתנהגות של שומר הפתקים לא השתנתה: כל הבדיקות שלו, כולל המוטציות, עוברות. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Pzf4XyLpo6NFzLyZVnWxm
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
Code Review ✅ Approved🟡 Medium risk · CSS changes alter navigation layering and when file/Markdown search bars stick. Restores top navigation menu interaction and makes search toolbars sticky only during active searches. The navbar now appears above content only when menus are open, preventing permanent coverage of floating controls like bookmarks. CSS adjustments to OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Important Your trial ends in 6 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more. Was this helpful? React with 👍 / 👎 | Gitar |
There was a problem hiding this comment.
4 issues found and verified against the latest diff
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="webapp/templates/base.html">
<violation number="1" location="webapp/templates/base.html:508">
P2: Custom agent: **Enforce Strict Maintainability Standards**
This rule hardcodes every supported dropdown class into the navbar stacking behavior, so a new floating menu silently regresses unless someone remembers to edit this selector. Move the open-state contract to a shared navbar state/class (with a compatibility fallback) instead of maintaining a feature-specific `:has()` registry.</violation>
<violation number="2" location="webapp/templates/base.html:508">
P3: חומרה: נמוכה (2/10). בסגירה מסירים את `.active` מיד — הסרגל חוזר ל-`position: static` בלי z-index, אבל החלונית ממשיכה להתעמעם במשך 0.25s (`transition: all 0.25s ease`). בחלון הזה החלונית עוד נראית אבל כבר מצוירת מתחת ל-.main-content (שנמצא מעל לסרגל כשהסרגל מורם, כמתואר בתגובה), ולכן התוכן מהבהב מעל החלונית הנסגרת. ההצעה: לקצר את החיווי על החלוניות (למשל `transition: opacity 0.15s ease, visibility 0s 0.15s;` במקום `all 0.25s ease` ב-.quick-access-dropdown / .fun-mode-dropdown), או לדחות את הסרת ההרמה עד סוף הטרנזיציה.</violation>
</file>
<file name="webapp/templates/md_preview.html">
<violation number="1" location="webapp/templates/md_preview.html:635">
P2: Custom agent: **Enforce Strict Maintainability Standards**
The toolbar infers search activity from `:placeholder-shown` and duplicates that implicit condition for heading offsets and the parallel file template. Represent search activity with an explicit class/data state maintained by the search handler, then style both behaviors from that contract; otherwise a placeholder change or a browser without `:has()` silently changes or removes the layout behavior.</violation>
</file>
<file name="webapp/templates/view_file.html">
<violation number="1" location="webapp/templates/view_file.html:107">
P3: חומרה: נמוכה (2/10). הגישה מתועדת בתגובה (בלי `:has()` הסרגל פשוט לא נצמד), אבל כדאי להיות מודעים לכך שזה נסיגה תפקודית מלאה בדפדפנים ישנים: לפני השינוי הסרגל היה דביק תמיד, ועכשיו בדפדפן ללא תמיכה ב-`:has()` (ספארי < 15.4, כרום < 105, פיירפוקס < 121 — וגם WebView אנדרואיד ישן, הרלוונטי ל-Telegram Mini App שלא נבדק לפי תיאור ה-PR) הסרגל מפסיק להיצמד לגמרי, וכך גם הרמת הסרגל העליון ב-base.html והקיזוז-גלילה ב-md_preview.html. אם הקהל כולל מכשירים כאלה, שיקול לזיהוי-תכונה ב-JS עם מחלקת fallback (למשל `html.has-has`) במקום לוותר בסתר על ההתנהגות.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
| שהסרגל מתחתם, וסרגל שמורם תמיד מסתיר אותם בראש העמוד — נמדד. | ||
| המצב נקרא מה-.active שמציג כל תפריט, ולא מדגל נפרד שצריך לזכור לאפס בכל | ||
| דרך סגירה. תפריט צף חדש בסרגל נכנס לרשימה הזו. */ | ||
| .navbar:has(.nav-menu.active, .quick-access-dropdown.active, .fun-mode-dropdown.active) { |
There was a problem hiding this comment.
P2: Custom agent: Enforce Strict Maintainability Standards
This rule hardcodes every supported dropdown class into the navbar stacking behavior, so a new floating menu silently regresses unless someone remembers to edit this selector. Move the open-state contract to a shared navbar state/class (with a compatibility fallback) instead of maintaining a feature-specific :has() registry.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At webapp/templates/base.html, line 508:
<comment>This rule hardcodes every supported dropdown class into the navbar stacking behavior, so a new floating menu silently regresses unless someone remembers to edit this selector. Move the open-state contract to a shared navbar state/class (with a compatibility fallback) instead of maintaining a feature-specific `:has()` registry.</comment>
<file context>
@@ -491,11 +491,25 @@
+ שהסרגל מתחתם, וסרגל שמורם תמיד מסתיר אותם בראש העמוד — נמדד.
+ המצב נקרא מה-.active שמציג כל תפריט, ולא מדגל נפרד שצריך לזכור לאפס בכל
+ דרך סגירה. תפריט צף חדש בסרגל נכנס לרשימה הזו. */
+ .navbar:has(.nav-menu.active, .quick-access-dropdown.active, .fun-mode-dropdown.active) {
+ position: relative;
+ z-index: 1000;
</file context>
|
|
||
| /* כמו .editor-toolbar ב-view_file.html: נצמד רק בזמן חיפוש — כשיש טקסט ב-#mdSearchInput, | ||
| שה-placeholder שלו הוא מה שמאפשר את התנאי — ובלי חיפוש נגלל עם המסמך. */ | ||
| .md-editor-toolbar:has(#mdSearchInput:not(:placeholder-shown)) { |
There was a problem hiding this comment.
P2: Custom agent: Enforce Strict Maintainability Standards
The toolbar infers search activity from :placeholder-shown and duplicates that implicit condition for heading offsets and the parallel file template. Represent search activity with an explicit class/data state maintained by the search handler, then style both behaviors from that contract; otherwise a placeholder change or a browser without :has() silently changes or removes the layout behavior.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At webapp/templates/md_preview.html, line 635:
<comment>The toolbar infers search activity from `:placeholder-shown` and duplicates that implicit condition for heading offsets and the parallel file template. Represent search activity with an explicit class/data state maintained by the search handler, then style both behaviors from that contract; otherwise a placeholder change or a browser without `:has()` silently changes or removes the layout behavior.</comment>
<file context>
@@ -628,6 +628,11 @@
+
+/* כמו .editor-toolbar ב-view_file.html: נצמד רק בזמן חיפוש — כשיש טקסט ב-#mdSearchInput,
+ שה-placeholder שלו הוא מה שמאפשר את התנאי — ובלי חיפוש נגלל עם המסמך. */
+.md-editor-toolbar:has(#mdSearchInput:not(:placeholder-shown)) {
position: sticky;
top: 0;
</file context>
| שהסרגל מתחתם, וסרגל שמורם תמיד מסתיר אותם בראש העמוד — נמדד. | ||
| המצב נקרא מה-.active שמציג כל תפריט, ולא מדגל נפרד שצריך לזכור לאפס בכל | ||
| דרך סגירה. תפריט צף חדש בסרגל נכנס לרשימה הזו. */ | ||
| .navbar:has(.nav-menu.active, .quick-access-dropdown.active, .fun-mode-dropdown.active) { |
There was a problem hiding this comment.
P3: חומרה: נמוכה (2/10). בסגירה מסירים את .active מיד — הסרגל חוזר ל-position: static בלי z-index, אבל החלונית ממשיכה להתעמעם במשך 0.25s (transition: all 0.25s ease). בחלון הזה החלונית עוד נראית אבל כבר מצוירת מתחת ל-.main-content (שנמצא מעל לסרגל כשהסרגל מורם, כמתואר בתגובה), ולכן התוכן מהבהב מעל החלונית הנסגרת. ההצעה: לקצר את החיווי על החלוניות (למשל transition: opacity 0.15s ease, visibility 0s 0.15s; במקום all 0.25s ease ב-.quick-access-dropdown / .fun-mode-dropdown), או לדחות את הסרת ההרמה עד סוף הטרנזיציה.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At webapp/templates/base.html, line 508:
<comment>חומרה: נמוכה (2/10). בסגירה מסירים את `.active` מיד — הסרגל חוזר ל-`position: static` בלי z-index, אבל החלונית ממשיכה להתעמעם במשך 0.25s (`transition: all 0.25s ease`). בחלון הזה החלונית עוד נראית אבל כבר מצוירת מתחת ל-.main-content (שנמצא מעל לסרגל כשהסרגל מורם, כמתואר בתגובה), ולכן התוכן מהבהב מעל החלונית הנסגרת. ההצעה: לקצר את החיווי על החלוניות (למשל `transition: opacity 0.15s ease, visibility 0s 0.15s;` במקום `all 0.25s ease` ב-.quick-access-dropdown / .fun-mode-dropdown), או לדחות את הסרת ההרמה עד סוף הטרנזיציה.</comment>
<file context>
@@ -491,11 +491,25 @@
+ שהסרגל מתחתם, וסרגל שמורם תמיד מסתיר אותם בראש העמוד — נמדד.
+ המצב נקרא מה-.active שמציג כל תפריט, ולא מדגל נפרד שצריך לזכור לאפס בכל
+ דרך סגירה. תפריט צף חדש בסרגל נכנס לרשימה הזו. */
+ .navbar:has(.nav-menu.active, .quick-access-dropdown.active, .fun-mode-dropdown.active) {
+ position: relative;
+ z-index: 1000;
</file context>
| ה-placeholder של #codeSearchInput, כי הבורר :placeholder-shown מתקיים רק כשיש | ||
| placeholder והתיבה ריקה (גם כשמנקים אותה מקוד), ובלעדיו הסרגל היה נצמד תמיד. | ||
| דפדפן שלא מכיר את :has() מדלג על הכלל כולו, והסרגל פשוט לא נצמד. */ | ||
| .editor-toolbar:has(#codeSearchInput:not(:placeholder-shown)) { |
There was a problem hiding this comment.
P3: חומרה: נמוכה (2/10). הגישה מתועדת בתגובה (בלי :has() הסרגל פשוט לא נצמד), אבל כדאי להיות מודעים לכך שזה נסיגה תפקודית מלאה בדפדפנים ישנים: לפני השינוי הסרגל היה דביק תמיד, ועכשיו בדפדפן ללא תמיכה ב-:has() (ספארי < 15.4, כרום < 105, פיירפוקס < 121 — וגם WebView אנדרואיד ישן, הרלוונטי ל-Telegram Mini App שלא נבדק לפי תיאור ה-PR) הסרגל מפסיק להיצמד לגמרי, וכך גם הרמת הסרגל העליון ב-base.html והקיזוז-גלילה ב-md_preview.html. אם הקהל כולל מכשירים כאלה, שיקול לזיהוי-תכונה ב-JS עם מחלקת fallback (למשל html.has-has) במקום לוותר בסתר על ההתנהגות.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At webapp/templates/view_file.html, line 107:
<comment>חומרה: נמוכה (2/10). הגישה מתועדת בתגובה (בלי `:has()` הסרגל פשוט לא נצמד), אבל כדאי להיות מודעים לכך שזה נסיגה תפקודית מלאה בדפדפנים ישנים: לפני השינוי הסרגל היה דביק תמיד, ועכשיו בדפדפן ללא תמיכה ב-`:has()` (ספארי < 15.4, כרום < 105, פיירפוקס < 121 — וגם WebView אנדרואיד ישן, הרלוונטי ל-Telegram Mini App שלא נבדק לפי תיאור ה-PR) הסרגל מפסיק להיצמד לגמרי, וכך גם הרמת הסרגל העליון ב-base.html והקיזוז-גלילה ב-md_preview.html. אם הקהל כולל מכשירים כאלה, שיקול לזיהוי-תכונה ב-JS עם מחלקת fallback (למשל `html.has-has`) במקום לוותר בסתר על ההתנהגות.</comment>
<file context>
@@ -97,6 +97,14 @@
+ ה-placeholder של #codeSearchInput, כי הבורר :placeholder-shown מתקיים רק כשיש
+ placeholder והתיבה ריקה (גם כשמנקים אותה מקוד), ובלעדיו הסרגל היה נצמד תמיד.
+ דפדפן שלא מכיר את :has() מדלג על הכלל כולו, והסרגל פשוט לא נצמד. */
+.editor-toolbar:has(#codeSearchInput:not(:placeholder-shown)) {
position: sticky;
top: 0;
</file context>
There was a problem hiding this comment.
3 existing issues remain and no new issues found across 11 files
Requires human review: Auto-approval blocked because this review re-detected 3 unresolved issues already reported by Cubic.
Turn on auto-fix | Re-trigger cubic
| שהסרגל מתחתם, וסרגל שמורם תמיד מסתיר אותם בראש העמוד — נמדד. | ||
| המצב נקרא מה-.active שמציג כל תפריט, ולא מדגל נפרד שצריך לזכור לאפס בכל | ||
| דרך סגירה. תפריט צף חדש בסרגל נכנס לרשימה הזו. */ | ||
| .navbar:has(.nav-menu.active, .quick-access-dropdown.active, .fun-mode-dropdown.active) { |
There was a problem hiding this comment.
WARNING: Hardcoded dropdown classes in :has() selector reduces maintainability
The selector .navbar:has(.nav-menu.active, .quick-access-dropdown.active, .fun-mode-dropdown.active) explicitly lists every dropdown class. When a new floating menu is added to the navbar, it will silently fail to raise the navbar unless someone remembers to update this selector. Consider using a shared state class (e.g., .navbar-menu-open) that each menu toggles on its container, or a data attribute on the navbar itself, so the CSS rule only needs to check for one condition.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
| שהסרגל מתחתם, וסרגל שמורם תמיד מסתיר אותם בראש העמוד — נמדד. | ||
| המצב נקרא מה-.active שמציג כל תפריט, ולא מדגל נפרד שצריך לזכור לאפס בכל | ||
| דרך סגירה. תפריט צף חדש בסרגל נכנס לרשימה הזו. */ | ||
| .navbar:has(.nav-menu.active, .quick-access-dropdown.active, .fun-mode-dropdown.active) { |
There was a problem hiding this comment.
SUGGESTION: Transition timing causes content to flash over closing dropdown panels
When a menu closes, .active is removed immediately, causing the navbar to drop back to position: static (no z-index). However, the dropdown panels have transition: all 0.25s ease and remain visible (fading out) for 250ms. During this window, the panels render under .main-content (z-index: 1) because the navbar no longer creates a stacking context above it. This causes page content to visibly flash over the closing panel.
Fix options:
- Shorten panel transitions to
transition: opacity 0.15s ease, visibility 0s 0.15s;(hides panel faster) - Use
transition-delayon the navbar's position/z-index change via JS (remove.activeafter transition ends) - Keep
position: relativeon navbar until panel animations complete
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
|
|
||
| /* כמו .editor-toolbar ב-view_file.html: נצמד רק בזמן חיפוש — כשיש טקסט ב-#mdSearchInput, | ||
| שה-placeholder שלו הוא מה שמאפשר את התנאי — ובלי חיפוש נגלל עם המסמך. */ | ||
| .md-editor-toolbar:has(#mdSearchInput:not(:placeholder-shown)) { |
There was a problem hiding this comment.
WARNING: Implicit search state via :placeholder-shown duplicates logic and is fragile
The toolbar sticky behavior, heading scroll offsets, and the parallel file template (view_file.html) all infer "search is active" from #mdSearchInput:not(:placeholder-shown). This duplicates the condition across multiple selectors and templates. If the placeholder text changes or is removed, the sticky behavior breaks silently. A browser without :has() support loses the behavior entirely with no fallback.
Better approach: Add an explicit class (e.g., .md-editor-toolbar.search-active) or data attribute (e.g., data-search-active) toggled by the search input's JS handler. Then style both the toolbar pinning and heading offsets from that single contract.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
| ה-placeholder של #codeSearchInput, כי הבורר :placeholder-shown מתקיים רק כשיש | ||
| placeholder והתיבה ריקה (גם כשמנקים אותה מקוד), ובלעדיו הסרגל היה נצמד תמיד. | ||
| דפדפן שלא מכיר את :has() מדלג על הכלל כולו, והסרגל פשוט לא נצמד. */ | ||
| .editor-toolbar:has(#codeSearchInput:not(:placeholder-shown)) { |
There was a problem hiding this comment.
SUGGESTION: :has() browser support gap causes complete loss of sticky search toolbar
The new conditional sticky behavior (.editor-toolbar:has(#codeSearchInput:not(:placeholder-shown))) requires :has() support. In browsers without it (Safari < 15.4, Chrome < 105, Firefox < 121, and older Android WebView — relevant for Telegram Mini App which PR description notes was not tested), the selector is invalid and the entire rule is dropped. The toolbar simply never sticks, whereas before this PR it was always sticky.
Consider a progressive enhancement: detect :has() support in JS (CSS.supports('selector(:has(*))')) and set a class on <html> (e.g., html.has-has) to gate the conditional rules, with a fallback to always-sticky for unsupported browsers.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
Code Review SummaryStatus: 4 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (11 files)
Fix these issues in Kilo Cloud Reviewed by nemotron-3-ultra-550b-a55b:free · Input: 715.7K · Output: 3.7K · Cached: 807.8K |
תבנית Pull Request
✨ תיאור קצר
.main-content) מצויר בשכבה שמעל הסרגל. עד fix(webapp): גלילה וחיפוש בתצוגת קובץ — סרגל החיפוש נשאר על המסך, ▼ במתקדם מגיע לתוצאה, ומסך מלא נגלל עד הסוף #3535 החלוניות נחתכו בתוך הסרגל, ולכן אף פעם לא יצאו מעל התוכן. fix(webapp): גלילה וחיפוש בתצוגת קובץ — סרגל החיפוש נשאר על המסך, ▼ במתקדם מגיע לתוצאה, ומסך מלא נגלל עד הסוף #3535 ביטל את החיתוך, והחלק של החלונית שיצא מעל התוכן נראה תקין, אבל הנגיעה הלכה לתוכן.📦 שינויים עיקריים
פירוט נקודות:
base.html, שכבת הסרגל:z-index: 1000של.navbarהיה מת. z-index פועל רק על אלמנט ממוקם, והסרגל הואstaticמאז Make header sticky on scroll #559. הסרתי אותו מהכלל הבסיסי..navbar:has(.nav-menu.active, .quick-access-dropdown.active, .fun-mode-dropdown.active) { position: relative; z-index: 1000 }. כלומר הסרגל עולה מעל התוכן רק בזמן שאחד התפריטים שלו פתוח.#toggleBookmarksBtn) ואת כותרת פאנל הסימניות, ומניחה את הסרגל מעל מציג התמונות. בעשרות חלונות קופצים שיושבים בתוך.main-contentהייתה קורה אותה בעיה.base.html, חלונית האפקטים:left: 0ולא ב-right: 0. השרביט הוא הפריט השמאלי בסרגל, ולכן החלונית נפתחה אל מחוץ למסך.inset-inline-end) לא עוזר כאן. לחלונית ישdirection: ltrמשלה, ולכן צד לוגי מתורגם אצלה בחזרה ל-right, וזה נמדד.base.html, פריסת ההמבורגר:.nav-menu.active { overflow: visible }. הרשימה הפתוחה חתכה את חלונית האפקטים, וכך היה גם לפני fix(webapp): גלילה וחיפוש בתצוגת קובץ — סרגל החיפוש נשאר על המסך, ▼ במתקדם מגיע לתוצאה, ומסך מלא נגלל עד הסוף #3535. החיתוך נשאר לאנימציית הקיפול.view_file.htmlו-md_preview.html:.editor-toolbar:has(#codeSearchInput:not(:placeholder-shown))ו-.md-editor-toolbar:has(#mdSearchInput:not(:placeholder-shown)).scroll-margin-top) חל רק באותו תנאי. בלי חיפוש, כותרת נוחתת בראש המסך.🧪 בדיקות
tests/test_navbar_and_search_bars_css.py, שומר טקסטואלי שרץ ב-CI.placeholder.tests/_css_rules.py, ומשמש גם אתtests/test_sticky_notes_touch_action.py. השומר החדש שכפל אותו מהקובץ ההוא, ולכן איחדתי (R6). כל הבדיקות של שומר הפתקים, כולל המוטציות שלו, עוברות.elementFromPoint.tests/test_navbar_menus_browser.py(חדש):tests/test_view_file_scroll_browser.py:test_repo_notes_browser.pyשמשתמש באותו harness.🧪 בדיקות נדרשות ב‑PR
📝 סוג שינוי
✅ צ'קליסט
docs/whats-new.rstנוספה רשומה. ב-docs/webapp/theming_and_css.rstנוספו שני כללים: z-index על אלמנט שאינו ממוקם והקשר ערימה שכולא את הילדים, והצמדה רק בזמן חיפוש. בנוסף עודכן כלל ה-clip: המעבר משחרר גם רכיבים צפים שהיו חתוכים.docs/webapp/theming_and_css.rst. המשפט: "clipחותך לרוחב בדיוק אותו דבר בלי להפוך את המיכל לקופסת גלילה". עליו נשען fix(webapp): גלילה וחיפוש בתצוגת קובץ — סרגל החיפוש נשאר על המסך, ▼ במתקדם מגיע לתוצאה, ומסך מלא נגלל עד הסוף #3535, וממנו נגזר הפספוס שתוקן כאן.AI-MAP.md: בדקתי, ואין עמוד על הסרגל העליון או על התפריטים שלו.docs/doc-authoring.rst: בלי ספירות מופעים בפרוזה.docs/versioning-stable-anchors.rst: לא נשבר אף עוגן.docs/testing.rst: בדיקות דפדפן מדולגות ב-CI.rtl-geometry-and-clampbrowser-policy, כולוprose-restates-code-factו-line-number-couplingclaude-md-snippets/testing.mdו-T4linter-fix-changes-runtime-behaviorlazy-init-guard-publish-order. הלקח "התנהגות מנוונת שקיימת מזמן היא לעיתים תשתית שמישהו נשען עליה — מודדים מי" הוא מה שהוביל למדידה שפסלה את ההרמה הקבועה.🧩 השפעות/סיכונים
:has(): הכללים החדשים לא חלים. התפריטים מתנהגים כמו ב-main, והסרגלים לא נצמדים.🔗 קישורים
z-indexvalues of its child stacking contexts only have meaning within its parent's stacking context".🧯 סיכון / החזרה לאחור (Rollback)
סטיות מהתוכנית שאושרה
tablet_pageכולה ל-tests/_browser_harness.py. בפועל עברו רק הקמת העמוד (open_admin_page) ו-tap_on. הסיבה היא ש-tests/test_browser_suite_is_gated_once.pyאוסר להרים דפדפן מחוץ לקובצי*_browser.py, ולכן כל קובץ דפדפן ממשיך להרים את הדפדפן בעצמו.tests/_css_rules.py): לא היה בתוכנית. השומר החדש שכפל את הפרסור שלtests/test_sticky_notes_touch_action.py, ולכן איחדתי (R6), בקומיט נפרד.ממצאים צדדיים, לא תוקנו כאן
test_basic_view_search_bar_stays_on_screen_after_jumping_to_a_matchמשתמשת ב-page.fill, ולכן לא רואה את זה.no-fa-iconsאין חלופה עבורו.🤖 Generated with Claude Code
https://claude.ai/code/session_013Pzf4XyLpo6NFzLyZVnWxm
Generated by Claude Code
<source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"><img alt="Turn on auto-fix" src="https://www.cubic.dev/buttons/turn-on-auto-fix-dark.svg">Summary by Sourcery
Fix webapp navigation menu touch targets and make search toolbars sticky only during active searches.
Bug Fixes:
Enhancements:
Documentation:
Tests: