@ckeditor/ckeditor5-image 47.6.1 → 48.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/LICENSE.md +1 -1
  2. package/ckeditor5-metadata.json +25 -25
  3. package/{src → dist}/autoimage.d.ts +4 -4
  4. package/{src → dist}/image/converters.d.ts +1 -1
  5. package/{src → dist}/image/imageblockediting.d.ts +2 -2
  6. package/{src → dist}/image/imageediting.d.ts +1 -1
  7. package/{src → dist}/image/imageinlineediting.d.ts +2 -2
  8. package/{src → dist}/image/imageloadobserver.d.ts +1 -1
  9. package/{src → dist}/image/imageplaceholder.d.ts +1 -1
  10. package/{src → dist}/image/imagetypecommand.d.ts +2 -2
  11. package/{src → dist}/image/insertimagecommand.d.ts +2 -2
  12. package/{src → dist}/image/replaceimagesourcecommand.d.ts +2 -2
  13. package/{src → dist}/image/ui/utils.d.ts +2 -2
  14. package/{src → dist}/image/utils.d.ts +2 -2
  15. package/{src → dist}/image.d.ts +1 -1
  16. package/{src → dist}/imageblock.d.ts +2 -2
  17. package/{src → dist}/imagecaption/imagecaptionediting.d.ts +2 -2
  18. package/{src → dist}/imagecaption/imagecaptionui.d.ts +1 -1
  19. package/{src → dist}/imagecaption/imagecaptionutils.d.ts +2 -2
  20. package/{src → dist}/imagecaption/toggleimagecaptioncommand.d.ts +1 -1
  21. package/{src → dist}/imagecaption.d.ts +1 -1
  22. package/{src → dist}/imageconfig.d.ts +25 -16
  23. package/{src → dist}/imageinline.d.ts +2 -2
  24. package/{src → dist}/imageinsert/imageinsertui.d.ts +3 -3
  25. package/{src → dist}/imageinsert/imageinsertviaurlui.d.ts +2 -2
  26. package/{src → dist}/imageinsert/ui/imageinsertformview.d.ts +2 -2
  27. package/{src → dist}/imageinsert/ui/imageinserturlview.d.ts +2 -2
  28. package/{src → dist}/imageinsert.d.ts +1 -1
  29. package/{src → dist}/imageinsertviaurl.d.ts +1 -1
  30. package/{src → dist}/imageresize/imagecustomresizeui.d.ts +2 -2
  31. package/{src → dist}/imageresize/imageresizebuttons.d.ts +1 -1
  32. package/{src → dist}/imageresize/imageresizeediting.d.ts +1 -1
  33. package/{src → dist}/imageresize/imageresizehandles.d.ts +2 -2
  34. package/{src → dist}/imageresize/resizeimagecommand.d.ts +1 -1
  35. package/{src → dist}/imageresize/ui/imagecustomresizeformview.d.ts +2 -4
  36. package/{src → dist}/imageresize/utils/getselectedimageeditornodes.d.ts +2 -2
  37. package/{src → dist}/imageresize/utils/getselectedimagepossibleresizerange.d.ts +1 -1
  38. package/{src → dist}/imageresize/utils/getselectedimagewidthinunits.d.ts +1 -1
  39. package/{src → dist}/imageresize.d.ts +1 -1
  40. package/{src → dist}/imagesizeattributes.d.ts +1 -1
  41. package/{src → dist}/imagestyle/converters.d.ts +2 -2
  42. package/{src → dist}/imagestyle/imagestylecommand.d.ts +2 -2
  43. package/{src → dist}/imagestyle/imagestyleediting.d.ts +1 -1
  44. package/{src → dist}/imagestyle/imagestyleui.d.ts +1 -1
  45. package/{src → dist}/imagestyle/utils.d.ts +1 -1
  46. package/{src → dist}/imagestyle.d.ts +1 -1
  47. package/{src → dist}/imagetextalternative/imagetextalternativecommand.d.ts +1 -1
  48. package/{src → dist}/imagetextalternative/imagetextalternativeediting.d.ts +1 -1
  49. package/{src → dist}/imagetextalternative/imagetextalternativeui.d.ts +2 -2
  50. package/{src → dist}/imagetextalternative/ui/textalternativeformview.d.ts +2 -4
  51. package/{src → dist}/imagetextalternative.d.ts +1 -1
  52. package/{src → dist}/imagetoolbar.d.ts +2 -2
  53. package/{src → dist}/imageupload/imageuploadediting.d.ts +5 -5
  54. package/{src → dist}/imageupload/imageuploadprogress.d.ts +1 -1
  55. package/{src → dist}/imageupload/imageuploadui.d.ts +1 -1
  56. package/{src → dist}/imageupload/uploadimagecommand.d.ts +2 -2
  57. package/{src → dist}/imageupload/utils.d.ts +1 -1
  58. package/{src → dist}/imageupload.d.ts +1 -1
  59. package/{src → dist}/imageutils.d.ts +2 -2
  60. package/dist/index-content.css +97 -100
  61. package/dist/index-editor.css +313 -190
  62. package/dist/index.css +388 -458
  63. package/dist/index.css.map +1 -1
  64. package/dist/index.js +1 -2
  65. package/dist/index.js.map +1 -1
  66. package/{src → dist}/pictureediting.d.ts +1 -1
  67. package/package.json +29 -53
  68. package/build/image.js +0 -5
  69. package/build/translations/af.js +0 -1
  70. package/build/translations/ar.js +0 -1
  71. package/build/translations/ast.js +0 -1
  72. package/build/translations/az.js +0 -1
  73. package/build/translations/be.js +0 -1
  74. package/build/translations/bg.js +0 -1
  75. package/build/translations/bn.js +0 -1
  76. package/build/translations/bs.js +0 -1
  77. package/build/translations/ca.js +0 -1
  78. package/build/translations/cs.js +0 -1
  79. package/build/translations/da.js +0 -1
  80. package/build/translations/de-ch.js +0 -1
  81. package/build/translations/de.js +0 -1
  82. package/build/translations/el.js +0 -1
  83. package/build/translations/en-au.js +0 -1
  84. package/build/translations/en-gb.js +0 -1
  85. package/build/translations/eo.js +0 -1
  86. package/build/translations/es-co.js +0 -1
  87. package/build/translations/es.js +0 -1
  88. package/build/translations/et.js +0 -1
  89. package/build/translations/eu.js +0 -1
  90. package/build/translations/fa.js +0 -1
  91. package/build/translations/fi.js +0 -1
  92. package/build/translations/fr.js +0 -1
  93. package/build/translations/gl.js +0 -1
  94. package/build/translations/gu.js +0 -1
  95. package/build/translations/he.js +0 -1
  96. package/build/translations/hi.js +0 -1
  97. package/build/translations/hr.js +0 -1
  98. package/build/translations/hu.js +0 -1
  99. package/build/translations/hy.js +0 -1
  100. package/build/translations/id.js +0 -1
  101. package/build/translations/it.js +0 -1
  102. package/build/translations/ja.js +0 -1
  103. package/build/translations/jv.js +0 -1
  104. package/build/translations/kk.js +0 -1
  105. package/build/translations/km.js +0 -1
  106. package/build/translations/kn.js +0 -1
  107. package/build/translations/ko.js +0 -1
  108. package/build/translations/ku.js +0 -1
  109. package/build/translations/lt.js +0 -1
  110. package/build/translations/lv.js +0 -1
  111. package/build/translations/ms.js +0 -1
  112. package/build/translations/nb.js +0 -1
  113. package/build/translations/ne.js +0 -1
  114. package/build/translations/nl.js +0 -1
  115. package/build/translations/no.js +0 -1
  116. package/build/translations/oc.js +0 -1
  117. package/build/translations/pl.js +0 -1
  118. package/build/translations/pt-br.js +0 -1
  119. package/build/translations/pt.js +0 -1
  120. package/build/translations/ro.js +0 -1
  121. package/build/translations/ru.js +0 -1
  122. package/build/translations/si.js +0 -1
  123. package/build/translations/sk.js +0 -1
  124. package/build/translations/sl.js +0 -1
  125. package/build/translations/sq.js +0 -1
  126. package/build/translations/sr-latn.js +0 -1
  127. package/build/translations/sr.js +0 -1
  128. package/build/translations/sv.js +0 -1
  129. package/build/translations/th.js +0 -1
  130. package/build/translations/ti.js +0 -1
  131. package/build/translations/tk.js +0 -1
  132. package/build/translations/tr.js +0 -1
  133. package/build/translations/tt.js +0 -1
  134. package/build/translations/ug.js +0 -1
  135. package/build/translations/uk.js +0 -1
  136. package/build/translations/ur.js +0 -1
  137. package/build/translations/uz.js +0 -1
  138. package/build/translations/vi.js +0 -1
  139. package/build/translations/zh-cn.js +0 -1
  140. package/build/translations/zh.js +0 -1
  141. package/lang/contexts.json +0 -48
  142. package/lang/translations/af.po +0 -196
  143. package/lang/translations/ar.po +0 -196
  144. package/lang/translations/ast.po +0 -196
  145. package/lang/translations/az.po +0 -196
  146. package/lang/translations/be.po +0 -196
  147. package/lang/translations/bg.po +0 -196
  148. package/lang/translations/bn.po +0 -196
  149. package/lang/translations/bs.po +0 -196
  150. package/lang/translations/ca.po +0 -196
  151. package/lang/translations/cs.po +0 -196
  152. package/lang/translations/da.po +0 -196
  153. package/lang/translations/de-ch.po +0 -196
  154. package/lang/translations/de.po +0 -196
  155. package/lang/translations/el.po +0 -196
  156. package/lang/translations/en-au.po +0 -196
  157. package/lang/translations/en-gb.po +0 -196
  158. package/lang/translations/en.po +0 -196
  159. package/lang/translations/eo.po +0 -196
  160. package/lang/translations/es-co.po +0 -196
  161. package/lang/translations/es.po +0 -196
  162. package/lang/translations/et.po +0 -196
  163. package/lang/translations/eu.po +0 -196
  164. package/lang/translations/fa.po +0 -196
  165. package/lang/translations/fi.po +0 -196
  166. package/lang/translations/fr.po +0 -196
  167. package/lang/translations/gl.po +0 -196
  168. package/lang/translations/gu.po +0 -196
  169. package/lang/translations/he.po +0 -196
  170. package/lang/translations/hi.po +0 -196
  171. package/lang/translations/hr.po +0 -196
  172. package/lang/translations/hu.po +0 -196
  173. package/lang/translations/hy.po +0 -196
  174. package/lang/translations/id.po +0 -196
  175. package/lang/translations/it.po +0 -196
  176. package/lang/translations/ja.po +0 -196
  177. package/lang/translations/jv.po +0 -196
  178. package/lang/translations/kk.po +0 -196
  179. package/lang/translations/km.po +0 -196
  180. package/lang/translations/kn.po +0 -196
  181. package/lang/translations/ko.po +0 -196
  182. package/lang/translations/ku.po +0 -196
  183. package/lang/translations/lt.po +0 -196
  184. package/lang/translations/lv.po +0 -196
  185. package/lang/translations/ms.po +0 -196
  186. package/lang/translations/nb.po +0 -196
  187. package/lang/translations/ne.po +0 -196
  188. package/lang/translations/nl.po +0 -196
  189. package/lang/translations/no.po +0 -196
  190. package/lang/translations/oc.po +0 -196
  191. package/lang/translations/pl.po +0 -196
  192. package/lang/translations/pt-br.po +0 -196
  193. package/lang/translations/pt.po +0 -196
  194. package/lang/translations/ro.po +0 -196
  195. package/lang/translations/ru.po +0 -196
  196. package/lang/translations/si.po +0 -196
  197. package/lang/translations/sk.po +0 -196
  198. package/lang/translations/sl.po +0 -196
  199. package/lang/translations/sq.po +0 -196
  200. package/lang/translations/sr-latn.po +0 -196
  201. package/lang/translations/sr.po +0 -196
  202. package/lang/translations/sv.po +0 -196
  203. package/lang/translations/th.po +0 -196
  204. package/lang/translations/ti.po +0 -196
  205. package/lang/translations/tk.po +0 -196
  206. package/lang/translations/tr.po +0 -196
  207. package/lang/translations/tt.po +0 -196
  208. package/lang/translations/ug.po +0 -196
  209. package/lang/translations/uk.po +0 -196
  210. package/lang/translations/ur.po +0 -196
  211. package/lang/translations/uz.po +0 -196
  212. package/lang/translations/vi.po +0 -196
  213. package/lang/translations/zh-cn.po +0 -196
  214. package/lang/translations/zh.po +0 -196
  215. package/src/augmentation.js +0 -5
  216. package/src/autoimage.js +0 -148
  217. package/src/image/converters.js +0 -236
  218. package/src/image/imageblockediting.js +0 -159
  219. package/src/image/imageediting.js +0 -69
  220. package/src/image/imageinlineediting.js +0 -178
  221. package/src/image/imageloadobserver.js +0 -52
  222. package/src/image/imageplaceholder.js +0 -119
  223. package/src/image/imagetypecommand.js +0 -84
  224. package/src/image/insertimagecommand.js +0 -125
  225. package/src/image/replaceimagesourcecommand.js +0 -75
  226. package/src/image/ui/utils.js +0 -46
  227. package/src/image/utils.js +0 -125
  228. package/src/image.js +0 -44
  229. package/src/imageblock.js +0 -44
  230. package/src/imagecaption/imagecaptionediting.js +0 -238
  231. package/src/imagecaption/imagecaptionui.js +0 -68
  232. package/src/imagecaption/imagecaptionutils.js +0 -68
  233. package/src/imagecaption/toggleimagecaptioncommand.js +0 -138
  234. package/src/imagecaption.js +0 -36
  235. package/src/imageconfig.js +0 -5
  236. package/src/imageinline.js +0 -44
  237. package/src/imageinsert/imageinsertui.js +0 -216
  238. package/src/imageinsert/imageinsertviaurlui.js +0 -175
  239. package/src/imageinsert/ui/imageinsertformview.js +0 -117
  240. package/src/imageinsert/ui/imageinserturlview.js +0 -102
  241. package/src/imageinsert.js +0 -43
  242. package/src/imageinsertviaurl.js +0 -41
  243. package/src/imageresize/imagecustomresizeui.js +0 -177
  244. package/src/imageresize/imageresizebuttons.js +0 -303
  245. package/src/imageresize/imageresizeediting.js +0 -206
  246. package/src/imageresize/imageresizehandles.js +0 -118
  247. package/src/imageresize/resizeimagecommand.js +0 -63
  248. package/src/imageresize/ui/imagecustomresizeformview.js +0 -264
  249. package/src/imageresize/utils/getselectedimageeditornodes.js +0 -25
  250. package/src/imageresize/utils/getselectedimagepossibleresizerange.js +0 -33
  251. package/src/imageresize/utils/getselectedimagewidthinunits.js +0 -42
  252. package/src/imageresize/utils/tryparsedimensionwithunit.js +0 -58
  253. package/src/imageresize.js +0 -38
  254. package/src/imagesizeattributes.js +0 -163
  255. package/src/imagestyle/converters.js +0 -118
  256. package/src/imagestyle/imagestylecommand.js +0 -117
  257. package/src/imagestyle/imagestyleediting.js +0 -127
  258. package/src/imagestyle/imagestyleui.js +0 -198
  259. package/src/imagestyle/utils.js +0 -333
  260. package/src/imagestyle.js +0 -42
  261. package/src/imagetextalternative/imagetextalternativecommand.js +0 -44
  262. package/src/imagetextalternative/imagetextalternativeediting.js +0 -41
  263. package/src/imagetextalternative/imagetextalternativeui.js +0 -183
  264. package/src/imagetextalternative/ui/textalternativeformview.js +0 -193
  265. package/src/imagetextalternative.js +0 -39
  266. package/src/imagetoolbar.js +0 -63
  267. package/src/imageupload/imageuploadediting.js +0 -482
  268. package/src/imageupload/imageuploadprogress.js +0 -222
  269. package/src/imageupload/imageuploadui.js +0 -135
  270. package/src/imageupload/uploadimagecommand.js +0 -110
  271. package/src/imageupload/utils.js +0 -114
  272. package/src/imageupload.js +0 -42
  273. package/src/imageutils.js +0 -309
  274. package/src/index.js +0 -67
  275. package/src/pictureediting.js +0 -136
  276. package/theme/image.css +0 -143
  277. package/theme/imagecaption.css +0 -53
  278. package/theme/imagecustomresizeform.css +0 -4
  279. package/theme/imageinsert.css +0 -14
  280. package/theme/imageplaceholder.css +0 -10
  281. package/theme/imageresize.css +0 -53
  282. package/theme/imagestyle.css +0 -120
  283. package/theme/imageuploadicon.css +0 -23
  284. package/theme/imageuploadloader.css +0 -18
  285. package/theme/imageuploadprogress.css +0 -19
  286. package/theme/textalternativeform.css +0 -4
  287. /package/{src → dist}/augmentation.d.ts +0 -0
  288. /package/{src → dist}/imageresize/utils/tryparsedimensionwithunit.d.ts +0 -0
  289. /package/{src → dist}/index.d.ts +0 -0
