review-panel-new.less 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775
  1. .review-panel-new {
  2. &.review-panel-container {
  3. height: 100%;
  4. flex-shrink: 0;
  5. position: relative;
  6. }
  7. .review-panel-inner {
  8. z-index: 6;
  9. flex-shrink: 0;
  10. background-color: @neutral-10;
  11. border-left: 1px solid @neutral-20;
  12. color: @content-primary;
  13. font-family: @font-family-base;
  14. line-height: @line-height-base;
  15. font-size: @font-size-01;
  16. box-sizing: content-box;
  17. width: var(--review-panel-width);
  18. min-height: var(--review-panel-height);
  19. }
  20. .review-panel-entry {
  21. background-color: white;
  22. border-radius: @border-radius-base-new;
  23. border: 1px solid @neutral-20;
  24. padding: @spacing-04;
  25. width: calc(100% - @spacing-04);
  26. margin-left: @spacing-02;
  27. z-index: 1;
  28. }
  29. .review-panel-entry:hover {
  30. // shadow-sm
  31. box-shadow: 0px 2px 4px rgba(30, 37, 48, 0.16);
  32. }
  33. .review-panel-entry.review-panel-entry-disabled {
  34. opacity: 0.5;
  35. pointer-events: none;
  36. }
  37. .review-panel-entry-indicator {
  38. display: none;
  39. }
  40. .review-panel-entry-content {
  41. display: flex;
  42. flex-direction: column;
  43. font-size: @font-size-01;
  44. gap: @spacing-04;
  45. }
  46. .review-panel-entry.review-panel-entry-selected,
  47. .review-panel-entry.review-panel-entry-highlighted,
  48. .review-panel-entry.review-panel-entry-textarea-focused {
  49. margin-left: @spacing-01;
  50. border: 1px solid @blue-50;
  51. // shadow-md
  52. box-shadow:
  53. 0px 4px 12px rgba(30, 37, 48, 0.12),
  54. 0px 2px 4px rgba(30, 37, 48, 0.08);
  55. }
  56. .review-panel-entry.review-panel-entry-focused {
  57. z-index: 2;
  58. }
  59. .review-panel-entry-header {
  60. display: flex;
  61. justify-content: space-between;
  62. .review-panel-entry-user {
  63. color: @content-primary;
  64. font-size: 110%;
  65. }
  66. .review-panel-entry-time {
  67. color: @content-secondary;
  68. }
  69. .review-panel-entry-actions {
  70. display: flex;
  71. align-items: center;
  72. gap: @spacing-03;
  73. .btn {
  74. background-color: transparent;
  75. padding: 0;
  76. height: 24px;
  77. width: 24px;
  78. &:hover,
  79. &:focus {
  80. background-color: @neutral-20;
  81. color: @content-primary;
  82. }
  83. }
  84. .review-panel-entry-actions-icon {
  85. padding: @spacing-01;
  86. font-size: @font-size-05;
  87. }
  88. }
  89. }
  90. .review-panel-entry-user-color-badge {
  91. display: inline-block;
  92. width: @spacing-04;
  93. height: @spacing-04;
  94. margin-right: @spacing-02;
  95. border-radius: @border-radius-small;
  96. }
  97. .review-panel-change-body {
  98. display: flex;
  99. align-items: flex-start;
  100. color: @content-secondary;
  101. gap: @spacing-02;
  102. overflow-wrap: anywhere;
  103. }
  104. .review-panel-content-highlight {
  105. color: @content-primary;
  106. text-decoration: none;
  107. }
  108. del.review-panel-content-highlight {
  109. text-decoration: line-through;
  110. }
  111. .review-panel-entry-icon {
  112. border-radius: @border-radius-base-new;
  113. padding: @spacing-02;
  114. font-size: @font-size-03;
  115. }
  116. .review-panel-entry-change-icon {
  117. margin-top: -2px;
  118. }
  119. .review-panel-entry-icon-accept {
  120. background-color: @green-10;
  121. color: @green-50;
  122. }
  123. .review-panel-entry-icon-reject {
  124. background-color: @red-10;
  125. color: @red-50;
  126. }
  127. .review-panel-entry-icon-changed {
  128. background-color: @neutral-20;
  129. color: @content-secondary;
  130. }
  131. .review-panel-header {
  132. position: sticky;
  133. top: 0;
  134. width: var(--review-panel-width);
  135. height: var(--review-panel-header-height);
  136. display: flex;
  137. flex-direction: column;
  138. justify-content: center;
  139. border-bottom: 1px solid @rp-border-grey;
  140. background-color: white;
  141. text-align: center;
  142. z-index: 4;
  143. }
  144. // TODO: Update this when we move the track changes menu to the new design
  145. .rp-tc-state {
  146. background-color: white;
  147. max-height: calc(
  148. 100vh - var(--review-panel-top) - var(--review-panel-header-height)
  149. );
  150. overflow-y: auto;
  151. }
  152. .review-panel-tools {
  153. display: flex;
  154. align-items: center;
  155. justify-content: space-between;
  156. padding-left: 4px;
  157. padding-right: 12px;
  158. flex-shrink: 0;
  159. flex-basis: 32px;
  160. }
  161. .review-panel-resolved-comments-toggle {
  162. background-color: @gray-lightest;
  163. font-size: 14px;
  164. color: lighten(@rp-type-blue, 25%);
  165. border: solid 1px @rp-border-grey;
  166. border-radius: 3px;
  167. padding: 0 4px;
  168. height: 22px;
  169. width: 22px;
  170. line-height: 1.4;
  171. display: flex;
  172. align-items: center;
  173. justify-content: center;
  174. &:hover,
  175. &:focus {
  176. text-decoration: none;
  177. color: @rp-type-blue;
  178. }
  179. }
  180. .review-panel-resolved-comments-toggle-reviewer-role {
  181. display: flex;
  182. align-items: center;
  183. border: none;
  184. background-color: transparent;
  185. color: @content-primary;
  186. padding: 2px;
  187. border-radius: 100%;
  188. &:hover,
  189. &:focus {
  190. background-color: @neutral-20;
  191. }
  192. }
  193. .track-changes-indicator-circle {
  194. width: 8px;
  195. height: 8px;
  196. border-radius: 100%;
  197. background-color: @green-50;
  198. }
  199. .track-changes-menu-button {
  200. border: none;
  201. background: none;
  202. padding: 0;
  203. display: flex;
  204. align-items: center;
  205. gap: 4px;
  206. font-size: @font-size-02;
  207. i {
  208. width: 8px;
  209. }
  210. }
  211. .review-panel-heading {
  212. display: flex;
  213. align-items: center;
  214. padding: 6px 4px;
  215. gap: 2px;
  216. .review-panel-label {
  217. font-family: Lato, sans-serif;
  218. font-size: @font-size-02;
  219. font-weight: bold;
  220. margin: 0;
  221. flex: 1;
  222. text-align: start;
  223. }
  224. .review-panel-split-test-badge {
  225. margin-left: 4px;
  226. }
  227. .review-panel-close-button {
  228. display: flex;
  229. align-items: center;
  230. border: none;
  231. background-color: transparent;
  232. color: @content-primary;
  233. padding: 2px;
  234. &:hover,
  235. &:focus {
  236. background-color: @neutral-20;
  237. }
  238. }
  239. }
  240. &.review-panel-resolved-comments {
  241. width: 280px;
  242. .popover-content {
  243. background-color: @neutral-10;
  244. overflow-y: auto;
  245. max-height: calc(100vh - 180px);
  246. display: flex;
  247. flex-direction: column;
  248. gap: 4px;
  249. padding: 8px 6px;
  250. }
  251. }
  252. .review-panel-resolved-disabled {
  253. opacity: 0.5;
  254. pointer-events: none;
  255. }
  256. .review-panel-resolved-comments-empty {
  257. text-align: center;
  258. }
  259. .review-panel-resolved-comments-header {
  260. display: flex;
  261. justify-content: space-between;
  262. align-items: center;
  263. padding: 4px 0;
  264. }
  265. .review-panel-resolved-comments-label {
  266. font-weight: bold;
  267. font-size: 14px;
  268. }
  269. .review-panel-resolved-comments-count {
  270. color: @content-secondary;
  271. background-color: @neutral-20;
  272. font-weight: normal;
  273. padding: 4px;
  274. }
  275. .review-panel-resolved-comment {
  276. background-color: white;
  277. border-radius: @border-radius-base-new;
  278. padding: @spacing-04;
  279. display: flex;
  280. flex-direction: column;
  281. gap: @spacing-04;
  282. }
  283. .review-panel-resolved-comment-header {
  284. display: flex;
  285. justify-content: space-between;
  286. align-items: center;
  287. color: @content-secondary;
  288. font-size: 12px;
  289. }
  290. .review-panel-resolved-comment-filename {
  291. color: @content-primary;
  292. }
  293. .review-panel-resolved-comment-buttons {
  294. display: flex;
  295. align-items: center;
  296. gap: @spacing-03;
  297. .btn {
  298. background-color: transparent;
  299. color: @content-primary;
  300. padding: @spacing-01;
  301. height: 24px;
  302. width: 24px;
  303. &:hover,
  304. &:focus {
  305. background-color: @neutral-20;
  306. }
  307. }
  308. .material-symbols {
  309. font-size: 20px;
  310. }
  311. }
  312. .review-panel-resolved-comment-quoted-text {
  313. background-color: @neutral-20;
  314. border-radius: @border-radius-base-new;
  315. padding: 4px 8px;
  316. .btn-inline-link {
  317. font-size: 12px;
  318. }
  319. }
  320. .review-panel-resolved-comment-quoted-text-label {
  321. color: @content-secondary;
  322. font-size: 12px;
  323. }
  324. .review-panel-resolved-comment-quoted-text-quote {
  325. color: @content-primary;
  326. overflow-wrap: anywhere;
  327. font-size: 14px;
  328. }
  329. .review-panel-comment-wrapper {
  330. display: flex;
  331. gap: @spacing-04;
  332. }
  333. .review-panel-comment {
  334. flex-grow: 1;
  335. }
  336. .review-panel-comment-reply-divider {
  337. border-left: 2px solid @yellow-20;
  338. }
  339. .review-panel-comment-body {
  340. font-size: @font-size-02;
  341. color: @content-primary;
  342. overflow-wrap: anywhere;
  343. white-space: pre-wrap;
  344. }
  345. .review-panel-expandable-content {
  346. display: inline;
  347. padding-right: var(--spacing-02);
  348. }
  349. .review-panel-expandable-inline {
  350. display: inline;
  351. }
  352. .review-panel-expandable-links {
  353. .btn-inline-link {
  354. text-decoration: none;
  355. line-height: 1;
  356. }
  357. .btn-inline-link:hover {
  358. text-decoration: underline;
  359. }
  360. }
  361. .review-panel-comment-input {
  362. width: 100%;
  363. font-size: @rp-base-font-size;
  364. padding: 2px @spacing-03;
  365. border-radius: @border-radius-base-new;
  366. border: solid 1px @neutral-60;
  367. resize: vertical;
  368. color: @rp-type-darkgrey;
  369. background-color: #fff;
  370. height: 25px;
  371. min-height: 25px;
  372. overflow-x: hidden;
  373. max-height: 400px;
  374. }
  375. .review-panel-comment-edit {
  376. margin-top: var(--spacing-03);
  377. }
  378. .review-panel-empty-state {
  379. position: fixed;
  380. width: var(--review-panel-width);
  381. top: 0;
  382. bottom: 0;
  383. pointer-events: none;
  384. }
  385. .review-panel-empty-state-inner {
  386. position: sticky;
  387. top: 50%;
  388. transform: translateY(-50%);
  389. width: 100%;
  390. padding-left: 16px;
  391. padding-right: 16px;
  392. display: flex;
  393. justify-content: center;
  394. align-items: center;
  395. flex-direction: column;
  396. p {
  397. margin-bottom: 0;
  398. text-align: center;
  399. }
  400. }
  401. .review-panel-empty-state-comment-icon {
  402. width: 80px;
  403. height: 80px;
  404. background-color: white;
  405. border-radius: 100%;
  406. display: flex;
  407. align-items: center;
  408. justify-content: center;
  409. margin-bottom: 16px;
  410. .material-symbols {
  411. font-size: 32px;
  412. }
  413. }
  414. .review-panel-overview {
  415. padding: 4px;
  416. position: absolute;
  417. top: var(--review-panel-header-height);
  418. bottom: 59px;
  419. width: 100%;
  420. overflow: auto;
  421. overscroll-behavior-block: none;
  422. .review-panel-entry {
  423. margin-left: 0;
  424. width: 100%;
  425. }
  426. }
  427. .collapsible-file-header {
  428. all: unset;
  429. padding: 6px 8px;
  430. font-size: 14px;
  431. cursor: pointer;
  432. display: flex;
  433. align-items: center;
  434. gap: 8px;
  435. box-sizing: border-box;
  436. width: 100%;
  437. }
  438. .review-panel-overfile-divider {
  439. border-bottom: 1px solid #e7e9ee;
  440. margin: 2px 0;
  441. }
  442. .review-panel-overview-file-entries {
  443. display: flex;
  444. flex-direction: column;
  445. gap: 4px;
  446. overflow: hidden;
  447. padding-top: 4px;
  448. padding-bottom: 6px;
  449. }
  450. .collapsible-file-header-count {
  451. background-color: @neutral-20;
  452. padding: 2px 4px;
  453. margin-left: auto;
  454. border-radius: @border-radius-base;
  455. }
  456. .review-panel-footer {
  457. position: fixed;
  458. height: 60px;
  459. bottom: 0;
  460. width: var(--review-panel-width);
  461. z-index: 2;
  462. background-color: white;
  463. border-top: 1px solid @rp-border-grey;
  464. display: flex;
  465. .review-panel-tab {
  466. flex: 0 0 50%;
  467. padding: 6px 0;
  468. display: flex;
  469. flex-direction: column;
  470. align-items: center;
  471. gap: 4px;
  472. border: 0;
  473. border-top: solid 3px transparent;
  474. background: none;
  475. color: @content-secondary;
  476. font-size: @font-size-02;
  477. &:hover,
  478. &:focus {
  479. text-decoration: none;
  480. color: @content-primary;
  481. }
  482. &-active {
  483. color: @content-primary;
  484. border-top: solid 3px @green-50;
  485. }
  486. }
  487. }
  488. .review-panel-add-comment-textarea {
  489. padding: 2px 6px;
  490. resize: vertical;
  491. min-height: 44px;
  492. }
  493. .review-panel-add-comment-buttons {
  494. display: flex;
  495. justify-content: flex-end;
  496. gap: 8px;
  497. }
  498. .review-panel-add-comment-cancel-button {
  499. background-color: transparent;
  500. &:hover,
  501. &:focus {
  502. background-color: @neutral-20;
  503. color: @content-primary;
  504. }
  505. }
  506. .review-panel-more-comments-button-container {
  507. position: fixed;
  508. width: var(--review-panel-width);
  509. display: flex;
  510. justify-content: center;
  511. z-index: 3;
  512. &.downwards {
  513. // TODO: fix this to not use a magic number when we have updated the footer ui
  514. top: calc(100% - 102px);
  515. }
  516. &.upwards {
  517. top: calc(
  518. var(--review-panel-top) + var(--review-panel-header-height) + 16px
  519. );
  520. }
  521. }
  522. // Would not be migrated
  523. .review-panel-more-comments-button {
  524. display: flex;
  525. justify-content: center;
  526. align-items: center;
  527. }
  528. &.review-panel-subview-overview {
  529. &.review-panel-container {
  530. overflow-y: hidden;
  531. position: sticky;
  532. top: 0;
  533. }
  534. .review-panel-inner {
  535. min-height: auto;
  536. height: 100%;
  537. overflow: hidden;
  538. }
  539. }
  540. &.review-panel-mini {
  541. overflow: visible !important;
  542. .review-panel-inner {
  543. width: 24px;
  544. }
  545. .review-panel-entry {
  546. margin-left: 0;
  547. background-color: transparent;
  548. border: none;
  549. width: 100%;
  550. }
  551. .review-panel-entry:hover,
  552. .review-panel-entry-focused,
  553. .review-panel-entry-highlighted {
  554. box-shadow: none;
  555. }
  556. .review-panel-entry-indicator {
  557. position: absolute;
  558. left: 0;
  559. top: 0;
  560. display: flex;
  561. color: @content-secondary;
  562. cursor: pointer;
  563. }
  564. .review-panel-entry-content {
  565. display: none;
  566. background: white;
  567. border: 1px solid @rp-border-grey;
  568. border-radius: @border-radius-base-new;
  569. width: 200px;
  570. padding: @spacing-02;
  571. }
  572. .review-panel-entry-hover {
  573. .review-panel-entry-content {
  574. display: flex;
  575. position: absolute;
  576. left: -200px;
  577. top: 0;
  578. padding: @spacing-04;
  579. }
  580. }
  581. .review-panel-more-comments-button-container {
  582. display: none;
  583. }
  584. .review-panel-footer {
  585. display: none;
  586. }
  587. }
  588. }
  589. .review-tooltip-menu {
  590. display: flex;
  591. box-shadow: 0px 2px 4px 0px #1e253029;
  592. border: none;
  593. border-radius: 4px;
  594. padding: 4px;
  595. gap: 4px;
  596. transition: opacity 0.05s ease-in;
  597. opacity: 0;
  598. }
  599. .review-tooltip-menu-visible {
  600. opacity: 1;
  601. }
  602. .review-tooltip-menu-button {
  603. background-color: inherit;
  604. border: none;
  605. display: flex;
  606. align-items: center;
  607. gap: 2px;
  608. padding: 2px;
  609. border-radius: @border-radius-base;
  610. }
  611. .review-tooltip-menu-divider {
  612. width: 1px;
  613. background-color: #e7e9ee;
  614. }
  615. .review-tooltip-add-comment-button {
  616. padding: 2px 8px;
  617. }
  618. .review-panel-tooltip {
  619. pointer-events: none; // this is to prevent mouseLeave event from firing when hovering over the tooltip
  620. }
  621. .review-panel-in-editor-widgets {
  622. position: sticky;
  623. top: 0;
  624. right: 0;
  625. font-size: 11px;
  626. z-index: 2;
  627. font-family: @font-family-sans-serif;
  628. .review-panel-in-editor-widgets-inner {
  629. position: absolute;
  630. top: 0;
  631. right: 0;
  632. display: flex;
  633. flex-direction: column;
  634. }
  635. .review-panel-track-changes-indicator {
  636. border: 0;
  637. }
  638. }
  639. .review-panel-track-changes-indicator {
  640. display: block;
  641. padding: 5px 10px;
  642. background-color: rgba(240, 240, 240, 0.9);
  643. color: @rp-type-blue;
  644. text-align: center;
  645. border-bottom-left-radius: 3px;
  646. white-space: nowrap;
  647. &.review-panel-track-changes-indicator-on-dark {
  648. background-color: rgba(88, 88, 88, 0.8);
  649. color: #fff;
  650. &:hover,
  651. &:focus {
  652. background-color: rgba(88, 88, 88, 1);
  653. color: #fff;
  654. }
  655. }
  656. &:hover,
  657. &:focus {
  658. outline: 0;
  659. text-decoration: none;
  660. background-color: rgba(240, 240, 240, 1);
  661. color: @rp-type-blue;
  662. }
  663. }