@ckeditor/ckeditor5-image
Version:
Image feature for CKEditor 5.
121 lines (102 loc) • 3.13 kB
CSS
/*
* Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/
:root {
--ck-image-style-spacing: 1.5em;
--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);
}
.ck-content {
/* See: https://github.com/ckeditor/ckeditor5/issues/16317 */
& .image {
/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback
confirming successful application of the style if image width exceeds the editor's size.
See https://github.com/ckeditor/ckeditor5/issues/9342 */
&.image-style-block-align-left,
&.image-style-block-align-right {
max-width: calc(100% - var(--ck-image-style-spacing));
}
/* Allows displaying multiple floating images in the same line.
See https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */
&.image-style-align-left,
&.image-style-align-right {
clear: none;
}
&.image-style-side {
float: right;
margin-left: var(--ck-image-style-spacing);
max-width: 50%;
}
&.image-style-align-left {
float: left;
margin-right: var(--ck-image-style-spacing);
}
&.image-style-align-right {
float: right;
margin-left: var(--ck-image-style-spacing);
}
&.image-style-block-align-right {
margin-right: 0;
margin-left: auto;
}
&.image-style-block-align-left {
margin-left: 0;
margin-right: auto;
}
}
& .image-style-align-center {
margin-left: auto;
margin-right: auto;
}
& .image-style-align-left {
float: left;
margin-right: var(--ck-image-style-spacing);
}
& .image-style-align-right {
float: right;
margin-left: var(--ck-image-style-spacing);
}
/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */
& p + .image.image-style-align-left,
& p + .image.image-style-align-right,
& p + .image.image-style-side {
margin-top: 0;
}
& .image-inline {
&.image-style-align-left,
&.image-style-align-right {
margin-top: var(--ck-inline-image-style-spacing);
margin-bottom: var(--ck-inline-image-style-spacing);
}
&.image-style-align-left {
margin-right: var(--ck-inline-image-style-spacing);
}
&.image-style-align-right {
margin-left: var(--ck-inline-image-style-spacing);
}
}
}
.ck.ck-splitbutton {
/* The button should display as a regular drop-down if the action button
is forced to fire the same action as the arrow button. */
&.ck-splitbutton_flatten {
&:hover,
&.ck-splitbutton_open {
& > .ck-splitbutton__action:not(.ck-disabled),
& > .ck-splitbutton__arrow:not(.ck-disabled),
& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
background-color: var(--ck-color-button-on-background);
&::after {
display: none;
}
}
}
&.ck-splitbutton_open:hover {
& > .ck-splitbutton__action:not(.ck-disabled),
& > .ck-splitbutton__arrow:not(.ck-disabled),
& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
background-color: var(--ck-color-button-on-hover-background);
}
}
}
}