package/dist/index.css CHANGED
@@ -2,591 +2,521 @@
2
2
  * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
- /*
6
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
-
10
- /*
11
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
12
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
13
- */
14
-
15
5
  :root {
16
- --ck-content-color-image-caption-background: hsl(0, 0%, 97%);
17
- --ck-content-color-image-caption-text: hsl(0, 0%, 20%);
18
- --ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);
6
+ --ck-content-color-image-caption-background: #f7f7f7;
7
+ --ck-content-color-image-caption-text: #333;
8
+ --ck-color-image-caption-highlighted-background: #fd0;
19
9
  }
20
10
 
21
- /* Content styles */
22
11
  .ck-content .image > figcaption {
23
- display: table-caption;
24
- caption-side: bottom;
25
- word-break: normal;
26
- overflow-wrap: anywhere;
27
- break-before: avoid;
28
- color: var(--ck-content-color-image-caption-text);
29
- background-color: var(--ck-content-color-image-caption-background);
30
- padding: .6em;
31
- font-size: .75em;
32
- outline-offset: -1px;
33
-
34
- /* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */
12
+ caption-side: bottom;
13
+ word-break: normal;
14
+ overflow-wrap: anywhere;
15
+ break-before: avoid;
16
+ color: var(--ck-content-color-image-caption-text);
17
+ background-color: var(--ck-content-color-image-caption-background);
18
+ outline-offset: -1px;
19
+ padding: .6em;
20
+ font-size: .75em;
21
+ display: table-caption;
35
22
  }
