The code powering m.abunchtell.com https://m.abunchtell.com
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.
 
 
 
 

933 lines
16 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. a {
  347. display: inline-block;
  348. color: $darker-text-color;
  349. text-decoration: none;
  350. text-transform: uppercase;
  351. font-size: 12px;
  352. font-weight: 500;
  353. border-bottom: 2px solid $ui-base-color;
  354. &:hover {
  355. color: $primary-text-color;
  356. border-bottom: 2px solid lighten($ui-base-color, 5%);
  357. }
  358. &.selected {
  359. color: $highlight-text-color;
  360. border-bottom: 2px solid $ui-highlight-color;
  361. }
  362. }
  363. }
  364. }
  365. .report-accounts {
  366. display: flex;
  367. flex-wrap: wrap;
  368. margin-bottom: 20px;
  369. }
  370. .report-accounts__item {
  371. display: flex;
  372. flex: 250px;
  373. flex-direction: column;
  374. margin: 0 5px;
  375. & > strong {
  376. display: block;
  377. margin: 0 0 10px -5px;
  378. font-weight: 500;
  379. font-size: 14px;
  380. line-height: 18px;
  381. color: $secondary-text-color;
  382. @each $lang in $cjk-langs {
  383. &:lang(#{$lang}) {
  384. font-weight: 700;
  385. }
  386. }
  387. }
  388. .account-card {
  389. flex: 1 1 auto;
  390. }
  391. }
  392. .report-status,
  393. .account-status {
  394. display: flex;
  395. margin-bottom: 10px;
  396. .activity-stream {
  397. flex: 2 0 0;
  398. margin-right: 20px;
  399. max-width: calc(100% - 60px);
  400. .entry {
  401. border-radius: 4px;
  402. }
  403. }
  404. }
  405. .report-status__actions,
  406. .account-status__actions {
  407. flex: 0 0 auto;
  408. display: flex;
  409. flex-direction: column;
  410. .icon-button {
  411. font-size: 24px;
  412. width: 24px;
  413. text-align: center;
  414. margin-bottom: 10px;
  415. }
  416. }
  417. .simple_form.new_report_note,
  418. .simple_form.new_account_moderation_note {
  419. max-width: 100%;
  420. }
  421. .batch-form-box {
  422. display: flex;
  423. flex-wrap: wrap;
  424. margin-bottom: 5px;
  425. #form_status_batch_action {
  426. margin: 0 5px 5px 0;
  427. font-size: 14px;
  428. }
  429. input.button {
  430. margin: 0 5px 5px 0;
  431. }
  432. .media-spoiler-toggle-buttons {
  433. margin-left: auto;
  434. .button {
  435. overflow: visible;
  436. margin: 0 0 5px 5px;
  437. float: right;
  438. }
  439. }
  440. }
  441. .back-link {
  442. margin-bottom: 10px;
  443. font-size: 14px;
  444. a {
  445. color: $highlight-text-color;
  446. text-decoration: none;
  447. &:hover {
  448. text-decoration: underline;
  449. }
  450. }
  451. }
  452. .spacer {
  453. flex: 1 1 auto;
  454. }
  455. .log-entry {
  456. margin-bottom: 20px;
  457. line-height: 20px;
  458. &__header {
  459. display: flex;
  460. justify-content: flex-start;
  461. align-items: center;
  462. padding: 10px;
  463. background: $ui-base-color;
  464. color: $darker-text-color;
  465. border-radius: 4px 4px 0 0;
  466. font-size: 14px;
  467. position: relative;
  468. }
  469. &__avatar {
  470. margin-right: 10px;
  471. .avatar {
  472. display: block;
  473. margin: 0;
  474. border-radius: 50%;
  475. width: 40px;
  476. height: 40px;
  477. }
  478. }
  479. &__content {
  480. max-width: calc(100% - 90px);
  481. }
  482. &__title {
  483. word-wrap: break-word;
  484. }
  485. &__timestamp {
  486. color: $dark-text-color;
  487. }
  488. &__extras {
  489. background: lighten($ui-base-color, 6%);
  490. border-radius: 0 0 4px 4px;
  491. padding: 10px;
  492. color: $darker-text-color;
  493. font-family: $font-monospace, monospace;
  494. font-size: 12px;
  495. word-wrap: break-word;
  496. min-height: 20px;
  497. }
  498. &__icon {
  499. font-size: 28px;
  500. margin-right: 10px;
  501. color: $dark-text-color;
  502. }
  503. &__icon__overlay {
  504. position: absolute;
  505. top: 10px;
  506. right: 10px;
  507. width: 10px;
  508. height: 10px;
  509. border-radius: 50%;
  510. &.positive {
  511. background: $success-green;
  512. }
  513. &.negative {
  514. background: lighten($error-red, 12%);
  515. }
  516. &.neutral {
  517. background: $ui-highlight-color;
  518. }
  519. }
  520. a,
  521. .username,
  522. .target {
  523. color: $secondary-text-color;
  524. text-decoration: none;
  525. font-weight: 500;
  526. }
  527. .diff-old {
  528. color: lighten($error-red, 12%);
  529. }
  530. .diff-neutral {
  531. color: $secondary-text-color;
  532. }
  533. .diff-new {
  534. color: $success-green;
  535. }
  536. }
  537. a.name-tag,
  538. .name-tag,
  539. a.inline-name-tag,
  540. .inline-name-tag {
  541. text-decoration: none;
  542. color: $secondary-text-color;
  543. .username {
  544. font-weight: 500;
  545. }
  546. &.suspended {
  547. .username {
  548. text-decoration: line-through;
  549. color: lighten($error-red, 12%);
  550. }
  551. .avatar {
  552. filter: grayscale(100%);
  553. opacity: 0.8;
  554. }
  555. }
  556. }
  557. a.name-tag,
  558. .name-tag {
  559. display: flex;
  560. align-items: center;
  561. .avatar {
  562. display: block;
  563. margin: 0;
  564. margin-right: 5px;
  565. border-radius: 50%;
  566. }
  567. &.suspended {
  568. .avatar {
  569. filter: grayscale(100%);
  570. opacity: 0.8;
  571. }
  572. }
  573. }
  574. .speech-bubble {
  575. margin-bottom: 20px;
  576. border-left: 4px solid $ui-highlight-color;
  577. &.positive {
  578. border-left-color: $success-green;
  579. }
  580. &.negative {
  581. border-left-color: lighten($error-red, 12%);
  582. }
  583. &.warning {
  584. border-left-color: $gold-star;
  585. }
  586. &__bubble {
  587. padding: 16px;
  588. padding-left: 14px;
  589. font-size: 15px;
  590. line-height: 20px;
  591. border-radius: 4px 4px 4px 0;
  592. position: relative;
  593. font-weight: 500;
  594. a {
  595. color: $darker-text-color;
  596. }
  597. }
  598. &__owner {
  599. padding: 8px;
  600. padding-left: 12px;
  601. }
  602. time {
  603. color: $dark-text-color;
  604. }
  605. }
  606. .report-card {
  607. background: $ui-base-color;
  608. border-radius: 4px;
  609. margin-bottom: 20px;
  610. &__profile {
  611. display: flex;
  612. justify-content: space-between;
  613. align-items: center;
  614. padding: 15px;
  615. .account {
  616. padding: 0;
  617. border: 0;
  618. &__avatar-wrapper {
  619. margin-left: 0;
  620. }
  621. }
  622. &__stats {
  623. flex: 0 0 auto;
  624. font-weight: 500;
  625. color: $darker-text-color;
  626. text-transform: uppercase;
  627. text-align: right;
  628. a {
  629. color: inherit;
  630. text-decoration: none;
  631. &:focus,
  632. &:hover,
  633. &:active {
  634. color: lighten($darker-text-color, 8%);
  635. }
  636. }
  637. .red {
  638. color: $error-value-color;
  639. }
  640. }
  641. }
  642. &__summary {
  643. &__item {
  644. display: flex;
  645. justify-content: flex-start;
  646. border-top: 1px solid darken($ui-base-color, 4%);
  647. &:hover {
  648. background: lighten($ui-base-color, 2%);
  649. }
  650. &__reported-by,
  651. &__assigned {
  652. padding: 15px;
  653. flex: 0 0 auto;
  654. box-sizing: border-box;
  655. width: 150px;
  656. color: $darker-text-color;
  657. &,
  658. .username {
  659. white-space: nowrap;
  660. overflow: hidden;
  661. text-overflow: ellipsis;
  662. }
  663. }
  664. &__content {
  665. flex: 1 1 auto;
  666. max-width: calc(100% - 300px);
  667. &__icon {
  668. color: $dark-text-color;
  669. margin-right: 4px;
  670. font-weight: 500;
  671. }
  672. }
  673. &__content a {
  674. display: block;
  675. box-sizing: border-box;
  676. width: 100%;
  677. padding: 15px;
  678. text-decoration: none;
  679. color: $darker-text-color;
  680. }
  681. }
  682. }
  683. }
  684. .one-line {
  685. white-space: nowrap;
  686. overflow: hidden;
  687. text-overflow: ellipsis;
  688. }
  689. .ellipsized-ip {
  690. display: inline-block;
  691. max-width: 120px;
  692. overflow: hidden;
  693. text-overflow: ellipsis;
  694. vertical-align: middle;
  695. }
  696. .admin-account-bio {
  697. display: flex;
  698. flex-wrap: wrap;
  699. margin: 0 -5px;
  700. margin-top: 20px;
  701. > div {
  702. box-sizing: border-box;
  703. padding: 0 5px;
  704. margin-bottom: 10px;
  705. flex: 1 0 50%;
  706. }
  707. .account__header__fields,
  708. .account__header__content {
  709. background: lighten($ui-base-color, 8%);
  710. border-radius: 4px;
  711. height: 100%;
  712. }
  713. .account__header__fields {
  714. margin: 0;
  715. border: 0;
  716. a {
  717. color: lighten($ui-highlight-color, 8%);
  718. }
  719. dl:first-child .verified {
  720. border-radius: 0 4px 0 0;
  721. }
  722. .verified a {
  723. color: $valid-value-color;
  724. }
  725. }
  726. .account__header__content {
  727. box-sizing: border-box;
  728. padding: 20px;
  729. color: $primary-text-color;
  730. }
  731. }
  732. .center-text {
  733. text-align: center;
  734. }
  735. .announcements-list {
  736. border: 1px solid lighten($ui-base-color, 4%);
  737. border-radius: 4px;
  738. &__item {
  739. padding: 15px 0;
  740. background: $ui-base-color;
  741. border-bottom: 1px solid lighten($ui-base-color, 4%);
  742. &__title {
  743. padding: 0 15px;
  744. display: block;
  745. font-weight: 500;
  746. font-size: 18px;
  747. line-height: 1.5;
  748. color: $secondary-text-color;
  749. text-decoration: none;
  750. margin-bottom: 10px;
  751. &:hover,
  752. &:focus,
  753. &:active {
  754. color: $primary-text-color;
  755. }
  756. }
  757. &__meta {
  758. padding: 0 15px;
  759. color: $dark-text-color;
  760. }
  761. &__action-bar {
  762. display: flex;
  763. justify-content: space-between;
  764. align-items: center;
  765. }
  766. &:last-child {
  767. border-bottom: 0;
  768. }
  769. }
  770. }