1
0

builder_page.css 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. /*--- Panel Top style ---*/
  2. div.bx-std-pt-bp-types div.bx-form-element-wrapper {
  3. width: 10rem;
  4. }
  5. div.bx-std-pt-bp-pages div.bx-form-element-wrapper {
  6. width: 20rem;
  7. }
  8. /* The page option in the dropdown: title over its URL, the block count on the right (the field itself is styled with every Studio select2 in tailwind.css). */
  9. .adm-bp-page {
  10. display: flex;
  11. justify-content: space-between;
  12. align-items: center;
  13. gap: 0.75rem;
  14. min-width: 0;
  15. }
  16. .adm-bp-page > div:first-child {
  17. min-width: 0;
  18. }
  19. .adm-bp-page .adm-bpp-ttl,
  20. .adm-bp-page .adm-bpp-inf {
  21. overflow: hidden;
  22. white-space: nowrap;
  23. text-overflow: ellipsis;
  24. }
  25. .adm-bp-page .adm-bpp-cnt {
  26. flex: none;
  27. font-weight: 600;
  28. }
  29. /*--- Main section style ---*/
  30. .bx-std .bx-layout-wrapper {
  31. padding-top: 0;
  32. }
  33. div.adm-bp-cell {}
  34. div.adm-bp-cell-cnt {
  35. padding: 1rem;
  36. }
  37. div.adm-bp-blocks {
  38. position: relative;
  39. }
  40. div.adm-bp-block {
  41. position: relative;
  42. overflow: hidden;
  43. box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.05);
  44. }
  45. div.adm-bp-block.adm-bpb-inactive,
  46. div.bx-lr-dump div.adm-bp-block {
  47. opacity: 0.5;
  48. }
  49. div.adm-bp-block-empty {
  50. height: 4rem;
  51. border-style: dashed;
  52. box-shadow: none;
  53. }
  54. div.adm-bp-block-dragging {}
  55. div.adm-bpb-content {
  56. position: relative;
  57. display: -webkit-flex;
  58. display: flex;
  59. -webkit-justify-content: flex-start;
  60. justify-content: flex-start;
  61. -webkit-align-items: center;
  62. align-items: center;
  63. -webkit-flex-flow: row nowrap;
  64. flex-flow: row nowrap;
  65. padding: 0.625rem;
  66. }
  67. div.adm-bpb-icon,
  68. div.adm-bpb-icon-bg,
  69. div.adm-bpb-icon-cnt,
  70. div.adm-bpb-icon img {
  71. width: 2.5rem;
  72. height: 2.5rem;
  73. max-width: none;
  74. margin-right: 0.75rem;
  75. }
  76. .bx-dir-rtl div.adm-bpb-icon,
  77. .bx-dir-rtl div.adm-bpb-icon-bg,
  78. .bx-dir-rtl div.adm-bpb-icon img {
  79. margin-left: 0.75rem;
  80. margin-right: 0;
  81. }
  82. div.adm-bpb-icon {
  83. position: relative;
  84. }
  85. div.adm-bpb-icon-bg {
  86. background-color: #323c46;
  87. border-radius: 0.5rem;
  88. }
  89. div.adm-bpb-icon-cnt {
  90. position: absolute;
  91. top: 0px;
  92. left: 0px;
  93. }
  94. div.adm-bpb-icon-cnt .sys-icon {
  95. color: white;
  96. }
  97. div.adm-bpb-icon-cnt i.sys-icon {
  98. text-align: center;
  99. text-shadow: none;
  100. line-height: 2.5rem;
  101. font-size: 20px;
  102. }
  103. div.adm-bpb-icon img {
  104. border-radius: 0.5rem;
  105. }
  106. div.adm-bpb-info {
  107. -webkit-flex-grow: 2;
  108. flex-grow: 2;
  109. min-height: 2rem;
  110. }
  111. div.adm-bpb-title {
  112. display: -webkit-flex;
  113. display: flex;
  114. -webkit-align-items: center;
  115. align-items: center;
  116. padding-right: 1rem;
  117. white-space: nowrap;
  118. text-overflow: ellipsis;
  119. line-height: 1.25rem;
  120. letter-spacing: -0.4px;
  121. font-weight: 600;
  122. overflow: hidden;
  123. }
  124. div.adm-bpb-title .bx-std-api {
  125. margin-left: 0.25rem;
  126. }
  127. .bx-dir-rtl div.adm-bpb-title .bx-std-api {
  128. margin-left: 0;
  129. margin-right: 0.25rem;
  130. }
  131. div.adm-bpb-description {
  132. font-size: 0.75rem;
  133. }
  134. div.adm-bpb-drag-handle {
  135. text-align: center;
  136. line-height: 2rem;
  137. cursor: move;
  138. color: #666666;
  139. font-size: 0.875rem;
  140. }
  141. /*--- Add Block popup style ---*/
  142. div#adm-bp-create-block-popup div.bx-popup-content {
  143. padding-left: 0px;
  144. padding-right: 0px;
  145. }
  146. div.adm-bp-create-block-form {}
  147. div.adm-bp-create-block-form-cnt {}
  148. div.adm-bp-create-block-form fieldset.bx-form-section {
  149. padding-bottom: 0px;
  150. }
  151. div.adm-bp-create-block-form div.adm-bp-block:first-child {
  152. margin-top: 0px;
  153. }
  154. div.adm-bp-cbf-left {
  155. position: absolute;
  156. top: 0px;
  157. left: 0px;
  158. width: 14rem;
  159. height: 20rem;
  160. overflow-y: auto;
  161. }
  162. div.adm-bp-cbf-left-cnt {}
  163. div.adm-bp-cbf-right {
  164. position: relative;
  165. height: 20rem;
  166. margin-left: 14rem;
  167. overflow-y: auto;
  168. }
  169. div.adm-bp-cbf-right-cnt {}
  170. div.adm-bp-cbf-counter {
  171. position: relative;
  172. float: right;
  173. line-height: 38px;
  174. color: #b5b5b5;
  175. }
  176. /*--- Edit Block popup style ---*/
  177. div.adm-bp-edit-block-form {
  178. margin-top: 0px;
  179. }
  180. /*--- Uploader Ghost in Popup style ---*/
  181. div.bx-popup .bx-uploader-ghost .bx-ug-content input.bx-ug-url.bx-form-input-text {
  182. width: 18.0rem;
  183. }
  184. div.bx-popup .bx-uploader-ghost .bx-ug-content input.bx-ug-dimension.bx-form-input-text {
  185. width: 4.0rem;
  186. }
  187. /*--- Page Settings popups style: the popup content is the form itself, sidebar (8px inset, like the app pages' side menus) beside the
  188. settings (16px inset), the footer with the buttons under both (16px inset) behind a hairline; the wrappers the form renderer adds carry no spacing of their own. ---*/
  189. div#adm-bp-add-popup div.bx-popup-content,
  190. div#adm-bp-edit-popup div.bx-popup-content {
  191. padding: 0;
  192. }
  193. div.adm-bp-add-form-cnt > form > .bx-form-advanced-wrapper > .bx-form-section-wrapper,
  194. div.adm-bp-edit-form-cnt > form > .bx-form-advanced-wrapper > .bx-form-section-wrapper {
  195. margin: 0; /* the outer section only: the settings groups keep their own field spacing */
  196. }
  197. div.adm-bp-add-form-cnt > form > .bx-form-advanced-wrapper > .bx-form-section-wrapper > .bx-form-section,
  198. div.adm-bp-edit-form-cnt > form > .bx-form-advanced-wrapper > .bx-form-section-wrapper > .bx-form-section {
  199. border: 0;
  200. }
  201. div.adm-bp-add-form-cnt > form > .bx-form-advanced-wrapper > .bx-form-section-wrapper > .bx-form-section > .bx-form-section-content,
  202. div.adm-bp-edit-form-cnt > form > .bx-form-advanced-wrapper > .bx-form-section-wrapper > .bx-form-section > .bx-form-section-content {
  203. padding: 0;
  204. }
  205. div.adm-bp-add-form-cnt > form > .bx-form-advanced-wrapper > .bx-form-section-wrapper > .bx-form-section > .bx-form-section-content > .bx-form-element-wrapper,
  206. div.adm-bp-edit-form-cnt > form > .bx-form-advanced-wrapper > .bx-form-section-wrapper > .bx-form-section > .bx-form-section-content > .bx-form-element-wrapper {
  207. margin: 0;
  208. }
  209. div.adm-bp-add-form {}
  210. div.adm-bp-add-form-cnt {}
  211. div.adm-bp-edit-form {}
  212. div.adm-bp-edit-form-cnt {}
  213. div.adm-bp-add-form fieldset.bx-form-section,
  214. div.adm-bp-edit-form fieldset.bx-form-section {
  215. padding-bottom: 0px;
  216. }
  217. div.adm-bp-add-form div.bx-form-input-wrapper-custom,
  218. div.adm-bp-edit-form div.bx-form-input-wrapper-custom {
  219. position: relative;
  220. }
  221. /* The form fills the popup box: every wrapper down to the settings input is a shrinkable flex column, so the box (capped at the viewport
  222. less 2rem by the Studio popup rules) sizes to the content on a tall screen and the panels scroll inside it on a short one. */
  223. div#adm-bp-add-popup div.bx-popup-content,
  224. div#adm-bp-edit-popup div.bx-popup-content,
  225. :is(div#adm-bp-add-popup, div#adm-bp-edit-popup) :is(div.adm-bp-add-form, div.adm-bp-add-form-cnt, div.adm-bp-edit-form, div.adm-bp-edit-form-cnt, form.bx-form-advanced, .bx-form-advanced-wrapper, .bx-form-advanced-wrapper > .bx-form-section-wrapper, .bx-form-advanced-wrapper > .bx-form-section-wrapper > .bx-form-section, .bx-form-advanced-wrapper > .bx-form-section-wrapper > .bx-form-section > .bx-form-section-content, #bx-form-element-settings, #bx-form-element-settings > .bx-form-element, #bx-form-element-settings > .bx-form-element > .bx-form-value) {
  226. display: flex;
  227. flex-direction: column;
  228. flex: 1 1 auto;
  229. min-height: 0;
  230. }
  231. /* Sidebar | settings, the footer under both: a grid whose row is the sidebar's own height (seven 48px rows, six 2px gaps, 8px inset) at
  232. most, so the box keeps one height across the tabs, the settings scroll past it, and the row gives way when the viewport is short. */
  233. :is(div#adm-bp-add-popup, div#adm-bp-edit-popup) div.bx-form-input-wrapper-custom {
  234. display: grid;
  235. grid-template-columns: 14rem minmax(0, 1fr);
  236. grid-template-rows: minmax(0, 22.75rem) auto;
  237. flex: 1 1 auto;
  238. min-height: 0;
  239. }
  240. div.adm-bp-epf-left {
  241. grid-column: 1;
  242. grid-row: 1;
  243. min-height: 0;
  244. overflow-y: auto;
  245. box-shadow: 1px 0 0 0 rgba(0, 0, 0, 0.05); /* vertical hairline between the sidebar and the settings */
  246. }
  247. .dark div.adm-bp-epf-left {
  248. box-shadow: 1px 0 0 0 rgba(255, 255, 255, 0.025);
  249. }
  250. div.adm-bp-epf-left-cnt {}
  251. /* The modal's sidebar keeps the desktop row layout at every viewport: its column is 14rem wide, unlike the app pages' side menu that
  252. turns into a strip of square tiles under 1024px and a row of tabs under 768px (general.css). */
  253. div.adm-bp-epf-left div.bx-std-pmen-item {
  254. flex: none;
  255. height: 3rem;
  256. min-width: 0;
  257. margin-top: 0.125rem;
  258. }
  259. div.adm-bp-epf-left div.bx-std-pmen-item:first-child {
  260. margin-top: 0;
  261. }
  262. div.adm-bp-epf-left div.bx-std-pmen-item > a {
  263. display: block;
  264. height: auto;
  265. }
  266. div.adm-bp-epf-left div.bx-std-pmen-item-cnt {
  267. -webkit-flex-direction: row;
  268. flex-direction: row;
  269. -webkit-justify-content: flex-start;
  270. justify-content: flex-start;
  271. height: auto;
  272. padding: 0.5rem;
  273. }
  274. div.adm-bp-epf-left div.bx-std-pmen-item .bx-std-pmen-ic-icon {
  275. display: block;
  276. width: 2rem;
  277. height: 2rem;
  278. margin: 0 0.75rem 0 0;
  279. }
  280. .bx-dir-rtl div.adm-bp-epf-left div.bx-std-pmen-item .bx-std-pmen-ic-icon {
  281. margin: 0 0 0 0.75rem;
  282. }
  283. div.adm-bp-epf-left div.bx-std-pmen-item .bx-std-pmen-ic-title {
  284. display: block;
  285. -webkit-line-clamp: unset;
  286. max-width: none;
  287. margin-top: 0;
  288. font-size: 1rem;
  289. line-height: normal;
  290. text-align: start;
  291. white-space: nowrap;
  292. overflow-wrap: normal;
  293. }
  294. div.adm-bp-epf-right {
  295. grid-column: 2;
  296. grid-row: 1;
  297. min-height: 0;
  298. overflow-y: auto;
  299. }
  300. div.adm-bp-epf-right-cnt {}
  301. div.adm-bp-epf-controls {
  302. grid-column: 1 / -1;
  303. grid-row: 2;
  304. }
  305. div.adm-bp-epf-controls {
  306. box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.05); /* hairline over the footer, like the settings pages' Save footer */
  307. }
  308. .dark div.adm-bp-epf-controls {
  309. box-shadow: 0 -1px 0 0 rgba(255, 255, 255, 0.025);
  310. }
  311. div.adm-bp-epf-controls .bx-def-margin-sec-left {
  312. margin-left: 0.5rem;
  313. }
  314. /* Layout gallery: a grid that fills the panel (as many 104px-plus columns as fit, stretched to the width), each layout a card on the
  315. dashboard hero plate (translucent fill, 2.5% inset hairline, 16px radius) with its name under the picture, like the launcher tiles;
  316. the chosen one carries a 2px blue ring and a bold name. */
  317. div#adm-bp-settings-group-layout {
  318. display: grid;
  319. grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
  320. gap: 0.5rem;
  321. margin: 0;
  322. }
  323. div#adm-bp-settings-group-layout > .bx-std-cb {
  324. display: none; /* the float clearer would be an empty grid cell */
  325. }
  326. div#adm-bp-settings-group-layout > form {
  327. grid-column: 1 / -1; /* the hidden layout_id field: a zero-height row, not a cell */
  328. }
  329. div.adm-bp-layout {
  330. position: relative;
  331. border-radius: 1rem;
  332. background: rgba(0, 0, 0, 0.05);
  333. box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.025);
  334. transition: background-color 0.3s;
  335. }
  336. .dark div.adm-bp-layout {
  337. background: rgba(255, 255, 255, 0.025);
  338. box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025);
  339. }
  340. div.adm-bp-layout:hover {
  341. background: rgba(0, 0, 0, 0.1);
  342. }
  343. .dark div.adm-bp-layout:hover {
  344. background: rgba(255, 255, 255, 0.05);
  345. }
  346. div.adm-bp-layout-active,
  347. .dark div.adm-bp-layout-active {
  348. box-shadow: inset 0 0 0 2px rgb(59 130 246);
  349. }
  350. div.adm-bp-layout:has(a:focus-visible) {
  351. box-shadow: inset 0 0 0 2px rgb(59 130 246), 0 0 0 2px rgb(255 255 255), 0 0 0 4px rgb(59 130 246);
  352. }
  353. div.adm-bp-layout-cnt {
  354. padding: 0.5rem;
  355. }
  356. div.adm-bp-layout-cnt > a {
  357. display: -webkit-flex;
  358. display: flex;
  359. -webkit-flex-direction: column;
  360. flex-direction: column;
  361. -webkit-align-items: center;
  362. align-items: center;
  363. gap: 0.5rem;
  364. outline: none;
  365. text-decoration: none;
  366. }
  367. div.adm-bp-layout-cnt img {
  368. display: block;
  369. width: 66px;
  370. height: 66px;
  371. }
  372. span.adm-bp-layout-title {
  373. display: block;
  374. max-width: 100%;
  375. overflow: hidden;
  376. text-overflow: ellipsis;
  377. white-space: nowrap;
  378. font-size: 0.75rem;
  379. line-height: 1rem;
  380. text-align: center;
  381. color: rgb(75 85 99);
  382. }
  383. .dark span.adm-bp-layout-title {
  384. color: rgb(156 163 175);
  385. }
  386. div.adm-bp-layout-active span.adm-bp-layout-title {
  387. font-weight: 600;
  388. color: rgb(17 24 39);
  389. }
  390. .dark div.adm-bp-layout-active span.adm-bp-layout-title {
  391. color: rgb(255 255 255);
  392. }