Spaces:
Paused
Paused
Savestate: Fix mask-image clipping in Safari using translateZ and move fold out of masked parent
Browse files- index.html +1 -1
- src/styles/global.css +8 -5
- src/views/documents/documents-view.js +5 -4
index.html
CHANGED
|
@@ -74,7 +74,7 @@
|
|
| 74 |
</head>
|
| 75 |
<body class="dark-theme in-chat-view">
|
| 76 |
|
| 77 |
-
<div id="live-version-badge" style="position: fixed; top: 50px; left: 50%; transform: translateX(-50%); font-size: 10px; color: var(--text-secondary); opacity: 0.6; z-index: 99999; pointer-events: none; font-weight: 500; font-family: monospace; letter-spacing: 1px; background: rgba(0,0,0,0.2); padding: 2px 8px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.05);">BUILD 1.8.
|
| 78 |
|
| 79 |
<!-- SVG Filters for Liquid Glass Refraction -->
|
| 80 |
<svg width="0" height="0" style="position: absolute; pointer-events: none;">
|
|
|
|
| 74 |
</head>
|
| 75 |
<body class="dark-theme in-chat-view">
|
| 76 |
|
| 77 |
+
<div id="live-version-badge" style="position: fixed; top: 50px; left: 50%; transform: translateX(-50%); font-size: 10px; color: var(--text-secondary); opacity: 0.6; z-index: 99999; pointer-events: none; font-weight: 500; font-family: monospace; letter-spacing: 1px; background: rgba(0,0,0,0.2); padding: 2px 8px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.05);">BUILD 1.8.256</div>
|
| 78 |
|
| 79 |
<!-- SVG Filters for Liquid Glass Refraction -->
|
| 80 |
<svg width="0" height="0" style="position: absolute; pointer-events: none;">
|
src/styles/global.css
CHANGED
|
@@ -3821,9 +3821,12 @@ body.in-chat-view .tts-player-container {
|
|
| 3821 |
background: #ffffff;
|
| 3822 |
box-shadow: inset 0 0 0 1px rgba(0,0,0,0.05);
|
| 3823 |
|
|
|
|
|
|
|
|
|
|
| 3824 |
/* Mask out the top right corner exactly */
|
| 3825 |
-
-webkit-mask-image: linear-gradient(
|
| 3826 |
-
mask-image: linear-gradient(
|
| 3827 |
|
| 3828 |
display: flex;
|
| 3829 |
flex-direction: column;
|
|
@@ -3837,10 +3840,10 @@ body.in-chat-view .tts-player-container {
|
|
| 3837 |
right: 0;
|
| 3838 |
width: 32px;
|
| 3839 |
height: 32px;
|
| 3840 |
-
/*
|
| 3841 |
-
background: linear-gradient(
|
| 3842 |
border-bottom-left-radius: 10px;
|
| 3843 |
-
filter: drop-shadow(-2px 2px 3px rgba(0,0,0,0.
|
| 3844 |
z-index: 10;
|
| 3845 |
}
|
| 3846 |
|
|
|
|
| 3821 |
background: #ffffff;
|
| 3822 |
box-shadow: inset 0 0 0 1px rgba(0,0,0,0.05);
|
| 3823 |
|
| 3824 |
+
/* Force hardware acceleration so Safari actually clips absolute children correctly */
|
| 3825 |
+
transform: translateZ(0);
|
| 3826 |
+
|
| 3827 |
/* Mask out the top right corner exactly */
|
| 3828 |
+
-webkit-mask-image: linear-gradient(to bottom left, transparent 21px, black 21px);
|
| 3829 |
+
mask-image: linear-gradient(to bottom left, transparent 21px, black 21px);
|
| 3830 |
|
| 3831 |
display: flex;
|
| 3832 |
flex-direction: column;
|
|
|
|
| 3840 |
right: 0;
|
| 3841 |
width: 32px;
|
| 3842 |
height: 32px;
|
| 3843 |
+
/* Use the EXACT same gradient angle and distance as the mask to prevent any gaps */
|
| 3844 |
+
background: linear-gradient(to bottom left, transparent 21px, #fbfbfb 21px, #e6e6e6 100%);
|
| 3845 |
border-bottom-left-radius: 10px;
|
| 3846 |
+
filter: drop-shadow(-2px 2px 3px rgba(0,0,0,0.12));
|
| 3847 |
z-index: 10;
|
| 3848 |
}
|
| 3849 |
|
src/views/documents/documents-view.js
CHANGED
|
@@ -275,9 +275,6 @@ export class DocumentsView {
|
|
| 275 |
return `
|
| 276 |
<div class="vault-file vault-item-enter" style="--delay: ${delay}ms" data-name="${f.name}" data-isdir="false" data-path="${path}" title="${f.name}">
|
| 277 |
<div class="vault-file-body vault-file-body-${ext}">
|
| 278 |
-
<!-- The beautiful Apple-style folded corner -->
|
| 279 |
-
<div class="vault-file-fold"></div>
|
| 280 |
-
|
| 281 |
<!-- The realistic invoice skeleton -->
|
| 282 |
<div class="vault-file-invoice">
|
| 283 |
<div class="vault-file-invoice-header">BMW Financial Services</div>
|
|
@@ -317,7 +314,11 @@ export class DocumentsView {
|
|
| 317 |
<div id="preview-${path.replace(/[^a-zA-Z0-9]/g, '_')}" class="vault-file-preview-slot">
|
| 318 |
</div>
|
| 319 |
</div>
|
| 320 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 321 |
<!-- ${sizeStr ? `<div class="vault-file-size">${sizeStr}</div>` : ''} -->
|
| 322 |
<button class="vault-item-delete" title="Löschen" data-name="${f.name}" data-isdir="false">
|
| 323 |
<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg>
|
|
|
|
| 275 |
return `
|
| 276 |
<div class="vault-file vault-item-enter" style="--delay: ${delay}ms" data-name="${f.name}" data-isdir="false" data-path="${path}" title="${f.name}">
|
| 277 |
<div class="vault-file-body vault-file-body-${ext}">
|
|
|
|
|
|
|
|
|
|
| 278 |
<!-- The realistic invoice skeleton -->
|
| 279 |
<div class="vault-file-invoice">
|
| 280 |
<div class="vault-file-invoice-header">BMW Financial Services</div>
|
|
|
|
| 314 |
<div id="preview-${path.replace(/[^a-zA-Z0-9]/g, '_')}" class="vault-file-preview-slot">
|
| 315 |
</div>
|
| 316 |
</div>
|
| 317 |
+
|
| 318 |
+
<!-- The beautiful Apple-style folded corner is now OUTSIDE the body so it doesn't get masked -->
|
| 319 |
+
<div class="vault-file-fold"></div>
|
| 320 |
+
|
| 321 |
+
<!-- To match Apple Files timeline reference, no names or sizes are shown under the documents -->
|
| 322 |
<!-- ${sizeStr ? `<div class="vault-file-size">${sizeStr}</div>` : ''} -->
|
| 323 |
<button class="vault-item-delete" title="Löschen" data-name="${f.name}" data-isdir="false">
|
| 324 |
<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg>
|