# CKEDITOR.config

class singleton

Stores default configuration settings. Changes to this object are reflected in all editor instances, if not specified otherwise for a particular instance.

## Config options

• ### allowedContent : allowedContentRules | BooleanCKEDITOR.config#allowedContent

since 4.1.0

Allowed content rules. This setting is used when instantiating CKEDITOR.editor.filter.

The following values are accepted:

In all cases filter configuration may be extended by extraAllowedContent. This option may be especially useful when you want to use the default allowedContent value along with some additional rules.

CKEDITOR.replace( 'textarea_id', {
allowedContent: 'p b i; a[!href]',
on: {
var editor = evt.editor;

editor.filter.check( 'h1' ); // -> false
editor.setData( '<h1><i>Foo</i></h1><p class="left"><span>Bar</span> <a href="http://foo.bar">foo</a></p>' );
// Editor contents will be:
'<p><i>Foo</i></p><p>Bar <a href="http://foo.bar">foo</a></p>'
}
}
} );


It is also possible to disallow some already allowed content. It is especially useful when you want to "trim down" the content allowed by default by editor features. To do that, use the disallowedContent option.

Read more in the documentation and see the example.

Defaults to null

• ### applicationTitle : String | BooleanCKEDITOR.config#applicationTitle

since 4.19.0

Customizes the human-readable title of the application for this editor. This title is used as a label for the whole website's region containing the editor with its toolbars and other UI parts. Application title impacts various accessibility aspects, e.g. it is commonly used by screen readers for distinguishing editor instances and for navigation. Accepted values are a string or false.

Note: When config.applicationTitle is set globally, the same value will be applied to all editor instances loaded with this config. This may adversely affect accessibility as screen reader users will be unable to distinguish particular editor instances and navigate between them.

Note: Setting config.applicationTitle = false may also impair accessibility in a similar way.

Note: Please do not confuse this property with CKEDITOR.editor.name which identifies the instance in the CKEDITOR.instances literal.

// Set the application title to 'My WYSIWYG'.
config.applicationTitle = 'My WYSIWYG';

// Do not add the application title.
config.applicationTitle = false;


Defaults to based on editor.name

• ### autoEmbed_widget : String | FunctionCKEDITOR.config#autoEmbed_widget

since 4.5.0

Specifies the widget to use to automatically embed a link. The default value of this option defines that either the Media Embed or Semantic Media Embed widgets will be used, depending on which is enabled.

The general behavior:

• If a string (widget names separated by commas) is provided, then the first of the listed widgets which is registered will be used. For example, if 'foo,bar,bom' is set and widgets 'bar' and 'bom' are registered, then 'bar' will be used.
• If a callback is specified, then it will be executed with the URL to be embedded and it should return the name of the widget to be used. It allows to use different embed widgets for different URLs.

Example:

// Defines that embedSemantic should be used (regardless of whether embed is defined).
config.autoEmbed_widget = 'embedSemantic';


Using with custom embed widgets:

config.autoEmbed_widget = 'customEmbed';


Note: Plugin names are always lower case, while widget names are not, so widget names do not have to equal plugin names. For example, there is the embedsemantic plugin and the embedSemantic widget.

Read more in the documentation and see the example.

Defaults to 'embed,embedSemantic'

• ### autoGrow_bottomSpace : NumberCKEDITOR.config#autoGrow_bottomSpace

since 3.6.2

Extra vertical space to be added between the content and the editor bottom bar when adjusting editor height to content by using the Auto Grow feature. This option accepts a value in pixels, without the unit (for example: 50).

Read more in the documentation and see the example.

config.autoGrow_bottomSpace = 50;


Defaults to 0

• ### autoGrow_maxHeight : NumberCKEDITOR.config#autoGrow_maxHeight

since 3.4.0

The maximum height that the editor can assume when adjusting to content by using the Auto Grow feature. This option accepts a value in pixels, without the unit (for example: 600). Zero (0) means that the maximum height is not limited and the editor will expand infinitely.

Read more in the documentation and see the example.

config.autoGrow_maxHeight = 400;


Defaults to 0

• ### autoGrow_minHeight : NumberCKEDITOR.config#autoGrow_minHeight

since 3.4.0

