/* Animations */ @keyframes spin { from { transform: rotate(360deg); } to { transform: rotate(0deg); } } @keyframes vscode-loader { 0% { left: 0; width: 30px; } 25% { width: 50px; } 50% { width: 20px; } 75% { width: 50px; } 100% { width: 20px; left: 100%; } } /* Overrides */ vscode-button, button { border-radius: 0.25rem; } /* CSS */ .block_field__form, .list_field__form { background-color: transparent; border: 1px dashed var(--vscode-button-background); padding: 1rem; } .block_field__form__buttons, .list_field__form__buttons { display: flex; justify-content: space-between; margin-top: 1rem; button { margin: 0 1rem; &:first-child { margin-left: 0; } &:last-child { margin-right: 0; } } } .block_field__form__button__save, .list_field__form__button__save { background-color: var(--vscode-button-background); color: var(--vscode-button-foreground); &:hover { background-color: var(--vscode-button-hoverBackground); } } .block_field__form__button__cancel, .list_field__form__button__cancel { background-color: var(--vscode-button-secondaryBackground); color: var(--vscode-button-secondaryForeground); &:hover { background-color: var(--vscode-button-secondaryHoverBackground); } } .json_data__field, .block_field, .list_field { border: 1px dashed var(--vscode-button-secondaryBackground); color: var(--vscode--settings-headerForeground); padding: 0.5rem 1rem; margin-bottom: 1rem; .autoform { background-color: transparent; border: 1px dashed var(--vscode-button-background); padding: 1rem; h3 { font-size: 1rem; font-weight: bold; text-align: center; } } .fields > div { margin-bottom: 0.5rem; &:last-child { .json_data__selector h3 { font-size: 1rem; font-weight: bold; text-align: center; } margin-bottom: 0; } } } .json_data__selector { h3 { font-size: var(--vscode-font-size); font-weight: bold; text-align: left; } select { padding: 0.5rem; } } .json_data__buttons { display: flex; justify-content: flex-end; align-items: center; margin-top: 1rem; button, input { display: inline; width: auto; padding-left: 1rem; padding-right: 1rem; } input { background: var(--vscode-button-background); color: var(--vscode-button-foreground); margin-right: 1rem; cursor: pointer; &:hover { background: var(--vscode-button-hoverBackground); } } button { background: var(--vscode-button-secondaryBackground); color: var(--vscode-button-secondaryForeground); &:hover { background: var(--vscode-button-secondaryHoverBackground); } } } .list_field__list { padding-left: 0; } .json_data__list, .list_field__list { margin-top: 1rem; label { display: block; margin-bottom: 0.5rem; font-weight: bold; } ul { list-style: none; padding: 0; margin: 0; } li, .sortable_item { border-bottom: 1px solid var(--vscode-button-secondaryBackground); display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 0; span { margin-right: 0.5rem; } > div { display: flex; align-items: center; svg { margin-right: 0.5rem; } button:last-child { margin-left: 0.5rem; } } &:last-child { margin-bottom: 0; border-bottom: 0; } } } .json_data__list .metadata_field__label { justify-content: space-between; > div { display: flex; align-items: center; } button svg { margin-right: 0; } } .json_data__record { border-bottom: 1px solid var(--vscode-button-secondaryBackground); display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 0; &.json_data__record_selected { background-color: rgba(255, 255, 255, 0.1); filter: brightness(100%); } span { margin-right: 0.5rem; } > div { display: flex; align-items: center; svg { margin-right: 0.5rem; } button:last-child { margin-left: 0.5rem; } } &:last-child { margin-bottom: 0; border-bottom: 0; } svg { height: 1.25rem; width: 1.25rem; } } .drag_handler { svg { height: 1.25rem; width: 1.25rem; cursor: move; } } .sortable_item button, .json_data__list__button, .list_field__list__button { width: auto; background: none; color: inherit; outline: none !important; outline-offset: inherit !important; padding: 0; margin: 0; &:hover { color: var(--vscode-editor-foreground); background: none; } } .json_data__list__button_icon, .list_field__list__button_icon { height: 1rem; width: 1rem; } .sr-only { display: none; } /* Metadata section - Content type */ .metadata_field { margin-bottom: 1rem; position: relative; } .metadata_field__label { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.5rem; &.metadata_field__alert { justify-content: flex-start; } div { display: flex; align-items: center; } button { all: unset; } .metadata_field__title__action { display: inline-flex; justify-content: center; height: 16px; width: 16px; &:hover { color: var(--vscode-button-hoverBackground); fill: var(--vscode-button-hoverBackground); cursor: pointer; } &:disabled { opacity: 0.5; color: var(--vscode-disabledForeground); } svg { margin-right: 0; } } } .metadata_field__wrapper { position: relative; height: 50px; .metadata_field__loading { top: 0; } } .metadata_field__loading { border-radius: 0.25rem; backdrop-filter: blur(15px); position: absolute; display: flex; justify-content: center; align-items: center; width: calc(100% + 2.5em); background-color: rgba(0, 0, 0, 0.8); top: 30px; left: -1.25rem; right: 0; bottom: 0; z-index: 1; } .metadata_field__label.metadata_field__label_parent { justify-content: center; } .metadata_field__label svg { margin-right: 0.5rem; } .metadata_field__error { color: var(--vscode-errorForeground); display: flex; justify-content: space-between; align-items: center; } .metadata_field__error button { color: var(--vscode-button-secondaryForeground); background-color: var(--vscode-button-secondaryBackground); padding-left: 1rem; padding-right: 1rem; width: auto; } .metadata_field__error button:hover { background-color: var(--vscode-button-secondaryHoverBackground); } .metadata_field__input, .metadata_field__input:focus, .metadata_field__textarea, .metadata_field__textarea:focus { outline: none; border-radius: 0.25rem; } /* Description message */ .metadata_field__description { color: var(--vscode--settings-headerForeground); opacity: 0.75; margin-bottom: 0.5rem; } .metadata_field__description, .metadata_field__required__message { padding-top: 0.5rem; font-size: 0.9rem; margin-left: 0.5rem; margin-right: 0.5rem; } .block_field > .metadata_field__description, .metadata_field__box > .metadata_field__description { margin-left: 0; margin-top: -0.5rem; margin-bottom: 1rem; } /* Required field */ .metadata_field__required__asterix { color: var(--vscode-inputValidation-errorBorder); margin-left: 0.25rem; } .metadata_field__required__message { color: var(--vscode-inputValidation-errorBorder); padding-top: 0.5rem; font-size: 0.9rem; margin-left: 0.5rem; } /* Divider field */ .metadata_field__divider { background: var(--vscode-button-secondaryBackground); margin: 1rem 2.5rem; height: 1px; } /* Heading field */ .metadata_field__heading { margin: 1rem 0; .metadata_field__description { margin: -1rem 0 0 0; } } /* Text field */ .metadata_field__limit { color: var(--vscode-inputValidation-warningBorder); margin-top: 0.25rem; } .metadata_field__alert svg { color: var(--vscode-editorWarning-foreground); } .hint { margin-bottom: 1rem; } .hint__buttons vscode-button { display: block; margin-bottom: 0.5rem; text-align: center; } .hint__buttons vscode-button:last-child { margin-bottom: 0; } vscode-divider { margin-top: 1rem; } .inline_hint { color: var(--vscode-sideBar-foreground); } /* Fields field */ .vscode-dark .metadata_field__box { background: rgba(255, 255, 255, 0.1); border: 1px dashed rgba(255, 255, 255, 0.2); } .vscode-light .metadata_field__box { background: rgba(0, 0, 0, 0.1); border: 1px dashed rgba(0, 0, 0, 0.2); } .metadata_field__box { background: rgba(255, 255, 255, 0.1); border: 1px dashed rgba(255, 255, 255, 0.2); margin-bottom: 1rem; padding: 0.5rem 1rem; } /* List field */ .list_field { input { border: 1px solid var(--vscode-inputValidation-infoBorder); } &.required { input { border-color: var(--vscode-inputValidation-errorBorder); } } } /* Image field */ .metadata_field__preview_image { img { display: block; margin: 0 auto; max-height: 16rem; } &.required { .metadata_field__preview_image__button { border-color: var(--vscode-inputValidation-errorBorder); } } } .metadata_field__multiple_images { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } .metadata_field__file__button, .metadata_field__preview_image__button { background-color: transparent; border: 1px dashed var(--vscode-button-background); padding: 1.5rem; filter: brightness(85%); } .metadata_field__file__button:hover, .metadata_field__preview_image__button:hover { background-color: rgba(255, 255, 255, 0.1); filter: brightness(100%); } .metadata_field__file__button svg, .metadata_field__preview_image__button svg { color: var(--vscode-foreground); display: block; width: 3rem; height: 3rem; margin: 0 auto; } .metadata_field__file__button span, .metadata_field__preview_image__button span { color: var(--vscode-foreground); display: inline-block; margin: 0 auto; margin-top: 0.5rem; } .vscode-light .metadata_field__preview_image__preview { background: rgba(0, 0, 0, 0.1); } .vscode-dark .metadata_field__preview_image__preview { background: rgba(255, 255, 255, 0.1); } .metadata_field__preview_image__preview { background-color: var(--vscode-button-secondaryBackground); display: flex; flex-direction: column; justify-content: flex-end; } .metadata_field__preview_image__remove { background-color: var(--vscode-inputValidation-errorBackground); color: var(--vscode-inputValidation-errorForeground); } .metadata_field__preview_image__remove:hover { background-color: var(--vscode-inputValidation-errorBackground); color: var(--vscode-inputValidation-errorForeground); opacity: 0.9; } /* Number field */ .metadata_field { &.required { .metadata_field__number { border-color: var(--vscode-inputValidation-errorBorder) !important; } } } .metadata_field__number { border: 1px solid var(--vscode-inputValidation-infoBorder) !important; outline: none !important; } /* Choice field */ .metadata_field { &.required { .metadata_field__choice__toggle { border-color: var(--vscode-inputValidation-errorBorder) !important; } } } .metadata_field__choice__toggle { color: var(--vscode-input-placeholderForeground); border: 1px solid var(--vscode-inputValidation-infoBorder) !important; outline: none !important; width: 100%; padding: var(--input-padding-vertical) var(--input-padding-horizontal); background-color: var(--vscode-input-background); display: flex; align-items: center; position: relative; } .metadata_field__choice__toggle:hover, .metadata_field__choice__toggle:focus, .metadata_field__choice__toggle:active, .metadata_field__choice__toggle:disabled { background-color: var(--vscode-input-background); } .metadata_field__choice__toggle span { margin-right: 1rem; } .metadata_field__choice__toggle svg.icon { height: 1rem; width: 1rem; margin-left: 0.25rem; position: absolute; right: 0.25rem; } .metadata_field__choice_list { width: 90%; margin: 0; padding: 0; z-index: 1; position: absolute; list-style: none; overflow: auto; max-height: 200px; color: var(--vscode-dropdown-foreground); background-color: var(--vscode-dropdown-background); } .metadata_field__choice_list.open { border: 1px solid rgba(0, 0, 0, 0.9); } .metadata_field__choice_list li { padding: var(--input-padding-vertical) var(--input-padding-horizontal); cursor: pointer; } .metadata_field__choice_list li:active { color: var(--vscode-button-foreground); background-color: var(--vscode-button-background); } .metadata_field__choice_list li[aria-selected='true'] { color: var(--vscode-button-foreground); background-color: var(--vscode-button-hoverBackground); } .metadata_field__choice_list li[aria-disabled='true'] { display: none; } .metadata_field__choice_list__item { opacity: 0.8; } .metadata_field__choice__button { margin-top: 0.5rem; display: inline-flex; align-items: center; width: auto; margin-right: 0.5rem; } .metadata_field__choice__button_icon { height: 1.25rem; width: 1.25rem; margin-left: 0.5rem; } /* File field */ .metadata_field__file { &.required { .metadata_field__file__button { border-color: var(--vscode-inputValidation-errorBorder); } } } .metadata_field__file__button.not_empty { display: flex; align-items: center; justify-content: center; } .metadata_field__file__button.not_empty svg { height: 16px; width: 16px; display: inline-block; margin: inherit; } .metadata_field__file__button.not_empty span { margin-top: 0; display: inline-block; margin: inherit; margin-left: 0.5rem; } .metadata_field__file__list.multiple { margin-top: 1rem; } .metadata_field__file__list__item { display: flex; align-items: center; padding: 0.5rem 0.25rem; overflow: hidden; } .metadata_field__file__list__item:nth-child(odd) { background-color: rgba(255, 255, 255, 0.05); filter: brightness(100%); } .metadata_field__file__list__item:hover { background-color: rgba(255, 255, 255, 0.1); filter: brightness(100%); } .metadata_field__file__item__icon { margin-right: 0.5rem; display: flex; align-items: center; } .metadata_field__file__item__text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-grow: 1; } .metadata_field__file__item__remove { display: none; background: none; width: auto; color: var(--vscode-inputValidation-errorForeground); padding: 0; align-items: center; } .metadata_field__file__item__remove:hover { background: var(--vscode-inputValidation-errorBackground); } .metadata_field__file__list__item:hover .metadata_field__file__item__remove { display: flex; margin: -0.5rem -0.25rem -0.5rem 0; padding: 0.5rem; } /* Dropdown */ .field_dropdown.closed { display: none; } /* Tags */ .article__tags { position: relative; } .article__tags__input { position: relative; outline: 1px solid var(--vscode-inputValidation-infoBorder); outline-offset: -1px; border-radius: 0.25rem; &.required { outline: 1px solid var(--vscode-inputValidation-errorBorder); button { border-left-color: var(--vscode-inputValidation-errorBorder); } } } .article__tags__input.freeform input { padding-right: 35px; border: 0; } .article__tags__input button { margin: 1px 0; padding: 0 0.5rem; border-left: 1px solid var(--vscode-inputValidation-infoBorder); background: var(--vscode-button-background); color: var(--vscode-button-foreground); display: flex; align-items: center; position: absolute; top: 0; right: 0; bottom: 0; width: auto; &:disabled { background: none; filter: brightness(100%); color: var(--vscode-disabledForeground); } } .article__tags__items { display: flex; flex-flow: row wrap; margin-top: 1rem; } .tag { align-items: center; background-color: var(--vscode-button-background); border: 1px solid var(--vscode-button-border); border-radius: 2px; color: var(--vscode-button-foreground); display: inline-flex; font-size: 12px; line-height: 16px; padding: 0.25rem 0.25rem; margin-bottom: 0.5rem; margin-right: 0.5rem; } .tag button { background: none; border: none; color: inherit; outline: none !important; outline-offset: inherit !important; margin: 0; display: inline-flex; align-items: center; padding: 0.25rem; } .tag .tag__create { margin-right: 0.25rem; } .tag .tag__create:hover { color: var(--vscode-inputValidation-infoForeground, #000); background-color: var(--vscode-inputValidation-infoBackground); border-radius: 2px; } .vscode-dark .tag .tag__create:hover { color: var(--vscode-inputValidation-infoForeground, #fff); } .tag .tag__delete { margin-left: 0.25rem; } .tag .tag__delete:hover { background-color: var(--vscode-inputValidation-errorBackground); color: var(--vscode-inputValidation-errorForeground, #000); border-radius: 2px; } .vscode-dark .tag .tag__delete:hover { color: var(--vscode-inputValidation-infoForeground, #fff); } .tag .tag__value { flex-grow: 1; white-space: nowrap; } /* Slug field */ .metadata_field__slug { position: relative; width: 100%; } .metadata_field__slug input { padding-right: 2.5rem; border: 1px solid var(--vscode-inputValidation-infoBorder); outline: none; border-radius: 0.25rem; &:disabled { color: var(--vscode-disabledForeground); } } .metadata_field__slug button { background: var(--vscode-input-background); border: none; border-left: 1px solid var(--vscode-inputValidation-infoBorder); color: inherit; outline: none !important; outline-offset: inherit !important; margin: 1px; padding: 0 0.5rem; position: absolute; top: 0; right: 0; bottom: 0; width: auto; display: flex; align-items: center; span { margin-right: 0.5rem; font-size: 0.8rem; } svg { width: 16px; height: 16px; } &.metadata_field__slug__button_update { background-color: var(--vscode-button-background); color: var(--vscode-button-foreground); margin: 0; } } /* Divider */ .divider { background: var(--divider-background); } /* Git actions */ .git_actions__sync { display: flex; align-items: center; justify-content: center; } .git_actions__sync svg { height: 1.25rem; width: 1.25rem; margin-right: 0.5rem; } .animate-spin { animation: spin 1s linear infinite; } /* Quill changes */ .ql-toolbar.ql-snow, .ql-container.ql-snow { border-color: var(--vscode-inputValidation-infoBorder) !important; } .ql-toolbar.ql-snow { padding: var(--input-padding-vertical) var(--input-padding-horizontal) !important; } .ql-snow .ql-picker { color: var(--vscode-settings-headerForeground) !important; } .ql-snow .ql-fill { fill: var(--vscode-settings-headerForeground) !important; } .ql-snow .ql-stroke { stroke: var(--vscode-settings-headerForeground) !important; } .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label { border-color: var(--vscode-inputValidation-infoBorder) !important; } .ql-snow .ql-picker-options { background: var(--vscode-input-background) !important; color: var(--vscode-input-foreground) !important; border-color: var(--vscode-inputValidation-infoBorder) !important; } .ql-editor { background-color: var(--vscode-input-background) !important; padding: var(--input-padding-vertical) var(--input-padding-horizontal) !important; } .ql-snow.ql-toolbar button:hover, .ql-snow .ql-toolbar button:hover, .ql-snow.ql-toolbar button:focus, .ql-snow .ql-toolbar button:focus, .ql-snow.ql-toolbar button.ql-active, .ql-snow .ql-toolbar button.ql-active, .ql-snow.ql-toolbar .ql-picker-label:hover, .ql-snow .ql-toolbar .ql-picker-label:hover, .ql-snow.ql-toolbar .ql-picker-label.ql-active, .ql-snow .ql-toolbar .ql-picker-label.ql-active, .ql-snow.ql-toolbar .ql-picker-item:hover, .ql-snow .ql-toolbar .ql-picker-item:hover, .ql-snow.ql-toolbar .ql-picker-item.ql-selected, .ql-snow .ql-toolbar .ql-picker-item.ql-selected { color: var(--vscode-button-background) !important; } .ql-snow.ql-toolbar button:hover .ql-stroke, .ql-snow .ql-toolbar button:hover .ql-stroke, .ql-snow.ql-toolbar button:focus .ql-stroke, .ql-snow .ql-toolbar button:focus .ql-stroke, .ql-snow.ql-toolbar button.ql-active .ql-stroke, .ql-snow .ql-toolbar button.ql-active .ql-stroke, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, .ql-snow.ql-toolbar button:hover .ql-stroke-miter, .ql-snow .ql-toolbar button:hover .ql-stroke-miter, .ql-snow.ql-toolbar button:focus .ql-stroke-miter, .ql-snow .ql-toolbar button:focus .ql-stroke-miter, .ql-snow.ql-toolbar button.ql-active .ql-stroke-miter, .ql-snow .ql-toolbar button.ql-active .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter { stroke: var(--vscode-button-background) !important; } .ql-snow.ql-toolbar button:hover .ql-fill, .ql-snow .ql-toolbar button:hover .ql-fill, .ql-snow.ql-toolbar button:focus .ql-fill, .ql-snow .ql-toolbar button:focus .ql-fill, .ql-snow.ql-toolbar button.ql-active .ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-fill, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill, .ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill, .ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill, .ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill { fill: var(--vscode-button-background) !important; } /* Extensibility Developer Bar */ .developer__bar { background: var(--vscode-statusBar-debuggingBackground); position: relative; padding: 5px 15px; display: flex; align-items: center; justify-content: center; a { color: var(--vscode-statusBar-debuggingForeground); margin: 0 0.25em; padding: 0 0.25em; text-decoration: none; &:hover, &:focus { color: var(--vscode-statusBar-debuggingForeground); background: var(--vscode-statusBarItem-hoverBackground); outline: none; } } } /* Empty base view */ .base__empty { display: flex; color: var(--vscode-foreground); flex-direction: column; align-items: center; justify-content: center; height: 100%; font-size: 2em; opacity: 0.8; text-align: center; padding: 1rem 1.25rem; } /* VSCode loader */ .vscode__loader { position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; background-color: var(--vscode-sideBar-background); opacity: 75%; z-index: 50; .vscode__loader__bar { position: absolute; top: 0; width: 100%; height: 2px; .vscode__loader__bar__animation { height: 100%; position: absolute; border-radius: 2px; background-color: var(--vscode-activityBarBadge-background); animation: vscode-loader 4s ease-in-out infinite; } } }