23
+
36
24
  @media (forced-colors: active) {
37
- .ck-content .image > figcaption {
38
- background-color: unset;
39
- color: unset;
25
+ .ck-content .image > figcaption {
26
+ background-color: unset;
27
+ color: unset;
28
+ }
40
29
  }
41
- }
42
30
 
43
- /* Editing styles */
44
31
  @media (forced-colors: none) {
45
- .ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
46
- animation: ck-image-caption-highlight .6s ease-out;
47
- }
48
- }
32
+ .ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
33
+ animation: .6s ease-out ck-image-caption-highlight;
34
+ }
35
+ }
36
+
49
37
  @media (prefers-reduced-motion: reduce) {
50
- .ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
51
- animation: none;
38
+ .ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
39
+ animation: none;
40
+ }
52
41
  }
53
- }
54
42
 
55
43
  @keyframes ck-image-caption-highlight {
56
- 0% {
57
- background-color: var(--ck-color-image-caption-highlighted-background);
58
- }
44
+ 0% {
45
+ background-color: var(--ck-color-image-caption-highlighted-background);
46
+ }
59
47
 
60
- 100% {
61
- background-color: var(--ck-content-color-image-caption-background);
62
- }
48
+ 100% {
49
+ background-color: var(--ck-content-color-image-caption-background);
50
+ }
63
51
  }