The minimum height that the editor can assume when adjusting to content by using the Auto Grow feature. This option accepts a value in pixels, without the unit (for example: 300).

Read more in the documentation and see the example.

config.autoGrow_minHeight = 300;


Defaults to 200

• ### autoGrow_onStartup : BooleanCKEDITOR.config#autoGrow_onStartup

since 3.6.2

Whether automatic editor height adjustment brought by the Auto Grow feature should happen on editor creation.

Read more in the documentation and see the example.

config.autoGrow_onStartup = true;


Defaults to false

• ### autoParagraph : BooleanCKEDITOR.config#autoParagraph

since 3.6.0 deprecated

Whether to automatically create wrapping blocks around inline content inside the document body. This helps to ensure the integrity of the block Enter mode.

Note: This option is deprecated. Changing the default value might introduce unpredictable usability issues and is highly unrecommended.

config.autoParagraph = false;


Defaults to true

• ### autoUpdateElement : BooleanCKEDITOR.config#autoUpdateElement

Whether the element replaced by the editor (usually a <textarea>) is to be updated automatically when posting the form containing the editor.

Defaults to true

• ### autocomplete_commitKeystrokes : Number | Number[]CKEDITOR.config#autocomplete_commitKeystrokes

since 4.10.0

The autocomplete keystrokes used to finish autocompletion with the selected view item. This setting will set completing keystrokes for each autocomplete plugin respectively.

To change completing keystrokes individually use the CKEDITOR.plugins.autocomplete.commitKeystrokes plugin property.

// Default configuration (9 = Tab, 13 = Enter).
config.autocomplete_commitKeystrokes = [ 9, 13 ];


Commit keystroke can also be disabled by setting it to an empty array.

// Disable autocomplete commit keystroke.
config.autocomplete_commitKeystrokes = [];


Defaults to [9, 13]

// Default configuration (13 = Enter, 32 = space).
config.autolink_commitKeystrokes = [ 9, 13 ];


Commit keystrokes can be also disabled by setting it to an empty array.

// Disable autolink commit keystrokes.


Defaults to [ 13, 32 ]

• Regex used by the Auto Link plugin to match email adresses.

