quorafind_Obsidian-Collapse.../styles.css
2025-03-05 09:59:18 +08:00

289 lines
6.6 KiB
CSS

.canvas-node-collapse-control {
z-index: 100;
position: relative;
overflow: hidden;
min-width: 100%;
height: calc(30px * var(--zoom-multiplier));
/*max-height: 100px;*/
min-height: max(calc(30px * var(--zoom-multiplier)), 20px);
cursor: pointer;
display: flex;
align-items: center;
padding-left: var(--size-4-2);
gap: var(--size-4-3);
margin-top: calc(30px * var(--zoom-multiplier) * -1);
transition: background-color 0.2s ease-in-out;
}
.canvas-node-container:has(.canvas-node-content > img)
.canvas-node-collapse-control {
position: absolute;
}
.canvas-node-container:not(:has(.canvas-node-content > img)):has(
.canvas-node-collapse-control
) {
padding-top: calc(30px * var(--zoom-multiplier));
}
.canvas-node-container:has(.canvas-node-content > img)
.canvas-node-collapse-control {
margin-top: 0;
}
.canvas-node:not(.collapsed) .canvas-node-collapse-control {
background-color: rgba(var(--canvas-color), 0.15);
}
.canvas-node:not(.collapsed) .canvas-node-collapse-control:hover {
background-color: rgba(var(--canvas-color), 0.5);
}
.canvas-node.collapsed .canvas-node-collapse-control {
background-color: rgb(var(--canvas-color));
}
.canvas-node:has(.canvas-node-collapse-control) {
width: fit-content;
height: fit-content;
}
/*.canvas-node-group:not(.is-focused):not(.is-selected) {*/
/* pointer-events: unset;*/
/*}*/
.canvas-node-group:has(.canvas-node-collapse-control)
.canvas-node-collapse-control {
pointer-events: initial !important;
}
/*.canvas-node.collapsed .canvas-node-collapse-control {*/
/* border-radius: var(--radius-m);*/
/*}*/
.canvas-node.collapsed {
height: calc(30px * var(--zoom-multiplier)) !important;
max-height: fit-content;
transition: height 0.2s ease-in-out, max-height 0.2s ease-in-out;
}
.canvas-node.collapsed .canvas-node-placeholder {
display: none;
}
.group-nodes-collapsed,
.group-edges-collapsed {
display: none;
transition: opacity 0.2s ease-in-out;
opacity: 0;
}
.canvas-node.collapsed .canvas-node-content {
display: none;
transition: opacity 0.2s ease-in-out;
opacity: 0;
}
.collapsed-interaction {
height: calc(30px * var(--zoom-multiplier)) !important;
transition: height 0.2s ease-in-out;
}
.canvas-node-collapse-control-icon,
.canvas-node-type-icon {
display: flex;
}
.canvas-node-collapse-control-icon svg,
.canvas-node-type-icon svg {
height: calc(18px * var(--zoom-multiplier));
width: calc(18px * var(--zoom-multiplier));
}
.canvas-node-collapse-control + .canvas-node-content.media-embed img {
height: auto;
max-height: 100%;
object-fit: contain;
}
.minimal-control-header .canvas-node-collapse-control-title,
.minimal-control-header .canvas-node-type-icon {
display: none;
}
.canvas-node {
/* Add transition for height and max-height only */
transition: height 0.2s ease-in-out, max-height 0.2s ease-in-out;
}
.canvas-node-content {
/* Add transition for opacity */
transition: opacity 0.2s ease-in-out;
opacity: 1;
}
.canvas-node.collapsed .canvas-node-content {
opacity: 0;
/* Keep the display:none but add it with a delay so the opacity transition is visible */
transition: opacity 0.2s ease-in-out;
}
/* Add rotation animation to the collapse icon */
.canvas-node-collapse-control-icon svg {
transition: transform 0.2s ease;
}
.canvas-node.collapsed .canvas-node-collapse-control-icon svg {
transform: rotate(-90deg);
transition: transform 0.2s ease;
}
/* Remove hover scale effect that causes node drift */
/* .canvas-node:not(.collapsed):hover {
transform: scale(1.01);
} */
/* Animate the collapse control background */
.canvas-node-collapse-control {
transition: background-color 0.2s ease-in-out;
}
/* Modify drawer animation to prevent drift */
.canvas-node-group .group-nodes,
.canvas-node-group .group-edges {
transition: opacity 0.2s ease-in-out, max-height 0.2s ease-in-out;
/* Remove transform transitions that cause drift */
}
.canvas-node-group.collapsed .group-nodes-collapsed,
.canvas-node-group.collapsed .group-edges-collapsed {
opacity: 0;
transition: opacity 0.2s ease-in-out;
/* Remove transform that causes drift */
}
/* Animation classes for transitions */
.node-transitioning {
transition: opacity 0.2s ease-in-out, max-height 0.2s ease-in-out !important;
/* Remove transform transition that causes drift */
}
.animating {
overflow: hidden !important;
}
/* Simplified drawer animation to prevent drift */
.canvas-node-group .group-nodes {
transition: max-height 0.2s ease-in-out, opacity 0.2s ease-in-out;
will-change: opacity, max-height;
/* Remove transform properties that cause drift */
}
.canvas-node-group.collapsed .group-nodes {
max-height: 0;
opacity: 0;
transition: max-height 0.2s ease-in-out, opacity 0.2s ease-in-out;
/* Remove transform that causes drift */
}
/* Animation for edges */
.canvas-edge {
transition: opacity 0.2s ease-in-out;
}
.group-edges-collapsed {
transition: opacity 0.2s ease-in-out;
opacity: 0;
}
/* Remove bounce animation that causes drift */
/* @keyframes bounceIn {
0% {
transform: scale(0.95);
opacity: 0;
}
70% {
transform: scale(1.02);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 1;
}
}
.canvas-node:not(.collapsed):not(.animating) {
animation: bounceIn 0.4s ease-out;
} */
.collapse-handler.collapsed svg {
transform: rotate(-90deg);
transition: transform 0.2s ease-in-out;
}
.collapse-handler svg {
transform: rotate(0deg);
transition: transform 0.2s ease-in-out;
}
.canvas-node .canvas-node-collapse-control-thumbnail {
display: none;
}
/* Styles for thumbnails and aliases in collapsed state */
.canvas-node.collapsed .canvas-node-collapse-control-thumbnail {
max-width: 100%;
max-height: 100px;
object-fit: contain;
margin: 5px auto;
display: block;
border-radius: 4px;
position: absolute;
bottom: calc(27px * var(--zoom-multiplier));
}
.canvas-node.collapsed .canvas-node-collapse-control-alias {
display: block;
font-weight: bold;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--text-normal);
}
/* Adjust the header to accommodate thumbnails and aliases */
.canvas-node.collapsed .canvas-node-collapse-control {
display: flex;
flex-direction: row;
width: 100%;
}
/* Make sure the header elements are properly spaced in collapsed mode */
.canvas-node .canvas-node-collapse-control-icon,
.canvas-node .canvas-node-type-icon {
margin-bottom: 4px;
}
body.hide-default-node-title
.canvas-node:has(.canvas-node-collapse-control)
.canvas-node-label {
display: none;
}
.collapsed-node-hidden {
display: none !important;
}
span.canvas-node-collapse-control-title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 100%;
}