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.

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