Defaults to /^[a-zA-Z0-9.!#$%&'*+\/=?^_{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

• Regex used by the Auto Link plugin to match URL adresses.

// ...
( 'textarea' ).val( 'New content' ); </script>  Defaults to true • ### justifyClasses : ArrayCKEDITOR.config#justifyClasses List of classes to use for aligning the contents. If it's null, no classes will be used and instead the corresponding CSS values will be used. The array should contain 4 members, in the following order: left, center, right, justify. // Use the classes 'AlignLeft', 'AlignCenter', 'AlignRight', 'AlignJustify' config.justifyClasses = [ 'AlignLeft', 'AlignCenter', 'AlignRight', 'AlignJustify' ];  Defaults to null • ### keystrokes : ArrayCKEDITOR.config#keystrokes A list associating keystrokes with editor commands. Each element in the list is an array where the first item is the keystroke, and the second is the name of the command to be executed. This setting should be used to define (as well as to overwrite or remove) keystrokes set by plugins (like link and basicstyles). If you want to set a keystroke for your plugin or during the runtime, use CKEDITOR.editor.setKeystroke instead. Since default keystrokes are set by the CKEDITOR.editor.setKeystroke method, by default config.keystrokes is an empty array. See CKEDITOR.editor.setKeystroke documentation for more details regarding the start up order. // Change default Ctrl+L keystroke for 'link' command to Ctrl+Shift+L. config.keystrokes = [ ... [ CKEDITOR.CTRL + CKEDITOR.SHIFT + 76, 'link' ], // Ctrl+Shift+L ... ];  To reset a particular keystroke, the following approach can be used: // Disable default Ctrl+L keystroke which executes the 'link' command by default. config.keystrokes = [ ... [ CKEDITOR.CTRL + 76, null ], // Ctrl+L ... ];  In order to reset all default keystrokes, a CKEDITOR.instanceReady callback should be used. This is since editor defaults are merged rather than overwritten by user keystrokes. Note: This can be potentially harmful for the editor. Avoid this unless you are aware of the consequences. // Reset all default keystrokes. config.on.instanceReady = function() { this.keystrokeHandler.keystrokes = []; };  Defaults to [] • ### language : StringCKEDITOR.config#language The user interface language localization to use. If left empty, the editor will automatically be localized to the user language. If the user language is not supported, the language specified in the defaultLanguage configuration setting is used. Read more in the documentation and see the example. // Load the German interface. config.language = 'de';  Defaults to '' • ### language_list : ArrayCKEDITOR.config#language_list Specifies the list of languages available in the Language plugin. Each entry should be a string in the following format: <languageCode>:<languageLabel>[:<textDirection>]  • languageCode: The language code used for the lang attribute in ISO 639 format. Language codes can be found here. You can use both 2-letter ISO-639-1 codes and 3-letter ISO-639-2 codes, though for consistency it is recommended to stick to ISO-639-1 2-letter codes. • languageLabel: The label to show for this language in the list. • textDirection: (optional) One of the following values: rtl or ltr, indicating the reading direction of the language. Defaults to ltr. See the example. config.language_list = [ 'he:Hebrew:rtl', 'pt:Portuguese', 'de:German' ];  Defaults to [ 'ar:Arabic:rtl', 'fr:French', 'es:Spanish' ] • ### linkDefaultProtocol : StringCKEDITOR.config#linkDefaultProtocol since 4.13.0 Default URL protocol used for the Link dialog. Available values are: • 'http://' • 'https://' • 'ftp://' • 'news://' • '' — An empty string for the <other> option. config.linkDefaultProtocol = 'https://';  Defaults to 'http://' • ### linkJavaScriptLinksAllowed : BooleanCKEDITOR.config#linkJavaScriptLinksAllowed since 4.4.1 Whether JavaScript code is allowed as a href attribute in an anchor tag. With this option enabled it is possible to create links like: <a href="javascript:alert('Hello world!')">hello world</a>  By default JavaScript links are not allowed and will not pass the Link dialog window validation. Defaults to false • ### linkPhoneMsg : StringCKEDITOR.config#linkPhoneMsg since 4.11.0 Optional message for the alert popup used when the phone number in the Link dialog does not pass the validation. config.linkPhoneMsg = "Invalid number";  • ### linkPhoneRegExp : RegExpCKEDITOR.config#linkPhoneRegExp since 4.11.0 Optional JavaScript regular expression used whenever phone numbers in the Link dialog should be validated. config.linkPhoneRegExp = /^[0-9]{9}/;

• ### linkShowAdvancedTab : BooleanCKEDITOR.config#linkShowAdvancedTab

Defaults to true

• ### linkShowTargetTab : BooleanCKEDITOR.config#linkShowTargetTab

Whether to show the Target tab in the Link dialog window.

Defaults to true

• ### magicline_color : StringCKEDITOR.config#magicline_color

Defines the color of the magic line. The color may be adjusted to enhance readability.

Read more in the documentation and see the example.

// Changes magic line color to blue.
CKEDITOR.config.magicline_color = '#0000FF';


Defaults to '#FF0000'

Activates the special all-encompassing mode that considers all focus spaces between CKEDITOR.dtd.$block elements as accessible by the magic line. Read more in the documentation and see the example. // Enables the greedy "put everywhere" mode. CKEDITOR.config.magicline_everywhere = true;  Defaults to false • ### magicline_holdDistance : NumberCKEDITOR.config#magicline_holdDistance Defines the distance between the mouse pointer and the box within which the magic line stays revealed and no other focus space is offered to be accessed. This value is relative to magicline_triggerOffset. Read more in the documentation and see the example. // Increases the distance to 80% of CKEDITOR.config.magicline_triggerOffset. CKEDITOR.config.magicline_holdDistance = .8;CKEDITOR.config.magicline_triggerOffset  Defaults to 0.5 • ### magicline_keystrokeNext : NumberCKEDITOR.config#magicline_keystrokeNext Defines the default keystroke that accesses the closest unreachable focus space after the caret (start of the selection). If there is no focus space available, the selection remains unchanged. Read more in the documentation and see the example. // Changes keystroke to "Ctrl + .". CKEDITOR.config.magicline_keystrokeNext = CKEDITOR.CTRL + 190;  Defaults to CKEDITOR.CTRL + CKEDITOR.SHIFT + 52 (CTRL + SHIFT + 4) • ### magicline_keystrokePrevious : NumberCKEDITOR.config#magicline_keystrokePrevious Defines the default keystroke that accesses the closest unreachable focus space before the caret (start of the selection). If there is no focus space available, the selection remains unchanged. Read more in the documentation and see the example. // Changes the default keystroke to "Ctrl + ,". CKEDITOR.config.magicline_keystrokePrevious = CKEDITOR.CTRL + 188;  Defaults to CKEDITOR.CTRL + CKEDITOR.SHIFT + 51 (CTRL + SHIFT + 3) • ### magicline_tabuList : NumberCKEDITOR.config#magicline_tabuList Defines a list of attributes that, if assigned to some elements, prevent the magic line from being used within these elements. Read more in the documentation and see the example. // Adds the "data-tabu" attribute to the magic line tabu list. CKEDITOR.config.magicline_tabuList = [ 'data-tabu' ];  Defaults to [ 'data-widget-wrapper' ] • ### magicline_triggerOffset : NumberCKEDITOR.config#magicline_triggerOffset Sets the default vertical distance between the edge of the element and the mouse pointer that causes the magic line to appear. This option accepts a value in pixels, without the unit (for example: 15 for 15 pixels). Read more in the documentation and see the example. // Changes the offset to 15px. CKEDITOR.config.magicline_triggerOffset = 15;CKEDITOR.config.magicline_holdDistance  Defaults to 30 • ### mathJaxClass : StringCKEDITOR.config#mathJaxClass Sets the default class for span elements that will be converted into Mathematical Formulas widgets. If you set it to the following: config.mathJaxClass = 'my-math';  The code below will be recognized as a Mathematical Formulas widget. <span class="my-math">$$\sqrt{4} = 2$$</span>  Read more in the documentation and see the example. Defaults to 'math-tex' • ### mathJaxLib : StringCKEDITOR.config#mathJaxLib since 4.3.0 Sets the path to the MathJax library. It can be both a local resource and a location different than the default CDN. Please note that this must be a full or absolute path. Read more in the documentation and see the example. config.mathJaxLib = '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS_HTML';  Note: Since CKEditor 4.5.0 this option does not have a default value, so it must be set in order to enable the MathJax plugin. • ### maximize_historyIntegration : NumberCKEDITOR.config#maximize_historyIntegration Informs plugin how it should integrate with browser's "Go back" and "Go forward" buttons. If it's set to CKEDITOR.HISTORY_NATIVE, the plugin will use native History API and popstate event. If it's set to CKEDITOR.HISTORY_HASH, the plugin will use hashchange event. If it's set to CKEDITOR.HISTORY_OFF, the plugin will not integrate with browser's "Go back" and "Go forward" buttons. Defaults to CKEDITOR.HISTORY_NATIVE • ### mentions : configDefinition[]CKEDITOR.config#mentions since 4.10.0 A list of mentions configuration objects. For each configuration object a new mentions plugin instance will be created and attached to the editor. config.mentions = [ { feed: [ 'Anna', 'Thomas', 'Jack' ], minChars: 0 }, { feed: backendApiFunction, marker: '#' }, { feed: '/users?query={encodedQuery}', marker: '$' }
];

