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.

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