UNPKG

jodit-ui-themes

Version:

CSS themes for the Jodit editor, its file browser and the Jodit PRO finder: Office 2010, Windows 10/11, macOS, Material 3, Dracula, Nord, Catppuccin and more

302 lines (258 loc) • 7.62 kB
/*! * jodit-ui-themes: Office 2010 theme for Jodit * https://github.com/TimurSeyidov/jodit-ui-themes * Released under the MIT license, see LICENSE in the project root. */ // Office 2010 theme, editor part: blue ribbon gradients, golden hover, // orange pressed state, Windows 7 dialogs, menus and form fields. // Usage: load the stylesheet after the Jodit styles and set // `theme: 'office2010'`. Jodit names its custom properties `--jd-*` in the // built CSS, so the theme overrides them by those names. // // The theme class lands on the editor container and popups // (`jodit_theme_office2010`), on dialogs (`jodit-dialog_theme_office2010`) // and on the Jodit PRO finder window (`jodit-file-browser-pro_theme_office2010`). :is( .jodit_theme_office2010, .jodit-dialog_theme_office2010, .jodit-file-browser-pro_theme_office2010 ) { --office-frame: #8ba0bc; --office-line: #a7bad7; --office-line-light: rgb(255 255 255 / 70%); --office-ribbon: linear-gradient(#e7eff9, #d6e3f3 45%, #c9daf0); --office-bar: linear-gradient(#e4ecf7, #c7d8ee); --office-title: #15428b; --office-text: #1e395b; --office-hover: linear-gradient(#fffcea, #fff1bd 45%, #ffe38d 50%, #fff4c7); --office-hover-border: #dbce99; --office-pressed: linear-gradient(#fcd9a2, #fbc77a 45%, #f9ad49 50%, #fcd38c); --office-pressed-hover: linear-gradient(#fbcf8f, #fab866 45%, #f79a2e 50%, #fbc274); --office-pressed-border: #c2913d; --office-input-border: #abc1de; --office-input-focus: #e3c26b; --jd-color-border: var(--office-line); --jd-color-panel: #dbe6f4; --jd-color-text: #000; --jd-color-text-icons: var(--office-text); --jd-color-icon: var(--office-text); --jd-color-label: var(--office-title); --jd-color-background-selection: #c3d9f5; --jd-color-button-background-hover: #ffe8a6; --jd-border-radius-default: 3px; --jd-font-default: 'Segoe UI', tahoma, arial, sans-serif; --jd-font-size-default: 13px; // Ribbon: a single gradient instead of the default ruled rows .jodit-toolbar__box:not(:empty) { border-bottom-color: var(--office-frame); background: var(--office-ribbon); .jodit-toolbar-editor-collection::after { display: none; } } .jodit-toolbar-collection, .jodit-toolbar-editor-collection { &_mode_horizontal { background-image: none; } } // Engraved separators between ribbon groups .jodit-ui-separator, .jodit-ui-group_separated_true:not( :last-child, .jodit-ui-group_before-spacer_true )::after { border-right-color: var(--office-line); box-shadow: 1px 0 0 var(--office-line-light); } .jodit-ui-break { border-top-color: var(--office-line); box-shadow: 0 1px 0 var(--office-line-light); } // Buttons: transparent at rest, golden on hover, orange when pressed .jodit-toolbar-button, .jodit-toolbar-select, .jodit-ui-button { color: var(--office-text); svg, .jodit-icon { fill: var(--office-text); } &__text { color: var(--office-text); } } .jodit-toolbar-button:hover:not([disabled]), .jodit-toolbar-select:hover:not([disabled]) { border-color: var(--office-hover-border); } .jodit-toolbar-button:has(> [aria-pressed='true']:not([disabled])) { border-color: var(--office-pressed-border); } .jodit-toolbar-button__button, .jodit-toolbar-button__trigger, .jodit-toolbar-select__button, .jodit-toolbar-select__trigger, .jodit-ui-button:not([class*='_variant_']), .jodit-ui-button_variant_initial { &:hover:not([disabled]), &:focus-visible:not([disabled]) { background: var(--office-hover); } &:active:not([disabled]), &[aria-pressed='true']:not([disabled]) { background: var(--office-pressed); } &[aria-pressed='true']:hover:not([disabled]) { background: var(--office-pressed-hover); } } .jodit-toolbar-button_with-trigger_true:hover:not([disabled]) { .jodit-toolbar-button__trigger { border-left: 1px solid var(--office-hover-border); opacity: 1; } } // Tabs (image and link popups): the active tab paints its label white in // Jodit; keep the label transparent over the theme button background .jodit-tabs .jodit-tabs__buttons .jodit-ui-button { &:active:not([disabled]), &[aria-pressed='true']:not([disabled]) { .jodit-ui-button__text { background: transparent; } } } // Dialog buttons: classic raised Windows 7 push buttons .jodit-dialog__footer .jodit-ui-button, .jodit-ui-button_variant_default, .jodit-ui-button_variant_secondary, .jodit-ui-button_variant_primary { border: 1px solid #707070; border-radius: 3px; background: linear-gradient(#f2f2f2, #ebebeb 45%, #dddddd 50%, #cfcfcf); color: #000; svg { fill: #000; stroke: #000; } &:focus-visible:not([disabled]) { background: linear-gradient(#f2f2f2, #ebebeb 45%, #dddddd 50%, #cfcfcf); } &:hover:not([disabled]) { border-color: #3c7fb1; background: linear-gradient(#eaf6fd, #d9f0fc 45%, #bee6fd 50%, #a7d9f5); color: #000; } &:active:not([disabled]), &[aria-pressed='true']:not([disabled]) { border-color: #2c628b; background: linear-gradient(#e5f4fc, #c4e5f6 45%, #98d1ef 50%, #68b3db); color: #000; } } .jodit-ui-button_variant_primary, .jodit-dialog__footer .jodit-ui-button:focus:not([disabled]) { box-shadow: inset 0 0 0 1px #48d8fb; outline: 0; } // Editing surface &.jodit-container { border-color: var(--office-frame); background-color: #fff; } &.jodit-container:not(.jodit_inline) .jodit-workplace { border-color: #fff; } .jodit-wysiwyg, .jodit-wysiwyg_iframe { background-color: #fff; } // Status bar .jodit-status-bar { height: 22px; background: var(--office-bar); color: var(--office-title); text-transform: none; &:not(:empty) { border-top-color: var(--office-frame); } &, .jodit-status-bar__item, .jodit-status-bar__item > span, .jodit-status-bar__item a, a.jodit-status-bar-link { &, &:hover, &:visited { color: var(--office-title); } } .jodit-status-bar__item a:hover { background: var(--office-hover); } } // Popups and menus: white panel with a light frame and a soft drop shadow .jodit-popup, &.jodit-popup, &.jodit-context-menu { border: 1px solid #868686; border-radius: 0; box-shadow: 2px 2px 3px rgb(0 0 0 / 30%); } .jodit-popup__content, &.jodit-popup .jodit-popup__content, &.jodit-context-menu, &.jodit-context-menu [class*='__content'] { background: #fafafa; } .jodit-toolbar-collection_mode_vertical, .jodit-toolbar-editor-collection_mode_vertical { .jodit-toolbar-button__button:hover:not([disabled]) { background: var(--office-hover); } } // Form fields .jodit-input, .jodit-select, .jodit-ui-input__wrapper, .jodit-form input[type='text'], .jodit-form input[type='url'], .jodit-form textarea { border-color: var(--office-input-border); border-radius: 0; background-color: #fff; &:hover { border-color: var(--office-input-focus); } &:focus { border-color: var(--office-input-focus); box-shadow: none; outline: 0; } } // Dialog window: blue title bar with a framed panel &.jodit-dialog { .jodit-dialog__panel { border: 1px solid var(--office-frame); border-radius: 4px; background-color: #fff; box-shadow: 0 4px 16px rgb(0 0 0 / 35%); } .jodit-dialog__header { min-height: 34px; border-bottom-color: var(--office-frame); border-radius: 3px 3px 0 0; background: var(--office-bar); } .jodit-dialog__header-title { color: var(--office-title); font-size: 14px; font-weight: normal; } .jodit-dialog__footer { border-top: 1px solid var(--office-line); background: #f0f4fa; } } }