• ### menu_groups : StringCKEDITOR.config#menu_groups

A comma separated list of items group names to be displayed in the context menu. The order of items will reflect the order specified in this list if no priority was defined in the groups.

config.menu_groups = 'clipboard,table,anchor,link,image';


Defaults to see source

• ### menu_subMenuDelay : NumberCKEDITOR.config#menu_subMenuDelay

The amount of time, in milliseconds, the editor waits before displaying submenu options when moving the mouse over options that contain submenus, like the "Cell Properties" entry for tables.

// Remove the submenu delay.


Defaults to 400

• ### newpage_html : StringCKEDITOR.config#newpage_html

The HTML to load in the editor when the "new page" command is executed.

config.newpage_html = '<p>Type your text here.</p>';


Defaults to ''

• ### notification_duration : NumberCKEDITOR.config#notification_duration

since 4.5.0

After how many milliseconds the notification of the info and success type should close automatically. 0 means that notifications will not close automatically. Note that warning and progress notifications will never close automatically.

Defaults to 5000

• ### observableParent : HTMLElementCKEDITOR.config#observableParent

since 4.17.0

Native DOM element, a document observation starting point for mutation observer. Needed to detect when classic, wysiwygarea editor reattaches to DOM to restore editor's previous state.

To recreate editor wysiwygarea iframe after editor was reattached to DOM:

