media-library-item.pcss.css

Same filename and directory in other branches
  1. main 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(--color-white);
  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(--color-absolutezero);
  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(--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(--gin-border-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. .form-boolean--type-checkbox:checked {
  73. border-color: var(--button--focus-border-color);
  74. background-color: var(--button--focus-border-color);
  75. }
  76. }
  77. /* Edit/remove button base appearance. */
  78. .media-library-edit__link,
  79. .media-library-item__edit,
  80. .media-library-item__edit.button,
  81. .media-library-item__remove,
  82. .media-library-item__remove.button {
  83. border-color: var(--gin-border-color);
  84. &:focus {
  85. outline: var(--focus-outline);
  86. }
  87. }
  88. .media-library-edit__link,
  89. .media-library-item__edit {
  90. inset-block-start: 0.625rem;
  91. inset-inline-end: 3.125rem;
  92. background-image: url("../../migration/media/icons/media-library/media-edit.svg");
  93. background-size: 0.75rem 0.75rem;
  94. }
  95. .media-library-item__remove,
  96. .media-library-item__remove.button {
  97. background-image: url("../../migration/media/icons/media-library/media-remove.svg");
  98. background-size: 0.75rem 0.75rem;
  99. }
  100. .media-library-item__click-to-select-checkbox {
  101. position: absolute;
  102. z-index: 1;
  103. inset-block-start: 16px;
  104. inset-inline-start: 16px;
  105. display: block;
  106. input {
  107. width: 20px;
  108. height: 20px;
  109. }
  110. .form-item {
  111. margin: 0;
  112. }
  113. .form-boolean {
  114. width: 29px;
  115. height: 29px;
  116. border-radius: var(--gin-border-xs);
  117. box-shadow: 0 2px 4px rgb(0, 0, 0, 0.15);
  118. &:hover,
  119. &:active {
  120. border-color: transparent;
  121. }
  122. &:checked {
  123. border-color: var(--gin-color-primary);
  124. background-color: var(--gin-color-primary);
  125. }
  126. }
  127. }
  128. .media-library-item__click-to-select-trigger {
  129. cursor: pointer;
  130. }
  131. /* Media library item table styles. */
  132. .media-library-item--table img {
  133. max-width: 100px;
  134. height: auto;
  135. }
  136. /* Media library entity view display styles. */
  137. .media-library-item__preview {
  138. position: relative;
  139. overflow: clip;
  140. border: 1px solid var(--gin-border-color);
  141. border-radius: var(--gin-border-xl);
  142. aspect-ratio: 1;
  143. background-color: var(--gin-pattern-fallback);
  144. background-image: linear-gradient(-45deg, var(--gin-pattern) 25%, transparent 26%), linear-gradient(-45deg, var(--gin-pattern) 25%, transparent 26%), linear-gradient(135deg, var(--gin-pattern) 25%, transparent 26%), linear-gradient(135deg, var(--gin-pattern) 25%, transparent 26%);
  145. background-position:
  146. 0 0,
  147. var(--gin-pattern-square) var(--gin-pattern-square),
  148. var(--gin-pattern-square) var(--gin-pattern-square),
  149. 0 0;
  150. background-size: calc(var(--gin-pattern-square) * 2) calc(var(--gin-pattern-square) * 2);
  151. svg,
  152. img {
  153. position: absolute;
  154. max-width: 100%;
  155. max-height: 100%;
  156. margin: auto;
  157. object-fit: cover;
  158. inset: 0;
  159. }
  160. .media-library-item.is-hover
  161. }
  162. .media-library-item.checked &,
  163. .media-library-item.is-active
  164. }
  165. /*
  166. * Status overlay shown during media processing; only fires for transient
  167. * states.
  168. */
  169. .media-library-item__status {
  170. position: absolute;
  171. inset-block-start: 40px;
  172. inset-inline-start: 5px;
  173. padding: 5px 10px;
  174. pointer-events: none;
  175. color: #e4e4e4;
  176. background: #666;
  177. font-size: 12px;
  178. font-style: italic;
  179. }
  180. .media-library-item__attributes {
  181. padding: var(--space-xs);
  182. }
  183. .media-library-item__name {
  184. text-wrap: pretty;
  185. color: var(--gin-color-text);
  186. font-size: 14px;
  187. }
  188. .media-library-item__content {
  189. display: flex;
  190. height: 100%;
  191. article {
  192. width: 100%;
  193. }
  194. }
  195. .media-library-item__type {
  196. color: #696969;
  197. font-size: 12px;
  198. }
  199. .media-library-item--disabled {
  200. pointer-events: none;
  201. opacity: 0.5;
  202. }
  203. /**
  204. * Media library widget edit and delete button styles.
  205. *
  206. * We have to override the .button styles since buttons make heavy use of
  207. * background and border property changes.
  208. */
  209. .media-library-item__edit,
  210. .media-library-item__edit:hover,
  211. .media-library-item__edit:focus,
  212. .media-library-item__remove,
  213. .media-library-item__remove:hover,
  214. .media-library-item__remove:focus,
  215. .media-library-item__remove.button,
  216. .media-library-item__remove.button:first-child,
  217. .media-library-item__remove.button:disabled,
  218. .media-library-item__remove.button:disabled:active,
  219. .media-library-item__remove.button:hover,
  220. .media-library-item__remove.button:focus {
  221. position: absolute;
  222. z-index: 1;
  223. inset-block-start: 10px;
  224. overflow: hidden;
  225. width: 24px;
  226. height: 24px;
  227. margin: 5px;
  228. padding: 0;
  229. transition: 0.2s border-color;
  230. color: transparent;
  231. background-size: 12px;
  232. text-shadow: none;
  233. font-size: 0;
  234. }
  235. .media-library-item__edit {
  236. inset-inline-end: 40px;
  237. border: 1px solid var(--color-gray-200);
  238. background-image: url("../../images/icons/545560/pencil.svg");
  239. background-repeat: no-repeat;
  240. background-position: center;
  241. background-size: 12px;
  242. &:active {
  243. background-image: url("../../../../misc/icons/ffffff/pencil.svg");
  244. }
  245. }
  246. .media-library-item__remove,
  247. .media-library-item__remove.button,
  248. .media-library-item__remove.button:first-child,
  249. .media-library-item__remove.button:disabled,
  250. .media-library-item__remove.button:disabled:active,
  251. .media-library-item__remove.button:hover,
  252. .media-library-item__remove.button:focus {
  253. inset-inline-end: 10px;
  254. border: 1px solid var(--color-gray-200);
  255. background-image: url("../../../../misc/icons/545560/ex.svg");
  256. background-repeat: no-repeat;
  257. background-position: center;
  258. background-size: 12px;
  259. }
  260. .media-library-item__remove:active,
  261. .media-library-item__remove.button:active,
  262. .media-library-item__remove.button:disabled:active {
  263. border-color: var(--color-absolutezero);
  264. background-image: url("../../../../misc/icons/ffffff/ex.svg");
  265. }

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