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.
 
 
 
 

947 line
16 KiB

  1. $no-columns-breakpoint: 600px;
  2. code {
  3. font-family: $font-monospace, monospace;
  4. font-weight: 400;
  5. }
  6. .form-container {
  7. max-width: 400px;
  8. padding: 20px;
  9. margin: 0 auto;
  10. }
  11. .simple_form {
  12. .input {
  13. margin-bottom: 15px;
  14. overflow: hidden;
  15. &.hidden {
  16. margin: 0;
  17. }
  18. &.radio_buttons {
  19. .radio {
  20. margin-bottom: 15px;
  21. &:last-child {
  22. margin-bottom: 0;
  23. }
  24. }
  25. .radio > label {
  26. position: relative;
  27. padding-left: 28px;
  28. input {
  29. position: absolute;
  30. top: -2px;
  31. left: 0;
  32. }
  33. }
  34. }
  35. &.boolean {
  36. position: relative;
  37. margin-bottom: 0;
  38. .label_input > label {
  39. font-family: inherit;
  40. font-size: 14px;
  41. padding-top: 5px;
  42. color: $primary-text-color;
  43. display: block;
  44. width: auto;
  45. }
  46. .label_input,
  47. .hint {
  48. padding-left: 28px;
  49. }
  50. .label_input__wrapper {
  51. position: static;
  52. }
  53. label.checkbox {
  54. position: absolute;
  55. top: 2px;
  56. left: 0;
  57. }
  58. label a {
  59. color: $highlight-text-color;
  60. text-decoration: underline;
  61. &:hover,
  62. &:active,
  63. &:focus {
  64. text-decoration: none;
  65. }
  66. }
  67. .recommended {
  68. position: absolute;
  69. margin: 0 4px;
  70. margin-top: -2px;
  71. }
  72. }
  73. }
  74. .row {
  75. display: flex;
  76. margin: 0 -5px;
  77. .input {
  78. box-sizing: border-box;
  79. flex: 1 1 auto;
  80. width: 50%;
  81. padding: 0 5px;
  82. }
  83. }
  84. .hint {
  85. color: $darker-text-color;
  86. a {
  87. color: $highlight-text-color;
  88. }
  89. code {
  90. border-radius: 3px;
  91. padding: 0.2em 0.4em;
  92. background: darken($ui-base-color, 12%);
  93. }
  94. li {
  95. list-style: disc;
  96. margin-left: 18px;
  97. }
  98. }
  99. ul.hint {
  100. margin-bottom: 15px;
  101. }
  102. span.hint {
  103. display: block;
  104. font-size: 12px;
  105. margin-top: 4px;
  106. }
  107. p.hint {
  108. margin-bottom: 15px;
  109. color: $darker-text-color;
  110. &.subtle-hint {
  111. text-align: center;
  112. font-size: 12px;
  113. line-height: 18px;
  114. margin-top: 15px;
  115. margin-bottom: 0;
  116. }
  117. }
  118. .card {
  119. margin-bottom: 15px;
  120. }
  121. strong {
  122. font-weight: 500;
  123. @each $lang in $cjk-langs {
  124. &:lang(#{$lang}) {
  125. font-weight: 700;
  126. }
  127. }
  128. }
  129. .input.with_floating_label {
  130. .label_input {
  131. display: flex;
  132. & > label {
  133. font-family: inherit;
  134. font-size: 14px;
  135. color: $primary-text-color;
  136. font-weight: 500;
  137. min-width: 150px;
  138. flex: 0 0 auto;
  139. }
  140. input,
  141. select {
  142. flex: 1 1 auto;
  143. }
  144. }
  145. &.select .hint {
  146. margin-top: 6px;
  147. margin-left: 150px;
  148. }
  149. }
  150. .input.with_label {
  151. .label_input > label {
  152. font-family: inherit;
  153. font-size: 14px;
  154. color: $primary-text-color;
  155. display: block;
  156. margin-bottom: 8px;
  157. word-wrap: break-word;
  158. font-weight: 500;
  159. }
  160. .hint {
  161. margin-top: 6px;
  162. }
  163. ul {
  164. flex: 390px;
  165. }
  166. }
  167. .input.with_block_label {
  168. max-width: none;
  169. & > label {
  170. font-family: inherit;
  171. font-size: 16px;
  172. color: $primary-text-color;
  173. display: block;
  174. font-weight: 500;
  175. padding-top: 5px;
  176. }
  177. .hint {
  178. margin-bottom: 15px;
  179. }
  180. ul {
  181. columns: 2;
  182. }
  183. }
  184. .required abbr {
  185. text-decoration: none;
  186. color: lighten($error-value-color, 12%);
  187. }
  188. .fields-group {
  189. margin-bottom: 25px;
  190. .input:last-child {
  191. margin-bottom: 0;
  192. }
  193. }
  194. .fields-row {
  195. display: flex;
  196. margin: 0 -10px;
  197. padding-top: 5px;
  198. margin-bottom: 25px;
  199. .input {
  200. max-width: none;
  201. }
  202. &__column {
  203. box-sizing: border-box;
  204. padding: 0 10px;
  205. flex: 1 1 auto;
  206. min-height: 1px;
  207. &-6 {
  208. max-width: 50%;
  209. }
  210. .actions {
  211. margin-top: 27px;
  212. }
  213. }
  214. .fields-group:last-child,
  215. .fields-row__column.fields-group {
  216. margin-bottom: 0;
  217. }
  218. @media screen and (max-width: $no-columns-breakpoint) {
  219. display: block;
  220. margin-bottom: 0;
  221. &__column {
  222. max-width: none;
  223. }
  224. .fields-group:last-child,
  225. .fields-row__column.fields-group,
  226. .fields-row__column {
  227. margin-bottom: 25px;
  228. }
  229. }
  230. }
  231. .input.radio_buttons .radio label {
  232. margin-bottom: 5px;
  233. font-family: inherit;
  234. font-size: 14px;
  235. color: $primary-text-color;
  236. display: block;
  237. width: auto;
  238. }
  239. .check_boxes {
  240. .checkbox {
  241. label {
  242. font-family: inherit;
  243. font-size: 14px;
  244. color: $primary-text-color;
  245. display: inline-block;
  246. width: auto;
  247. position: relative;
  248. padding-top: 5px;
  249. padding-left: 25px;
  250. flex: 1 1 auto;
  251. }
  252. input[type=checkbox] {
  253. position: absolute;
  254. left: 0;
  255. top: 5px;
  256. margin: 0;
  257. }
  258. }
  259. }
  260. .input.static .label_input__wrapper {
  261. font-size: 16px;
  262. padding: 10px;
  263. border: 1px solid $dark-text-color;
  264. border-radius: 4px;
  265. }
  266. input[type=text],
  267. input[type=number],
  268. input[type=email],
  269. input[type=password],
  270. textarea {
  271. box-sizing: border-box;
  272. font-size: 16px;
  273. color: $primary-text-color;
  274. display: block;
  275. width: 100%;
  276. outline: 0;
  277. font-family: inherit;
  278. resize: vertical;
  279. background: darken($ui-base-color, 10%);
  280. border: 1px solid darken($ui-base-color, 14%);
  281. border-radius: 4px;
  282. padding: 10px;
  283. &::placeholder {
  284. color: lighten($darker-text-color, 4%);
  285. }
  286. &:invalid {
  287. box-shadow: none;
  288. }
  289. &:focus:invalid:not(:placeholder-shown) {
  290. border-color: lighten($error-red, 12%);
  291. }
  292. &:required:valid {
  293. border-color: $valid-value-color;
  294. }
  295. &:hover {
  296. border-color: darken($ui-base-color, 20%);
  297. }
  298. &:active,
  299. &:focus {
  300. border-color: $highlight-text-color;
  301. background: darken($ui-base-color, 8%);
  302. }
  303. }
  304. .input.field_with_errors {
  305. label {
  306. color: lighten($error-red, 12%);
  307. }
  308. input[type=text],
  309. input[type=number],
  310. input[type=email],
  311. input[type=password],
  312. textarea,
  313. select {
  314. border-color: lighten($error-red, 12%);
  315. }
  316. .error {
  317. display: block;
  318. font-weight: 500;
  319. color: lighten($error-red, 12%);
  320. margin-top: 4px;
  321. }
  322. }
  323. .input.disabled {
  324. opacity: 0.5;
  325. }
  326. .actions {
  327. margin-top: 30px;
  328. display: flex;
  329. &.actions--top {
  330. margin-top: 0;
  331. margin-bottom: 30px;
  332. }
  333. }
  334. button,
  335. .button,
  336. .block-button {
  337. display: block;
  338. width: 100%;
  339. border: 0;
  340. border-radius: 4px;
  341. background: $ui-highlight-color;
  342. color: $primary-text-color;
  343. font-size: 18px;
  344. line-height: inherit;
  345. height: auto;
  346. padding: 10px;
  347. text-transform: uppercase;
  348. text-decoration: none;
  349. text-align: center;
  350. box-sizing: border-box;
  351. cursor: pointer;
  352. font-weight: 500;
  353. outline: 0;
  354. margin-bottom: 10px;
  355. margin-right: 10px;
  356. &:last-child {
  357. margin-right: 0;
  358. }
  359. &:hover {
  360. background-color: lighten($ui-highlight-color, 5%);
  361. }
  362. &:active,
  363. &:focus {
  364. background-color: darken($ui-highlight-color, 5%);
  365. }
  366. &:disabled:hover {
  367. background-color: $ui-primary-color;
  368. }
  369. &.negative {
  370. background: $error-value-color;
  371. &:hover {
  372. background-color: lighten($error-value-color, 5%);
  373. }
  374. &:active,
  375. &:focus {
  376. background-color: darken($error-value-color, 5%);
  377. }
  378. }
  379. }
  380. select {
  381. appearance: none;
  382. box-sizing: border-box;
  383. font-size: 16px;
  384. color: $primary-text-color;
  385. display: block;
  386. width: 100%;
  387. outline: 0;
  388. font-family: inherit;
  389. resize: vertical;
  390. background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.933 18.467' height='19.698' width='15.929'><path d='M3.467 14.967l-3.393-3.5H14.86l-3.392 3.5c-1.866 1.925-3.666 3.5-4 3.5-.335 0-2.135-1.575-4-3.5zm.266-11.234L7.467 0 11.2 3.733l3.733 3.734H0l3.733-3.734z' fill='#{hex-color(lighten($ui-base-color, 12%))}'/></svg>") no-repeat right 8px center / auto 16px;
  391. border: 1px solid darken($ui-base-color, 14%);
  392. border-radius: 4px;
  393. padding-left: 10px;
  394. padding-right: 30px;
  395. height: 41px;
  396. }
  397. h4 {
  398. margin-bottom: 15px !important;
  399. }
  400. .label_input {
  401. &__wrapper {
  402. position: relative;
  403. }
  404. &__append {
  405. position: absolute;
  406. right: 3px;
  407. top: 1px;
  408. padding: 10px;
  409. padding-bottom: 9px;
  410. font-size: 16px;
  411. color: $dark-text-color;
  412. font-family: inherit;
  413. pointer-events: none;
  414. cursor: default;
  415. max-width: 140px;
  416. white-space: nowrap;
  417. overflow: hidden;
  418. &::after {
  419. content: '';
  420. display: block;
  421. position: absolute;
  422. top: 0;
  423. right: 0;
  424. bottom: 1px;
  425. width: 5px;
  426. background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));
  427. }
  428. }
  429. }
  430. &__overlay-area {
  431. position: relative;
  432. &__overlay {
  433. position: absolute;
  434. top: 0;
  435. left: 0;
  436. width: 100%;
  437. height: 100%;
  438. display: flex;
  439. justify-content: center;
  440. align-items: center;
  441. background: rgba($ui-base-color, 0.65);
  442. backdrop-filter: blur(2px);
  443. border-radius: 4px;
  444. &__content {
  445. text-align: center;
  446. &.rich-formatting {
  447. &,
  448. p {
  449. color: $primary-text-color;
  450. }
  451. }
  452. }
  453. }
  454. }
  455. }
  456. .block-icon {
  457. display: block;
  458. margin: 0 auto;
  459. margin-bottom: 10px;
  460. font-size: 24px;
  461. }
  462. .flash-message {
  463. background: lighten($ui-base-color, 8%);
  464. color: $darker-text-color;
  465. border-radius: 4px;
  466. padding: 15px 10px;
  467. margin-bottom: 30px;
  468. text-align: center;
  469. &.notice {
  470. border: 1px solid rgba($valid-value-color, 0.5);
  471. background: rgba($valid-value-color, 0.25);
  472. color: $valid-value-color;
  473. }
  474. &.alert {
  475. border: 1px solid rgba($error-value-color, 0.5);
  476. background: rgba($error-value-color, 0.25);
  477. color: $error-value-color;
  478. }
  479. a {
  480. display: inline-block;
  481. color: $darker-text-color;
  482. text-decoration: none;
  483. &:hover {
  484. color: $primary-text-color;
  485. text-decoration: underline;
  486. }
  487. }
  488. p {
  489. margin-bottom: 15px;
  490. }
  491. .oauth-code {
  492. outline: 0;
  493. box-sizing: border-box;
  494. display: block;
  495. width: 100%;
  496. border: 0;
  497. padding: 10px;
  498. font-family: $font-monospace, monospace;
  499. background: $ui-base-color;
  500. color: $primary-text-color;
  501. font-size: 14px;
  502. margin: 0;
  503. &::-moz-focus-inner {
  504. border: 0;
  505. }
  506. &::-moz-focus-inner,
  507. &:focus,
  508. &:active {
  509. outline: 0 !important;
  510. }
  511. &:focus {
  512. background: lighten($ui-base-color, 4%);
  513. }
  514. }
  515. strong {
  516. font-weight: 500;
  517. @each $lang in $cjk-langs {
  518. &:lang(#{$lang}) {
  519. font-weight: 700;
  520. }
  521. }
  522. }
  523. @media screen and (max-width: 740px) and (min-width: 441px) {
  524. margin-top: 40px;
  525. }
  526. }
  527. .form-footer {
  528. margin-top: 30px;
  529. text-align: center;
  530. a {
  531. color: $darker-text-color;
  532. text-decoration: none;
  533. &:hover {
  534. text-decoration: underline;
  535. }
  536. }
  537. }
  538. .quick-nav {
  539. list-style: none;
  540. margin-bottom: 25px;
  541. font-size: 14px;
  542. li {
  543. display: inline-block;
  544. margin-right: 10px;
  545. }
  546. a {
  547. color: $highlight-text-color;
  548. text-transform: uppercase;
  549. text-decoration: none;
  550. font-weight: 700;
  551. &:hover,
  552. &:focus,
  553. &:active {
  554. color: lighten($highlight-text-color, 8%);
  555. }
  556. }
  557. }
  558. .oauth-prompt,
  559. .follow-prompt {
  560. margin-bottom: 30px;
  561. color: $darker-text-color;
  562. h2 {
  563. font-size: 16px;
  564. margin-bottom: 30px;
  565. text-align: center;
  566. }
  567. strong {
  568. color: $secondary-text-color;
  569. font-weight: 500;
  570. @each $lang in $cjk-langs {
  571. &:lang(#{$lang}) {
  572. font-weight: 700;
  573. }
  574. }
  575. }
  576. @media screen and (max-width: 740px) and (min-width: 441px) {
  577. margin-top: 40px;
  578. }
  579. }
  580. .qr-wrapper {
  581. display: flex;
  582. flex-wrap: wrap;
  583. align-items: flex-start;
  584. }
  585. .qr-code {
  586. flex: 0 0 auto;
  587. background: $simple-background-color;
  588. padding: 4px;
  589. margin: 0 10px 20px 0;
  590. box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
  591. display: inline-block;
  592. svg {
  593. display: block;
  594. margin: 0;
  595. }
  596. }
  597. .qr-alternative {
  598. margin-bottom: 20px;
  599. color: $secondary-text-color;
  600. flex: 150px;
  601. samp {
  602. display: block;
  603. font-size: 14px;
  604. }
  605. }
  606. .table-form {
  607. p {
  608. margin-bottom: 15px;
  609. strong {
  610. font-weight: 500;
  611. @each $lang in $cjk-langs {
  612. &:lang(#{$lang}) {
  613. font-weight: 700;
  614. }
  615. }
  616. }
  617. }
  618. }
  619. .simple_form,
  620. .table-form {
  621. .warning {
  622. box-sizing: border-box;
  623. background: rgba($error-value-color, 0.5);
  624. color: $primary-text-color;
  625. text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);
  626. box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);
  627. border-radius: 4px;
  628. padding: 10px;
  629. margin-bottom: 15px;
  630. a {
  631. color: $primary-text-color;
  632. text-decoration: underline;
  633. &:hover,
  634. &:focus,
  635. &:active {
  636. text-decoration: none;
  637. }
  638. }
  639. strong {
  640. font-weight: 600;
  641. display: block;
  642. margin-bottom: 5px;
  643. @each $lang in $cjk-langs {
  644. &:lang(#{$lang}) {
  645. font-weight: 700;
  646. }
  647. }
  648. .fa {
  649. font-weight: 400;
  650. }
  651. }
  652. }
  653. }
  654. .action-pagination {
  655. display: flex;
  656. flex-wrap: wrap;
  657. align-items: center;
  658. .actions,
  659. .pagination {
  660. flex: 1 1 auto;
  661. }
  662. .actions {
  663. padding: 30px 0;
  664. padding-right: 20px;
  665. flex: 0 0 auto;
  666. }
  667. }
  668. .post-follow-actions {
  669. text-align: center;
  670. color: $darker-text-color;
  671. div {
  672. margin-bottom: 4px;
  673. }
  674. }
  675. .alternative-login {
  676. margin-top: 20px;
  677. margin-bottom: 20px;
  678. h4 {
  679. font-size: 16px;
  680. color: $primary-text-color;
  681. text-align: center;
  682. margin-bottom: 20px;
  683. border: 0;
  684. padding: 0;
  685. }
  686. .button {
  687. display: block;
  688. }
  689. }
  690. .scope-danger {
  691. color: $warning-red;
  692. }
  693. .form_admin_settings_site_short_description,
  694. .form_admin_settings_site_description,
  695. .form_admin_settings_site_extended_description,
  696. .form_admin_settings_site_terms,
  697. .form_admin_settings_custom_css,
  698. .form_admin_settings_closed_registrations_message {
  699. textarea {
  700. font-family: $font-monospace, monospace;
  701. }
  702. }
  703. .input-copy {
  704. background: darken($ui-base-color, 10%);
  705. border: 1px solid darken($ui-base-color, 14%);
  706. border-radius: 4px;
  707. display: flex;
  708. align-items: center;
  709. padding-right: 4px;
  710. position: relative;
  711. top: 1px;
  712. transition: border-color 300ms linear;
  713. &__wrapper {
  714. flex: 1 1 auto;
  715. }
  716. input[type=text] {
  717. background: transparent;
  718. border: 0;
  719. padding: 10px;
  720. font-size: 14px;
  721. font-family: $font-monospace, monospace;
  722. }
  723. button {
  724. flex: 0 0 auto;
  725. margin: 4px;
  726. text-transform: none;
  727. font-weight: 400;
  728. font-size: 14px;
  729. padding: 7px 18px;
  730. padding-bottom: 6px;
  731. width: auto;
  732. transition: background 300ms linear;
  733. }
  734. &.copied {
  735. border-color: $valid-value-color;
  736. transition: none;
  737. button {
  738. background: $valid-value-color;
  739. transition: none;
  740. }
  741. }
  742. }
  743. .connection-prompt {
  744. margin-bottom: 25px;
  745. .fa-link {
  746. background-color: darken($ui-base-color, 4%);
  747. border-radius: 100%;
  748. font-size: 24px;
  749. padding: 10px;
  750. }
  751. &__column {
  752. align-items: center;
  753. display: flex;
  754. flex: 1;
  755. flex-direction: column;
  756. flex-shrink: 1;
  757. max-width: 50%;
  758. &-sep {
  759. align-self: center;
  760. flex-grow: 0;
  761. overflow: visible;
  762. position: relative;
  763. z-index: 1;
  764. }
  765. p {
  766. word-break: break-word;
  767. }
  768. }
  769. .account__avatar {
  770. margin-bottom: 20px;
  771. }
  772. &__connection {
  773. background-color: lighten($ui-base-color, 8%);
  774. box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
  775. border-radius: 4px;
  776. padding: 25px 10px;
  777. position: relative;
  778. text-align: center;
  779. &::after {
  780. background-color: darken($ui-base-color, 4%);
  781. content: '';
  782. display: block;
  783. height: 100%;
  784. left: 50%;
  785. position: absolute;
  786. top: 0;
  787. width: 1px;
  788. }
  789. }
  790. &__row {
  791. align-items: flex-start;
  792. display: flex;
  793. flex-direction: row;
  794. }
  795. }