ajax-progress.module.pcss.css

Same filename in this branch
  1. main core/themes/olivero/css/components/ajax-progress.module.pcss.css
  2. main core/themes/claro/css/components/ajax-progress.module.pcss.css
  3. main core/themes/admin/css/components/ajax-progress.module.pcss.css
Same filename and directory in other branches
  1. 10 core/themes/olivero/css/components/ajax-progress.module.pcss.css
  2. 10 core/themes/claro/css/components/ajax-progress.module.pcss.css
  3. 11.x core/themes/olivero/css/components/ajax-progress.module.pcss.css
  4. 11.x core/themes/claro/css/components/ajax-progress.module.pcss.css
  5. 9 core/themes/olivero/css/components/ajax-progress.module.pcss.css
  6. 9 core/themes/claro/css/components/ajax-progress.module.pcss.css
  7. 8.9.x core/themes/claro/css/components/ajax-progress.module.pcss.css
  8. 11.x core/themes/admin/css/components/ajax-progress.module.pcss.css
  9. 11.x core/themes/default_admin/css/components/ajax-progress.module.pcss.css

Throbber.

File

core/themes/default_admin/css/components/ajax-progress.module.pcss.css

View source
  1. /**
  2. * @file
  3. * Throbber.
  4. */
  5. .ajax-progress {
  6. display: inline-block;
  7. }
  8. /**
  9. * Progress bar.
  10. */
  11. .ajax-progress-bar {
  12. width: 13em;
  13. padding: 0 0.3125rem; /* 0 5px */
  14. }
  15. /**
  16. * Throbber.
  17. */
  18. .ajax-progress--throbber {
  19. position: relative;
  20. display: inline-flex;
  21. align-content: center;
  22. height: 1.125rem;
  23. margin: -3px var(--ajax-progress-margin-horizontal) 0;
  24. vertical-align: middle;
  25. white-space: nowrap;
  26. line-height: 1.125rem;
  27. }
  28. /**
  29. * Remove margin from ajax throbbers following buttons because buttons already
  30. * have a large margin set.
  31. */
  32. .js .action-link:not(.js-hide, .button--action) + .ajax-progress--throbber,
  33. .js .button:not(.js-hide, .button--action) + .ajax-progress--throbber {
  34. margin-inline-start: 0;
  35. }
  36. /**
  37. * Restore start margin for ajax throbbers inside a managed file widget.
  38. */
  39. .js .form-type--managed-file .button:not(.js-hide) + .ajax-progress--throbber,
  40. .js .file-operations-cell .button:not(.js-hide) + .ajax-progress--throbber {
  41. margin-inline-start: var(--ajax-progress-margin-horizontal); /* LTR */
  42. }
  43. .ajax-progress__throbber {
  44. box-sizing: border-box;
  45. width: 1.125rem;
  46. height: 1.125rem;
  47. animation: throbber 0.75s linear infinite;
  48. border: 2px solid var(--admin-color-link);
  49. border-right: 2px dotted transparent;
  50. border-radius: 50%;
  51. }
  52. .ajax-progress__message {
  53. display: inline-block;
  54. padding-inline-start: var(--ajax-progress-margin-horizontal);
  55. font-size: var(--admin-font-size-label);
  56. }
  57. /**
  58. * Full screen throbber.
  59. */
  60. .ajax-progress--fullscreen,
  61. .ui-dialog .ajax-progress--throbber {
  62. position: fixed;
  63. z-index: 1261;
  64. inset-block-start: 50%;
  65. inset-inline-start: 50%;
  66. box-sizing: border-box;
  67. width: 3.5rem; /* 56px */
  68. height: 3.5rem;
  69. margin: -1.75rem;
  70. border: var(--input-border-size) solid var(--jui-dropdown-border-color);
  71. border-radius: 3.5rem;
  72. background: var(--admin-color-bg-raised);
  73. box-shadow: 0 0.25rem 0.625rem var(--jui-dropdown-shadow-color);
  74. }
  75. .ajax-progress__throbber--fullscreen,
  76. .ui-dialog .ajax-progress__throbber {
  77. position: absolute;
  78. inset-block-start: 50%;
  79. inset-inline-start: 50%;
  80. width: 1.75rem; /* 28px */
  81. height: 1.75rem; /* 28px */
  82. margin: -0.875rem;
  83. content: "";
  84. border: 3px solid var(--admin-color-link);
  85. border-right: 3px dotted transparent;
  86. }
  87. .ui-dialog .ajax-progress__message {
  88. display: none;
  89. }
  90. @keyframes throbber {
  91. 0% {
  92. transform: rotateZ(0);
  93. }
  94. 100% {
  95. transform: rotateZ(360deg);
  96. }
  97. }
  98. .ajax-progress__throbber,
  99. .ajax-progress__throbber--fullscreen,
  100. .ui-dialog .ajax-progress__throbber,
  101. .media-library-item .ajax-progress__throbber {
  102. border: 3px solid var(--admin-color-primary);
  103. border-inline-end: 3px dotted transparent;
  104. }
  105. .ajax-progress .ajax-progress__message {
  106. color: var(--admin-color-text);
  107. }
  108. [dir].dark-mode .ajax-progress--fullscreen {
  109. border-color: transparent;
  110. background-color: var(--admin-color-primary);
  111. box-shadow: 0 2px 6px 0 var(--admin-color-bg);
  112. .ajax-progress__throbber,
  113. .ajax-progress__throbber--fullscreen {
  114. border: 3px solid var(--admin-color-bg);
  115. border-inline-end: 3px dotted transparent;
  116. }
  117. }
  118. .media-library-widget {
  119. .ajax-progress__throbber,
  120. .ajax-progress__throbber--fullscreen {
  121. border: 2px solid var(--admin-color-primary);
  122. border-inline-end: 2px dotted transparent;
  123. }
  124. }
  125. .ui-dialog .ajax-progress-throbber {
  126. padding: var(--admin-space-xs);
  127. border: 1px solid rgb(216, 217, 224, 0.8);
  128. border-radius: 50%;
  129. background: var(--admin-color-bg);
  130. box-shadow: 0 2px 6px 0 rgb(34, 35, 48, 0.1);
  131. .dark-mode
  132. &::before {
  133. position: absolute;
  134. display: block;
  135. width: 1.125rem;
  136. height: 1.125rem;
  137. content: "";
  138. animation: throbber 0.75s linear infinite;
  139. border: 2px solid var(--admin-color-primary);
  140. border-inline-end: 2px dotted transparent;
  141. border-radius: 50%;
  142. inset-block-start: var(--admin-space-xs);
  143. inset-inline-start: var(--admin-space-xs);
  144. }
  145. }
  146. .dark-mode .ui-dialog .ajax-progress,
  147. .dark-mode .media-library-item .ajax-progress.ajax-progress.ajax-progress {
  148. border-color: var(--admin-color-bg);
  149. background-color: var(--admin-color-bg);
  150. }
  151. .contextual-links li {
  152. position: relative;
  153. }
  154. .contextual-links .ajax-progress-throbber {
  155. position: absolute;
  156. inset-block-start: 0;
  157. inset-inline-end: var(--admin-space-2xs);
  158. width: 24px;
  159. height: 24px;
  160. &::before {
  161. inset-block-start: 0;
  162. inset-inline-start: 0.25em;
  163. }
  164. }

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.