.logseq-tldraw { --color-panel: var(--ls-tertiary-background-color); --color-panel-inverted: var(--ls-secondary-text-color); --color-text: var(--ls-primary-text-color); --color-text-inverted: var(--ls-tertiary-background-color); --color-hover: var(--ls-secondary-background-color); --color-selectedStroke: rgb(42, 123, 253); --color-selectedFill: #4285f4; --color-selectedContrast: #fff; --shadow-small: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-medium: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); --shadow-large: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); } .logseq-tldraw-wrapper { @apply flex flex-col w-full h-full relative; } .tl-toolbar { @apply absolute top-0 w-full flex; grid-row: 1; align-items: center; padding: 8px; color: black; z-index: 100000; user-select: none; background: white; border-bottom: 1px solid black; font-size: inherit; } .tl-action-bar { @apply absolute bottom-0 flex border-0; border-radius: 12px 12px 0 0; left: 53px; align-items: center; gap: 12px; padding: 8px; color: black; z-index: 100000; user-select: none; background: var(--ls-primary-background-color); box-shadow: var(--shadow-medium); > button { @apply text-sm rounded border-0 inline-flex items-center justify-center; height: 32px; padding: 0 8px; color: var(--ls-primary-text-color); font-family: var(--ls-font-family); background: none; cursor: pointer; opacity: 1; white-space: nowrap; &:hover { background-color: var(--color-hover); } } } .tl-zoom-menu-dropdown-menu-button { opacity: 100%; background-color: var(--color-panel); border-radius: 6px; padding: 5px; box-shadow: 0 10px 38px -10px rgba(22, 23, 24, 0.35), 0 10px 20px -15px rgba(22, 23, 24, 0.2); > span svg { fill: var(--color-panel) !important; } } .tl-zoom-menu-dropdown-item { min-width: 220px; all: unset; font-size: 13px; line-height: 1; color: black; border-radius: 3px; display: flex; align-items: center; height: 25px; padding: 0 5px; position: relative; user-select: none; color: var(--color-text); &:hover { background-color: var(--color-hover); } } .tl-zoom-menu-right-slot { margin-left: auto; padding-left: 20px; color: var(--color-text); } .tl-contextbar { @apply relative flex text-sm; pointer-events: all; position: relative; background-color: #fff; color: #a4b5b6; padding: 8px 12px; border-radius: 8px; white-space: nowrap; gap: 12px; align-items: stretch; will-change: transform, contents; box-shadow: var(--shadow-medium); z-index: 1000; label { font-family: var(--ls-font-family); font-size: 10px; } .input { display: flex; flex-direction: column; gap: 4px; } .number-input { width: 44px; height: 24px; padding: 2px; } .color-input-wrapper { overflow: hidden; height: 18px; width: 46px; border-radius: 2px; margin: 2px; box-shadow: 0 0 0 2px var(--ls-tertiary-background-color); } .color-input { transform: translate(-4px, -4px) scale(1.5); } .switch-input-root { all: unset; width: 36px; height: 20px; background-color: rgba(0, 0, 0, 0.44); position: relative; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); border-radius: 9999px; &[data-state='checked'] { background: #8ec2c2; } } .switch-input-thumb { display: block; width: 16px; height: 16px; background-color: white; border-radius: 9999px; transition: transform 100ms ease 0s; transform: translateX(3px); will-change: transform; } &[data-state='checked'] { transform: translateX(17px); } .tl-text-input { height: 24px; padding: 0; background: none; border-radius: 2px; &:focus { outline: none; } } } .tl-statusbar { @apply absolute flex items-center w-full bottom-0; font-family: monospace; font-size: 10px; grid-row: 3; padding: 8px; color: black; z-index: 100000; user-select: none; background: white; border-top: 1px solid black; flex-shrink: 0; height: 32px; } .tl-primary-tools { @apply absolute h-full top-0 flex items-center justify-center; right: 30px; pointer-events: none; gap: 8px; z-index: 10000; flex-flow: column; border-radius: 8px; padding: 8px; .tl-button { @apply relative flex items-center justify-center text-base rounded border-0; height: 28px; width: 28px; font-family: var(--ls-font-family); background: none; cursor: pointer; color: var(--ls-primary-text-color); &:hover { background-color: var(--color-hover); } &[data-selected='true'] { background-color: var(--color-selectedFill); color: var(--color-selectedContrast); } } } .tl-tools-floating-panel { @apply flex; flex-flow: column; border-radius: 8px; padding: 4px; gap: 8px; background-color: var(--color-panel); box-shadow: var(--shadow-medium); pointer-events: all; } .tl-geometry-tools-pane-anchor { @apply relative; } .tl-geometry-tools-pane { @apply absolute flex flex-col items-center justify-center; right: 100%; top: calc(50% - 52px); background-color: var(--ls-secondary-background-color); border-radius: 8px; padding: 4px; gap: 8px; .tl-button:not([data-selected='true']):hover { background-color: var(--ls-tertiary-background-color); } } .floating-panel[data-tool-locked='true'] > .tl-button[data-selected='true']::after { @apply block absolute; content: ''; height: 6px; width: 6px; border: 2px solid var(--color-selectedContrast); background-color: var(--color-selectedFill); bottom: -4px; left: calc(50% - 5px); border-radius: 100%; } .tl-text-shape-wrapper { @apply absolute p-0 m-0 h-full w-full; white-space: pre-wrap; overflow-wrap: break-word; border: 1px solid transparent; z-index: 9999; user-select: none; min-height: 1; min-width: 1; line-height: 1; outline: 0; backface-visibility: hidden; pointer-events: all; vertical-align: baseline; -webkit-user-drag: none; -webkit-user-select: none; -webkit-touch-callout: none; } .tl-text-shape-input { @apply absolute inset-0 inline-block border-0 overflow-hidden; z-index: 1; resize: none; padding: inherit; font-family: inherit; font-size: inherit; font-variant: inherit; text-align: inherit; min-height: inherit; min-width: inherit; line-height: inherit; letter-spacing: inherit; outline: 0; white-space: inherit; overflow-wrap: inherit; font-weight: inherit; backface-visibility: hidden; pointer-events: all; user-select: text; -webkit-user-select: text; } .tl-stroke-hitarea { fill: none; stroke: transparent; stroke-width: calc(24px * var(--tl-scale)); pointer-events: stroke; stroke-linecap: round; stroke-linejoin: round; } .tl-text-label-wrapper { @apply absolute inset-0 flex items-center justify-center; pointer-events: none; user-select: none; font-family: var(--ls-font-family); } .tl-text-label-inner-wrapper { position: absolute; padding: 4px; z-index: 1; min-height: 1px; min-width: 1px; line-height: 1; outline: 0; font-weight: 500; text-align: center; backface-visibility: hidden; user-select: none; white-space: pre-wrap; overflow-wrap: break-word; } .tl-text-label-textarea { @apply absolute inset-0; z-index: 1; border: none; padding: 4px; resize: none; text-align: inherit; min-height: inherit; min-width: inherit; line-height: inherit; letter-spacing: inherit; outline: 0; font-weight: inherit; overflow: hidden; backface-visibility: hidden; display: inline-block; pointer-events: all; background: var(--colors-boundsBg); user-select: text; -webkit-font-smoothing: subpixel-antialiased; white-space: pre-wrap; overflow-wrap: break-word; &:focus { outline: none; border: none; } } .tl-preview-minimap { height: 300px; width: 400px; /* Set top to be the viewport minus 10px */ bottom: calc(100vh - 320px); left: 16px; position: absolute; border: 1px solid black; background-color: #fff; pointer-events: all; } .tl-preview-minimap-toggle { @apply absolute flex items-center justify-center text-sm; top: 60px; right: 50px; z-index: 1; width: 32px; height: 32px; border-radius: 4px; box-shadow: 0 0 4px rgba(0, 0, 0, 0.2); background: white; cursor: pointer; &[data-active='true'] { background: #eee; } } .tl-quick-search { width: fit-content; position: relative; } .tl-quick-search-icon { flex-shrink: 0; } .tl-quick-search-indicator { @apply absolute flex items-center justify-center; background-color: var(--ls-secondary-background-color); font-size: 22px; right: calc(100% + 12px); height: 34px; width: 34px; border-radius: 50%; top: calc(50% - 17px); } .tl-quick-search-input-container { @apply flex items-center rounded-lg text-base; background-color: var(--ls-secondary-background-color); padding: 6px 16px; box-shadow: var(--shadow-small); } .tl-quick-search-input-filter { @apply flex items-center text-sm; background: rgba(0, 0, 0, 0.1); padding: 2px 8px; white-space: nowrap; gap: 8px; border-radius: 5px; margin-right: 8px; } .tl-quick-search-input-filter-remove { @apply flex items-center justify-center; width: 16px; height: 16px; border-radius: 50%; background-color: var(--ls-block-bullet-border-color); &:hover { background-color: rgba(0, 0, 0, 0.5) !important; } > i.ti { transform: translateY(-0.5px); } } .tl-quick-search-input-sizer { position: relative; } .tl-quick-search-input { @apply absolute inset-0; outline: none; } .tl-quick-search-input-hidden { opacity: 0; min-width: 240px; min-height: 24px; } .tl-quick-search-options { @apply absolute left-0 w-full flex; top: calc(100% + 12px); background-color: var(--ls-primary-background-color); max-height: 300px; min-width: 460px; box-shadow: var(--shadow-large); overflow-y: auto; flex-direction: column; border-radius: 8px; overscroll-behavior: none; } .tl-quick-search-option { @apply flex text-sm; flex-flow: column; padding: 8px 16px; cursor: pointer; gap: 0.5em; &[data-focused='true'] { background-color: var(--ls-menu-hover-color, #f4f5f7); } } .tl-quick-search-option-row { display: flex; gap: 0.5em; .breadcrumb { margin: 0; } } .tl-quick-search-option-placeholder { width: 20px; flex-shrink: 0; } .tl-quick-search-option-breadcrumb { opacity: 0.5; } .tl-logseq-portal-container { @apply flex flex-col rounded-lg; width: calc(100% - 2px); height: calc(100% - 2px); transform: translate(1px, 1px); overscroll-behavior: none; opacity: 1; } .tl-logseq-portal-header { @apply flex items-center w-full; height: 40px; flex-shrink: 0; background: transparent; color: var(--ls-title-text-color); border-top-left-radius: 8px; border-top-right-radius: 8px; padding: 0 1rem; gap: 0.5em; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; .page-ref { color: var(--ls-title-text-color); } } .tl-type-tag { @apply flex items-center justify-center rounded text-base; flex-shrink: 0; width: 20px; height: 20px; line-height: 1; color: #fff; background: rgba(0, 0, 0, 0.5); order: 0; flex-grow: 0; } .tl-html-container > iframe { @apply h-full w-full !important; margin: 0; } .tl-logseq-cp-container { @apply h-full w-full rounded-lg; overscroll-behavior: none; flex: 1 1 0%; cursor: default; } .tl-highlighted { @apply p-0 rounded-none; } .logseq-img-icon { width: 20px; height: 20px; border-radius: 4px; box-shadow: 0 8px 12px 0 #85c8c81a, 0 4px 32px 0 #85c8c880; } .tl-target-not-found { @apply flex h-full w-full items-center justify-center; } html[data-theme='light'] { .tl-quick-search-input-filter-remove { background-color: #7373734d; } .tl-type-tag[data-active='true'] { background: rgba(66, 133, 244, 0.2); border: 1px solid rgba(42, 123, 253, 0.5); color: var(--ls-secondary-text-color); } .tl-logseq-portal-header { backdrop-filter: brightness(0.9); } } html[data-theme='dark'] { .tl-type-tag[data-active='true'] { background: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), #338fff; border: 1px solid #338fff; color: var(--ls-secondary-text-color); } .tl-logseq-portal-header { backdrop-filter: brightness(1.2); } }