64
52
 
65
- /*
66
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
67
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
68
- */
69
-
70
- /* Preserve aspect ratio of the resized image after introducing image height attribute. */
71
53
  .ck-content img.image_resized {
72
- height: auto;
54
+ height: auto;
73
55
  }
74
56
 
75
57
  .ck-content .image.image_resized {
76
- max-width: 100%;
77
- /*
78
- The `<figure>` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.
79
- See https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.
80
- Fortunately, since we control the width, there is no risk that the image will look bad.
81
- */
82
- display: block;
83
- box-sizing: border-box;
58
+ box-sizing: border-box;
59
+ max-width: 100%;
60
+ display: block;
84
61
  }
85
62
 
86
63
  .ck-content .image.image_resized img {
87
- /* For resized images it is the `<figure>` element that determines the image width. */
88
- width: 100%;
89
- }
64
+ width: 100%;
65
+ }
90
66
 
91
67
  .ck-content .image.image_resized > figcaption {
92
- /* The `<figure>` element uses `display:block`, so `<figcaption>` also has to. */
93
- display: block;
94
- }
95
-
96
- /* The resized inline image nested in the table should respect its parent size.
97
- See https://github.com/ckeditor/ckeditor5/issues/9117. */
68
+ display: block;
69
+ }
98
70
 
99
- .ck.ck-editor__editable td .image-inline.image_resized img, .ck.ck-editor__editable th .image-inline.image_resized img {
100
- max-width: 100%;
101
- }
71
+ :is(.ck.ck-editor__editable td, .ck.ck-editor__editable th) .image-inline.image_resized img {
72
+ max-width: 100%;
73
+ }
102
74
 
103
75
  [dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
104
- margin-right: var(--ck-spacing-standard);
76
+ margin-right: var(--ck-spacing-standard);
105
77
  }
106
78
 
107
79
  [dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
108
- margin-left: var(--ck-spacing-standard);
80
+ margin-left: var(--ck-spacing-standard);
109
81
  }
110
82
 
111
83
  .ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {
112
- width: 4em;
84
+ width: 4em;
113
85
  }
114
86
 
115
- /*
116
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
117
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
118
- */
119
-
120
87
  :root {
121
- --ck-content-image-style-spacing: 1.5em;
122
- --ck-content-inline-image-style-spacing: calc(var(--ck-content-image-style-spacing) / 2);
88
+ --ck-content-image-style-spacing: 1.5em;
89
+ --ck-content-inline-image-style-spacing: calc(var(--ck-content-image-style-spacing) / 2);
123
90
  }
124
91
 
125
- /* See: https://github.com/ckeditor/ckeditor5/issues/16317 */
126
-
127
- /* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback
128
- confirming successful application of the style if image width exceeds the editor's size.
129
- See https://github.com/ckeditor/ckeditor5/issues/9342 */
130
-
131
- .ck-content .image.image-style-block-align-left,
132
- .ck-content .image.image-style-block-align-right {
133
- max-width: calc(100% - var(--ck-content-image-style-spacing));
134
- }
135
-
136
- /* Allows displaying multiple floating images in the same line.
137
- See https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */
92
+ .ck-content .image.image-style-block-align-left, .ck-content .image.image-style-block-align-right {
93
+ max-width: calc(100% - var(--ck-content-image-style-spacing));
94
+ }
138
95
 
139
- .ck-content .image.image-style-align-left,
140
- .ck-content .image.image-style-align-right {
141
- clear: none;
142
- }
96
+ .ck-content .image.image-style-align-left, .ck-content .image.image-style-align-right {
97
+ clear: none;
98
+ }
143
99
 
144
100
  .ck-content .image.image-style-side {
145
- float: right;
146
- margin-left: var(--ck-content-image-style-spacing);
147
- max-width: 50%;
148
- }
101
+ float: right;
102
+ margin-left: var(--ck-content-image-style-spacing);
103
+ max-width: 50%;
104
+ }
149
105
 
150
106
  .ck-content .image.image-style-align-left {
151
- float: left;
152
- margin-right: var(--ck-content-image-style-spacing);
153
- }
107
+ float: left;
108
+ margin-right: var(--ck-content-image-style-spacing);
109
+ }
154
110
 
155
111
  .ck-content .image.image-style-align-right {
156
- float: right;
157
- margin-left: var(--ck-content-image-style-spacing);
158
- }
112
+ float: right;
113
+ margin-left: var(--ck-content-image-style-spacing);
114
+ }
159
115
 
