media-library-item.pcss.css

Same filename and directory in other branches
  1. 11.x core/themes/default_admin/css/components/media-library-item.pcss.css

Style the media library items.

File

core/themes/default_admin/css/components/media-library-item.pcss.css

View source
  1. /**
  2. * @file
  3. *
  4. * Style the media library items.
  5. */
  6. .media-library-item {
  7. position: relative;
  8. background: none;
  9. /* Ajax throbbers inside a media library item. */
  10. .ajax-progress {
  11. position: absolute;
  12. z-index: calc(var(--vertical-tabs-menu--z-index) + 1);
  13. box-sizing: border-box;
  14. width: 56px;
  15. height: 56px;
  16. margin: -1.5rem;
  17. transform: translateY(-50%);
  18. border: var(--input-border-size) solid var(--jui-dropdown-border-color);
  19. border-radius: 3.5rem;
  20. background: var(--admin-color-bg-raised);
  21. box-shadow: 0 0.25rem 0.625rem var(--jui-dropdown-shadow-color);
  22. inset-block-start: 50%;
  23. inset-inline-start: 50%;
  24. }
  25. .ajax-progress__throbber {
  26. position: absolute;
  27. inset-block-start: 50%;
  28. inset-inline-start: 50%;
  29. width: 1.75rem;
  30. height: 1.75rem;
  31. margin: -0.875rem;
  32. border: 3px solid var(--admin-color-link);
  33. border-inline-end: 3px dotted transparent;
  34. }
  35. label {
  36. display: inline-block;
  37. }
  38. .ajax-progress__message {
  39. display: none;
  40. }
  41. .form-item {
  42. margin: var(--admin-space-xs);
  43. }
  44. }
  45. .media-library-item__preview-wrapper {
  46. position: relative;
  47. .media-library-item:focus
  48. }
  49. .media-library-item--grid {
  50. justify-content: center;
  51. box-sizing: border-box;
  52. padding: 8px;
  53. vertical-align: top;
  54. border-radius: var(--admin-radius-xl);
  55. outline: none;
  56. /**
  57. * The media library grid item focus border is moved to a child element to
  58. * improve padding.
  59. */
  60. &:focus {
  61. outline: none;
  62. box-shadow: none;
  63. .media-library-item__preview-wrapper {
  64. outline: var(--focus-outline);
  65. box-shadow: var(--focus-box-shadow);
  66. }
  67. }
  68. /* Media library widget weight field styles. */
  69. .form-item {
  70. margin: 0.75em;
  71. }
  72. }
  73. /* Edit/remove button base appearance. */
  74. .media-library-edit__link,
  75. .media-library-item__edit,
  76. .media-library-item__edit.button,
  77. .media-library-item__remove,
  78. .media-library-item__remove.button {
  79. border-color: var(--admin-color-border);
  80. &:focus {
  81. outline: var(--focus-outline);
  82. }
  83. }
  84. .media-library-edit__link,
  85. .media-library-item__edit {
  86. inset-block-start: 0.625rem;
  87. inset-inline-end: 3.125rem;
  88. background-image: url("../../migration/media/icons/media-library/media-edit.svg");
  89. background-size: 0.75rem 0.75rem;
  90. }
  91. .media-library-item__remove,
  92. .media-library-item__remove.button {
  93. background-image: url("../../migration/media/icons/media-library/media-remove.svg");
  94. background-size: 0.75rem 0.75rem;
  95. }
  96. .media-library-item__click-to-select-checkbox {
  97. position: absolute;
  98. z-index: 1;
  99. inset-block-start: 16px;
  100. inset-inline-start: 16px;
  101. display: block;
  102. input {
  103. width: 20px;
  104. height: 20px;
  105. }
  106. .form-item {
  107. margin: 0;
  108. }
  109. .form-boolean {
  110. width: 29px;
  111. height: 29px;
  112. border-radius: var(--admin-radius-xs);
  113. box-shadow: 0 2px 4px rgb(0, 0, 0, 0.15);
  114. &:hover,
  115. &:active {
  116. border-color: transparent;
  117. }
  118. &:checked {
  119. border-color: var(--admin-color-primary);
  120. background-color: var(--admin-color-primary);
  121. }
  122. }
  123. }
  124. .media-library-item__click-to-select-trigger {
  125. cursor: pointer;
  126. }
  127. /* Media library item table styles. */
  128. .media-library-item--table img {
  129. max-width: 100px;
  130. height: auto;
  131. }
  132. /* Media library entity view display styles. */
  133. .media-library-item__preview {
  134. position: relative;
  135. overflow: clip;
  136. border: 1px solid var(--admin-color-border);
  137. border-radius: var(--admin-radius-xl);
  138. aspect-ratio: 1;
  139. background-color: var(--admin-color-bg-surface-nested);
  140. background-image: linear-gradient(-45deg, var(--admin-color-border) 25%, transparent 26%), linear-gradient(-45deg, var(--admin-color-border) 25%, transparent 26%), linear-gradient(135deg, var(--admin-color-border) 25%, transparent 26%), linear-gradient(135deg, var(--admin-color-border) 25%, transparent 26%);
  141. background-position:
  142. 0 0,
  143. var(--admin-pattern-square) var(--admin-pattern-square),
  144. var(--admin-pattern-square) var(--admin-pattern-square),
  145. 0 0;
  146. background-size: calc(var(--admin-pattern-square) * 2) calc(var(--admin-pattern-square) * 2);
  147. svg,
  148. img {
  149. position: absolute;
  150. max-width: 100%;
  151. max-height: 100%;
  152. margin: auto;
  153. object-fit: cover;
  154. inset: 0;
  155. }
  156. .media-library-item.is-hover
  157. }
  158. .media-library-item.checked &,
  159. .media-library-item.is-active
  160. }
  161. /*
  162. * Status overlay shown during media processing; only fires for transient
  163. * states.
  164. */
  165. .media-library-item__status {
  166. position: absolute;
  167. inset-block-start: 40px;
  168. inset-inline-start: 5px;
  169. padding: 5px 10px;
  170. pointer-events: none;
  171. color: #e4e4e4;
  172. background: #666;
  173. font-size: 12px;
  174. font-style: italic;
  175. }
  176. .media-library-item__attributes {
  177. padding: var(--admin-space-xs);
  178. }
  179. .media-library-item__name {
  180. text-wrap: pretty;
  181. color: var(--admin-color-text);
  182. font-size: 14px;
  183. }
  184. .media-library-item__content {
  185. display: flex;
  186. height: 100%;
  187. article {
  188. width: 100%;
  189. }
  190. }
  191. .media-library-item__type {
  192. color: #696969;
  193. font-size: 12px;
  194. }
  195. .media-library-item--disabled {
  196. pointer-events: none;
  197. opacity: 0.5;
  198. }
  199. /**
  200. * Media library widget edit and delete button styles.
  201. *
  202. * We have to override the .button styles since buttons make heavy use of
  203. * background and border property changes.
  204. */
  205. .media-library-item__edit,
  206. .media-library-item__edit:hover,
  207. .media-library-item__edit:focus,
  208. .media-library-item__remove,
  209. .media-library-item__remove:hover,
  210. .media-library-item__remove:focus,
  211. .media-library-item__remove.button,
  212. .media-library-item__remove.button:first-child,
  213. .media-library-item__remove.button:disabled,
  214. .media-library-item__remove.button:disabled:active,
  215. .media-library-item__remove.button:hover,
  216. .media-library-item__remove.button:focus {
  217. position: absolute;
  218. z-index: 1;
  219. inset-block-start: 10px;
  220. overflow: hidden;
  221. width: 24px;
  222. height: 24px;
  223. margin: 5px;
  224. padding: 0;
  225. transition: 0.2s border-color;
  226. color: transparent;
  227. background-size: 12px;
  228. text-shadow: none;
  229. font-size: 0;
  230. }
  231. .media-library-item__edit {
  232. inset-inline-end: 40px;
  233. border: 1px solid var(--admin-color-border);
  234. background-image: url("../../images/icons/545560/pencil.svg");
  235. background-repeat: no-repeat;
  236. background-position: center;
  237. background-size: 12px;
  238. &:active {
  239. background-image: url("../../../../misc/icons/ffffff/pencil.svg");
  240. }
  241. }
  242. .media-library-item__remove,
  243. .media-library-item__remove.button,
  244. .media-library-item__remove.button:first-child,
  245. .media-library-item__remove.button:disabled,
  246. .media-library-item__remove.button:disabled:active,
  247. .media-library-item__remove.button:hover,
  248. .media-library-item__remove.button:focus {
  249. inset-inline-end: 10px;
  250. border: 1px solid var(--admin-color-border);
  251. background-image: url("../../../../misc/icons/545560/ex.svg");
  252. background-repeat: no-repeat;
  253. background-position: center;
  254. background-size: 12px;
  255. }
  256. .media-library-item__remove:active,
  257. .media-library-item__remove.button:active,
  258. .media-library-item__remove.button:disabled:active {
  259. border-color: var(--admin-color-link);
  260. background-image: url("../../../../misc/icons/ffffff/ex.svg");
  261. }

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