diff --git a/src/views/settings/ActivePatternSettings.vue b/src/views/settings/ActivePatternSettings.vue index 355b71a69..49dfa0545 100644 --- a/src/views/settings/ActivePatternSettings.vue +++ b/src/views/settings/ActivePatternSettings.vue @@ -9,7 +9,7 @@ div | | Can be used to count time as active, despite no input (like meetings, or games with controllers). An empty string disables it. | - span.text-nowrap + span | Example expression:  code(style="background-color: rgba(200, 200, 200, 0.3); padding: 2px 4px; border-radius: 2px;") | Zoom Meeting|Google Meet|Microsoft Teams diff --git a/src/visualizations/VisTimeline.vue b/src/visualizations/VisTimeline.vue index 90501f76d..a9299dc67 100644 --- a/src/visualizations/VisTimeline.vue +++ b/src/visualizations/VisTimeline.vue @@ -23,8 +23,13 @@ div#visualization { // Position tooltip above the cursor instead of overlapping the timeline bars transform: translateY(-100%); margin-top: -15px; - // Ensure tooltip is readable - max-width: 400px; + // Ensure tooltip is readable. vis-timeline sets `white-space: nowrap`, so + // long unbroken event data (JSON, URLs) would overflow the box and widen + // the whole page on mobile; wrap it and cap the width to the viewport. + max-width: min(400px, calc(100vw - 20px)); + box-sizing: border-box; + white-space: normal; + overflow-wrap: anywhere; pointer-events: none; }