160
116
  .ck-content .image.image-style-block-align-right {
161
- margin-right: 0;
162
- margin-left: auto;
163
- }
117
+ margin-left: auto;
118
+ margin-right: 0;
119
+ }
164
120
 
165
121
  .ck-content .image.image-style-block-align-left {
166
- margin-left: 0;
167
- margin-right: auto;
168
- }
122
+ margin-left: 0;
123
+ margin-right: auto;
124
+ }
169
125
 
170
126
  .ck-content .image-style-align-center {
171
- margin-left: auto;
172
- margin-right: auto;
173
- }
127
+ margin-left: auto;
128
+ margin-right: auto;
129
+ }
174
130
 
175
131
  .ck-content .image-style-align-left {
176
- float: left;
177
- margin-right: var(--ck-content-image-style-spacing);
178
- }
132
+ float: left;
133
+ margin-right: var(--ck-content-image-style-spacing);
134
+ }
179
135
 
180
136
  .ck-content .image-style-align-right {
181
- float: right;
182
- margin-left: var(--ck-content-image-style-spacing);
183
- }
184
-
185
- /* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */
137
+ float: right;
138
+ margin-left: var(--ck-content-image-style-spacing);
139
+ }
186
140
 
187
- .ck-content p + .image.image-style-align-left,
188
- .ck-content p + .image.image-style-align-right,
189
- .ck-content p + .image.image-style-side {
190
- margin-top: 0;
191
- }
141
+ .ck-content p + .image.image-style-align-left, .ck-content p + .image.image-style-align-right, .ck-content p + .image.image-style-side {
142
+ margin-top: 0;
143
+ }
192
144
 
193
- .ck-content .image-inline.image-style-align-left,
194
- .ck-content .image-inline.image-style-align-right {
195
- margin-top: var(--ck-content-inline-image-style-spacing);
196
- margin-bottom: var(--ck-content-inline-image-style-spacing);
197
- }
145
+ .ck-content .image-inline.image-style-align-left, .ck-content .image-inline.image-style-align-right {
146
+ margin-top: var(--ck-content-inline-image-style-spacing);
147
+ margin-bottom: var(--ck-content-inline-image-style-spacing);
148
+ }
198
149
 
199
150
  .ck-content .image-inline.image-style-align-left {
200
- margin-right: var(--ck-content-inline-image-style-spacing);
201
- }
151
+ margin-right: var(--ck-content-inline-image-style-spacing);
152
+ }
202
153
 
203
154
  .ck-content .image-inline.image-style-align-right {
204
- margin-left: var(--ck-content-inline-image-style-spacing);
205
- }
206
-
207
- /* The button should display as a regular drop-down if the action button
208
- is forced to fire the same action as the arrow button. */
209
-
210
- .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__action:not(.ck-disabled),
211
- .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__action:not(.ck-disabled),
212
- .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled),
213
- .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled),
214
- .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover),
215
- .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
216
- background-color: var(--ck-color-button-on-background);
217
- }
218
-
219
- .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__action:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__action:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)::after {
220
- display: none;
221
- }
222
-
223
- .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__action:not(.ck-disabled),
224
- .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled),
225
- .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
226
- background-color: var(--ck-color-button-on-hover-background);
227
- }
228
-
229
- /*
230
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
231
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
232
- */
233
-
234
- .ck.ck-editor__editable .image,
235
- .ck.ck-editor__editable .image-inline {
236
- position: relative;
237
- }
238
-
239
- /* Upload progress bar. */
155
+ margin-left: var(--ck-content-inline-image-style-spacing);
156
+ }
240
157
 
241
- .ck.ck-editor__editable .image .ck-progress-bar,
242
- .ck.ck-editor__editable .image-inline .ck-progress-bar {
243
- position: absolute;
244
- top: 0;
245
- left: 0;
246
- }
158
+ :is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__action:not(.ck-disabled), :is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__arrow:not(.ck-disabled), :is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
159
+ background-color: var(--ck-color-button-on-background);
160
+ }
247
161
 
248
- /*
249
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
250
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
251
- */
162
+ :is(:is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__action:not(.ck-disabled), :is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__arrow:not(.ck-disabled), :is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)):after {
163
+ display: none;
164
+ }
252
165
 
253
- .ck-image-upload-complete-icon {
254
- display: block;
255
- position: absolute;
256
-
257
- /*
258
- * Smaller images should have the icon closer to the border.
259
- * Match the icon position with the linked image indicator brought by the link image feature.
260
- */
261
- top: min(var(--ck-spacing-medium), 6%);
262
- right: min(var(--ck-spacing-medium), 6%);
263
- border-radius: 50%;
264
- z-index: 1;
265
- }
266
-
267
- .ck-image-upload-complete-icon::after {
268
- content: "";
269
- position: absolute;
270
- }
271
-
272
- /*
273
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
274
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
275
- */
166
+ .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__action:not(.ck-disabled), .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled), .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
167
+ background-color: var(--ck-color-button-on-hover-background);
168
+ }
276
169
 
277
- .ck .ck-upload-placeholder-loader {
278
- position: absolute;
279
- display: flex;
280
- align-items: center;
281
- justify-content: center;
282
- top: 0;
283
- left: 0;
170
+ :is(.ck.ck-editor__editable .image, .ck.ck-editor__editable .image-inline).ck-appear {
171
+ animation: .7s fadeIn;
284
172
  }
285
173
 
286
- .ck .ck-upload-placeholder-loader::before {
287
- content: '';
288
- position: relative;
289
- }
174
+ @media (prefers-reduced-motion: reduce) {
175
+ :is(.ck.ck-editor__editable .image, .ck.ck-editor__editable .image-inline).ck-appear {
176
+ opacity: 1;
177
+ animation: none;
178
+ }
179
+ }
290
180
 
291
- /*
292
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
293
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
294
- */
181
+ .ck.ck-editor__editable .image, .ck.ck-editor__editable .image-inline {
182
+ position: relative;
183
+ }
295
184
 
296
- .ck-content .image {
297
- display: table;
298
- clear: both;
299
- text-align: center;
185
+ .ck.ck-editor__editable .image .ck-progress-bar, .ck.ck-editor__editable .image-inline .ck-progress-bar {
186
+ background: var(--ck-color-upload-bar-background);
187
+ width: 0;
188
+ height: 2px;
189
+ transition: width .1s;
190
+ position: absolute;
191
+ top: 0;
192
+ left: 0;
193
+ }
300
194
 
301
- /* Make sure there is some space between the content and the image. Center image by default. */
302
- /* The first value should be equal to --ck-spacing-large variable if used in the editor context
303
- to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
304
- margin: 0.9em auto;
195
+ @keyframes fadeIn {
196
+ from {
197
+ opacity: 0;
198
+ }
305
199
 
306
- /* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */
307
- min-width: 50px;
308
- }
200
+ to {
201
+ opacity: 1;
202
+ }
203
+ }
309
204
 
