1
0

guest.scss 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  1. /*!
  2. * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
  3. * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
  4. * SPDX-License-Identifier: AGPL-3.0-or-later
  5. */
  6. @import 'animations.scss';
  7. /* Default and reset */
  8. html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; cursor:default; }
  9. html { height:100%; }
  10. article, aside, dialog, figure, footer, header, hgroup, nav, section { display:block; }
  11. body { line-height:1.5; }
  12. table { border-collapse:separate; border-spacing:0; white-space:nowrap; }
  13. caption, th, td { text-align:left; font-weight:normal; }
  14. table, td, th { vertical-align:middle; }
  15. a { border:0; color: var(--color-main-text); text-decoration:none;}
  16. a, a *, input, input *, select, .button span, label { cursor:pointer; }
  17. ul { list-style:none; }
  18. body {
  19. font-weight: normal;
  20. /* bring the default font size up to 14px */
  21. font-size: .875em;
  22. line-height: 1.6em;
  23. font-family: system-ui, -apple-system, "Segoe UI", Roboto, Oxygen-Sans, Cantarell, Ubuntu, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  24. color: var(--color-background-plain-text, #ffffff);
  25. text-align: center;
  26. background-color: var(--color-background-plain, #0082c9);
  27. /*
  28. User background if logged in ('no' if removed, that way the variable is _defined_)
  29. Fallback to default gradient (should not happened, the background is always defined anyway) */
  30. background-image: var(--image-background, linear-gradient(40deg, #0082c9 0%, #30b6ff 100%));
  31. background-attachment: fixed;
  32. background-size: cover;
  33. background-position: center;
  34. min-height: 100%; /* fix sticky footer */
  35. height: auto;
  36. overflow: auto;
  37. position: static;
  38. }
  39. /* Various fonts settings */
  40. #body-login {
  41. a {
  42. font-weight: 600;
  43. }
  44. footer a {
  45. color: var(--color-text);
  46. }
  47. a:not(.button):hover,
  48. a:not(.button):focus {
  49. text-decoration: underline;
  50. text-decoration-skip-ink: auto;
  51. }
  52. }
  53. em {
  54. font-style: normal;
  55. opacity: .5;
  56. }
  57. /* heading styles */
  58. h2,
  59. h3,
  60. h4 {
  61. font-weight: bold;
  62. }
  63. h2 {
  64. font-size: 20px;
  65. margin-bottom: 12px;
  66. line-height: 140%;
  67. }
  68. h3 {
  69. font-size: 15px;
  70. margin: 12px 0;
  71. }
  72. /* Global content */
  73. body {
  74. display: flex;
  75. flex-direction: column;
  76. justify-content: center;
  77. align-items: center;
  78. }
  79. #header {
  80. .logo {
  81. background-image: var(--image-logo, url('../../core/img/logo/logo.svg'));
  82. background-repeat: no-repeat;
  83. background-size: contain;
  84. background-position: center;
  85. width: 175px;
  86. height: 130px;
  87. margin: 0 auto;
  88. position: relative;
  89. left: unset;
  90. }
  91. }
  92. .wrapper {
  93. width: 100%;
  94. max-width: 700px;
  95. margin-block: 10vh auto;
  96. }
  97. /* Default FORM */
  98. form {
  99. position: relative;
  100. margin: auto;
  101. padding: 0;
  102. }
  103. form.install-form {
  104. max-width: 300px;
  105. }
  106. form.install-form fieldset,
  107. form.install-form fieldset input {
  108. width: 100%;
  109. }
  110. form.install-form .strengthify-wrapper {
  111. bottom: 17px;
  112. width: calc(100% - 8px);
  113. left: 4px;
  114. top: unset;
  115. }
  116. form.install-form #show {
  117. top: 18px;
  118. }
  119. form #sqliteInformation {
  120. margin-top: 0.5rem;
  121. margin-bottom: 20px;
  122. }
  123. form #adminaccount, form #use_other_db {
  124. margin-bottom: 15px;
  125. text-align: left;
  126. }
  127. form #adminaccount > legend,
  128. form #adminlogin {
  129. margin-bottom: 1rem;
  130. }
  131. form #advancedHeader {
  132. width: 100%;
  133. }
  134. form fieldset legend, #datadirContent label {
  135. width: 100%;
  136. }
  137. #datadirContent label {
  138. display: block;
  139. margin: 0;
  140. }
  141. form #datadirField legend {
  142. margin-bottom: 15px;
  143. }
  144. /* View more button */
  145. #showAdvanced {
  146. padding: 13px; /* increase clickable area of Advanced dropdown */
  147. }
  148. #showAdvanced img {
  149. vertical-align: middle; /* adjust position of Advanced dropdown arrow */
  150. }
  151. /* Buttons and input */
  152. #submit-wrapper {
  153. display: flex;
  154. align-items: center;
  155. justify-content: center;
  156. padding: 10px 5px;
  157. position: relative; /* Make the wrapper the containing block of its
  158. absolutely positioned descendant icons */
  159. }
  160. @media only screen and (max-width: 1024px) {
  161. .wrapper {
  162. margin-top: 0;
  163. }
  164. }
  165. #submit-wrapper {
  166. margin: 0 auto;
  167. .submit-icon {
  168. position: absolute;
  169. right: 24px;
  170. transition: right 100ms ease-in-out;
  171. pointer-events: none; /* The submit icon is positioned on the submit button.
  172. From the user point of view the icon is part of the
  173. button, so the clicks on the icon have to be
  174. applied to the button instead. */
  175. }
  176. input.login:hover ~ .submit-icon.icon-confirm-white,
  177. input.login:focus ~ .submit-icon.icon-confirm-white,
  178. input.login:active ~ .submit-icon.icon-confirm-white {
  179. right: 20px;
  180. }
  181. .icon-loading-small {
  182. position: absolute;
  183. top: 22px;
  184. right: 26px;
  185. }
  186. }
  187. input:not([type='radio']),
  188. input:not([type='range']) {
  189. border-width: 2px;
  190. }
  191. input:not([type='range']):focus-visible {
  192. box-shadow: none !important;
  193. }
  194. input[type='submit'],
  195. input[type='submit'].icon-confirm,
  196. input[type='button'],
  197. button,
  198. a.button,
  199. .button,
  200. select {
  201. display: inline-block;
  202. width: auto;
  203. min-width: 25px;
  204. padding: calc(2 * var(--default-grid-baseline));
  205. background-color: var(--color-main-background);
  206. font-weight: bold;
  207. color: var(--color-main-text);
  208. border: none;
  209. border-radius: var(--border-radius-element);
  210. cursor: pointer;
  211. }
  212. .icon-confirm.input-button-inline {
  213. position: absolute;
  214. right: 3px;
  215. top: 5px;
  216. }
  217. input[type='submit']:focus {
  218. box-shadow: 0 0 0 2px inset var(--color-main-text) !important;
  219. }
  220. input[type='text'],
  221. input[type='tel'],
  222. input[type='password'],
  223. input[type='email'] {
  224. width: 266px;
  225. padding: 5px 10px;
  226. color: var(--color-text-lighter);
  227. cursor: text;
  228. font-family: inherit;
  229. font-weight: normal;
  230. margin-left: 0;
  231. margin-right: 0;
  232. }
  233. input[type='password'].password-with-toggle, input[type='text'].password-with-toggle {
  234. width: 238px;
  235. padding-right: 40px !important;
  236. }
  237. input.login {
  238. width: 260px;
  239. height: 50px;
  240. background-position: right 16px center;
  241. }
  242. input[type='submit'],
  243. input[type='submit'].icon-confirm,
  244. input.updateButton,
  245. input.update-continue {
  246. padding: 10px 20px; /* larger log in and installation buttons */
  247. overflow: hidden;
  248. text-overflow: ellipsis;
  249. }
  250. /* Get rid of the inside dotted line in Firefox */
  251. button::-moz-focus-inner,
  252. input::-moz-focus-inner {
  253. border: 0;
  254. }
  255. input.primary {
  256. background-color: var(--color-primary-element);
  257. color: var(--color-primary-element-text);
  258. }
  259. input,
  260. button,
  261. a {
  262. &.primary:not(:disabled) {
  263. &:hover,
  264. &:focus {
  265. background-color: var(--color-primary-element-hover);
  266. color: var(--color-primary-element-text);
  267. }
  268. }
  269. }
  270. /* Checkboxes - white only for login */
  271. input[type='checkbox'].checkbox {
  272. position: absolute;
  273. left: -10000px;
  274. top: auto;
  275. width: 1px;
  276. height: 1px;
  277. overflow: hidden;
  278. }
  279. input[type='checkbox'].checkbox + label {
  280. user-select: none;
  281. }
  282. input[type='checkbox'].checkbox:disabled + label,
  283. input[type='checkbox'].checkbox:disabled + label:before {
  284. cursor: default;
  285. }
  286. input[type='checkbox'].checkbox + label:before {
  287. content: '';
  288. display: inline-block;
  289. vertical-align: middle;
  290. margin: 3px;
  291. margin-top: 1px;
  292. border: 1px solid #888;
  293. border-radius: 1px;
  294. height: 10px;
  295. width: 10px;
  296. background-position: center;
  297. }
  298. input[type='checkbox'].checkbox--white + label:before {
  299. border-color: #ddd;
  300. }
  301. input[type='checkbox'].checkbox--white:not(:disabled):not(:checked) + label:hover:before,
  302. input[type='checkbox'].checkbox--white:focus + label:before {
  303. border-color: #fff;
  304. }
  305. input[type='checkbox'].checkbox--white:checked + label:before {
  306. background-color: #eee;
  307. border-color: #eee;
  308. }
  309. input[type='checkbox'].checkbox--white:disabled + label:before {
  310. background-color: #666 !important;
  311. border-color: #999 !important;
  312. }
  313. input[type='checkbox'].checkbox--white:checked:disabled + label:before {
  314. border-color: #666;
  315. background-color: #222;
  316. }
  317. input[type='checkbox'].checkbox--white:checked + label:before {
  318. background-color: transparent !important;
  319. border-color: #fff !important;
  320. background-image: url('../img/actions/checkbox-mark-white.svg');
  321. }
  322. /* Password strength meter */
  323. .strengthify-wrapper {
  324. display: inline-block;
  325. position: relative;
  326. top: -20px;
  327. width: 250px;
  328. border-radius: 0 0 3px 3px;
  329. overflow: hidden;
  330. height: 3px;
  331. }
  332. .tooltip-inner {
  333. font-weight: bold;
  334. padding: 3px 6px;
  335. text-align: center;
  336. }
  337. /* Show password toggle */
  338. #show, #dbpassword-toggle {
  339. position: absolute;
  340. right: 2px;
  341. top: -3px;
  342. display: flex;
  343. justify-content: center;
  344. width: 44px;
  345. align-content: center;
  346. padding: 13px;
  347. }
  348. #pass2, input[name='personal-password-clone'] {
  349. padding: .6em 2.5em .4em .4em;
  350. width: 8em;
  351. }
  352. #personal-show + label {
  353. height: 14px;
  354. margin-top: -25px;
  355. left: 295px;
  356. display: block;
  357. }
  358. #passwordbutton {
  359. margin-left: .5em;
  360. }
  361. /* Dark subtle label text */
  362. p.info,
  363. form fieldset legend,
  364. #datadirContent label,
  365. form fieldset .warning-info,
  366. form input[type='checkbox']+label {
  367. text-align: center;
  368. }
  369. /* overrides another !important statement that sets this to unreadable black */
  370. form .warning input[type='checkbox']:hover+label,
  371. form .warning input[type='checkbox']:focus+label,
  372. form .warning input[type='checkbox']+label {
  373. color: var(--color-primary-element-text) !important;
  374. }
  375. .body-login-container.two-factor {
  376. // Same size as login box and dashboard panels
  377. width: 320px;
  378. box-sizing: border-box;
  379. }
  380. .two-factor-provider {
  381. display: flex;
  382. border-radius: 3px; /* --border-radius */
  383. margin: 12px 0;
  384. border: 1px solid transparent;
  385. text-align: left;
  386. align-items: center;
  387. text-decoration: none !important;
  388. &:hover,
  389. &:focus,
  390. &:active {
  391. border: 1px solid #fff;
  392. }
  393. img {
  394. width: 64px;
  395. height: 64px;
  396. padding: 0 12px;
  397. }
  398. div {
  399. margin: 12px 0;
  400. }
  401. h3 {
  402. margin: 0;
  403. }
  404. p {
  405. font-weight: normal;
  406. }
  407. }
  408. .two-factor-icon {
  409. width: 100px;
  410. display: block;
  411. margin: 0 auto;
  412. }
  413. .two-factor-submit {
  414. width: 100%;
  415. padding: 10px;
  416. margin: 0 0 5px 0;
  417. border-radius: 100px; /* --border-radius-pill */
  418. font-size: 20px;
  419. }
  420. .two-factor-primary {
  421. /* Fix for 'Use backup codes' button not taking correct styles */
  422. padding: 14px !important;
  423. width: 226px;
  424. }
  425. .two-factor-secondary {
  426. display: inline-block;
  427. padding: 12px;
  428. }
  429. /* Additional login options */
  430. #remember_login {
  431. margin: 18px 5px 0 16px !important;
  432. }
  433. /* fixes for update page TODO should be fixed some time in a proper way */
  434. /* this is just for an error while updating the ownCloud instance */
  435. .updateProgress .error {
  436. margin-top: 10px;
  437. margin-bottom: 10px;
  438. }
  439. /* Database selector on install page */
  440. form #selectDbType {
  441. text-align:center;
  442. white-space: nowrap;
  443. margin: 0;
  444. display: flex;
  445. .info {
  446. white-space: normal;
  447. }
  448. label {
  449. flex-grow: 1;
  450. margin: 0 -1px 5px;
  451. font-size: 12px;
  452. background: var(--color-background-hover);
  453. color: var(--color-main-text);
  454. cursor:pointer;
  455. border: 1px solid var(--color-border);
  456. padding: 10px 17px;
  457. }
  458. label.ui-state-hover,
  459. label.ui-state-active {
  460. font-weight: normal;
  461. background: var(--color-background-darker);
  462. color: var(--color-main-text);
  463. }
  464. label span {
  465. display: none;
  466. }
  467. }
  468. /* Nicely grouping input field sets */
  469. .grouptop,
  470. .groupmiddle,
  471. .groupbottom {
  472. position: relative;
  473. user-select: none;
  474. }
  475. .grouptop, .groupmiddle {
  476. margin-bottom: 8px !important;
  477. }
  478. .groupbottom {
  479. margin-bottom: 13px;
  480. }
  481. .groupbottom input[type=submit] {
  482. box-shadow: none !important;
  483. }
  484. .grouptop.groupbottom input {
  485. border-radius: 3px !important;
  486. margin: 5px 0 !important;
  487. }
  488. /* Errors */
  489. /* Warnings and errors are the same */
  490. .body-login-container {
  491. display: flex;
  492. flex-direction: column;
  493. text-align: left;
  494. word-wrap: break-word;
  495. border-radius: 10px; /* --border-radius-large */
  496. cursor: default;
  497. -moz-user-select: text;
  498. -webkit-user-select: text;
  499. -ms-user-select: text;
  500. user-select: text;
  501. /* TODO: Change all .warning/.update/.error to .body-login-container */
  502. .icon-big {
  503. background-size: 70px;
  504. height: 70px;
  505. }
  506. form {
  507. width: initial;
  508. }
  509. p:not(:last-child) {
  510. margin-bottom: 12px;
  511. }
  512. }
  513. /* Various paragraph styles */
  514. .infogroup {
  515. margin: 8px 0;
  516. }
  517. .infogroup:last-child {
  518. margin-bottom: 0;
  519. }
  520. p.info {
  521. margin: 20px auto;
  522. -webkit-user-select: none;
  523. -moz-user-select: none;
  524. -ms-user-select: none;
  525. user-select: none;
  526. }
  527. /* Update */
  528. .update {
  529. width: calc(100% - 32px);
  530. text-align: center;
  531. .appList {
  532. list-style: disc;
  533. text-align: left;
  534. margin-left: 25px;
  535. margin-right: 25px;
  536. }
  537. img.float-spinner {
  538. float: left;
  539. }
  540. a.update-show-detailed {
  541. border-bottom: inherit;
  542. }
  543. }
  544. #update-progress-detailed {
  545. text-align: left;
  546. margin-bottom: 12px;
  547. }
  548. .update-show-detailed {
  549. padding: 12px;
  550. display: block;
  551. opacity: .75;
  552. .icon-caret-white {
  553. display: inline-block;
  554. vertical-align: middle;
  555. }
  556. }
  557. #update-progress-icon {
  558. height: 32px;
  559. margin: 10px;
  560. background-size: 32px;
  561. }
  562. /* Icons */
  563. .icon-info-white {
  564. background-image: url('../img/actions/info-white.svg?v=2');
  565. }
  566. .icon-error-white {
  567. background-image: url('../img/actions/error-white.svg?v=1');
  568. }
  569. .icon-caret-white {
  570. background-image: url('../img/actions/caret-white.svg?v=1');
  571. }
  572. .icon-confirm {
  573. background-image: url('../img/actions/confirm.svg?v=2');
  574. }
  575. .icon-confirm-white {
  576. background-image: url('../img/actions/confirm-white.svg?v=2');
  577. }
  578. .icon-checkmark-white {
  579. background-image: url('../img/actions/checkmark-white.svg?v=1');
  580. }
  581. /* Loading */
  582. .float-spinner {
  583. margin-top: -32px;
  584. padding-top: 32px;
  585. height: 32px;
  586. display: none;
  587. }
  588. [class^='icon-'], [class*=' icon-'] {
  589. background-repeat: no-repeat;
  590. background-position: center;
  591. min-width: 16px;
  592. min-height: 16px;
  593. }
  594. .loading, .loading-small, .icon-loading, .icon-loading-dark, .icon-loading-small, .icon-loading-small-dark {
  595. position: relative;
  596. filter: var(--background-invert-if-dark)
  597. }
  598. .loading:after, .loading-small:after, .icon-loading:after, .icon-loading-dark:after, .icon-loading-small:after, .icon-loading-small-dark:after {
  599. z-index: 2;
  600. content: '';
  601. height: 32px;
  602. width: 32px;
  603. margin: -17px 0 0 -17px;
  604. position: absolute;
  605. top: 50%;
  606. left: 50%;
  607. border-radius: 100%;
  608. -webkit-animation: rotate .8s infinite linear;
  609. animation: rotate .8s infinite linear;
  610. -webkit-transform-origin: center;
  611. -ms-transform-origin: center;
  612. transform-origin: center;
  613. }
  614. .primary .loading,.primary+.loading,.primary .loading-small,.primary+.loading-small,.primary .icon-loading,.primary+.icon-loading,.primary .icon-loading-dark,.primary+.icon-loading-dark,.primary .icon-loading-small,.primary+.icon-loading-small,.primary .icon-loading-small-dark,.primary+.icon-loading-small-dark {
  615. filter: var(--primary-invert-if-bright)
  616. }
  617. .loading:after, .loading-small:after, .icon-loading:after, .icon-loading-dark:after, .icon-loading-small:after, .icon-loading-small-dark:after {
  618. border: 2px solid rgba(150, 150, 150, 0.5);
  619. border-top-color: #646464;
  620. }
  621. .icon-loading-dark:after, .icon-loading-small-dark:after {
  622. border: 2px solid rgba(187, 187, 187, 0.5);
  623. border-top-color: #bbb;
  624. }
  625. .icon-loading-small:after, .icon-loading-small-dark:after {
  626. height: 16px;
  627. width: 16px;
  628. margin: -9px 0 0 -9px;
  629. }
  630. /* Css replaced elements don't have ::after nor ::before */
  631. img.icon-loading, object.icon-loading, video.icon-loading, button.icon-loading, textarea.icon-loading, input.icon-loading, select.icon-loading, div[contenteditable=true].icon-loading {
  632. background-image: url('../img/loading.gif');
  633. }
  634. img.icon-loading-dark, object.icon-loading-dark, video.icon-loading-dark, button.icon-loading-dark, textarea.icon-loading-dark, input.icon-loading-dark, select.icon-loading-dark, div[contenteditable=true].icon-loading-dark {
  635. background-image: url('../img/loading-dark.gif');
  636. }
  637. img.icon-loading-small, object.icon-loading-small, video.icon-loading-small, button.icon-loading-small, textarea.icon-loading-small, input.icon-loading-small, select.icon-loading-small, div[contenteditable=true].icon-loading-small {
  638. background-image: url('../img/loading-small.gif');
  639. }
  640. img.icon-loading-small-dark, object.icon-loading-small-dark, video.icon-loading-small-dark, button.icon-loading-small-dark, textarea.icon-loading-small-dark, input.icon-loading-small-dark, select.icon-loading-small-dark, div[contenteditable=true].icon-loading-small-dark {
  641. background-image: url('../img/loading-small-dark.gif');
  642. }
  643. @-webkit-keyframes rotate {
  644. from {
  645. -webkit-transform: rotate(0deg);
  646. transform: rotate(0deg);
  647. }
  648. to {
  649. -webkit-transform: rotate(360deg);
  650. transform: rotate(360deg);
  651. }
  652. }
  653. @keyframes rotate {
  654. from {
  655. -webkit-transform: rotate(0deg);
  656. transform: rotate(0deg);
  657. }
  658. to {
  659. -webkit-transform: rotate(360deg);
  660. transform: rotate(360deg);
  661. }
  662. }
  663. /* FOOTER */
  664. footer {
  665. .info .entity-name {
  666. font-weight: bold;
  667. }
  668. &.guest-box {
  669. padding: var(--default-grid-baseline) calc(3 * var(--default-grid-baseline));
  670. margin-bottom: 1rem;
  671. .info {
  672. margin: 0;
  673. }
  674. }
  675. }
  676. /* keep the labels for screen readers but hide them since we use placeholders */
  677. label.infield,
  678. .hidden-visually {
  679. position: absolute;
  680. left: -10000px;
  681. top: -10000px;
  682. width: 1px;
  683. height: 1px;
  684. overflow: hidden;
  685. }
  686. a.legal {
  687. font-size: smaller;
  688. }
  689. .notecard {
  690. color: var(--color-text-light);
  691. background-color: var(--note-background);
  692. border-left: 4px solid var(--note-theme);
  693. border-radius: var(--border-radius);
  694. margin: 1rem 0;
  695. padding: 1rem;
  696. text-align: left;
  697. &.success {
  698. --note-background: rgba(var(--color-success-rgb), 0.1);
  699. --note-theme: var(--color-success);
  700. }
  701. &.error {
  702. --note-background: rgba(var(--color-error-rgb), 0.1);
  703. --note-theme: var(--color-error);
  704. }
  705. &.warning {
  706. --note-background: rgba(var(--color-warning-rgb), 0.1);
  707. --note-theme: var(--color-warning);
  708. }
  709. &:last-child {
  710. margin-bottom: 0;
  711. }
  712. pre {
  713. background-color: var(--color-background-dark);
  714. margin-top: 1rem;
  715. padding: 1em 1.3em;
  716. border-radius: var(--border-radius);
  717. }
  718. }
  719. .guest-box, .body-login-container {
  720. // Ensure the maxcontrast color is set for the background
  721. --color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));
  722. color: var(--color-main-text);
  723. background-color: var(--color-main-background-blur);
  724. padding: calc(3 * var(--default-grid-baseline));
  725. border-radius: var(--border-radius-container);
  726. box-shadow: 0 0 10px var(--color-box-shadow);
  727. display: inline-block;
  728. -webkit-backdrop-filter: var(--filter-background-blur);
  729. backdrop-filter: var(--filter-background-blur);
  730. }
  731. .guest-box {
  732. &.wide {
  733. display: block;
  734. text-align: left;
  735. border-radius: var(--border-radius-container-large);
  736. }
  737. fieldset {
  738. margin-top: 0;
  739. }
  740. .pre {
  741. overflow-x: scroll;
  742. }
  743. }
  744. button.toggle-password {
  745. background-color: transparent;
  746. border-width: 0;
  747. height: 44px;
  748. }
  749. /** Utilities */
  750. .margin-top {
  751. margin-top: 1rem !important;
  752. }
  753. .text-left {
  754. text-align: left !important;
  755. }
  756. .hidden {
  757. display: none;
  758. }