Skip to content
Draft
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
b9fd348
Introduce semantic token layer for shape, surface, interactive, layou…
pszczesniak Mar 11, 2026
6f74d6c
Set the default border radius for control and surface semantics to --…
pszczesniak Mar 11, 2026
35167b8
Split global color tokens into layered files.
pszczesniak Mar 11, 2026
f3c6212
Extend semantic tokens for colors and layers.
pszczesniak Mar 12, 2026
060b9ec
Rename semantic content tokens to text and region namespaces.
pszczesniak Mar 13, 2026
d4507b7
Replace inline shorthand compositions with component tokens.
pszczesniak Mar 13, 2026
c37bae4
Replace corner radius resets with semantic/component tokens.
pszczesniak Mar 13, 2026
dc3f0e9
Finalize tokenization of shadow and corner overrides.
pszczesniak Mar 16, 2026
5426aec
Add state tokens for interactive UI components.
pszczesniak Mar 16, 2026
9a877a8
Add semantic font-weight tokens and component typography mappings.
pszczesniak Mar 16, 2026
579754a
CSS variable naming alignment across theme layers.
pszczesniak Mar 17, 2026
d8f8f1a
Add backward-compatible fallbacks for legacy UI theme tokens.
pszczesniak Mar 18, 2026
2a7d8af
Refactor UI theme to tokenize remaining fixed visual values.
pszczesniak Mar 18, 2026
3e95182
Refactor UI theme transitions to layered motion tokens.
pszczesniak Mar 18, 2026
c35f85d
Refactor UI theme border widths to layered tokens.
pszczesniak Mar 18, 2026
521d696
Avoid scoped global token overrides in form header and tooltip.
pszczesniak Mar 18, 2026
8da7eec
Refactor UI theme animations to layered motion tokens.
pszczesniak Mar 18, 2026
35405bb
Normalize component :root token ordering.
pszczesniak Mar 19, 2026
fb8c7a0
Added semantic success/warning feedback tokens, mapping save/cancel a…
pszczesniak Mar 24, 2026
8f8781e
Modernize foundation token naming to align with modern design system …
pszczesniak Mar 25, 2026
a657837
Align component token names with the naming convention.
pszczesniak Mar 25, 2026
9b7d029
Extract hardcoded color values to foundation primitives and clean up …
pszczesniak Mar 25, 2026
e4fd191
Tokenize remaining hardcoded font-weight, font-size, and border-radiu…
pszczesniak Mar 26, 2026
56542e0
Fix focus-ring border-width mismatch when customizing component borders.
pszczesniak Mar 26, 2026
01d0d56
Move legacy component color aliases into their respective component f…
pszczesniak Mar 27, 2026
fb957c0
Fix tooltip background by referencing the renamed panel background to…
pszczesniak Mar 27, 2026
0df72b7
Add composite border tokens for balloon panel and tooltip components.
pszczesniak Mar 27, 2026
b5f5d5c
Add explicit button padding-block token for text buttons.
pszczesniak Mar 27, 2026
67ce077
Add backward-compatible fallbacks for renamed foundation tokens.
pszczesniak Mar 30, 2026
a21d140
Add missing component tokens identified from integrator customization…
pszczesniak Mar 30, 2026
43fa75b
Add uniform-border-radius opt-out tokens for attached-corner components.
pszczesniak Mar 30, 2026
0717a28
Add dropdown list background token to prevent corner radius overlap.
pszczesniak Mar 31, 2026
b3659dc
Add color grid tile hover layer and focus transform tokens.
pszczesniak Mar 31, 2026
1235baa
Fix circular reference in legacy min-height alias.
pszczesniak Mar 31, 2026
04c7710
Streamlined component tokens and leverage semantic layer for cleaner …
pszczesniak Apr 3, 2026
e253e45
Wire widget, clipboard, and html-support tokens to foundation layer w…
pszczesniak Apr 7, 2026
25271c8
Add legacy fallbacks and wire tokens to foundation in table, image, a…
pszczesniak Apr 7, 2026
c3af6ae
Add legacy token fallbacks to fullscreen, html-embed, source-editing,…
pszczesniak Apr 7, 2026
9f8905b
Add legacy spacing fallbacks in list package and annotate content-lay…
pszczesniak Apr 7, 2026
36c65b9
Add legacy token fallbacks in style, mention packages and annotate co…
pszczesniak Apr 7, 2026
52aa370
Add legacy token fallbacks and wire shared tokens in emoji, bookmark,…
pszczesniak Apr 7, 2026
cd0d435
Add legacy token fallbacks in classic editor and annotate content-lay…
pszczesniak Apr 7, 2026
1b5d78a
Merge branch 'master' into ck/19910
pszczesniak Apr 9, 2026
13b8037
Add component tokens for color selector divider border and image inse…
pszczesniak Apr 9, 2026
72ffdfe
Add theme token naming guide.
pszczesniak Apr 9, 2026
18db25d
Add Design Token Explorer manual tests with stylesheet presets, inlin…
pszczesniak May 8, 2026
1f30823
Add preset CSS loading via fetch, amber highlights for preset-changed…
pszczesniak May 11, 2026
bd94568
Add inline SVG diagrams for some of the tokens and a global show/hide…
pszczesniak May 11, 2026
828d0d9
Add click-to-copy token names and shareable URL links for token overr…
pszczesniak May 11, 2026
d01cd11
Add token search/filter with state-preserving.
pszczesniak May 11, 2026
5c6e699
Added the WCAG contrast checking section and verification item.
pszczesniak May 11, 2026
899e76b
Add expand/collapse all button per token tier.
pszczesniak May 11, 2026
fee0448
Add 'show only overridden' filter, expand and collapse all per tier, …
pszczesniak May 11, 2026
48475d1
Add color swatches and click-to-navigate to WCAG contrast badges, rep…
pszczesniak May 11, 2026
3b6a979
Add token count in search results, collapsible panel strip, and befor…
pszczesniak May 12, 2026
ed30d56
Improve Share Link to include active preset CSS, generate combined 'L…
pszczesniak May 13, 2026
c70b927
Add interactive token dependency tree with autocomplete, tier badges,…
pszczesniak May 13, 2026
a41dbf8
Increase highliht animation duration time.
pszczesniak May 13, 2026
40191f0
Add color palette overview with tier separators, inline color picker,…
pszczesniak May 13, 2026
0dac8bf
Replace foundation tokens with semantic equivalents in component CSS …
pszczesniak May 15, 2026
ea61820
Extend radius scale with sm, md, lg, xl tokens and add warning stylin…
pszczesniak May 15, 2026
acb6240
Add border and transition semantic shorthands and simplify component …
pszczesniak May 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,20 @@
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/