310
- .ck-content .image img {
311
- /* Prevent unnecessary margins caused by line-height (see #44). */
312
- display: block;
205
+ :root {
206
+ --ck-color-image-upload-icon: #fff;
207
+ --ck-color-image-upload-icon-background: #008a00;
208
+ --ck-image-upload-icon-size: 20;
209
+ --ck-image-upload-icon-width: 2px;
210
+ --ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);
211
+ }
313
212
 
314
- /* Center the image if its width is smaller than the content's width. */
315
- margin: 0 auto;
213
+ .ck-image-upload-complete-icon {
214
+ opacity: 0;
215
+ background: var(--ck-color-image-upload-icon-background);
216
+ font-size: calc(1px * var(--ck-image-upload-icon-size));
217
+ width: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));
218
+ height: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));
219
+ top: min(var(--ck-spacing-medium), 6%);
220
+ right: min(var(--ck-spacing-medium), 6%);
221
+ border-radius: 50%;
222
+ animation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;
223
+ animation-duration: .5s, .5s;
224
+ animation-delay: 0s, 3s;
225
+ animation-fill-mode: forwards, forwards;
226
+ display: block;
227
+ position: absolute;
228
+ overflow: hidden;
229
+ }
316
230
 
317
- /* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */
318
- max-width: 100%;
231
+ .ck-image-upload-complete-icon:after {
232
+ opacity: 0;
233
+ transform-origin: 0 0;
234
+ border-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);
235
+ border-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);
236
+ box-sizing: border-box;
237
+ content: "";
238
+ width: 0;
239
+ height: 0;
240
+ animation-name: ck-upload-complete-icon-check;
241
+ animation-duration: .5s;
242
+ animation-delay: .5s;
243
+ animation-fill-mode: forwards;
244
+ position: absolute;
245
+ top: 50%;
246
+ left: 25%;
247
+ transform: scaleX(-1) rotate(135deg);
248
+ }
319
249
 
320
- /* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */
321
- min-width: 100%;
250
+ @media (prefers-reduced-motion: reduce) {
251
+ .ck-image-upload-complete-icon {
252
+ animation-duration: 0s;
253
+ }
254
+
255
+ .ck-image-upload-complete-icon:after {
256
+ opacity: 1;
257
+ width: .3em;
258
+ height: .45em;
259
+ animation: none;
260
+ }
261
+ }
322
262
 
323
- /* Keep proportions of the block image if the height is set and the image is wider than the editor width.
324
- See https://github.com/ckeditor/ckeditor5/issues/14542. */
325
- height: auto;
326
- }
263
+ .ck-image-upload-complete-icon {
264
+ z-index: 1;
265
+ }
327
266
 
328
- .ck-content .image-inline {
329
- /*
330
- * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).
331
- * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.
332
- * This strange behavior does not happen with inline-flex.
333
- */
334
- display: inline-flex;
267
+ @keyframes ck-upload-complete-icon-show {
268
+ from {
269
+ opacity: 0;
270
+ }
335
271
 
336
- /* While being resized, don't allow the image to exceed the width of the editing root. */
337
- max-width: 100%;
272
+ to {
273
+ opacity: 1;
274
+ }
275
+ }
338
276
 
339
- /* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */
340
- align-items: flex-start;
277
+ @keyframes ck-upload-complete-icon-hide {
278
+ from {
279
+ opacity: 1;
280
+ }
341
281
 
342
- /* When the picture is present it must act as a flex container to let the img resize properly */
343
- }
282
+ to {
283
+ opacity: 0;
284
+ }
285
+ }
344
286
 
345
- .ck-content .image-inline picture {
346
- display: flex;
347
- }
348
-
349
- /* When the picture is present, it must act like a resizable img. */
350
-
351
- .ck-content .image-inline picture,
352
- .ck-content .image-inline img {
353
- /* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */
354
- flex-grow: 1;
355
- flex-shrink: 1;
356
-
357
- /* Prevents overflowing the editing root boundaries when an inline image is very wide. */
358
- max-width: 100%;
359
- }
360
-
361
- /*
362
- * Inhertit the content styles padding of the <figcaption> in case the integration overrides `text-align: center`
363
- * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native
364
- * caret does, and not at the edge of <figcaption>.
365
- */
366
-
367
- .ck.ck-editor__editable .image > figcaption.ck-placeholder::before {
368
- padding-left: inherit;
369
- padding-right: inherit;
370
-
371
- /*
372
- * Make sure the image caption placeholder doesn't overflow the placeholder area.
373
- * See https://github.com/ckeditor/ckeditor5/issues/9162.
374
- */
375
- white-space: nowrap;
376
- overflow: hidden;
377
- text-overflow: ellipsis;
378
- }
379
-
380
- /*
381
- * See https://github.com/ckeditor/ckeditor5/issues/15115.
382
- */
287
+ @keyframes ck-upload-complete-icon-check {
288
+ 0% {
289
+ opacity: 1;
290
+ width: 0;
291
+ height: 0;
292
+ }
293
+
294
+ 33% {
295
+ width: .3em;
296
+ height: 0;
297
+ }
298
+
299
+ 100% {
300
+ opacity: 1;
301
+ width: .3em;
302
+ height: .45em;
303
+ }
304
+ }
383
305
 
