Luca448 commited on
Commit
a3ff150
·
1 Parent(s): 57e0b1a

Savestate: Fix mask-image clipping in Safari using translateZ and move fold out of masked parent

Browse files
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.255</div>
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(225deg, transparent 21px, black 21.5px);
3826
- mask-image: linear-gradient(225deg, transparent 21px, black 21.5px);
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
- /* Overshoot the transparency so the parent mask creates the perfect edge */
3841
- background: linear-gradient(225deg, transparent 18px, #fbfbfb 19px, #e6e6e6 100%);
3842
  border-bottom-left-radius: 10px;
3843
- filter: drop-shadow(-2px 2px 3px rgba(0,0,0,0.1));
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
- <!-- <div class="vault-file-name">${f.name}</div> -->
 
 
 
 
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>