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.
 
 
 
 

943 lines
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. &:invalid {
  284. box-shadow: none;
  285. }
  286. &:focus:invalid:not(:placeholder-shown) {
  287. border-color: lighten($error-red, 12%);
  288. }
  289. &:required:valid {
  290. border-color: $valid-value-color;
  291. }
  292. &:hover {
  293. border-color: darken($ui-base-color, 20%);
  294. }
  295. &:active,
  296. &:focus {
  297. border-color: $highlight-text-color;
  298. background: darken($ui-base-color, 8%);
  299. }
  300. }
  301. .input.field_with_errors {
  302. label {
  303. color: lighten($error-red, 12%);
  304. }
  305. input[type=text],
  306. input[type=number],
  307. input[type=email],
  308. input[type=password],
  309. textarea,
  310. select {
  311. border-color: lighten($error-red, 12%);
  312. }
  313. .error {
  314. display: block;
  315. font-weight: 500;
  316. color: lighten($error-red, 12%);
  317. margin-top: 4px;
  318. }
  319. }
  320. .input.disabled {
  321. opacity: 0.5;
  322. }
  323. .actions {
  324. margin-top: 30px;
  325. display: flex;
  326. &.actions--top {
  327. margin-top: 0;
  328. margin-bottom: 30px;
  329. }
  330. }
  331. button,
  332. .button,
  333. .block-button {
  334. display: block;
  335. width: 100%;
  336. border: 0;
  337. border-radius: 4px;
  338. background: $ui-highlight-color;
  339. color: $primary-text-color;
  340. font-size: 18px;
  341. line-height: inherit;
  342. height: auto;
  343. padding: 10px;
  344. text-transform: uppercase;
  345. text-decoration: none;
  346. text-align: center;
  347. box-sizing: border-box;
  348. cursor: pointer;
  349. font-weight: 500;
  350. outline: 0;
  351. margin-bottom: 10px;
  352. margin-right: 10px;
  353. &:last-child {
  354. margin-right: 0;
  355. }
  356. &:hover {
  357. background-color: lighten($ui-highlight-color, 5%);
  358. }
  359. &:active,
  360. &:focus {
  361. background-color: darken($ui-highlight-color, 5%);
  362. }
  363. &:disabled:hover {
  364. background-color: $ui-primary-color;
  365. }
  366. &.negative {
  367. background: $error-value-color;
  368. &:hover {
  369. background-color: lighten($error-value-color, 5%);
  370. }
  371. &:active,
  372. &:focus {
  373. background-color: darken($error-value-color, 5%);
  374. }
  375. }
  376. }
  377. select {
  378. appearance: none;
  379. box-sizing: border-box;
  380. font-size: 16px;
  381. color: $primary-text-color;
  382. display: block;
  383. width: 100%;
  384. outline: 0;
  385. font-family: inherit;
  386. resize: vertical;
  387. 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;
  388. border: 1px solid darken($ui-base-color, 14%);
  389. border-radius: 4px;
  390. padding-left: 10px;
  391. padding-right: 30px;
  392. height: 41px;
  393. }
  394. h4 {
  395. margin-bottom: 15px !important;
  396. }
  397. .label_input {
  398. &__wrapper {
  399. position: relative;
  400. }
  401. &__append {
  402. position: absolute;
  403. right: 3px;
  404. top: 1px;
  405. padding: 10px;
  406. padding-bottom: 9px;
  407. font-size: 16px;
  408. color: $dark-text-color;
  409. font-family: inherit;
  410. pointer-events: none;
  411. cursor: default;
  412. max-width: 140px;
  413. white-space: nowrap;
  414. overflow: hidden;
  415. &::after {
  416. content: '';
  417. display: block;
  418. position: absolute;
  419. top: 0;
  420. right: 0;
  421. bottom: 1px;
  422. width: 5px;
  423. background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));
  424. }
  425. }
  426. }
  427. &__overlay-area {
  428. position: relative;
  429. &__overlay {
  430. position: absolute;
  431. top: 0;
  432. left: 0;
  433. width: 100%;
  434. height: 100%;
  435. display: flex;
  436. justify-content: center;
  437. align-items: center;
  438. background: rgba($ui-base-color, 0.65);
  439. backdrop-filter: blur(2px);
  440. border-radius: 4px;
  441. &__content {
  442. text-align: center;
  443. &.rich-formatting {
  444. &,
  445. p {
  446. color: $primary-text-color;
  447. }
  448. }
  449. }
  450. }
  451. }
  452. }
  453. .block-icon {
  454. display: block;
  455. margin: 0 auto;
  456. margin-bottom: 10px;
  457. font-size: 24px;
  458. }
  459. .flash-message {
  460. background: lighten($ui-base-color, 8%);
  461. color: $darker-text-color;
  462. border-radius: 4px;
  463. padding: 15px 10px;
  464. margin-bottom: 30px;
  465. text-align: center;
  466. &.notice {
  467. border: 1px solid rgba($valid-value-color, 0.5);
  468. background: rgba($valid-value-color, 0.25);
  469. color: $valid-value-color;
  470. }
  471. &.alert {
  472. border: 1px solid rgba($error-value-color, 0.5);
  473. background: rgba($error-value-color, 0.25);
  474. color: $error-value-color;
  475. }
  476. a {
  477. display: inline-block;
  478. color: $darker-text-color;
  479. text-decoration: none;
  480. &:hover {
  481. color: $primary-text-color;
  482. text-decoration: underline;
  483. }
  484. }
  485. p {
  486. margin-bottom: 15px;
  487. }
  488. .oauth-code {
  489. outline: 0;
  490. box-sizing: border-box;
  491. display: block;
  492. width: 100%;
  493. border: 0;
  494. padding: 10px;
  495. font-family: $font-monospace, monospace;
  496. background: $ui-base-color;
  497. color: $primary-text-color;
  498. font-size: 14px;
  499. margin: 0;
  500. &::-moz-focus-inner {
  501. border: 0;
  502. }
  503. &::-moz-focus-inner,
  504. &:focus,
  505. &:active {
  506. outline: 0 !important;
  507. }
  508. &:focus {
  509. background: lighten($ui-base-color, 4%);
  510. }
  511. }
  512. strong {
  513. font-weight: 500;
  514. @each $lang in $cjk-langs {
  515. &:lang(#{$lang}) {
  516. font-weight: 700;
  517. }
  518. }
  519. }
  520. @media screen and (max-width: 740px) and (min-width: 441px) {
  521. margin-top: 40px;
  522. }
  523. }
  524. .form-footer {
  525. margin-top: 30px;
  526. text-align: center;
  527. a {
  528. color: $darker-text-color;
  529. text-decoration: none;
  530. &:hover {
  531. text-decoration: underline;
  532. }
  533. }
  534. }
  535. .quick-nav {
  536. list-style: none;
  537. margin-bottom: 25px;
  538. font-size: 14px;
  539. li {
  540. display: inline-block;
  541. margin-right: 10px;
  542. }
  543. a {
  544. color: $highlight-text-color;
  545. text-transform: uppercase;
  546. text-decoration: none;
  547. font-weight: 700;
  548. &:hover,
  549. &:focus,
  550. &:active {
  551. color: lighten($highlight-text-color, 8%);
  552. }
  553. }
  554. }
  555. .oauth-prompt,
  556. .follow-prompt {
  557. margin-bottom: 30px;
  558. color: $darker-text-color;
  559. h2 {
  560. font-size: 16px;
  561. margin-bottom: 30px;
  562. text-align: center;
  563. }
  564. strong {
  565. color: $secondary-text-color;
  566. font-weight: 500;
  567. @each $lang in $cjk-langs {
  568. &:lang(#{$lang}) {
  569. font-weight: 700;
  570. }
  571. }
  572. }
  573. @media screen and (max-width: 740px) and (min-width: 441px) {
  574. margin-top: 40px;
  575. }
  576. }
  577. .qr-wrapper {
  578. display: flex;
  579. flex-wrap: wrap;
  580. align-items: flex-start;
  581. }
  582. .qr-code {
  583. flex: 0 0 auto;
  584. background: $simple-background-color;
  585. padding: 4px;
  586. margin: 0 10px 20px 0;
  587. box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
  588. display: inline-block;
  589. svg {
  590. display: block;
  591. margin: 0;
  592. }
  593. }
  594. .qr-alternative {
  595. margin-bottom: 20px;
  596. color: $secondary-text-color;
  597. flex: 150px;
  598. samp {
  599. display: block;
  600. font-size: 14px;
  601. }
  602. }
  603. .table-form {
  604. p {
  605. margin-bottom: 15px;
  606. strong {
  607. font-weight: 500;
  608. @each $lang in $cjk-langs {
  609. &:lang(#{$lang}) {
  610. font-weight: 700;
  611. }
  612. }
  613. }
  614. }
  615. }
  616. .simple_form,
  617. .table-form {
  618. .warning {
  619. box-sizing: border-box;
  620. background: rgba($error-value-color, 0.5);
  621. color: $primary-text-color;
  622. text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);
  623. box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);
  624. border-radius: 4px;
  625. padding: 10px;
  626. margin-bottom: 15px;
  627. a {
  628. color: $primary-text-color;
  629. text-decoration: underline;
  630. &:hover,
  631. &:focus,
  632. &:active {
  633. text-decoration: none;
  634. }
  635. }
  636. strong {
  637. font-weight: 600;
  638. display: block;
  639. margin-bottom: 5px;
  640. @each $lang in $cjk-langs {
  641. &:lang(#{$lang}) {
  642. font-weight: 700;
  643. }
  644. }
  645. .fa {
  646. font-weight: 400;
  647. }
  648. }
  649. }
  650. }
  651. .action-pagination {
  652. display: flex;
  653. flex-wrap: wrap;
  654. align-items: center;
  655. .actions,
  656. .pagination {
  657. flex: 1 1 auto;
  658. }
  659. .actions {
  660. padding: 30px 0;
  661. padding-right: 20px;
  662. flex: 0 0 auto;
  663. }
  664. }
  665. .post-follow-actions {
  666. text-align: center;
  667. color: $darker-text-color;
  668. div {
  669. margin-bottom: 4px;
  670. }
  671. }
  672. .alternative-login {
  673. margin-top: 20px;
  674. margin-bottom: 20px;
  675. h4 {
  676. font-size: 16px;
  677. color: $primary-text-color;
  678. text-align: center;
  679. margin-bottom: 20px;
  680. border: 0;
  681. padding: 0;
  682. }
  683. .button {
  684. display: block;
  685. }
  686. }
  687. .scope-danger {
  688. color: $warning-red;
  689. }
  690. .form_admin_settings_site_short_description,
  691. .form_admin_settings_site_description,
  692. .form_admin_settings_site_extended_description,
  693. .form_admin_settings_site_terms,
  694. .form_admin_settings_custom_css,
  695. .form_admin_settings_closed_registrations_message {
  696. textarea {
  697. font-family: $font-monospace, monospace;
  698. }
  699. }
  700. .input-copy {
  701. background: darken($ui-base-color, 10%);
  702. border: 1px solid darken($ui-base-color, 14%);
  703. border-radius: 4px;
  704. display: flex;
  705. align-items: center;
  706. padding-right: 4px;
  707. position: relative;
  708. top: 1px;
  709. transition: border-color 300ms linear;
  710. &__wrapper {
  711. flex: 1 1 auto;
  712. }
  713. input[type=text] {
  714. background: transparent;
  715. border: 0;
  716. padding: 10px;
  717. font-size: 14px;
  718. font-family: $font-monospace, monospace;
  719. }
  720. button {
  721. flex: 0 0 auto;
  722. margin: 4px;
  723. text-transform: none;
  724. font-weight: 400;
  725. font-size: 14px;
  726. padding: 7px 18px;
  727. padding-bottom: 6px;
  728. width: auto;
  729. transition: background 300ms linear;
  730. }
  731. &.copied {
  732. border-color: $valid-value-color;
  733. transition: none;
  734. button {
  735. background: $valid-value-color;
  736. transition: none;
  737. }
  738. }
  739. }
  740. .connection-prompt {
  741. margin-bottom: 25px;
  742. .fa-link {
  743. background-color: darken($ui-base-color, 4%);
  744. border-radius: 100%;
  745. font-size: 24px;
  746. padding: 10px;
  747. }
  748. &__column {
  749. align-items: center;
  750. display: flex;
  751. flex: 1;
  752. flex-direction: column;
  753. flex-shrink: 1;
  754. max-width: 50%;
  755. &-sep {
  756. align-self: center;
  757. flex-grow: 0;
  758. overflow: visible;
  759. position: relative;
  760. z-index: 1;
  761. }
  762. p {
  763. word-break: break-word;
  764. }
  765. }
  766. .account__avatar {
  767. margin-bottom: 20px;
  768. }
  769. &__connection {
  770. background-color: lighten($ui-base-color, 8%);
  771. box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
  772. border-radius: 4px;
  773. padding: 25px 10px;
  774. position: relative;
  775. text-align: center;
  776. &::after {
  777. background-color: darken($ui-base-color, 4%);
  778. content: '';
  779. display: block;
  780. height: 100%;
  781. left: 50%;
  782. position: absolute;
  783. top: 0;
  784. width: 1px;
  785. }
  786. }
  787. &__row {
  788. align-items: flex-start;
  789. display: flex;
  790. flex-direction: row;
  791. }
  792. }