384
- .ck.ck-editor__editable .image {
385
- z-index: 1;
306
+ :root {
307
+ --ck-color-upload-placeholder-loader: #b3b3b3;
308
+ --ck-upload-placeholder-loader-size: 32px;
309
+ --ck-upload-placeholder-image-aspect-ratio: 2.8;
310
+ }
386
311
 
387
- /*
388
- * Make sure the selected image always stays on top of its siblings.
389
- * See https://github.com/ckeditor/ckeditor5/issues/9108.
390
- */
391
- }
312
+ .ck .ck-image-upload-placeholder {
313
+ width: 100%;
314
+ margin: 0;
315
+ }
392
316
 
393
- .ck.ck-editor__editable .image.ck-widget_selected {
394
- z-index: 2;
395
- }
317
+ .ck .ck-image-upload-placeholder.image-inline {
318
+ width: calc(2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio));
319
+ }
396
320
 
397
- /*
398
- * See https://github.com/ckeditor/ckeditor5/issues/15115.
399
- */
321
+ .ck .ck-image-upload-placeholder img {
322
+ aspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);
323
+ }
400
324
 
401
- .ck.ck-editor__editable .image-inline {
402
- z-index: 1;
325
+ .ck .ck-upload-placeholder-loader {
326
+ justify-content: center;
327
+ align-items: center;
328
+ width: 100%;
329
+ height: 100%;
330
+ display: flex;
331
+ position: absolute;
332
+ top: 0;
333
+ }
403
334
 
404
- /*
405
- * Make sure the selected inline image always stays on top of its siblings.
406
- * See https://github.com/ckeditor/ckeditor5/issues/9108.
407
- */
408
- }
335
+ .ck .ck-upload-placeholder-loader:before {
336
+ width: var(--ck-upload-placeholder-loader-size);
337
+ height: var(--ck-upload-placeholder-loader-size);
338
+ border-top: 3px solid var(--ck-color-upload-placeholder-loader);
339
+ content: "";
340
+ border-right: 2px solid #0000;
341
+ border-radius: 50%;
342
+ animation: 1s linear infinite ck-upload-placeholder-loader;
343
+ position: relative;
344
+ }
409
345
 
410
- .ck.ck-editor__editable .image-inline.ck-widget_selected {
411
- z-index: 2;
346
+ .ck .ck-upload-placeholder-loader {
347
+ left: 0;
348
+ }
412
349
 
413
- /*
414
- * Make sure the native browser selection style is not displayed.
415
- * Inline image widgets have their own styles for the selected state and
416
- * leaving this up to the browser is asking for a visual collision.
417
- */
418
- }
350
+ @keyframes ck-upload-placeholder-loader {
351
+ to {
352
+ transform: rotate(360deg);
353
+ }
354
+ }
419
355
 
420
- .ck.ck-editor__editable .image-inline.ck-widget_selected ::selection {
421
- display: none;
422
- }
356
+ .ck-content .image {
357
+ clear: both;
358
+ text-align: center;
359
+ min-width: 50px;
360
+ margin: .9em auto;
361
+ display: table;
362
+ }
423
363
 
424
- /* Keep proportions of the inline image if the height is set and the image is wider than the editor width.
425
- See https://github.com/ckeditor/ckeditor5/issues/14542. */
364
+ .ck-content .image img {
365
+ min-width: 100%;
366
+ max-width: 100%;
367
+ height: auto;
368
+ margin: 0 auto;
369
+ display: block;
370
+ }
426
371
 
427
- .ck.ck-editor__editable .image-inline img {
428
- height: auto;
429
- }
372
+ .ck-content .image-inline {
373
+ align-items: flex-start;
374
+ max-width: 100%;
375
+ display: inline-flex;
376
+ }
430
377
 
431
- /* The inline image nested in the table should have its original size if not resized.
432
- See https://github.com/ckeditor/ckeditor5/issues/9117. */
378
+ .ck-content .image-inline picture {
379
+ display: flex;
380
+ }
433
381
 
434
- .ck.ck-editor__editable td .image-inline img, .ck.ck-editor__editable th .image-inline img {
435
- max-width: none;
436
- }
382
+ .ck-content .image-inline picture, .ck-content .image-inline img {
383
+ flex-grow: 1;
384
+ flex-shrink: 1;
385
+ max-width: 100%;
386
+ }
437
387
 
438
- /*
439
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
440
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
441
- */
388
+ .ck.ck-editor__editable .image > figcaption.ck-placeholder:before {
389
+ padding-left: inherit;
390
+ padding-right: inherit;
391
+ white-space: nowrap;
392
+ text-overflow: ellipsis;
393
+ overflow: hidden;
394
+ }
442
395
 
443
- .ck.ck-editor__editable img.image_placeholder {
444
- background-size: 100% 100%;
445
- }
396
+ .ck.ck-editor__editable .image {
397
+ z-index: 1;
398
+ }
446
399
 
447
- /*
448
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
449
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
450
- */
400
+ .ck.ck-editor__editable .image.ck-widget_selected {
401
+ z-index: 2;
402
+ }
451
403
 
