Bundling TinyMCE skins using module loading
File structure
This section shows the files required for each TinyMCE skin. The file paths shown are relative to the root TinyMCE package directory, where tinymce.min.js is stored. For example:
./ โโโ icons/ โโโ langs/ โโโ license.txt โโโ models/ โโโ plugins/ โโโ readme.txt โโโ skins/ โโโ themes/ โโโ tinymce.d.ts โโโ tinymce.js โโโ tinymce.min.js โโโ version.txt
The following table shows examples of the syntax used to bundle the following skin:
Required files for the example skin:
./skins/ui/example/content.css
./skins/ui/example/skin.css
Optional files for the example skin:
/* Only required for inline editors */
./skins/ui/example/content.inline.css
Example syntax for including the example icon pack in a bundle:
The handling of content CSS files (such as content.css or content.min.css) varies between bundling tools. View the relevant guide for the required syntax at Bundling TinyMCE with a module loader.
|
Community Skins
- Default skin (oxide)
./skins/ui/oxide/content.css ./skins/ui/oxide/content.inline.css ./skins/ui/oxide/skin.css ./skins/ui/oxide/skin.shadowdom.css
- Dark skin (oxide-dark)
./skins/ui/oxide-dark/content.css ./skins/ui/oxide-dark/content.inline.css ./skins/ui/oxide-dark/skin.css ./skins/ui/oxide-dark/skin.shadowdom.css
- TinyMCE 5 skin (tinymce-5)
./skins/ui/tinymce-5/content.css ./skins/ui/tinymce-5/content.inline.css ./skins/ui/tinymce-5/skin.css ./skins/ui/tinymce-5/skin.shadowdom.css
- TinyMCE 5 dark skin (tinymce-5-dark)
./skins/ui/tinymce-5-dark/content.css ./skins/ui/tinymce-5-dark/content.inline.css ./skins/ui/tinymce-5-dark/skin.css ./skins/ui/tinymce-5-dark/skin.shadowdom.css
Enhanced Skins
For information on Enhanced editor skins, see: Enhanced Skins & Icon Packs.
- Bootstrap skin
./skins/ui/bootstrap/content.css ./skins/ui/bootstrap/content.inline.css ./skins/ui/bootstrap/skin.css ./skins/ui/bootstrap/skin.shadowdom.css
- Borderless skin
./skins/ui/borderless/content.css ./skins/ui/borderless/content.inline.css ./skins/ui/borderless/skin.css ./skins/ui/borderless/skin.shadowdom.css
- Fabric skin
./skins/ui/fabric/content.css ./skins/ui/fabric/content.inline.css ./skins/ui/fabric/skin.css ./skins/ui/fabric/skin.shadowdom.css
- Fluent skin
./skins/ui/fluent/content.css ./skins/ui/fluent/content.inline.css ./skins/ui/fluent/skin.css ./skins/ui/fluent/skin.shadowdom.css
- Jam skin
./skins/ui/jam/content.css ./skins/ui/jam/content.inline.css ./skins/ui/jam/skin.css ./skins/ui/jam/skin.shadowdom.css
- Material (Classic) skin
./skins/ui/material-classic/content.css ./skins/ui/material-classic/content.inline.css ./skins/ui/material-classic/skin.css ./skins/ui/material-classic/skin.shadowdom.css
- Material (Outline) skin
./skins/ui/material-outline/content.css ./skins/ui/material-outline/content.inline.css ./skins/ui/material-outline/skin.css ./skins/ui/material-outline/skin.shadowdom.css
- Naked skin
./skins/ui/naked/content.css ./skins/ui/naked/content.inline.css ./skins/ui/naked/skin.css ./skins/ui/naked/skin.shadowdom.css
- Outside skin
./skins/ui/outside/content.css ./skins/ui/outside/content.inline.css ./skins/ui/outside/skin.css ./skins/ui/outside/skin.shadowdom.css
- Small skin
./skins/ui/small/content.css ./skins/ui/small/content.inline.css ./skins/ui/small/skin.css ./skins/ui/small/skin.shadowdom.css
- Snow skin
./skins/ui/snow/content.css ./skins/ui/snow/content.inline.css ./skins/ui/snow/skin.css ./skins/ui/snow/skin.shadowdom.css
Premium skins from tinymce-premium (NPM)
The tinymce-premium NPM package ships all premium skins in tinymce-premium/skins/. Choose one of the following patterns depending on how TinyMCE is deployed:
Bundling (recommended for modern build tools)
-
Import the required skin files so the module bundler adds them to the application bundle. For example, importing the default skin (oxide):
import 'tinymce-premium/skins/ui/oxide/skin.css'; import contentUiSkinCss from 'tinymce-premium/skins/ui/oxide/content.css'; // ... other TinyMCE imports -
After bundling, set
skin: falseandcontent_css: falsein the editor configuration, then usecontent_styleto inject the bundled CSS.
Non-bundling with file layering
-
When hosting directly from
node_modules, copynode_modules/tinymce-premium/skins/intonode_modules/tinymce/skins/as part of the build or deployment step (for example, in apostinstallscript). -
Once copied, premium skins live beside the core files, so setting
skinworks without extra configuration.
Non-bundling with skin_url
-
Leave the premium skins in
node_modules/tinymce-premium/skins/and configureskin_urlto point at the required skin directory. -
This approach avoids moving files and is useful when the
node_modulesdirectory is web-accessible (or when copying only the specific skin to a public folder).