|
1078 | 1078 | --cc-warn: var(--vscode-editorWarning-foreground, var(--vscode-foreground)); --cc-danger: var(--vscode-errorForeground); } |
1079 | 1079 | .sesspanel .sessbar { display: flex; align-items: center; gap: 9px; padding: 12px 14px 10px; border-bottom: 1px solid var(--cc-line); } |
1080 | 1080 | .sesspanel .sesstitle { font-weight: 600; font-size: 14px; } |
1081 | | - .sesspanel .sesslist { flex: 1 1 auto; overflow-y: auto; padding: 2px 12px 14px; } |
| 1081 | + .sesspanel .sesslist { flex: 1 1 auto; overflow-y: auto; padding: 2px 12px 60px; } /* runway for a down-opening drawer near the end */ |
1082 | 1082 | .sesspanel .sessbucket { font-family: var(--vscode-editor-font-family, ui-monospace, monospace); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--cc-text3); margin: 12px 4px 7px; } |
1083 | 1083 | .sesspanel .sessempty { padding: 44px 18px; text-align: center; color: var(--cc-text3); font-size: 13px; line-height: 1.6; } |
1084 | 1084 | .sesscard { position: relative; background: var(--cc-bg); border: 1px solid var(--cc-line); border-radius: 7px; padding: 9px 11px; margin-bottom: 7px; cursor: pointer; transition: border-color .12s, transform .12s, box-shadow .12s; } |
1085 | | - .sesscard:hover, .sesscard:focus-visible, .sesscard:focus-within { border-color: var(--cc-accent); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.22); outline: none; } |
| 1085 | + .sesscard:hover, .sesscard:focus-visible, .sesscard:focus-within { border-color: var(--cc-accent); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.22); outline: none; z-index: 20; } |
1086 | 1086 | .sesscard.warn { border-left: 2px solid var(--cc-warn); } |
1087 | 1087 | .sesscard.err { border-left: 2px solid var(--cc-danger); } |
1088 | 1088 | .sesscard.res { border-left: 2px solid var(--cc-accent); } |
1089 | 1089 | .sesscard .sesstop { display: flex; align-items: center; gap: 8px; } |
1090 | 1090 | .sesscard .sessname { font-weight: 600; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; } |
1091 | 1091 | .sesscard .sessstar { color: var(--cc-accent); font-size: 13px; } |
1092 | 1092 | .sesscard .sesssub { margin-top: 4px; font-family: var(--vscode-editor-font-family, ui-monospace, monospace); font-size: 11.5px; color: var(--cc-text3); } |
1093 | | - .sesscard .sessrich { display: none; margin-top: 8px; } |
1094 | | - .sesscard:hover .sessrich, .sesscard:focus-within .sessrich { display: block; } |
| 1093 | + /* Actions/detail float as a hover DRAWER anchored to the card, so the card height never changes and the |
| 1094 | + list no longer jumps. Opens downward; the last card opens upward so the scroll container never clips it. */ |
| 1095 | + .sesscard .sessrich { position: absolute; left: -1px; right: -1px; top: calc(100% - 3px); z-index: 30; |
| 1096 | + margin: 0; padding: 9px 11px 10px; background: var(--cc-bg); border: 1px solid var(--cc-accent); |
| 1097 | + border-radius: 8px; box-shadow: 0 12px 28px rgba(0,0,0,.34); |
| 1098 | + opacity: 0; visibility: hidden; transform: translateY(-4px); pointer-events: none; |
| 1099 | + transition: opacity .12s ease, transform .12s ease, visibility 0s linear .13s; } |
| 1100 | + .sesscard:hover .sessrich, .sesscard:focus-within .sessrich { opacity: 1; visibility: visible; transform: none; pointer-events: auto; transition: opacity .12s ease, transform .12s ease; } |
| 1101 | + .sesscard:last-child .sessrich { top: auto; bottom: calc(100% - 3px); transform: translateY(4px); } |
| 1102 | + .sesscard:last-child:hover .sessrich, .sesscard:last-child:focus-within .sessrich { transform: none; } |
1095 | 1103 | .sesscard .sessfiles { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; } |
1096 | 1104 | .sesscard .sesschip { font-family: var(--vscode-editor-font-family, ui-monospace, monospace); font-size: 11px; color: var(--cc-text2); background: var(--cc-surface); border: 1px solid var(--cc-line); border-radius: 4px; padding: 1px 6px; } |
1097 | 1105 | .sesscard .sessmeta { display: flex; align-items: center; gap: 7px; margin-top: 6px; font-family: var(--vscode-editor-font-family, ui-monospace, monospace); font-size: 11.5px; color: var(--cc-text3); } |
1098 | 1106 | .sesscard .sessacts { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 9px; } |
1099 | 1107 | .sesscard .sessbtn { font: inherit; font-size: 11.5px; color: var(--cc-text); background: var(--cc-surface); border: 1px solid var(--cc-line); border-radius: 5px; padding: 3px 9px; cursor: pointer; } |
1100 | 1108 | .sesscard .sessbtn.pri { color: #fff; background: var(--cc-accent); border-color: transparent; } |
1101 | 1109 | .sesscard .sessbtn:hover { border-color: var(--cc-accent); } |
1102 | | - @media (prefers-reduced-motion: reduce) { .sesscard { transition: none; } .sesscard:hover, .sesscard:focus-visible, .sesscard:focus-within { transform: none; } } |
| 1110 | + @media (prefers-reduced-motion: reduce) { .sesscard, .sesscard .sessrich { transition: none; } .sesscard:hover, .sesscard:focus-visible, .sesscard:focus-within, .sesscard .sessrich, .sesscard:last-child .sessrich { transform: none; } } |
1103 | 1111 | </style> |
1104 | 1112 | </head> |
1105 | 1113 | <body> |
|
0 commit comments