plugins.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  1. :root {
  2. --ls-draggable-handle-height: 30px;
  3. }
  4. .cp__plugins {
  5. &-page {
  6. background-color: var(--ls-primary-background-color);
  7. margin: -2rem;
  8. padding: 1.5rem 2rem;
  9. outline: none;
  10. @screen xl {
  11. width: 1260px;
  12. }
  13. > h1 {
  14. margin: 0;
  15. padding: 0;
  16. font-size: 22px;
  17. font-weight: 600;
  18. }
  19. .admonitionblock {
  20. margin: 1rem 15px;
  21. .text-lg {
  22. font-size: 16px;
  23. }
  24. }
  25. .tabs {
  26. .ui__button {
  27. background-color: transparent;
  28. margin: 0 8px;
  29. > span {
  30. display: flex;
  31. align-items: center;
  32. font-size: 16px;
  33. font-weight: normal;
  34. svg {
  35. margin-right: 6px;
  36. }
  37. }
  38. &.active {
  39. background-color: var(--ls-tertiary-background-color);
  40. }
  41. }
  42. }
  43. .secondary-tabs {
  44. button {
  45. margin-right: 5px;
  46. background: transparent;
  47. .ti {
  48. margin-right: 3px;
  49. }
  50. &.active {
  51. background: var(--ls-secondary-background-color);
  52. color: var(--ls-link-text-color);
  53. }
  54. }
  55. }
  56. .control-tabs {
  57. .ti {
  58. margin-right: 4px;
  59. }
  60. .ui__dropdown-trigger {
  61. .ti-circle {
  62. visibility: hidden;
  63. }
  64. }
  65. }
  66. .ui__button {
  67. position: relative;
  68. border: none;
  69. &:active {
  70. opacity: .8;
  71. }
  72. &.contribute {
  73. position: absolute;
  74. top: -46px;
  75. right: 0;
  76. background: transparent;
  77. font-size: 12px;
  78. opacity: .8;
  79. display: none;
  80. @screen md {
  81. display: block;
  82. }
  83. }
  84. &.load-unpacked {
  85. opacity: .9;
  86. background: transparent;
  87. }
  88. &.sort-or-filter-by, &.more-do {
  89. padding: 0 4px;
  90. }
  91. &.picked {
  92. &:after {
  93. content: " ";
  94. position: absolute;
  95. top: -2px;
  96. right: 4px;
  97. background-color: red;
  98. width: 4px;
  99. height: 4px;
  100. border-radius: 50%;
  101. }
  102. }
  103. }
  104. .search-ctls {
  105. margin: 3px 13px;
  106. display: flex;
  107. align-items: center;
  108. position: relative;
  109. small.s1 {
  110. left: 6px;
  111. top: 6px;
  112. }
  113. small.s2 {
  114. right: 4px;
  115. top: 6px;
  116. user-select: none;
  117. cursor: pointer;
  118. z-index: 1;
  119. }
  120. .form-input {
  121. background-color: var(--ls-primary-background-color);
  122. padding: 5px 7px 5px 22px;
  123. opacity: .5;
  124. &:focus {
  125. background-color: var(--ls-secondary-background-color);
  126. opacity: 1;
  127. }
  128. }
  129. }
  130. }
  131. &-installed {
  132. min-height: 60vh;
  133. padding-top: 5px;
  134. }
  135. &-marketplace {
  136. min-height: 60vh;
  137. padding-top: 5px;
  138. &.has-installing {
  139. .ctl {
  140. a.btn {
  141. pointer-events: none;
  142. }
  143. }
  144. }
  145. }
  146. &-item-lists {
  147. @apply w-full grid grid-flow-row gap-3 pt-1;
  148. }
  149. &-item-card {
  150. @apply flex py-3 px-1 rounded-md;
  151. background-color: var(--ls-secondary-background-color);
  152. height: 150px;
  153. li {
  154. margin: 0;
  155. }
  156. .head {
  157. max-height: 50px;
  158. overflow: hidden;
  159. line-height: 24px;
  160. padding-right: 24px;
  161. }
  162. .desc {
  163. height: 60px;
  164. overflow: hidden;
  165. > p {
  166. @apply overflow-hidden overflow-ellipsis;
  167. display: -webkit-box;
  168. -webkit-line-clamp: 2;
  169. -webkit-box-orient: vertical;
  170. }
  171. }
  172. .flag {
  173. position: absolute;
  174. bottom: 16px;
  175. left: 0;
  176. width: 100%;
  177. > p {
  178. color: var(--ls-primary-text-color);
  179. opacity: .8;
  180. > small {
  181. cursor: pointer;
  182. }
  183. }
  184. &.is-top {
  185. width: unset;
  186. top: 4px;
  187. right: 6px;
  188. left: unset;
  189. bottom: unset;
  190. &:hover {
  191. opacity: .8;
  192. }
  193. }
  194. }
  195. > .l {
  196. padding: 8px;
  197. svg, .icon {
  198. width: 60px;
  199. height: 60px;
  200. opacity: .8;
  201. &:hover {
  202. opacity: 1;
  203. }
  204. }
  205. }
  206. > .r {
  207. flex: 1;
  208. position: relative;
  209. p {
  210. @apply py-1 m-0;
  211. }
  212. .ctl {
  213. @apply flex pl-2 items-center justify-between absolute w-full;
  214. bottom: -8px;
  215. right: 7px;
  216. .de {
  217. font-size: 10px;
  218. padding: 5px 2px;
  219. padding-right: 3px;
  220. border-radius: 2px;
  221. margin-right: 5px;
  222. user-select: none;
  223. transition: none;
  224. opacity: .2;
  225. position: relative;
  226. z-index: var(--ls-z-index-level-1);
  227. .ti {
  228. font-size: 16px;
  229. }
  230. .menu-list {
  231. @apply shadow-md rounded-sm absolute hidden list-none overflow-hidden m-0 p-0;
  232. background-color: var(--ls-primary-background-color);
  233. top: 22px;
  234. left: 0;
  235. min-width: 120px;
  236. > li {
  237. margin: 0;
  238. padding: 5px;
  239. transition: background-color .2s;
  240. user-select: none;
  241. font-weight: bold;
  242. opacity: .9;
  243. &:hover {
  244. background-color: var(--ls-quaternary-background-color);
  245. &:active {
  246. opacity: 1;
  247. }
  248. }
  249. }
  250. }
  251. &.err {
  252. @apply text-red-500 opacity-100;
  253. }
  254. &.log {
  255. padding: 5px;
  256. }
  257. &.sponsors {
  258. .menu-list {
  259. min-width: auto;
  260. white-space: nowrap;
  261. > li {
  262. &:hover {
  263. background-color: unset;
  264. }
  265. }
  266. .ti {
  267. font-size: 12px;
  268. }
  269. }
  270. }
  271. svg {
  272. width: 15px;
  273. height: 15px;
  274. }
  275. &:hover {
  276. opacity: .9;
  277. .menu-list {
  278. display: block;
  279. }
  280. }
  281. }
  282. > .l {
  283. @apply flex items-center;
  284. margin-left: -70px;
  285. }
  286. a.btn {
  287. display: inline-flex;
  288. align-items: center;
  289. line-height: 1;
  290. padding: 4px;
  291. font-size: 13px;
  292. border-radius: 2px;
  293. user-select: none;
  294. position: relative;
  295. margin-left: 4px;
  296. svg {
  297. opacity: .3;
  298. }
  299. &:hover {
  300. svg {
  301. opacity: .8;
  302. }
  303. }
  304. &:active {
  305. opacity: .6;
  306. }
  307. &.disabled {
  308. pointer-events: none;
  309. cursor: default;
  310. color: var(--ls-primary-text-color);
  311. opacity: .3;
  312. }
  313. &.installing {
  314. small {
  315. position: absolute;
  316. transform: scale(.5) translateX(-180%);
  317. margin-right: 2px;
  318. }
  319. }
  320. }
  321. .ui__toggle {
  322. margin-left: 5px;
  323. }
  324. }
  325. }
  326. &.market {
  327. &.installed {
  328. }
  329. .ctl {
  330. padding-left: 12px;
  331. bottom: -5px;
  332. }
  333. }
  334. .updates-actions {
  335. opacity: 0;
  336. }
  337. &:hover {
  338. .updates-actions {
  339. opacity: 1;
  340. }
  341. }
  342. &.has-new-version, &.updating {
  343. .updates-actions {
  344. opacity: 1;
  345. }
  346. }
  347. &.market.installed {
  348. opacity: .5;
  349. &:hover {
  350. opacity: 1;
  351. }
  352. }
  353. }
  354. &-details {
  355. }
  356. &-waiting-updates {
  357. margin: -15px;
  358. > ul {
  359. li {
  360. user-select: none;
  361. justify-content: space-between;
  362. opacity: .9;
  363. sup {
  364. padding-left: 8px;
  365. font-weight: 400;
  366. }
  367. &:hover, &.checked {
  368. opacity: 1;
  369. }
  370. }
  371. }
  372. }
  373. &-settings {
  374. &-inner {
  375. position: relative;
  376. padding: 10px 0 20px;
  377. > .edit-file {
  378. position: absolute;
  379. top: 12px;
  380. right: 8px;
  381. }
  382. .heading-item {
  383. margin: 12px 12px 6px;
  384. font-weight: bold;
  385. border-bottom: 1px solid var(--ls-border-color, #738694);
  386. }
  387. .desc-item {
  388. padding: 12px 12px 6px;
  389. > h2 {
  390. padding-bottom: 2px;
  391. font-weight: 600;
  392. font-size: 13px;
  393. line-height: 1;
  394. display: flex;
  395. align-items: center;
  396. code {
  397. margin-right: 4px;
  398. line-height: 1.2;
  399. }
  400. }
  401. > .form-control {
  402. display: flex;
  403. align-items: center;
  404. padding: 5px 2px;
  405. > small {
  406. user-select: none;
  407. }
  408. }
  409. &.as-toggle {
  410. }
  411. &.as-input, &.as-enum, &.as-object {
  412. > .form-control {
  413. padding-top: 4px;
  414. flex-direction: column;
  415. align-items: flex-start;
  416. small {
  417. padding-bottom: 6px;
  418. width: 100%;
  419. }
  420. }
  421. }
  422. &.as-enum {
  423. > .form-control {
  424. > .wrap {
  425. flex-direction: column;
  426. width: 100%;
  427. margin-top: -3px;
  428. }
  429. }
  430. }
  431. &:hover {
  432. background: var(--ls-tertiary-background-color);
  433. }
  434. .ui__radio-list, .ui__checkbox-list {
  435. display: flex;
  436. align-items: center;
  437. padding-top: 3px;
  438. label {
  439. padding-right: 15px;
  440. user-select: none;
  441. }
  442. input {
  443. margin-right: 6px;
  444. }
  445. }
  446. .form-input {
  447. padding: 5px;
  448. width: 70%;
  449. }
  450. textarea.form-input {
  451. overflow-y: auto;
  452. resize: vertical;
  453. }
  454. .form-select {
  455. width: 50%;
  456. padding: 4px 4px 4px 7px !important;
  457. margin: 5px 0 0;
  458. }
  459. }
  460. }
  461. aside {
  462. max-height: 70vh;
  463. overflow: auto;
  464. margin-bottom: -17px;
  465. ul {
  466. img.icon {
  467. height: 24px;
  468. width: 24px;
  469. }
  470. li {
  471. strong {
  472. font-weight: 400;
  473. overflow: hidden;
  474. height: 22px;
  475. text-overflow: ellipsis;
  476. white-space: nowrap;
  477. }
  478. }
  479. }
  480. }
  481. article .panel-wrap {
  482. padding: 0;
  483. min-width: 600px;
  484. width: 100%;
  485. max-width: 760px;
  486. }
  487. }
  488. }
  489. .cp__themes {
  490. &-installed {
  491. margin: -2rem;
  492. outline: none;
  493. padding: 1rem;
  494. .it {
  495. user-select: none;
  496. background-color: var(--ls-secondary-background-color);
  497. border: 1px solid transparent;
  498. margin-bottom: 4px;
  499. cursor: pointer;
  500. opacity: .8;
  501. .name {
  502. font-weight: 600;
  503. }
  504. &.is-active {
  505. background-color: var(--ls-tertiary-background-color);
  506. border: 1px solid var(--ls-quaternary-background-color);
  507. opacity: 1;
  508. }
  509. &.is-selected {
  510. opacity: 1;
  511. }
  512. &:hover {
  513. opacity: 1;
  514. }
  515. }
  516. }
  517. }
  518. .lsp-iframe-sandbox, .lsp-shadow-sandbox, .lsp-ui-float {
  519. height: 100%;
  520. width: 100%;
  521. position: absolute;
  522. top: 0;
  523. left: 0;
  524. right: 0;
  525. bottom: 0;
  526. margin: 0;
  527. padding: 0;
  528. &-container {
  529. position: absolute;
  530. top: 0;
  531. left: 0;
  532. z-index: -1;
  533. visibility: hidden;
  534. display: none;
  535. height: 0;
  536. width: 0;
  537. padding: 0;
  538. margin: 0;
  539. &.visible {
  540. z-index: var(--ls-z-index-level-2);
  541. width: 100%;
  542. height: 100%;
  543. visibility: visible;
  544. display: block;
  545. }
  546. &[draggable=true] {
  547. -webkit-user-drag: none;
  548. > .draggable-handle {
  549. display: block;
  550. height: var(--ls-draggable-handle-height);
  551. cursor: move;
  552. user-select: none;
  553. position: absolute;
  554. top: 0;
  555. left: 0;
  556. width: 100%;
  557. overflow: hidden;
  558. > .th {
  559. display: flex;
  560. align-items: center;
  561. height: var(--ls-draggable-handle-height);
  562. user-select: none;
  563. position: relative;
  564. background-color: var(--ls-secondary-background-color);
  565. color: var(--ls-primary-text-color);
  566. > .l {
  567. flex-basis: 80%;
  568. }
  569. > .r {
  570. position: absolute;
  571. right: 0;
  572. top: 0;
  573. }
  574. h3 {
  575. padding: 0 5px;
  576. white-space: nowrap;
  577. max-width: 60%;
  578. overflow: hidden;
  579. -webkit-line-clamp: 1;
  580. text-overflow: ellipsis;
  581. }
  582. a.button {
  583. &:hover {
  584. background-color: transparent;
  585. }
  586. }
  587. }
  588. }
  589. .lsp-iframe-sandbox,
  590. .lsp-shadow-sandbox,
  591. .ls-ui-float-content {
  592. height: calc(100% - var(--ls-draggable-handle-height));
  593. width: 100%;
  594. margin-top: var(--ls-draggable-handle-height);
  595. overflow: auto;
  596. }
  597. .ls-ui-float-content {
  598. user-select: text;
  599. }
  600. &.is-dragging {
  601. /*height: var(--ls-draggable-handle-height) !important;*/
  602. opacity: .7;
  603. > .draggable-handle {
  604. background-color: rgba(0, 0, 0, .1);
  605. height: 100%;
  606. z-index: 3;
  607. }
  608. }
  609. }
  610. &[resizable=true] {
  611. > .resizable-handle {
  612. position: absolute;
  613. bottom: -1px;
  614. right: -1px;
  615. height: 15px;
  616. width: 15px;
  617. z-index: 2;
  618. opacity: 0;
  619. cursor: nwse-resize;
  620. user-select: none;
  621. }
  622. &.is-resizing {
  623. > .resizable-handle {
  624. width: 90%;
  625. height: 80%;
  626. }
  627. }
  628. }
  629. }
  630. }
  631. .lsp-ui-float-container {
  632. top: 40%;
  633. left: 30%;
  634. border: 2px solid var(--ls-border-color);
  635. .draggable-handle {
  636. }
  637. &.visible {
  638. height: unset;
  639. }
  640. }
  641. .ui-items-container {
  642. &[data-type=toolbar] {
  643. @apply flex items-center;
  644. > .injected-ui-item-toolbar {
  645. @apply hover:opacity-100 transition-opacity;
  646. }
  647. }
  648. &[data-type=pagebar] {
  649. @apply flex items-start pl-2;
  650. > .injected-ui-item-pagebar {
  651. @apply pr-3 opacity-30 hover:opacity-100 transition-opacity;
  652. }
  653. }
  654. .toolbar-plugins-manager {
  655. &-trigger {
  656. .dropdown-wrapper {
  657. max-height: 80vh;
  658. overflow-y: auto;
  659. }
  660. .menu-link {
  661. padding: 3px 5px;
  662. }
  663. .item-wrap {
  664. padding-right: 28px;
  665. font-size: 13px;
  666. position: relative;
  667. div[data-injected-ui] .ti {
  668. position: relative;
  669. bottom: -1px;
  670. }
  671. }
  672. .pin {
  673. position: absolute;
  674. top: 0;
  675. right: 0;
  676. height: 100%;
  677. padding: 0 6px;
  678. &.pinned {
  679. color: var(--ls-link-ref-text-color);
  680. opacity: 90;
  681. }
  682. }
  683. }
  684. }
  685. }
  686. .lsp-frame-readme {
  687. margin: -2rem;
  688. min-height: 75vh;
  689. min-width: 900px;
  690. }
  691. html[data-theme='dark'] {
  692. .lsp-frame-readme {
  693. background-color: #eeeeee;
  694. }
  695. }
  696. .block-content {
  697. .lsp-hook-ui-slot {
  698. display: inline-flex;
  699. [data-injected-ui] {
  700. display: inline-flex;
  701. }
  702. }
  703. }
  704. body[data-page=plugins] {
  705. .cp__sidebar-main-content {
  706. max-width: 1280px !important;
  707. width: 80%;
  708. padding-left: 30px;
  709. padding-right: 30px;
  710. }
  711. }