• make sure detachable element is nested on any level under observable element;
• make sure editor is nested on any level under detachable element.

See the sample overview of hierarchy below (HTML pseudocode):

<observable>
<...>
<detachable>
<...>
<editor></editor>
</...>
</detachable>
<...>
</observable>


By default, the entire document is observed. However, if you know exactly which element is detaching, you can choose its direct parent to increase performance a little.

Note, that if you choose element which is detaching, no changes will be detected.

• ### startupFocus : String | BooleanCKEDITOR.config#startupFocus

Whether an editable element should have focus when the editor is loading for the first time.

// Focus at the beginning of the editable.
config.startupFocus = true;


Since CKEditor 4.9.0, startupFocus can be explicitly set to either the start or the end of the editable:

// Focus at the beginning of the editable.
config.startupFocus = 'start';

// Focus at the end of the editable.
config.startupFocus = 'end';


Defaults to false

• ### startupMode : StringCKEDITOR.config#startupMode

The mode to load at the editor startup. It depends on the plugins loaded. By default, the wysiwyg and source modes are available.

config.startupMode = 'source';


Defaults to 'wysiwyg'

• ### startupOutlineBlocks : BooleanCKEDITOR.config#startupOutlineBlocks

Whether to automaticaly enable the show block" command when the editor loads.

config.startupOutlineBlocks = true;


Defaults to false

• ### startupShowBorders : BooleanCKEDITOR.config#startupShowBorders

Whether to automatically enable the "show borders" command when the editor loads.

config.startupShowBorders = false;


Defaults to true

• ### stylesSet : String | Array | BooleanCKEDITOR.config#stylesSet

since 3.3.0

The "styles definition set" to use in the editor. They will be used in the styles combo and the style selector of the div container.

The styles may be defined in the page containing the editor, or can be loaded on demand from an external file. In the second case, if this setting contains only a name, the styles.js file will be loaded from the CKEditor root folder (what ensures backward compatibility with CKEditor 4.0).

Otherwise, this setting has the name:url syntax, making it possible to set the URL from which the styles file will be loaded. Note that the name has to be equal to the name used in CKEDITOR.stylesSet.add while registering the styles set.

Note: Since 4.1.0 it is possible to set stylesSet to false to prevent loading any styles set.

Read more in the documentation and see the example.

// Do not load any file. The styles set is empty.
config.stylesSet = false;

// Load the 'mystyles' styles set from the styles.js file.
config.stylesSet = 'mystyles';

// Load the 'mystyles' styles set from a relative URL.
config.stylesSet = 'mystyles:/editorstyles/styles.js';

// Load the 'mystyles' styles set from a full URL.
config.stylesSet = 'mystyles:http://www.example.com/editorstyles/styles.js';

// Load from a list of definitions.
config.stylesSet = [
{ name: 'Strong Emphasis', element: 'strong' },
{ name: 'Emphasis', element: 'em' },
...
];


Defaults to 'default'

• ### stylesheetParser_skipSelectors : RegExpCKEDITOR.config#stylesheetParser_skipSelectors

since 3.6.0

A regular expression that defines whether a CSS rule will be skipped by the Stylesheet Parser plugin. A CSS rule matching the regular expression will be ignored and will not be available in the Styles drop-down list.

Read more in the documentation and see the example.

// Ignore rules for body and caption elements, classes starting with "high", and any class defined for no specific element.
config.stylesheetParser_skipSelectors = /(^body\.|^caption\.|\.high|^\.)/i;CKEDITOR.config.stylesheetParser_validSelectors


Defaults to /(^body\.|^\.)/i

• ### stylesheetParser_validSelectors : RegExpCKEDITOR.config#stylesheetParser_validSelectors

since 3.6.0

A regular expression that defines which CSS rules will be used by the Stylesheet Parser plugin. A CSS rule matching the regular expression will be available in the Styles drop-down list.

