whiteboard.css 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. .whiteboard-dashboard-bg-grid {
  2. position: absolute;
  3. top: 0;
  4. left: 0;
  5. width: 100%;
  6. height: 100%;
  7. z-index: -1;
  8. }
  9. h1.title.whiteboard-dashboard-title {
  10. padding-right: 0;
  11. }
  12. .dashboard-bg-card {
  13. background-color: var(--ls-secondary-background-color);
  14. border: 1px solid var(--ls-border-color);
  15. opacity: 0.3;
  16. }
  17. .dashboard-card {
  18. @apply rounded-lg flex flex-col gap-1 overflow-hidden font-medium;
  19. height: 300px;
  20. .dashboard-card-checkbox {
  21. @apply flex items-center justify-center rounded flex-shrink-0;
  22. border: 2px solid transparent;
  23. visibility: hidden;
  24. width: 24px;
  25. height: 24px;
  26. transform: translateX(4px);
  27. &:focus-within {
  28. border-color: var(--ls-border-color);
  29. }
  30. .form-checkbox {
  31. top: 0;
  32. }
  33. }
  34. &:is(:hover, [data-checked='true']) .dashboard-card-checkbox {
  35. visibility: visible;
  36. }
  37. }
  38. .dashboard-preview-card {
  39. @apply transition;
  40. border: 1px solid var(--ls-border-color);
  41. }
  42. .dashboard-create-card {
  43. @apply items-center justify-center relative;
  44. background-color: or(--ls-create-whiteboard-background, --lx-gray-02, --ls-secondary-background-color);
  45. box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.06);
  46. border: 1px solid transparent;
  47. }
  48. .dark .dashboard-create-card {
  49. background-color: or(--ls-create-whiteboard-background, --lx-gray-03, --ls-secondary-background-color);
  50. }
  51. .dashboard-create-card i {
  52. font-size: 24px;
  53. }
  54. .dashboard-create-card-caption {
  55. position: absolute;
  56. width: 100%;
  57. bottom: 12px;
  58. display: flex;
  59. justify-content: center;
  60. font-size: 14px;
  61. }
  62. .dashboard-create-card:hover {
  63. background-color: var(--ls-selection-background-color);
  64. box-shadow: 0 4px 8px -2px rgba(16, 24, 40, 0.1),
  65. 0 2px 4px -2px rgba(16, 24, 40, 0.06);
  66. border: 1px solid var(--ls-page-blockquote-border-color);
  67. }
  68. .dashboard-card-title {
  69. @apply px-4 py-3 flex flex-col;
  70. gap: 4px;
  71. border-bottom: 1px solid var(--ls-border-color);
  72. background-color: or(--ls-whiteboard-card-title-background, --lx-gray-02, --ls-secondary-background-color);
  73. font-size: 16px;
  74. }
  75. .dark .dashboard-card-title {
  76. background-color: or(--ls-whiteboard-card-title-background, --lx-gray-03, --ls-secondary-background-color);
  77. }
  78. .dashboard-card-title-name {
  79. @apply truncate;
  80. color: var(--ls-primary-text-color);
  81. }
  82. .single-block > :is(.block-content-wrapper, .editor-wrapper) {
  83. width: 100% !important;
  84. padding: 8px 12px;
  85. border-radius: 8px;
  86. }
  87. .tl-logseq-cp-container > .page {
  88. padding: 12px;
  89. }
  90. .tl-logseq-cp-container > .ls-block {
  91. padding: 0;
  92. }
  93. input.tl-text-input {
  94. border: none;
  95. padding: 0;
  96. &:focus {
  97. box-shadow: none;
  98. }
  99. }
  100. /**
  101. * ???
  102. */
  103. .open-page-ref-link {
  104. @apply text-sm px-1 flex items-center;
  105. border-radius: 2px;
  106. flex-shrink: 0;
  107. background-color: var(--ls-quaternary-background-color);
  108. font-size: 14px;
  109. color: var(--ls-primary-text-color);
  110. vertical-align: baseline;
  111. }
  112. .whiteboard-page-refs-count {
  113. @apply whitespace-nowrap;
  114. border-radius: 8px;
  115. background: var(--ls-primary-background-color);
  116. }
  117. .whiteboard-page-refs-count:hover,
  118. .whiteboard-page-refs-count.open {
  119. filter: brightness(0.9);
  120. }
  121. .whiteboard-page-title-root {
  122. @apply shadow-md flex items-center;
  123. position: absolute;
  124. left: 2.5rem;
  125. top: 0;
  126. padding: 4px;
  127. border-radius: 0 0 12px 12px;
  128. z-index: 2000;
  129. gap: 4px;
  130. line-height: 1.4;
  131. background: or(--ls-whiteboard-title-background, --lx-gray-01, --ls-primary-background-color);
  132. }
  133. .dark .whiteboard-page-title-root {
  134. background: or(--ls-whiteboard-title-background, --lx-gray-02, --ls-primary-background-color);
  135. }
  136. .whiteboard-page-title {
  137. @apply px-2 py-1 flex-1 overflow-ellipsis overflow-hidden;
  138. font-size: 20px;
  139. border-radius: 8px;
  140. border: 1px solid transparent;
  141. background: var(--ls-secondary-background-color);
  142. &-root {
  143. max-width: 70%;
  144. overflow: hidden;
  145. }
  146. .page-title-sizer-wrapper {
  147. width: calc(100% - 20px);
  148. > .title {
  149. @apply whitespace-nowrap min-w-[100px];
  150. }
  151. }
  152. .edit-input {
  153. width: 100%;
  154. border: none;
  155. box-shadow: none;
  156. padding: 0;
  157. }
  158. }
  159. .whiteboard-page-title:hover {
  160. background-color: var(--ls-tertiary-background-color);
  161. }
  162. .whiteboard-page-title:focus-within {
  163. border: 1px solid var(--ls-border-color);
  164. box-shadow: 0 0 0 4px var(--ls-focus-ring-color);
  165. }
  166. .whiteboard-page-refs-count-label {
  167. @apply flex gap-1 items-center;
  168. }
  169. .whiteboard-page-refs {
  170. @apply flex-shrink-0;
  171. }
  172. .whiteboard-page[data-breakpoint=sm] {
  173. .whiteboard-page-refs-count-label {
  174. display: none;
  175. }
  176. .whiteboard-page-title-root {
  177. left: 0.5rem;
  178. }
  179. .tl-action-bar {
  180. left: 0.5rem;
  181. bottom: 0;
  182. }
  183. .tl-primary-tools {
  184. right: 0;
  185. }
  186. }
  187. /* disable user select globally for whiteboard on iOS/iPad. Is there a better option? */
  188. html:is(.is-ios, is-native-ios, is-native-ipad) [data-page="whiteboard"] * {
  189. -webkit-touch-callout: none;
  190. -webkit-user-select: none;
  191. -khtml-user-select: none;
  192. -moz-user-select: none;
  193. -ms-user-select: none;
  194. user-select: none;
  195. }
  196. .cp__whiteboard-welcome {
  197. > .head-bg {
  198. @apply flex m-auto mb-10 w-auto sm:w-[500px];
  199. background-image: url("../img/whiteboard-welcome-dark.png");
  200. background-size: contain;
  201. background-repeat: no-repeat;
  202. background-position: center;
  203. padding-top: 86px;
  204. max-width: 90vw;
  205. > strong {
  206. @apply block rounded text-gray-700 text-[10px] font-semibold px-2 py-0.5
  207. m-auto translate-y-8 uppercase;
  208. background-color: var(--ls-link-text-color);
  209. color: var(--ls-primary-background-color);
  210. }
  211. }
  212. > h1 {
  213. color: var(--ls-title-text-color);
  214. }
  215. > h1, p {
  216. @apply flex justify-center text-center;
  217. }
  218. > p {
  219. @apply text-sm mx-10;
  220. max-width: 540px;
  221. }
  222. }
  223. html[data-theme='light'] {
  224. .cp__whiteboard-welcome {
  225. > .head-bg {
  226. background-image: url("../img/whiteboard-welcome-light.png");
  227. }
  228. }
  229. }