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.

890 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. .spacer {
  457. flex: 1 1 auto;
  458. }
  459. .log-entry {
  460. line-height: 20px;
  461. padding: 15px 0;
  462. background: $ui-base-color;
  463. border-bottom: 1px solid lighten($ui-base-color, 4%);
  464. &:last-child {
  465. border-bottom: 0;
  466. }
  467. &__header {
  468. display: flex;
  469. justify-content: flex-start;
  470. align-items: center;
  471. color: $darker-text-color;
  472. font-size: 14px;
  473. padding: 0 10px;
  474. }
  475. &__avatar {
  476. margin-right: 10px;
  477. .avatar {
  478. display: block;
  479. margin: 0;
  480. border-radius: 50%;
  481. width: 40px;
  482. height: 40px;
  483. }
  484. }
  485. &__content {
  486. max-width: calc(100% - 90px);
  487. }
  488. &__title {
  489. word-wrap: break-word;
  490. }
  491. &__timestamp {
  492. color: $dark-text-color;
  493. }
  494. a,
  495. .username,
  496. .target {
  497. color: $secondary-text-color;
  498. text-decoration: none;
  499. font-weight: 500;
  500. }
  501. }
  502. a.name-tag,
  503. .name-tag,
  504. a.inline-name-tag,
  505. .inline-name-tag {
  506. text-decoration: none;
  507. color: $secondary-text-color;
  508. .username {
  509. font-weight: 500;
  510. }
  511. &.suspended {
  512. .username {
  513. text-decoration: line-through;
  514. color: lighten($error-red, 12%);
  515. }
  516. .avatar {
  517. filter: grayscale(100%);
  518. opacity: 0.8;
  519. }
  520. }
  521. }
  522. a.name-tag,
  523. .name-tag {
  524. display: flex;
  525. align-items: center;
  526. .avatar {
  527. display: block;
  528. margin: 0;
  529. margin-right: 5px;
  530. border-radius: 50%;
  531. }
  532. &.suspended {
  533. .avatar {
  534. filter: grayscale(100%);
  535. opacity: 0.8;
  536. }
  537. }
  538. }
  539. .speech-bubble {
  540. margin-bottom: 20px;
  541. border-left: 4px solid $ui-highlight-color;
  542. &.positive {
  543. border-left-color: $success-green;
  544. }
  545. &.negative {
  546. border-left-color: lighten($error-red, 12%);
  547. }
  548. &.warning {
  549. border-left-color: $gold-star;
  550. }
  551. &__bubble {
  552. padding: 16px;
  553. padding-left: 14px;
  554. font-size: 15px;
  555. line-height: 20px;
  556. border-radius: 4px 4px 4px 0;
  557. position: relative;
  558. font-weight: 500;
  559. a {
  560. color: $darker-text-color;
  561. }
  562. }
  563. &__owner {
  564. padding: 8px;
  565. padding-left: 12px;
  566. }
  567. time {
  568. color: $dark-text-color;
  569. }
  570. }
  571. .report-card {
  572. background: $ui-base-color;
  573. border-radius: 4px;
  574. margin-bottom: 20px;
  575. &__profile {
  576. display: flex;
  577. justify-content: space-between;
  578. align-items: center;
  579. padding: 15px;
  580. .account {
  581. padding: 0;
  582. border: 0;
  583. &__avatar-wrapper {
  584. margin-left: 0;
  585. }
  586. }
  587. &__stats {
  588. flex: 0 0 auto;
  589. font-weight: 500;
  590. color: $darker-text-color;
  591. text-transform: uppercase;
  592. text-align: right;
  593. a {
  594. color: inherit;
  595. text-decoration: none;
  596. &:focus,
  597. &:hover,
  598. &:active {
  599. color: lighten($darker-text-color, 8%);
  600. }
  601. }
  602. .red {
  603. color: $error-value-color;
  604. }
  605. }
  606. }
  607. &__summary {
  608. &__item {
  609. display: flex;
  610. justify-content: flex-start;
  611. border-top: 1px solid darken($ui-base-color, 4%);
  612. &:hover {
  613. background: lighten($ui-base-color, 2%);
  614. }
  615. &__reported-by,
  616. &__assigned {
  617. padding: 15px;
  618. flex: 0 0 auto;
  619. box-sizing: border-box;
  620. width: 150px;
  621. color: $darker-text-color;
  622. &,
  623. .username {
  624. white-space: nowrap;
  625. overflow: hidden;
  626. text-overflow: ellipsis;
  627. }
  628. }
  629. &__content {
  630. flex: 1 1 auto;
  631. max-width: calc(100% - 300px);
  632. &__icon {
  633. color: $dark-text-color;
  634. margin-right: 4px;
  635. font-weight: 500;
  636. }
  637. }
  638. &__content a {
  639. display: block;
  640. box-sizing: border-box;
  641. width: 100%;
  642. padding: 15px;
  643. text-decoration: none;
  644. color: $darker-text-color;
  645. }
  646. }
  647. }
  648. }
  649. .one-line {
  650. white-space: nowrap;
  651. overflow: hidden;
  652. text-overflow: ellipsis;
  653. }
  654. .ellipsized-ip {
  655. display: inline-block;
  656. max-width: 120px;
  657. overflow: hidden;
  658. text-overflow: ellipsis;
  659. vertical-align: middle;
  660. }
  661. .admin-account-bio {
  662. display: flex;
  663. flex-wrap: wrap;
  664. margin: 0 -5px;
  665. margin-top: 20px;
  666. > div {
  667. box-sizing: border-box;
  668. padding: 0 5px;
  669. margin-bottom: 10px;
  670. flex: 1 0 50%;
  671. }
  672. .account__header__fields,
  673. .account__header__content {
  674. background: lighten($ui-base-color, 8%);
  675. border-radius: 4px;
  676. height: 100%;
  677. }
  678. .account__header__fields {
  679. margin: 0;
  680. border: 0;
  681. a {
  682. color: lighten($ui-highlight-color, 8%);
  683. }
  684. dl:first-child .verified {
  685. border-radius: 0 4px 0 0;
  686. }
  687. .verified a {
  688. color: $valid-value-color;
  689. }
  690. }
  691. .account__header__content {
  692. box-sizing: border-box;
  693. padding: 20px;
  694. color: $primary-text-color;
  695. }
  696. }
  697. .center-text {
  698. text-align: center;
  699. }
  700. .announcements-list {
  701. border: 1px solid lighten($ui-base-color, 4%);
  702. border-radius: 4px;
  703. &__item {
  704. padding: 15px 0;
  705. background: $ui-base-color;
  706. border-bottom: 1px solid lighten($ui-base-color, 4%);
  707. &__title {
  708. padding: 0 15px;
  709. display: block;
  710. font-weight: 500;
  711. font-size: 18px;
  712. line-height: 1.5;
  713. color: $secondary-text-color;
  714. text-decoration: none;
  715. margin-bottom: 10px;
  716. &:hover,
  717. &:focus,
  718. &:active {
  719. color: $primary-text-color;
  720. }
  721. }
  722. &__meta {
  723. padding: 0 15px;
  724. color: $dark-text-color;
  725. }
  726. &__action-bar {
  727. display: flex;
  728. justify-content: space-between;
  729. align-items: center;
  730. }
  731. &:last-child {
  732. border-bottom: 0;
  733. }
  734. }
  735. }