You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

919 lines
15 KiB

  1. $no-columns-breakpoint: 600px;
  2. $sidebar-width: 240px;
  3. $content-width: 840px;
  4. .admin-wrapper {
  5. display: flex;
  6. justify-content: center;
  7. width: 100%;
  8. min-height: 100vh;
  9. .sidebar-wrapper {
  10. min-height: 100vh;
  11. overflow: hidden;
  12. pointer-events: none;
  13. flex: 1 1 auto;
  14. &__inner {
  15. display: flex;
  16. justify-content: flex-end;
  17. background: $ui-base-color;
  18. height: 100%;
  19. }
  20. }
  21. .sidebar {
  22. width: $sidebar-width;
  23. padding: 0;
  24. pointer-events: auto;
  25. &__toggle {
  26. display: none;
  27. background: lighten($ui-base-color, 8%);
  28. height: 48px;
  29. &__logo {
  30. flex: 1 1 auto;
  31. a {
  32. display: inline-block;
  33. padding: 15px;
  34. }
  35. svg {
  36. fill: $primary-text-color;
  37. height: 20px;
  38. position: relative;
  39. bottom: -2px;
  40. }
  41. }
  42. &__icon {
  43. display: block;
  44. color: $darker-text-color;
  45. text-decoration: none;
  46. flex: 0 0 auto;
  47. font-size: 20px;
  48. padding: 15px;
  49. }
  50. a {
  51. &:hover,
  52. &:focus,
  53. &:active {
  54. background: lighten($ui-base-color, 12%);
  55. }
  56. }
  57. }
  58. .logo {
  59. display: block;
  60. margin: 40px auto;
  61. width: 100px;
  62. height: 100px;
  63. }
  64. @media screen and (max-width: $no-columns-breakpoint) {
  65. & > a:first-child {
  66. display: none;
  67. }
  68. }
  69. ul {
  70. list-style: none;
  71. border-radius: 4px 0 0 4px;
  72. overflow: hidden;
  73. margin-bottom: 20px;
  74. @media screen and (max-width: $no-columns-breakpoint) {
  75. margin-bottom: 0;
  76. }
  77. a {
  78. display: block;
  79. padding: 15px;
  80. color: $darker-text-color;
  81. text-decoration: none;
  82. transition: all 200ms linear;
  83. transition-property: color, background-color;
  84. border-radius: 4px 0 0 4px;
  85. white-space: nowrap;
  86. overflow: hidden;
  87. text-overflow: ellipsis;
  88. i.fa {
  89. margin-right: 5px;
  90. }
  91. &:hover {
  92. color: $primary-text-color;
  93. background-color: darken($ui-base-color, 5%);
  94. transition: all 100ms linear;
  95. transition-property: color, background-color;
  96. }
  97. &.selected {
  98. background: darken($ui-base-color, 2%);
  99. border-radius: 4px 0 0;
  100. }
  101. }
  102. ul {
  103. background: darken($ui-base-color, 4%);
  104. border-radius: 0 0 0 4px;
  105. margin: 0;
  106. a {
  107. border: 0;
  108. padding: 15px 35px;
  109. }
  110. }
  111. .simple-navigation-active-leaf a {
  112. color: $primary-text-color;
  113. background-color: $ui-highlight-color;
  114. border-bottom: 0;
  115. border-radius: 0;
  116. &:hover {
  117. background-color: lighten($ui-highlight-color, 5%);
  118. }
  119. }
  120. }
  121. & > ul > .simple-navigation-active-leaf a {
  122. border-radius: 4px 0 0 4px;
  123. }
  124. }
  125. .content-wrapper {
  126. box-sizing: border-box;
  127. width: 100%;
  128. max-width: $content-width;
  129. flex: 1 1 auto;
  130. }
  131. @media screen and (max-width: $content-width + $sidebar-width) {
  132. .sidebar-wrapper--empty {
  133. display: none;
  134. }
  135. .sidebar-wrapper {
  136. width: $sidebar-width;
  137. flex: 0 0 auto;
  138. }
  139. }
  140. @media screen and (max-width: $no-columns-breakpoint) {
  141. .sidebar-wrapper {
  142. width: 100%;
  143. }
  144. }
  145. .content {
  146. padding: 55px 15px 20px 25px;
  147. @media screen and (max-width: $no-columns-breakpoint) {
  148. max-width: none;
  149. padding: 15px;
  150. padding-top: 30px;
  151. }
  152. &-heading {
  153. display: flex;
  154. padding-bottom: 36px;
  155. border-bottom: 1px solid lighten($ui-base-color, 8%);
  156. margin: -15px -15px 40px 0;
  157. flex-wrap: wrap;
  158. align-items: center;
  159. justify-content: space-between;
  160. & > * {
  161. margin-top: 15px;
  162. margin-right: 15px;
  163. }
  164. &-actions {
  165. display: inline-flex;
  166. & > :not(:first-child) {
  167. margin-left: 5px;
  168. }
  169. }
  170. @media screen and (max-width: $no-columns-breakpoint) {
  171. border-bottom: 0;
  172. padding-bottom: 0;
  173. }
  174. }
  175. h2 {
  176. color: $secondary-text-color;
  177. font-size: 24px;
  178. line-height: 36px;
  179. font-weight: 400;
  180. @media screen and (max-width: $no-columns-breakpoint) {
  181. font-weight: 700;
  182. }
  183. }
  184. h3 {
  185. color: $secondary-text-color;
  186. font-size: 20px;
  187. line-height: 28px;
  188. font-weight: 400;
  189. margin-bottom: 30px;
  190. }
  191. h4 {
  192. text-transform: uppercase;
  193. font-size: 13px;
  194. font-weight: 700;
  195. color: $darker-text-color;
  196. padding-bottom: 8px;
  197. margin-bottom: 8px;
  198. border-bottom: 1px solid lighten($ui-base-color, 8%);
  199. }
  200. h6 {
  201. font-size: 16px;
  202. color: $secondary-text-color;
  203. line-height: 28px;
  204. font-weight: 500;
  205. }
  206. .fields-group h6 {
  207. color: $primary-text-color;
  208. font-weight: 500;
  209. }
  210. .directory__tag > a,
  211. .directory__tag > div {
  212. box-shadow: none;
  213. }
  214. .directory__tag .table-action-link .fa {
  215. color: inherit;
  216. }
  217. .directory__tag h4 {
  218. font-size: 18px;
  219. font-weight: 700;
  220. color: $primary-text-color;
  221. text-transform: none;
  222. padding-bottom: 0;
  223. margin-bottom: 0;
  224. border-bottom: 0;
  225. }
  226. & > p {
  227. font-size: 14px;
  228. line-height: 21px;
  229. color: $secondary-text-color;
  230. margin-bottom: 20px;
  231. strong {
  232. color: $primary-text-color;
  233. font-weight: 500;
  234. @each $lang in $cjk-langs {
  235. &:lang(#{$lang}) {
  236. font-weight: 700;
  237. }
  238. }
  239. }
  240. }
  241. hr {
  242. width: 100%;
  243. height: 0;
  244. border: 0;
  245. border-bottom: 1px solid rgba($ui-base-lighter-color, .6);
  246. margin: 20px 0;
  247. &.spacer {
  248. height: 1px;
  249. border: 0;
  250. }
  251. }
  252. }
  253. @media screen and (max-width: $no-columns-breakpoint) {
  254. display: block;
  255. .sidebar-wrapper {
  256. min-height: 0;
  257. }
  258. .sidebar {
  259. width: 100%;
  260. padding: 0;
  261. height: auto;
  262. &__toggle {
  263. display: flex;
  264. }
  265. & > ul {
  266. display: none;
  267. }
  268. ul a,
  269. ul ul a {
  270. border-radius: 0;
  271. border-bottom: 1px solid lighten($ui-base-color, 4%);
  272. transition: none;
  273. &:hover {
  274. transition: none;
  275. }
  276. }
  277. ul ul {
  278. border-radius: 0;
  279. }
  280. ul .simple-navigation-active-leaf a {
  281. border-bottom-color: $ui-highlight-color;
  282. }
  283. }
  284. }
  285. }
  286. hr.spacer {
  287. width: 100%;
  288. border: 0;
  289. margin: 20px 0;
  290. height: 1px;
  291. }
  292. body,
  293. .admin-wrapper .content {
  294. .muted-hint {
  295. color: $darker-text-color;
  296. a {
  297. color: $highlight-text-color;
  298. }
  299. }
  300. .positive-hint {
  301. color: $valid-value-color;
  302. font-weight: 500;
  303. }
  304. .negative-hint {
  305. color: $error-value-color;
  306. font-weight: 500;
  307. }
  308. .neutral-hint {
  309. color: $dark-text-color;
  310. font-weight: 500;
  311. }
  312. .warning-hint {
  313. color: $gold-star;
  314. font-weight: 500;
  315. }
  316. }
  317. .filters {
  318. display: flex;
  319. flex-wrap: wrap;
  320. .filter-subset {
  321. flex: 0 0 auto;
  322. margin: 0 40px 20px 0;
  323. &:last-child {
  324. margin-bottom: 30px;
  325. }
  326. ul {
  327. margin-top: 5px;
  328. list-style: none;
  329. li {
  330. display: inline-block;
  331. margin-right: 5px;
  332. }
  333. }
  334. strong {
  335. font-weight: 500;
  336. text-transform: uppercase;
  337. font-size: 12px;
  338. @each $lang in $cjk-langs {
  339. &:lang(#{$lang}) {
  340. font-weight: 700;
  341. }
  342. }
  343. }
  344. &--with-select strong {
  345. display: block;
  346. margin-bottom: 10px;
  347. }
  348. a {
  349. display: inline-block;
  350. color: $darker-text-color;
  351. text-decoration: none;
  352. text-transform: uppercase;
  353. font-size: 12px;
  354. font-weight: 500;
  355. border-bottom: 2px solid $ui-base-color;
  356. &:hover {
  357. color: $primary-text-color;
  358. border-bottom: 2px solid lighten($ui-base-color, 5%);
  359. }
  360. &.selected {
  361. color: $highlight-text-color;
  362. border-bottom: 2px solid $ui-highlight-color;
  363. }
  364. }
  365. }
  366. }
  367. .report-accounts {
  368. display: flex;
  369. flex-wrap: wrap;
  370. margin-bottom: 20px;
  371. }
  372. .report-accounts__item {
  373. display: flex;
  374. flex: 250px;
  375. flex-direction: column;
  376. margin: 0 5px;
  377. & > strong {
  378. display: block;
  379. margin: 0 0 10px -5px;
  380. font-weight: 500;
  381. font-size: 14px;
  382. line-height: 18px;
  383. color: $secondary-text-color;
  384. @each $lang in $cjk-langs {
  385. &:lang(#{$lang}) {
  386. font-weight: 700;
  387. }
  388. }
  389. }
  390. .account-card {
  391. flex: 1 1 auto;
  392. }
  393. }
  394. .report-status,
  395. .account-status {
  396. display: flex;
  397. margin-bottom: 10px;
  398. .activity-stream {
  399. flex: 2 0 0;
  400. margin-right: 20px;
  401. max-width: calc(100% - 60px);
  402. .entry {
  403. border-radius: 4px;
  404. }
  405. }
  406. }
  407. .report-status__actions,
  408. .account-status__actions {
  409. flex: 0 0 auto;
  410. display: flex;
  411. flex-direction: column;
  412. .icon-button {
  413. font-size: 24px;
  414. width: 24px;
  415. text-align: center;
  416. margin-bottom: 10px;
  417. }
  418. }
  419. .simple_form.new_report_note,
  420. .simple_form.new_account_moderation_note {
  421. max-width: 100%;
  422. }
  423. .simple_form {
  424. .actions {
  425. margin-top: 15px;
  426. }
  427. .button {
  428. font-size: 15px;
  429. }
  430. }
  431. .batch-form-box {
  432. display: flex;
  433. flex-wrap: wrap;
  434. margin-bottom: 5px;
  435. #form_status_batch_action {
  436. margin: 0 5px 5px 0;
  437. font-size: 14px;
  438. }
  439. input.button {
  440. margin: 0 5px 5px 0;
  441. }
  442. .media-spoiler-toggle-buttons {
  443. margin-left: auto;
  444. .button {
  445. overflow: visible;
  446. margin: 0 0 5px 5px;
  447. float: right;
  448. }
  449. }
  450. }
  451. .back-link {
  452. margin-bottom: 10px;
  453. font-size: 14px;
  454. a {
  455. color: $highlight-text-color;
  456. text-decoration: none;
  457. &:hover {
  458. text-decoration: underline;
  459. }
  460. }
  461. }
  462. .special-action-button,
  463. .back-link {
  464. text-align: right;
  465. flex: 1 1 auto;
  466. }
  467. .action-buttons {
  468. display: flex;
  469. overflow: hidden;
  470. justify-content: space-between;
  471. }
  472. .spacer {
  473. flex: 1 1 auto;
  474. }
  475. .log-entry {
  476. line-height: 20px;
  477. padding: 15px 0;
  478. background: $ui-base-color;
  479. border-bottom: 1px solid lighten($ui-base-color, 4%);
  480. &:last-child {
  481. border-bottom: 0;
  482. }
  483. &__header {
  484. display: flex;
  485. justify-content: flex-start;
  486. align-items: center;
  487. color: $darker-text-color;
  488. font-size: 14px;
  489. padding: 0 10px;
  490. }
  491. &__avatar {
  492. margin-right: 10px;
  493. .avatar {
  494. display: block;
  495. margin: 0;
  496. border-radius: 50%;
  497. width: 40px;
  498. height: 40px;
  499. }
  500. }
  501. &__content {
  502. max-width: calc(100% - 90px);
  503. }
  504. &__title {
  505. word-wrap: break-word;
  506. }
  507. &__timestamp {
  508. color: $dark-text-color;
  509. }
  510. a,
  511. .username,
  512. .target {
  513. color: $secondary-text-color;
  514. text-decoration: none;
  515. font-weight: 500;
  516. }
  517. }
  518. a.name-tag,
  519. .name-tag,
  520. a.inline-name-tag,
  521. .inline-name-tag {
  522. text-decoration: none;
  523. color: $secondary-text-color;
  524. .username {
  525. font-weight: 500;
  526. }
  527. &.suspended {
  528. .username {
  529. text-decoration: line-through;
  530. color: lighten($error-red, 12%);
  531. }
  532. .avatar {
  533. filter: grayscale(100%);
  534. opacity: 0.8;
  535. }
  536. }
  537. }
  538. a.name-tag,
  539. .name-tag {
  540. display: flex;
  541. align-items: center;
  542. .avatar {
  543. display: block;
  544. margin: 0;
  545. margin-right: 5px;
  546. border-radius: 50%;
  547. }
  548. &.suspended {
  549. .avatar {
  550. filter: grayscale(100%);
  551. opacity: 0.8;
  552. }
  553. }
  554. }
  555. .speech-bubble {
  556. margin-bottom: 20px;
  557. border-left: 4px solid $ui-highlight-color;
  558. &.positive {
  559. border-left-color: $success-green;
  560. }
  561. &.negative {
  562. border-left-color: lighten($error-red, 12%);
  563. }
  564. &.warning {
  565. border-left-color: $gold-star;
  566. }
  567. &__bubble {
  568. padding: 16px;
  569. padding-left: 14px;
  570. font-size: 15px;
  571. line-height: 20px;
  572. border-radius: 4px 4px 4px 0;
  573. position: relative;
  574. font-weight: 500;
  575. a {
  576. color: $darker-text-color;
  577. }
  578. }
  579. &__owner {
  580. padding: 8px;
  581. padding-left: 12px;
  582. }
  583. time {
  584. color: $dark-text-color;
  585. }
  586. }
  587. .report-card {
  588. background: $ui-base-color;
  589. border-radius: 4px;
  590. margin-bottom: 20px;
  591. &__profile {
  592. display: flex;
  593. justify-content: space-between;
  594. align-items: center;
  595. padding: 15px;
  596. .account {
  597. padding: 0;
  598. border: 0;
  599. &__avatar-wrapper {
  600. margin-left: 0;
  601. }
  602. }
  603. &__stats {
  604. flex: 0 0 auto;
  605. font-weight: 500;
  606. color: $darker-text-color;
  607. text-transform: uppercase;
  608. text-align: right;
  609. a {
  610. color: inherit;
  611. text-decoration: none;
  612. &:focus,
  613. &:hover,
  614. &:active {
  615. color: lighten($darker-text-color, 8%);
  616. }
  617. }
  618. .red {
  619. color: $error-value-color;
  620. }
  621. }
  622. }
  623. &__summary {
  624. &__item {
  625. display: flex;
  626. justify-content: flex-start;
  627. border-top: 1px solid darken($ui-base-color, 4%);
  628. &:hover {
  629. background: lighten($ui-base-color, 2%);
  630. }
  631. &__reported-by,
  632. &__assigned {
  633. padding: 15px;
  634. flex: 0 0 auto;
  635. box-sizing: border-box;
  636. width: 150px;
  637. color: $darker-text-color;
  638. &,
  639. .username {
  640. white-space: nowrap;
  641. overflow: hidden;
  642. text-overflow: ellipsis;
  643. }
  644. }
  645. &__content {
  646. flex: 1 1 auto;
  647. max-width: calc(100% - 300px);
  648. &__icon {
  649. color: $dark-text-color;
  650. margin-right: 4px;
  651. font-weight: 500;
  652. }
  653. }
  654. &__content a {
  655. display: block;
  656. box-sizing: border-box;
  657. width: 100%;
  658. padding: 15px;
  659. text-decoration: none;
  660. color: $darker-text-color;
  661. }
  662. }
  663. }
  664. }
  665. .one-line {
  666. white-space: nowrap;
  667. overflow: hidden;
  668. text-overflow: ellipsis;
  669. }
  670. .ellipsized-ip {
  671. display: inline-block;
  672. max-width: 120px;
  673. overflow: hidden;
  674. text-overflow: ellipsis;
  675. vertical-align: middle;
  676. }
  677. .admin-account-bio {
  678. display: flex;
  679. flex-wrap: wrap;
  680. margin: 0 -5px;
  681. margin-top: 20px;
  682. > div {
  683. box-sizing: border-box;
  684. padding: 0 5px;
  685. margin-bottom: 10px;
  686. flex: 1 0 50%;
  687. max-width: 100%;
  688. }
  689. .account__header__fields,
  690. .account__header__content {
  691. background: lighten($ui-base-color, 8%);
  692. border-radius: 4px;
  693. height: 100%;
  694. }
  695. .account__header__fields {
  696. margin: 0;
  697. border: 0;
  698. a {
  699. color: lighten($ui-highlight-color, 8%);
  700. }
  701. dl:first-child .verified {
  702. border-radius: 0 4px 0 0;
  703. }
  704. .verified a {
  705. color: $valid-value-color;
  706. }
  707. }
  708. .account__header__content {
  709. box-sizing: border-box;
  710. padding: 20px;
  711. color: $primary-text-color;
  712. }
  713. }
  714. .center-text {
  715. text-align: center;
  716. }
  717. .announcements-list {
  718. border: 1px solid lighten($ui-base-color, 4%);
  719. border-radius: 4px;
  720. &__item {
  721. padding: 15px 0;
  722. background: $ui-base-color;
  723. border-bottom: 1px solid lighten($ui-base-color, 4%);
  724. &__title {
  725. padding: 0 15px;
  726. display: block;
  727. font-weight: 500;
  728. font-size: 18px;
  729. line-height: 1.5;
  730. color: $secondary-text-color;
  731. text-decoration: none;
  732. margin-bottom: 10px;
  733. &:hover,
  734. &:focus,
  735. &:active {
  736. color: $primary-text-color;
  737. }
  738. }
  739. &__meta {
  740. padding: 0 15px;
  741. color: $dark-text-color;
  742. }
  743. &__action-bar {
  744. display: flex;
  745. justify-content: space-between;
  746. align-items: center;
  747. }
  748. &:last-child {
  749. border-bottom: 0;
  750. }
  751. }
  752. }
  753. .account-badges {
  754. margin: -2px 0;
  755. }
  756. .dashboard__counters.admin-account-counters {
  757. margin-top: 10px;
  758. }