452
- .ck.ck-image-insert-url {
453
- width: 400px;
454
- padding: var(--ck-spacing-large) var(--ck-spacing-large) 0;
404
+ .ck.ck-editor__editable .image-inline {
405
+ z-index: 1;
455
406
  }
456
407
 
457
- .ck.ck-image-insert-url .ck-image-insert-url__action-row {
458
- display: grid;
459
- grid-template-columns: repeat(2, 1fr);
460
- }
408
+ .ck.ck-editor__editable .image-inline.ck-widget_selected {
409
+ z-index: 2;
410
+ }
461
411
 
462
- /*
463
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
464
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
465
- */
412
+ .ck.ck-editor__editable .image-inline.ck-widget_selected ::selection {
413
+ display: none;
414
+ }
466
415
 
467
- /*
468
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
469
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
470
- */
416
+ .ck.ck-editor__editable .image-inline img {
417
+ height: auto;
418
+ }
471
419
 
472
- .ck-vertical-form .ck-button::after {
473
- content: "";
474
- width: 0;
475
- position: absolute;
476
- right: -1px;
477
- top: -1px;
478
- bottom: -1px;
479
- z-index: 1;
480
- }
481
-
482
- .ck-vertical-form .ck-button:focus::after {
483
- display: none;
484
- }
485
-
486
- @media screen and (max-width: 600px) {
487
- .ck.ck-responsive-form .ck-button::after {
488
- content: "";
489
- width: 0;
490
- position: absolute;
491
- right: -1px;
492
- top: -1px;
493
- bottom: -1px;
494
- z-index: 1;
495
- }
496
-
497
- .ck.ck-responsive-form .ck-button:focus::after {
498
- display: none;
499
- }
500
- }
501
-
502
- /*
503
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
504
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
505
- */
420
+ :is(.ck.ck-editor__editable td, .ck.ck-editor__editable th) .image-inline img {
421
+ max-width: none;
422
+ }
506
423
 
507
- /*
508
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
509
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
510
- */
511
- /*
512
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
513
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
514
- */
424
+ .ck.ck-editor__editable img.image_placeholder {
425
+ background-size: 100% 100%;
426
+ }
515
427
 
516
428
  :root {
517
- --ck-form-default-width: 340px;
429
+ --ck-image-insert-insert-by-url-width: 250px;
518
430
  }
519
431
 
520
- .ck.ck-form {
521
- padding: 0 0 var(--ck-spacing-large);
432
+ .ck.ck-image-insert-url {
433
+ --ck-input-width: 100%;
434
+ width: 400px;
522
435
  }
523
436
 
524
- .ck.ck-form.ck-form_default-width {
525
- width: var(--ck-form-default-width);
526
- }
437
+ .ck.ck-image-insert-url .ck-image-insert-url__action-row {
438
+ grid-column-gap: var(--ck-spacing-large);
439
+ margin-top: var(--ck-spacing-large);
440
+ display: grid;
441
+ }
527
442
 
528
- .ck.ck-form:focus {
529
- outline: none;
530
- }
443
+ .ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save, .ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel {
444
+ justify-content: center;
445
+ min-width: auto;
446
+ }
531
447
 
532
- .ck.ck-form .ck.ck-input-text,
533
- .ck.ck-form .ck.ck-input-number {
534
- min-width: 100%;
535
- width: 0;
536
- }
448
+ .ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label {
449
+ color: var(--ck-color-text);
450
+ }
537
451
 
538
- .ck.ck-form .ck.ck-dropdown {
539
- min-width: 100%;
540
- }
452
+ .ck.ck-image-insert-url .ck-image-insert-url__action-row {
453
+ grid-template-columns: repeat(2, 1fr);
454
+ }
541
455
 
542
- .ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus) {
543
- border: 1px solid var(--ck-color-base-border);
544
- }
456
+ .ck.ck-image-insert-url {
457
+ padding: var(--ck-spacing-large) var(--ck-spacing-large) 0;
458
+ }
545
459
 
546
- .ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label {
547
- width: 100%;
548
- }
460
+ .ck.ck-image-insert-form > .ck.ck-button {
461
+ width: 100%;
462
+ display: block;
463
+ }
549
464
 
550
- /* Default `ck-responsive-form` customization when it lies next to `ck-form` class */
465
+ [dir="ltr"] :is(.ck.ck-image-insert-form > .ck.ck-button) {
466
+ text-align: left;
467
+ }
551
468
 
552
- @media screen and (max-width: 600px) {
469
+ [dir="rtl"] :is(.ck.ck-image-insert-form > .ck.ck-button) {
470
+ text-align: right;
471
+ }
553
472
 
554
- .ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit {
555
- flex-direction: column;
556
- align-items: stretch;
557
- padding: 0;
558
- }
559
- }
473
+ .ck.ck-image-insert-form > .ck.ck-collapsible:not(:first-child) {
474
+ border-top: 1px solid var(--ck-color-base-border);
475
+ }
560
476
 
561
- @media screen and (max-width: 600px) {
477
+ .ck.ck-image-insert-form > .ck.ck-collapsible:not(:last-child) {
478
+ border-bottom: 1px solid var(--ck-color-base-border);
479
+ }
562
480
 
563
- .ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit > .ck {
564
- margin: var(--ck-spacing-large) var(--ck-spacing-large) 0;
565
- }
566
- }
481
+ .ck.ck-image-insert-form > .ck.ck-collapsible {
482
+ min-width: var(--ck-image-insert-insert-by-url-width);
483
+ }
567
484
 
568
- @media screen and (max-width: 600px) {
485
+ .ck.ck-image-insert-form > .ck.ck-image-insert-url {
486
+ min-width: var(--ck-image-insert-insert-by-url-width);
487
+ padding: var(--ck-spacing-large);
488
+ }
569
489
 
570
- .ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit .ck-button_with-text {
571
- justify-content: center;
572
- }
573
- }
490
+ .ck.ck-image-insert-form:focus {
491
+ outline: none;
492
+ }
574
493
 
575
- @media screen and (max-width: 600px) {
494
+ :root {
495
+ --ck-image-custom-resize-form-width: 340px;
496
+ }
576
497
 
577
- .ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_large-bottom-padding {
578
- padding-bottom: var(--ck-spacing-large);
579
- }
580
- }
498
+ @media screen and (width <= 600px) {
499
+ :root {
500
+ --ck-image-custom-resize-form-width: 300px;
501
+ }
502
+ }
581
503
 
582
- [dir="ltr"] .ck.ck-form.ck-responsive-form > :not(:first-child) {
583
- margin-left: 0;
584
- }
504
+ .ck.ck-image-custom-resize-form.ck-responsive-form {
505
+ width: var(--ck-image-custom-resize-form-width);
506
+ }
585
507
 
586
- [dir="rtl"] .ck.ck-form.ck-responsive-form > :not(:last-child) {
587
- margin-left: 0;
588
- }
508
+ :root {
509
+ --ck-text-alternative-form-width: 340px;
510
+ }
511
+
512
+ @media screen and (width <= 600px) {
513
+ :root {
514
+ --ck-text-alternative-form-width: 300px;
515
+ }
516
+ }
589
517
 
590
- /* End of `ck-responsive-form` customization */
518
+ .ck.ck-text-alternative-form.ck-responsive-form {
519
+ width: var(--ck-text-alternative-form-width);
520
+ }
591
521
 
592
522
  /*# sourceMappingURL=index.css.map */