:root {
--ck-autocomplete-results-border-radius: var(--ck-border-radius-surface-attached);
--ck-autocomplete-results-shadow: var(--ck-shadow-surface-floating);
--ck-autocomplete-results-max-height: var(--ck-size-autocomplete-max-height);
--ck-color-autocomplete-results-background: var(--ck-color-surface-container);
}

.ck.ck-autocomplete {
& > .ck-search__results {
border-radius: var(--ck-rounded-corners-radius);
box-shadow: var(--ck-drop-shadow), 0 0;
max-height: 200px;
border-radius: var(--ck-autocomplete-results-border-radius);
box-shadow: var(--ck-autocomplete-results-shadow), 0 0;
max-height: var(--ck-autocomplete-results-max-height);
overflow-y: auto;
background: var(--ck-color-base-background);
background: var(--ck-color-autocomplete-results-background);
border: 1px solid var(--ck-color-dropdown-panel-border);
min-width: auto;
position: absolute;
Expand Down
36 changes: 24 additions & 12 deletions packages/ckeditor5-ui/theme/components/button/button.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/

:root {
--ck-button-border-radius: var(--ck-border-radius-control);
--ck-button-min-size: var(--ck-size-control-min-height);
--ck-button-focus-ring: var(--ck-focus-ring-interactive);
--ck-button-focus-shadow: var(--ck-focus-shadow-interactive);
--ck-button-focus-disabled-shadow: var(--ck-focus-shadow-disabled-interactive);
--ck-button-padding: var(--ck-spacing-control-padding-block);
--ck-button-padding-inline: var(--ck-spacing-control-padding-inline);
--ck-button-icon-gap: var(--ck-spacing-control-icon-gap);
--ck-button-keystroke-gap: var(--ck-spacing-control-meta-gap);
}

.ck.ck-button,
a.ck.ck-button {
--ck-button-background: var(--ck-color-button-default-background);
Expand All @@ -22,16 +34,16 @@ a.ck.ck-button {
}
}

border-radius: var(--ck-rounded-corners-radius);
border-radius: var(--ck-button-border-radius);
white-space: nowrap;
cursor: default;
vertical-align: middle;
padding: var(--ck-spacing-tiny);
padding: var(--ck-button-padding);
text-align: center;

/* A very important piece of styling. Go to variable declaration to learn more. */
min-width: var(--ck-ui-component-min-height);
min-height: var(--ck-ui-component-min-height);
min-width: var(--ck-button-min-size);
min-height: var(--ck-button-min-size);

/* Normalize the height of the line. Removing this will break consistent height
among text and text-less buttons (with icons). */
Expand Down Expand Up @@ -63,8 +75,8 @@ a.ck.ck-button {
&:active,
&:focus {
outline: none;
border: var(--ck-focus-ring);
box-shadow: var(--ck-focus-outer-shadow), 0 0;
border: var(--ck-button-focus-ring);
box-shadow: var(--ck-button-focus-shadow), 0 0;
}

/* Allow icon coloring using the text "color" property. */
Expand Down Expand Up @@ -102,11 +114,11 @@ a.ck.ck-button {
opacity: .5;

[dir="ltr"] & {
margin-left: var(--ck-spacing-large);
margin-left: var(--ck-button-keystroke-gap);
}

[dir="rtl"] & {
margin-right: var(--ck-spacing-large);
margin-right: var(--ck-button-keystroke-gap);
}
}

Expand All @@ -117,7 +129,7 @@ a.ck.ck-button {
&:active,
&:focus {
/* The disabled button should have a slightly less visible shadow when focused. */
box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
box-shadow: var(--ck-button-focus-disabled-shadow), 0 0;
}

& .ck-button__icon {
Expand All @@ -135,15 +147,15 @@ a.ck.ck-button {
}

&.ck-button_with-text {
padding: var(--ck-spacing-tiny) var(--ck-spacing-standard);
padding: var(--ck-button-padding) var(--ck-button-padding-inline);

& .ck-button__icon {
[dir="ltr"] & {
margin-right: var(--ck-spacing-medium);
margin-right: var(--ck-button-icon-gap);
}

[dir="rtl"] & {
margin-left: var(--ck-spacing-medium);
margin-left: var(--ck-button-icon-gap);
}
}
& .ck-button__label {
Expand Down
21 changes: 14 additions & 7 deletions packages/ckeditor5-ui/theme/components/button/listitembutton.css
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,15 @@
*/


:root {
--ck-list-item-button-padding-block: var(--ck-spacing-control-padding-block);
--ck-list-item-button-padding-inline: calc(2 * var(--ck-spacing-control-padding-inline));
--ck-list-item-button-padding-inline-compact: var(--ck-spacing-control-padding-inline-compact);
--ck-list-item-button-check-icon-gap: var(--ck-spacing-control-padding-inline-compact);
}

.ck.ck-button.ck-list-item-button {
padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
padding: var(--ck-list-item-button-padding-block) var(--ck-list-item-button-padding-inline);

&,
&.ck-on {
Expand All @@ -15,11 +22,11 @@

&:has(.ck-list-item-button__check-holder) {
[dir="ltr"] & {
padding-left: var(--ck-spacing-small);
padding-left: var(--ck-list-item-button-padding-inline-compact);
}

[dir="rtl"] & {
padding-right: var(--ck-spacing-small);
padding-right: var(--ck-list-item-button-padding-inline-compact);
}
}

Expand Down Expand Up @@ -55,11 +62,11 @@

&.ck-list-item-button_toggleable {
[dir="ltr"] & {
padding-left: var(--ck-spacing-small);
padding-left: var(--ck-list-item-button-padding-inline-compact);
}

[dir="rtl"] & {
padding-right: var(--ck-spacing-small);
padding-right: var(--ck-list-item-button-padding-inline-compact);
}
}

Expand All @@ -69,11 +76,11 @@
height: .9em;

[dir="ltr"] & {
margin-right: var(--ck-spacing-small);
margin-right: var(--ck-list-item-button-check-icon-gap);
}

[dir="rtl"] & {
margin-left: var(--ck-spacing-small);
margin-left: var(--ck-list-item-button-check-icon-gap);
}
}

Expand Down
14 changes: 9 additions & 5 deletions packages/ckeditor5-ui/theme/components/button/switchbutton.css
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
:root {
/* 34px at 13px font-size */
--ck-switch-button-toggle-width: 2.6153846154em;
--ck-switch-button-toggle-border-radius: var(--ck-border-radius-control);
--ck-switch-button-toggle-inner-border-radius: calc(.5 * var(--ck-switch-button-toggle-border-radius));
--ck-switch-button-focus-ring: var(--ck-focus-ring-interactive);
--ck-switch-button-label-gap: calc(2 * var(--ck-spacing-control-meta-gap));
/* 14px at 13px font-size */
--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);
--ck-switch-button-translation: calc(
Expand All @@ -29,17 +33,17 @@
& .ck-button__label {
[dir="ltr"] & {
/* Separate the label from the switch */
margin-right: calc(2 * var(--ck-spacing-large));
margin-right: var(--ck-switch-button-label-gap);
}

[dir="rtl"] & {
/* Separate the label from the switch */
margin-left: calc(2 * var(--ck-spacing-large));
margin-left: var(--ck-switch-button-label-gap);
}
}

& .ck-button__toggle {
border-radius: var(--ck-rounded-corners-radius);
border-radius: var(--ck-switch-button-toggle-border-radius);

/* Apply some smooth transition to the box-shadow and border. */
/* Gently animate the background color of the toggle switch */
Expand All @@ -59,7 +63,7 @@
}

& .ck-button__toggle__inner {
border-radius: calc(.5 * var(--ck-rounded-corners-radius));
border-radius: var(--ck-switch-button-toggle-inner-border-radius);
width: var(--ck-switch-button-toggle-inner-size);
height: var(--ck-switch-button-toggle-inner-size);
background: var(--ck-color-switch-button-inner-background);
Expand Down Expand Up @@ -96,7 +100,7 @@
& .ck-button__toggle {
box-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);
outline-offset: 1px;
outline: var(--ck-focus-ring);
outline: var(--ck-switch-button-focus-ring);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@

:root {
--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));
--ck-collapsible-arrow-gap: var(--ck-spacing-control-icon-gap);
--ck-collapsible-children-padding-block-start: var(--ck-spacing-surface-section-gap-block);
--ck-collapsible-children-padding-inline: var(--ck-spacing-control-meta-gap);
--ck-collapsible-children-padding-block-end: var(--ck-spacing-content-edge-margin-block);
}

.ck.ck-collapsible {
Expand All @@ -25,13 +29,13 @@
}

& > .ck-icon {
margin-right: var(--ck-spacing-medium);
margin-right: var(--ck-collapsible-arrow-gap);
width: var(--ck-collapsible-arrow-size);
}
}

& > .ck-collapsible__children {
padding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);
padding: var(--ck-collapsible-children-padding-block-start) var(--ck-collapsible-children-padding-inline) var(--ck-collapsible-children-padding-block-end);
}

&.ck-collapsible_collapsed {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

:root {
--ck-color-grid-tile-size: 24px;
--ck-color-grid-high-contrast-tile-padding-inline: var(--ck-spacing-surface-padding-inline);
--ck-color-grid-label-padding-inline: var(--ck-spacing-control-padding-inline);

/* Not using global colors here because these may change but some colors in a pallette
* require special treatment. For instance, this ensures no matter what the UI text color is,
Expand Down Expand Up @@ -60,7 +62,7 @@
height: unset;
min-width: unset;
min-height: unset;
padding: 0 var(--ck-spacing-small);
padding: 0 var(--ck-color-grid-high-contrast-tile-padding-inline);

& .ck-button__label {
display: inline-block;
Expand Down Expand Up @@ -89,5 +91,5 @@
}

.ck.ck-color-grid__label {
padding: 0 var(--ck-spacing-standard);
padding: 0 var(--ck-color-grid-label-padding-inline);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/

:root {
--ck-color-picker-row-margin-block-start: var(--ck-spacing-content-edge-margin-block);
--ck-color-picker-hash-padding-block-start: var(--ck-spacing-control-padding-block);
--ck-color-picker-hash-padding-inline-end: var(--ck-spacing-control-icon-gap);
}

.color-picker-hex-input {
width: max-content;

Expand All @@ -16,7 +22,7 @@
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
margin: var(--ck-spacing-large) 0 0;
margin: var(--ck-color-picker-row-margin-block-start) 0 0;
width: unset;

& .ck.ck-labeled-field-view {
Expand All @@ -28,7 +34,7 @@
}

& .ck-color-picker__hash-view {
padding-top: var(--ck-spacing-tiny);
padding-right: var(--ck-spacing-medium);
padding-top: var(--ck-color-picker-hash-padding-block-start);
padding-right: var(--ck-color-picker-hash-padding-inline-end);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/

:root {
--ck-color-selector-picker-padding-block: calc(var(--ck-spacing-control-padding-inline) / 2);
--ck-color-selector-picker-padding-inline: var(--ck-spacing-control-padding-inline);
--ck-color-selector-picker-icon-gap: var(--ck-spacing-control-padding-inline);
}

.ck.ck-color-selector {
/* View fragment with color grids. */
Expand All @@ -20,7 +25,7 @@

/* stylelint-disable-next-line no-descending-specificity */
& .ck-button.ck-color-selector__color-picker {
padding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);
padding: var(--ck-color-selector-picker-padding-block) var(--ck-color-selector-picker-padding-inline);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;

Expand All @@ -30,11 +35,11 @@

& .ck.ck-icon {
[dir="ltr"] & {
margin-right: var(--ck-spacing-standard);
margin-right: var(--ck-color-selector-picker-icon-gap);
}

[dir="rtl"] & {
margin-left: var(--ck-spacing-standard);
margin-left: var(--ck-color-selector-picker-icon-gap);
}
}
}
Expand Down
15 changes: 8 additions & 7 deletions packages/ckeditor5-ui/theme/components/dialog/dialog.css
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@
--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);
--ck-dialog-max-width: 100vw;
--ck-dialog-max-height: 90vh;
--ck-color-dialog-background: var(--ck-color-base-background);
--ck-color-dialog-form-header-border: var(--ck-color-base-border);
--ck-dialog-border-radius: var(--ck-border-radius-surface);
--ck-dialog-shadow: var(--ck-dialog-drop-shadow);
--ck-color-dialog-background: var(--ck-color-surface-container);
--ck-color-dialog-border: var(--ck-color-border-container);
--ck-color-dialog-form-header-border: var(--ck-color-border-container);
}

.ck.ck-dialog-overlay {
Expand All @@ -33,15 +36,13 @@
}

.ck.ck-dialog {
border-radius: var(--ck-rounded-corners-radius);
box-shadow: var(--ck-drop-shadow), 0 0;

--ck-drop-shadow: var(--ck-dialog-drop-shadow);
border-radius: var(--ck-dialog-border-radius);
box-shadow: var(--ck-dialog-shadow), 0 0;

background: var(--ck-color-dialog-background);
max-height: var(--ck-dialog-max-height);
max-width: var(--ck-dialog-max-width);
border: 1px solid var(--ck-color-base-border);
border: 1px solid var(--ck-color-dialog-border);
overscroll-behavior: contain;
overscroll-behavior: none;
width: fit-content;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,18 @@
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/

:root {
--ck-dialog-actions-padding: var(--ck-spacing-content-edge-margin-block);
--ck-dialog-actions-gap: var(--ck-spacing-content-edge-margin-block);
}

.ck.ck-dialog {
& .ck.ck-dialog__actions {
padding: var(--ck-spacing-large);
padding: var(--ck-dialog-actions-padding);
display: flex;

& > * + * {
margin-left: var(--ck-spacing-large);
margin-left: var(--ck-dialog-actions-gap);
}
justify-content: flex-end
}
Expand Down
Loading