Read more in the documentation and see the example.

// Only add rules for p and span elements.
config.stylesheetParser_validSelectors = /\^(p|span)\.\w+/;CKEDITOR.config.stylesheetParser_skipSelectors


Defaults to /\w+\.\w+/

• ### tabIndex : NumberCKEDITOR.config#tabIndex

The editor tabindex value.

Read more in the documentation and see the example.

config.tabIndex = 1;


Defaults to 0

• ### tabSpaces : NumberCKEDITOR.config#tabSpaces

Intructs the editor to add a number of spaces (&nbsp;) to the text when hitting the Tab key. If set to zero, the Tab key will be used to move the cursor focus to the next element in the page, out of the editor focus.

config.tabSpaces = 4;


Defaults to 0

• ### templates : StringCKEDITOR.config#templates

The templates definition set to use. It accepts a list of names separated by comma. It must match definitions loaded with the templates_files setting.

config.templates = 'my_templates';


Defaults to 'default'

• ### templates_files : String[]CKEDITOR.config#templates_files

The list of templates definition files to load.

config.templates_files = [
'/editor_templates/site_default.js',
'http://www.example.com/user_templates.js'
];


For a sample template file see templates/default.js. For more information on template definiton see CKEDITOR.plugins.templates.collectionDefinition.

• ### templates_replaceContent : BooleanCKEDITOR.config#templates_replaceContent

Whether the "Replace actual contents" checkbox is checked by default in the Templates dialog.

config.templates_replaceContent = false;


Defaults to true

• ### title : String | BooleanCKEDITOR.config#title

since 4.2.0

Customizes the human-readable title of this editor. This title is displayed in tooltips and impacts various accessibility aspects, e.g. it is commonly used by screen readers for distinguishing editor instances and for navigation. Accepted values are a string or false.

Note: When config.title is set globally, the same value will be applied to all editor instances loaded with this config. This may adversely affect accessibility as screen reader users will be unable to distinguish particular editor instances and navigate between them.

Note: Setting config.title = false may also impair accessibility in a similar way.

Note: Please do not confuse this property with CKEDITOR.editor.name which identifies the instance in the CKEDITOR.instances literal.

// Sets the title to 'My WYSIWYG editor.'. The original title of the element (if it exists)
// will be restored once the editor instance is destroyed.
config.title = 'My WYSIWYG editor.';

// Do not touch the title. If the element already has a title, it remains unchanged.
// Also if no title attribute exists, nothing new will be added.
config.title = false;


Defaults to based on editor.name

• ### toolbar : Array | StringCKEDITOR.config#toolbar

The toolbox (alias toolbar) definition. It is a toolbar name or an array of toolbars (strips), each one being also an array, containing a list of UI items.

If set to null, the toolbar will be generated automatically using all available buttons and toolbarGroups as a toolbar groups layout.

In CKEditor 4.5.0+ you can generate your toolbar customization code by using the visual toolbar configurator.

// Defines a toolbar with only one strip containing the "Source" button, a
// separator, and the "Bold" and "Italic" buttons.
config.toolbar = [
[ 'Source', '-', 'Bold', 'Italic' ]
];

// Similar to the example above, defines a "Basic" toolbar with only one strip containing three buttons.
// Note that this setting is composed by "toolbar_" added to the toolbar name, which in this case is called "Basic".
// This second part of the setting name can be anything. You must use this name in the CKEDITOR.config.toolbar setting
// in order to instruct the editor which toolbar_(name) setting should be used.
config.toolbar_Basic = [
[ 'Source', '-', 'Bold', 'Italic' ]
];
// Load toolbar_Name where Name = Basic.
config.toolbar = 'Basic';


Defaults to null

• ### toolbarCanCollapse : BooleanCKEDITOR.config#toolbarCanCollapse

Whether the toolbar can be collapsed by the user. If disabled, the Collapse Toolbar button will not be displayed.

config.toolbarCanCollapse = true;


Defaults to false

• ### toolbarGroupCycling : BooleanCKEDITOR.config#toolbarGroupCycling

since 3.6.0

