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

454 lines (380 loc) • 10.5 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, file browser part: Windows 7 Explorer look for the free // Jodit file browser and the Jodit PRO finder. Buttons, inputs and menus // inside the file browsers come from the editor part (office2010.editor.css). // 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-ribbon: linear-gradient(#e7eff9, #d6e3f3 45%, #c9daf0); --office-bar: linear-gradient(#e4ecf7, #c7d8ee); --office-title: #15428b; --office-text: #1e395b; --office-item-hover: linear-gradient(#fafbfd, #ebf3fd); --office-item-hover-border: #b8d6fb; --office-item-selected: linear-gradient(#dcebfc, #c1dbfc); --office-item-selected-border: #7da2ce; --office-folder-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1 2.5C1 1.7 1.7 1 2.5 1h3.6l1.6 1.6h5.8c.8 0 1.5.7 1.5 1.5v7.4c0 .8-.7 1.5-1.5 1.5h-11C1.7 13 1 12.3 1 11.5z' fill='%23e8b84a'/%3E%3Cpath d='M1 5h14v6.5c0 .8-.7 1.5-1.5 1.5h-11C1.7 13 1 12.3 1 11.5z' fill='%23fbd96e'/%3E%3C/svg%3E"); // Free Jodit file browser .jodit-file-browser-tree { --jd-color-background-filebrowser-folders: #f1f5fb; --jd-color-folder-title: var(--office-text); border-right: 1px solid var(--office-line); background: linear-gradient(90deg, #f6f9fd, #e9f0f9); &::-webkit-scrollbar-track { box-shadow: none; } &::-webkit-scrollbar-thumb { background-color: #c2d3ea; outline: 0; } &__item { min-height: 26px; padding: 2px 6px; border: 1px solid transparent; margin: 1px 4px; border-radius: 3px; color: var(--office-text); &-title { display: flex; align-items: center; color: var(--office-text); &::before { width: 16px; height: 14px; flex: none; margin-right: 6px; background: var(--office-folder-icon) no-repeat center / contain; content: ''; } } &:hover { border-color: var(--office-item-hover-border); background: var(--office-item-hover); } &:hover .jodit-file-browser-tree__item-title { color: #000; } .jodit-ui-button svg { fill: var(--office-text); stroke: var(--office-text); } } &__source-title { padding: 4px 8px; border-bottom: 1px solid var(--office-line); background: var(--office-bar); color: var(--office-title); font-weight: 600; } &__plus { margin: 6px 4px; } } .jodit-file-browser-files { background: #fff; &__item { border-color: transparent; border-radius: 3px; text-decoration: none; &:hover { border-color: var(--office-item-hover-border); background: var(--office-item-hover); } &_active_true, &_active_true:hover { border-color: var(--office-item-selected-border); background: var(--office-item-selected); .jodit-file-browser-files__item-info { background-color: transparent; color: #000; } } } // Tiles: picture with a caption underneath, no overlay &_view_tiles .jodit-file-browser-files__item { height: auto; min-height: var(--jd-col-size); flex-direction: column; justify-content: flex-start; padding: 6px 6px 4px; img { max-height: calc(var(--jd-col-size) - 56px); box-sizing: border-box; border: 3px solid #fff; margin: auto 0; box-shadow: 0 1px 3px rgb(0 0 0 / 35%); } .jodit-file-browser-files__item-info { position: static; width: 100%; padding: 4px 0 0; background: transparent; color: #000; opacity: 1; text-align: center; text-shadow: none; > span { color: #6d6d6d; font-size: 11px; line-height: 15px; } > .jodit-file-browser-files__item-info-filename { color: #000; font-size: 12px; font-weight: normal; } } } // List: Explorer "Details" rows &_view_list a { border-color: #eef2f8; &:hover { border-color: var(--office-item-hover-border); background: var(--office-item-hover); .jodit-file-browser-files__item-info { color: #000; } } .jodit-file-browser-files__item-info > span { color: #000; font-weight: normal; } } } .jodit-file-browser-preview__navigation { svg { fill: var(--office-frame); } &:hover svg { fill: var(--office-title); } } // Jodit PRO finder &.jodit-file-browser-pro { font-family: var(--jd-font-default); } .jodit-file-browser-pro__panel { border: 1px solid var(--office-frame); border-radius: 4px; box-shadow: 0 4px 16px rgb(0 0 0 / 35%); } .jodit-file-browser-pro__header { min-height: 40px; border-bottom-color: var(--office-frame); border-radius: 3px 3px 0 0; background: var(--office-ribbon); } .jodit-file-browser-pro__header-title, .jodit-file-browser-pro__header-toolbar { line-height: 38px; } .jodit-file-browser-pro__resizer svg { fill: var(--office-frame); } // Explorer palette for the finder's own tokens .jodit-ui-browser-panel { --jd-fb-color: var(--office-text); --jd-files-bg: #fff; --jd-item-bg: transparent; --jd-item-bg-hover: #ebf3fd; --jd-item-border-color: #eef2f8; --jd-item-border-selected-color: var(--office-item-selected-border); --jd-item-border-bg-selected-color: #cde2fc; --jd-item-info-color: #000; --jd-item-info-bg: transparent; --jd-sidebar-bg: #f1f5fb; --jd-sidebar-color: var(--office-text); --jd-sidebar-border-color: var(--office-line); --jd-sidebar-hide-btn-bg: #e4ecf7; --jd-folder-bg: #ebf3fd; --jd-folder-border: var(--office-item-hover-border); --jd-source-bg: #dbe6f4; --jd-source-border: var(--office-line); --jd-message-bg: #fffbe6f0; --jd-message-color: #000; --jd-message-shadow-color: #8ba0bc; } .jodit-ui-sidebar__box, .jodit-ui-virtual-scroll { &::-webkit-scrollbar-track { box-shadow: none; } &::-webkit-scrollbar-thumb { background-color: #c2d3ea; outline: 0; } } // Navigation pane .jodit-ui-sidebar { background: linear-gradient(90deg, #f6f9fd, #e9f0f9); } .jodit-ui-browser-source__name { height: auto; padding: 5px 8px; background: var(--office-bar); color: var(--office-title); font-weight: 600; } .jodit-ui-browser-folder { padding: 3px 6px; border: 1px solid transparent; margin: 1px 4px; border-radius: 3px; color: var(--office-text); &:hover { border-color: var(--office-item-hover-border); background: var(--office-item-hover); } &_active_true, &_active_true:hover { border-color: var(--office-item-selected-border); background: var(--office-item-selected); } &__icon-wrapper { background: var(--office-folder-icon) no-repeat center / contain; svg { display: none; } } &__arrow svg { fill: var(--office-frame); } } // Files: Explorer selection colors .jodit-ui-browser-item { border: 1px solid transparent; border-radius: 3px; &:hover { border-color: var(--office-item-hover-border); background: var(--office-item-hover); } &_active_true, &_active_true:hover { border-color: var(--office-item-selected-border); background: var(--office-item-selected); outline: 0; } &__name { font-weight: normal; } } // Large tiles: picture with a caption underneath instead of an overlay .jodit-ui-browser-item_view_tiles:not( .jodit-ui-browser-item_size_small, .jodit-ui-browser-item_size_xsmall ) { display: flex; height: auto; flex-direction: column; padding: 6px 6px 4px; .jodit-ui-browser-item__image { width: 100%; height: calc(var(--jd-item-size) - 40px); } // Outweighs the PRO rule that hides the caption on hover .jodit-ui-browser-item__info, &.jodit-ui-browser-item.jodit-ui-browser-item_view_tiles:hover .jodit-ui-browser-item__info { position: static; padding: 4px 0 0; background: transparent; opacity: 1; text-align: center; } .jodit-ui-browser-item__name { font-size: 12px; } .jodit-ui-browser-item__time, .jodit-ui-browser-item__filesize { color: #6d6d6d; font-size: 11px; } } // Status bar .jodit-ui-browser-status-bar { border-top-color: var(--office-frame); background: var(--office-bar); color: var(--office-title); [class*='__slot-'] { opacity: 1; } } // Settings panel (gear button): the theme switch is hidden because it // would replace this theme with Jodit's light or dark one; the options // become segmented controls with the ribbon's pressed state .jodit-ui-browser-settings { border-left-color: var(--office-line); background: #f6f9fd; color: var(--office-text); &__theme { display: none; } &__title { color: var(--office-title); } &__close { color: var(--office-text); svg { width: 16px; height: 16px; fill: none; stroke: currentColor; } &:hover { color: var(--office-title); } } &__options::-webkit-scrollbar-track { box-shadow: none; } .jodit-ui-button-group__label { color: var(--office-title); } .jodit-ui-button-group__options { display: inline-flex; overflow: hidden; border: 1px solid #8ba0bc; border-radius: 3px; } .jodit-ui-button-group .jodit-ui-button { border: 0; border-radius: 0; background: linear-gradient(#fdfdfe, #eef3fa 45%, #e1e9f5 50%, #e7eef8); box-shadow: none; color: var(--office-text); outline: 0; .jodit-ui-button__text { color: var(--office-text); } & + .jodit-ui-button, &[aria-pressed='true']:not([disabled]) + .jodit-ui-button { border-left: 1px solid #a7bad7; } &:hover:not([disabled]) { background: linear-gradient(#fffcea, #fff1bd 45%, #ffe38d 50%, #fff4c7); } &[aria-pressed='true']:not([disabled]) { background: linear-gradient(#fcd9a2, #fbc77a 45%, #f9ad49 50%, #fcd38c); box-shadow: none; .jodit-ui-button__text { color: #000; } } } } }