When enabled, causes the Arrow keys navigation to cycle within the current toolbar group. Otherwise the Arrow keys will move through all items available in the toolbar. The Tab key will still be used to quickly jump among the toolbar groups.

config.toolbarGroupCycling = false;


Defaults to true

• ### toolbarGroups : ArrayCKEDITOR.config#toolbarGroups

The toolbar groups definition.

If the toolbar layout is not explicitly defined by the toolbar setting, then this setting is used to group all defined buttons (see CKEDITOR.ui.addButton). Buttons are associated with toolbar groups by the toolbar property in their definition objects.

New groups may be dynamically added during the editor and plugin initialization by CKEDITOR.ui.addToolbarGroup. This is only possible if the default setting was used.

// Default setting.
config.toolbarGroups = [
{ name: 'document',    groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },
{ name: 'editing',     groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'forms' },
'/',
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph',   groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'insert' },
'/',
{ name: 'styles' },
{ name: 'colors' },
{ name: 'tools' },
{ name: 'others' },
];


Defaults to see example

• ### toolbarLocation : StringCKEDITOR.config#toolbarLocation

The part of the user interface where the toolbar will be rendered. For the default editor implementation, the recommended options are 'top' and 'bottom'.

Please note that this option is only applicable to classic (iframe-based) editor. In case of inline editor the toolbar position is set dynamically depending on the position of the editable element on the screen.

Read more in the documentation and see the example.

config.toolbarLocation = 'bottom';


Defaults to 'top'

• ### toolbarStartupExpanded : BooleanCKEDITOR.config#toolbarStartupExpanded

Whether the toolbar must start expanded when the editor is loaded.

Setting this option to false will affect the toolbar only when toolbarCanCollapse is set to true:

config.toolbarCanCollapse = true;
config.toolbarStartupExpanded = false;


Defaults to true

• ### uiColor : StringCKEDITOR.config#uiColor

The base user interface color to be used by the editor. Not all skins are compatible with this setting.

Read more in the documentation and see the example.

// Using a color code.

// Using an HTML color name.
config.uiColor = 'Gold';

• ### undoStackSize : NumberCKEDITOR.config#undoStackSize

The number of undo steps to be saved. The higher value is set, the more memory is used for it.

config.undoStackSize = 50;


Defaults to 20

• ### uploadUrl : StringCKEDITOR.config#uploadUrl

since 4.5.0

The URL where files should be uploaded.

An empty string means that the option is disabled.

Defaults to ''

• ### useComputedState : BooleanCKEDITOR.config#useComputedState

since 3.4.0

Indicates that some of the editor features, like alignment and text direction, should use the "computed value" of the feature to indicate its on/off state instead of using the "real value".

If enabled in a Left-To-Right written document, the "Left Justify" alignment button will be shown as active, even if the alignment style is not explicitly applied to the current paragraph in the editor.

config.useComputedState = false;


Defaults to true

• ### widget_keystrokeInsertLineAfter : NumberCKEDITOR.config#widget_keystrokeInsertLineAfter

since 4.17.0

Defines the keyboard shortcut for inserting a line after selected widget. Default combination is Shift+Enter. New element tag is based on enterMode option.

config.widget_keystrokeInsertLineAfter = 'CKEDITOR.SHIFT + 40'; // Shift + Arrow Down


Defaults to CKEDITOR.SHIFT+13

• ### widget_keystrokeInsertLineBefore : NumberCKEDITOR.config#widget_keystrokeInsertLineBefore

since 4.17.0

Defines the keyboard shortcut for inserting a line before selected widget. Default combination is Shift+Alt+Enter. New element tag is based on enterMode option.

config.widget_keystrokeInsertLineBefore = 'CKEDITOR.SHIFT + 38'; // Shift + Arrow Up


Defaults to CKEDITOR.SHIFT+CKEDITOR.ALT+13

• ### width : String | NumberCKEDITOR.config#width

The editor UI outer width. This configuration option accepts an integer (to denote a value in pixels) or any CSS-defined length unit.

Unlike the height setting, this one will set the outer width of the entire editor UI, not for the editing area only.

Note: This configuration option is ignored by inline editor.

Read more in the documentation and see the example.

config.width = 850;     // 850 pixels wide.
config.width = '75%';   // CSS unit.


Defaults to ''