Skip to content
Snippets Groups Projects
styles.js 42 KiB
Newer Older
import {css, unsafeCSS, CSSResult} from 'lit';
import {getIconSVGURL} from './src/icon.js';
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed

/**
 * We want to have "neutral" colors here
 *
 * @returns {CSSResult}
 */
export function getThemeCSS() {
    // language=css
    return css`
Reiter, Christoph's avatar
Reiter, Christoph committed
        :host {
            /* new new variables */
            --dbp-background: 
                    var(--dbp-override-background, #ffffff
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-content: 
                    var(--dbp-override-content, #000000
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-content-surface: 
                    var(--dbp-override-content-surface, 
                    var(--dbp-content)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-on-content-surface: 
                    var(--dbp-override-on-content-surface,
                    var(--dbp-background)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-border: 
                    var(--dbp-override-border, 1px solid #000000
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-border-radius: 
                    var(--dbp-override-border-radius, 0px
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-primary: 
                    var(--dbp-override-primary,  #2a4491
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-primary-surface:
                    var(--dbp-override-primary-surface, 
                    var(--dbp-primary)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-on-primary-surface: 
                    var(--dbp-override-on-primary-surface, 
                    var(--dbp-on-content-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-primary-surface-border-color: 
                    var(--dbp-override-primary-surface-border-color, 
                    var(--dbp-primary-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-secondary: 
                    var(--dbp-override-secondary, #ffffff
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-secondary-surface:
                    var(--dbp-override-secondary-surface,
                    var(--dbp-secondary)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-on-secondary-surface: 
                    var(--dbp-override-on-secondary-surface,
                    var(--dbp-on-content-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-secondary-surface-border-color: 
                    var(--dbp-override-secondary-surface-border-color,
                    var(--dbp-secondary-surface)            
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-muted: 
                    var(--dbp-override-muted, #767676
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-muted-surface: 
                    var(--dbp-override-muted-surface,
                    var(--dbp-muted)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-on-muted-surface: 
                    var(--dbp-override-on-muted-surface,
                    var(--dbp-on-content-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-muted-surface-border-color:
                    var(--dbp-override-muted-surface-border-color,
                    var(--dbp-muted-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-accent: 
                    var(--dbp-override-accent, #c24f68
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-accent-surface: 
                    var(--dbp-override-accent-surface,
                    var(--dbp-accent)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-on-accent-surface: 
                    var(--dbp-override-on-accent-surface,
                    var(--dbp-on-content-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-accent-surface-border-color:
                    var(--dbp-override-accent-surface-border-color,
                    var(--dbp-accent-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-info: var(
                    --dbp-override-info, #2a4491
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-info-surface:
                    var(--dbp-override-info-surface,
                    var(--dbp-info)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-on-info-surface:
                    var(--dbp-override-on-info-surface,
                    var(--dbp-on-content-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-info-surface-border-color:
                    var(--dbp-override-info-surface-border-color,
                    var(--dbp-info-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-success: 
                    var(--dbp-override-success, #188018
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-success-surface:
                    var(--dbp-override-success-surface,
                    var(--dbp-success)
            );
            --dbp-on-success-surface:
                    var(--dbp-override-on-success-surface,
                    var(--dbp-on-content-surface)
            );
            --dbp-success-surface-border-color:
                    var(--dbp-override-success-surface-border-color,
                    var(--dbp-success-surface)
            );
            --dbp-warning: 
                    var(--dbp-override-warning, #c15500
            );
            --dbp-warning-surface:
                    var(--dbp-override-warning-surface,
                    var(--dbp-warning)
            );
            --dbp-on-warning-surface:
                    var(--dbp-override-on-warning-surface,
                    var(--dbp-on-content-surface)
            );
            --dbp-warning-surface-border-color:
                    var(--dbp-override-warning-surface-border-color,
                    var(--dbp-warning-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-danger: 
                    var(--dbp-override-danger, #de3535
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-danger-surface:
                    var(--dbp-override-danger-surface,
                    var(--dbp-danger)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-on-danger-surface:
                    var(--dbp-override-on-danger-surface,
                    var(--dbp-on-content-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-danger-surface-border-color:
                    var(--dbp-override-danger-surface-border-color,
                    var(--dbp-danger-surface)
Reiter, Christoph's avatar
Reiter, Christoph committed
            );
            --dbp-hover-background-color: 
                    var(--dbp-override-hover-background-color
            );
            --dbp-hover-color: 
                    var(--dbp-override-hover-color
            background-color: var(--dbp-background);
            color: var(--dbp-content);
Reiter, Christoph's avatar
Reiter, Christoph committed
        }

        ::-moz-selection {
            color: var(--dbp-on-primary-surface);
            background: var(--dbp-primary-surface);
Reiter, Christoph's avatar
Reiter, Christoph committed
        }

        ::selection {
            color: var(--dbp-on-primary-surface);
            background: var(--dbp-primary-surface);
export function getGeneralCSS(doMarginPaddingReset = true) {
    // language=css
Reiter, Christoph's avatar
Reiter, Christoph committed
    const marginPaddingResetCss = doMarginPaddingReset
        ? css`
              blockquote,
              body,
              dd,
              dl,
              dt,
              fieldset,
              figure,
              h1,
              h2,
              h3,
              h4,
              h5,
              h6,
              hr,
              html,
              iframe,
              legend,
              li,
              ol,
              p,
              pre,
              textarea,
              ul {
                  margin: 0;
                  padding: 0;
              }
          `
        : css``;
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
    // language=css
    return css`
        h2 {
            font-weight: 300;
        }
Steinwender, Tamara's avatar
Steinwender, Tamara committed
        
        h3{
            font-weight: 300;
            margin-top: 0px;
            margin-bottom: 0.75rem;
        }
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        .field:not(:last-child) {
            margin-bottom: 0.75rem;
        }

        .field.has-addons {
            display: flex;
            justify-content: flex-start;
        }

        .input, .textarea, .select select {
            border: solid 1px var(--dbp-muted);
            border-radius: var(--dbp-border-radius);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
            padding-bottom: calc(.375em - 1px);
            padding-left: calc(.625em - 1px);
            padding-right: calc(.625em - 1px);
            padding-top: calc(.375em - 1px);
        }

        .input::placeholder, .textarea::placeholder, .select select::placeholder {
            color: var(--dbp-muted);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        input, ::placeholder, textarea, select, .select select {
            font-size: inherit;
            font-family: inherit;
        }

Steinwender, Tamara's avatar
Steinwender, Tamara committed
        input::-moz-focus-inner { border: 0; }
        
        :focus-visible{
            outline:none !important;
            outline-width: 0 !important;
            box-shadow: none;
            -moz-box-shadow: none;
            -webkit-box-shadow: none;
            box-shadow: 0px 0px 4px 2px var(--dbp-accent);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        .control {
            box-sizing: border-box;
            clear: both;
            font-size: 1rem;
            position: relative;
            text-align: left;
        }

        .label {
            margin-bottom: .5em;
            display: block;
            font-weight: 600;
        }

        .hidden { display: none; }

Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        a {
            color: var(--dbp-content);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
            cursor: pointer;
            text-decoration: none;
        }

            border-bottom: var(--dbp-border);
            transition: background-color 0.15s, color 0.15s;
        }

        a.is-download:hover {
            color: var(--dbp-hover-color, var(--dbp-content));
            background-color: var(--dbp-hover-background-color);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        .title {
            color: var(--dbp-content);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
            font-size: 2rem;
            font-weight: 600;
            line-height: 1.125;
        }

        ${marginPaddingResetCss}.int-link-internal
        .button[disabled], .file-cta[disabled], .file-name[disabled], .input[disabled], .pagination-ellipsis[disabled],
        .pagination-link[disabled], .pagination-next[disabled], .pagination-previous[disabled], .select fieldset[disabled] select,
        .select select[disabled], .textarea[disabled], fieldset[disabled] .button, fieldset[disabled] .file-cta,
        fieldset[disabled] .file-name, fieldset[disabled] .input, fieldset[disabled] .pagination-ellipsis,
        fieldset[disabled] .pagination-link, fieldset[disabled] .pagination-next, fieldset[disabled] .pagination-previous,
        fieldset[disabled] .select select, fieldset[disabled] .textarea {
            cursor: not-allowed;
        }

        .input, .select select, .textarea {
            background-color: var(--dbp-background);
            border-color: var(--dbp-muted);
            border-radius: var(--dbp-border-radius);
            color: var(--dbp-muted);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        *, ::after, ::before {
            box-sizing: inherit;
        }
            -moz-appearance: none;.dropdown-menu
            -webkit-appearance: none;
Reiter, Christoph's avatar
Reiter, Christoph committed
            background: calc(100% - 0.2rem) center no-repeat url("${unsafeCSS(
                getIconSVGURL('chevron-down')
            )}");
            border: var(--dbp-border);
            border-radius: var(--dbp-border-radius);
            color: var(--dbp-content);
            padding: 0.14rem 1.0rem 0.14rem 0.14rem;
        }
        ::-moz-selection {
            color: var(--dbp-on-primary-surface);
            background: var(--dbp-primary-surface);
        ::selection {
            color: var(--dbp-on-primary-surface);
            background: var(--dbp-primary-surface);
export function getFormAddonsCSS() {
    // language=css
    return css`
        .buttons.has-addons .button:not(:first-child) {
            border-bottom-left-radius: 0;
            border-top-left-radius: 0;
        }

        .buttons.has-addons .button:not(:last-child) {
            border-bottom-right-radius: 0;
            border-top-right-radius: 0;
            margin-right: -1px;
        }

        .buttons.has-addons .button:last-child {
            margin-right: 0;
        }

Reiter, Christoph's avatar
Reiter, Christoph committed
        .buttons.has-addons .button:hover,
        .buttons.has-addons .button.is-hovered {
Reiter, Christoph's avatar
Reiter, Christoph committed
        .buttons.has-addons .button:focus,
        .buttons.has-addons .button.is-focused,
        .buttons.has-addons .button:active,
        .buttons.has-addons .button.is-active,
        .buttons.has-addons .button.is-selected {
Reiter, Christoph's avatar
Reiter, Christoph committed
        .buttons.has-addons .button:focus:hover,
        .buttons.has-addons .button.is-focused:hover,
        .buttons.has-addons .button:active:hover,
        .buttons.has-addons .button.is-active:hover,
        .buttons.has-addons .button.is-selected:hover {
            z-index: 4;
        }

        .buttons.has-addons .button.is-expanded {
            flex-grow: 1;
            flex-shrink: 1;
        }

        .buttons.is-centered {
            justify-content: center;
        }

        .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
            margin-left: 0.25rem;
            margin-right: 0.25rem;
        }

        .buttons.is-right {
            justify-content: flex-end;
        }

        .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
            margin-left: 0.25rem;
            margin-right: 0.25rem;
        }

        .tags.has-addons .tag {
            margin-right: 0;
        }

        .tags.has-addons .tag:not(:first-child) {
            margin-left: 0;
            border-bottom-left-radius: 0;
            border-top-left-radius: 0;
        }

        .tags.has-addons .tag:not(:last-child) {
            border-bottom-right-radius: 0;
            border-top-right-radius: 0;
        }

        .field.has-addons {
            display: flex;
            justify-content: flex-start;
        }

        .field.has-addons .control:not(:last-child) {
            margin-right: -1px;
        }

        .field.has-addons .control:not(:first-child):not(:last-child) .button,
        .field.has-addons .control:not(:first-child):not(:last-child) .input,
        .field.has-addons .control:not(:first-child):not(:last-child) .select select {
            border-radius: 0;
        }

        .field.has-addons .control:first-child:not(:only-child) .button,
        .field.has-addons .control:first-child:not(:only-child) .input,
        .field.has-addons .control:first-child:not(:only-child) .select select {
            border-bottom-right-radius: 0;
            border-top-right-radius: 0;
        }

        .field.has-addons .control:last-child:not(:only-child) .button,
        .field.has-addons .control:last-child:not(:only-child) .input,
        .field.has-addons .control:last-child:not(:only-child) .select select {
            border-bottom-left-radius: 0;
            border-top-left-radius: 0;
        }

Reiter, Christoph's avatar
Reiter, Christoph committed
        .field.has-addons .control .button:not([disabled]):hover,
        .field.has-addons .control .button:not([disabled]).is-hovered,
        .field.has-addons .control .input:not([disabled]):hover,
        .field.has-addons .control .input:not([disabled]).is-hovered,
        .field.has-addons .control .select select:not([disabled]):hover,
        .field.has-addons .control .select select:not([disabled]).is-hovered {
            z-index: 2;
        }

Reiter, Christoph's avatar
Reiter, Christoph committed
        .field.has-addons .control .button:not([disabled]):focus,
        .field.has-addons .control .button:not([disabled]).is-focused,
        .field.has-addons .control .button:not([disabled]):active,
        .field.has-addons .control .button:not([disabled]).is-active,
        .field.has-addons .control .input:not([disabled]):focus,
        .field.has-addons .control .input:not([disabled]).is-focused,
        .field.has-addons .control .input:not([disabled]):active,
        .field.has-addons .control .input:not([disabled]).is-active,
        .field.has-addons .control .select select:not([disabled]):focus,
        .field.has-addons .control .select select:not([disabled]).is-focused,
        .field.has-addons .control .select select:not([disabled]):active,
        .field.has-addons .control .select select:not([disabled]).is-active {
            z-index: 3;
        }

Reiter, Christoph's avatar
Reiter, Christoph committed
        .field.has-addons .control .button:not([disabled]):focus:hover,
        .field.has-addons .control .button:not([disabled]).is-focused:hover,
        .field.has-addons .control .button:not([disabled]):active:hover,
        .field.has-addons .control .button:not([disabled]).is-active:hover,
        .field.has-addons .control .input:not([disabled]):focus:hover,
        .field.has-addons .control .input:not([disabled]).is-focused:hover,
        .field.has-addons .control .input:not([disabled]):active:hover,
        .field.has-addons .control .input:not([disabled]).is-active:hover,
        .field.has-addons .control .select select:not([disabled]):focus:hover,
        .field.has-addons .control .select select:not([disabled]).is-focused:hover,
        .field.has-addons .control .select select:not([disabled]):active:hover,
        .field.has-addons .control .select select:not([disabled]).is-active:hover {
            z-index: 4;
        }

        .field.has-addons .control.is-expanded {
            flex-grow: 1;
            flex-shrink: 1;
        }

        .field.has-addons.has-addons-centered {
            justify-content: center;
        }

        .field.has-addons.has-addons-right {
            justify-content: flex-end;
        }

        .field.has-addons.has-addons-fullwidth .control {
            flex-grow: 1;
            flex-shrink: 0;
        }
    `;
}

Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
export function getNotificationCSS() {
    // language=css
    return css`
        .notification {
            background-color: var(--dbp-background);
            color: var(--dbp-content);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
            padding: 1.25rem 2.5rem 1.25rem 1.5rem;
            position: relative;
            border-radius: var(--dbp-border-radius);
            border: var(--dbp-border);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }

        .notification a:not(.button):not(.dropdown-item) {
            color: currentColor;
            text-decoration: underline;
        }

        .notification strong {
            color: currentColor;
        }

        .notification code,
        .notification pre {
            color: var(--dbp-on-muted-surface);
            background: var(--dbp-muted-surface);
            border-color: var(--dbp-muted-surface-border-color);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }

        .notification pre code {
            background: transparent;
        }

            font-size: 1.4em;
            margin-right: 0.4em;
        }

Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        .notification > .delete {
            position: absolute;
            right: 0.5rem;
            top: 0.5rem;
        }

        .notification .title,
        .notification .subtitle,
        .notification .content {
            color: currentColor;
        }

        .notification.is-primary {
            background-color: var(--dbp-primary-surface);
            color: var(--dbp-on-primary-surface);
            border-color: var(--dbp-primary-surface-border-color);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }

        .notification.is-info {
            background-color: var(--dbp-info-surface);
            color: var(--dbp-on-info-surface);
            border-color: var(--dbp-info-surface-border-color);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }

        .notification.is-success {
            background-color: var(--dbp-success-surface);
            color: var(--dbp-on-success-surface);
            border-color: var(--dbp-surccess-surface-border-color);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }

        .notification.is-warning {
            background-color: var(--dbp-warning-surface);
            color: var(--dbp-on-warning-surface);
            border-color: var(--dbp-warning-surface-border-color);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }

        .notification.is-danger {
            background-color: var(--dbp-danger-surface);
            color: var(--dbp-on-danger-surface);
            border-color: var(--dbp-danger-surface-border-color);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }
    `;
}

export function getButtonCSS() {
    // language=css
    return css`
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button,
        .button,
        button.dt-button {
            border: var(--dbp-border);
            border-radius: var(--dbp-border-radius);
            color: var(--dbp-content);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
            cursor: pointer;
            justify-content: center;
            padding-bottom: calc(0.375em - 1px);
            padding-left: 0.75em;
            padding-right: 0.75em;
            padding-top: calc(0.375em - 1px);
            text-align: center;
            white-space: nowrap;
            font-size: inherit;
Steinwender, Tamara's avatar
Steinwender, Tamara committed
            font-weight: bolder;
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
            font-family: inherit;
            transition: all 0.15s ease 0s, color 0.15s ease 0s;
            background: var(--dbp-secondary-surface);
            color: var(--dbp-on-secondary-surface);
            border-color: var(--dbp-secondary-surface-border-color);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button:hover:enabled,
        .button:hover:enabled,
        button.dt-button:hover:enabled,
        button.dt-button:hover:not(.disabled) {
            color: var(--dbp-hover-color, var(--dbp-on-secondary-surface));
            background-color: var(--dbp-hover-background-color, var(--dbp-secondary-surface));
            border-color: var(--dbp-hover-background-color, var(--dbp-secondary-surface-border-color));
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button.is-small,
        .button.is-small {
            border-radius: calc(var(--dbp-border-radius) / 2);
Reiter, Christoph's avatar
Reiter, Christoph committed
            font-size: 0.75rem;
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button.is-primary,
        .button.is-primary {
            background-color: var(--dbp-primary-surface);
            border-color: var(--dbp-primary-surface-border-color);
            color: var(--dbp-on-primary-surface);
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button.is-primary:hover:enabled,
        .button.is-primary:hover:enabled {
            background-color: var(--dbp-hover-background-color, var(--dbp-primary-surface));
            color: var(--dbp-hover-color, var(--dbp-on-primary-surface));
            border-color: var(--dbp-hover-background-color, var(--dbp-primary-surface-border-color));
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button.is-info,
        .button.is-info {
            background-color: var(--dbp-info-surface);
            color: var(--dbp-on-info-surface);
            border-color: var(--dbp-info-surface-border-color);
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button.is-info:hover:enabled,
        .button.is-info:hover:enabled {
            background-color: var(--dbp-hover-background-color, var(--dbp-info-surface));
            color: var(--dbp-hover-color, var(--dbp-on-info-surface));
            border-color: var(--dbp-hover-background-color, var(--dbp-info-surface-border-color));
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button.is-success,
        .button.is-success {
            background-color: var(--dbp-success-surface);
            border-color: var(--dbp-success-surface-border-color);
            color: var(--dbp-on-success-surface);
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button.is-success:hover:enabled,
        .button.is-success:hover:enabled {
            background-color: var(--dbp-hover-background-color, var(--dbp-success-surface));
            color: var(--dbp-hover-color, var(--dbp-on-success-surface));
            border-color: var(--dbp-hover-background-color,var(--dbp-success-surface-border-color));
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button.is-warning,
        .button.is-warning {
            background-color: var(--dbp-warning-surface);
            border-color: var(--dbp-warning-surface-border-color);
            color: var(--dbp-on-warning-surface);
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button.is-warning:hover:enabled,
        .button.is-warning:hover:enabled {
            background-color: var(--dbp-hover-background-color, var(--dbp-warning-surface));
            color: var(--dbp-hover-color, var(--dbp-on-warning-surface));
            border-color: var(--dbp-hover-background-color, var(--dbp-warning-surface-border-color));
Reiter, Christoph's avatar
Reiter, Christoph committed
        .button.button.is-danger,
        .button.is-danger {
            background-color: var(--dbp-danger-surface);
            border-color: var(--dbp-danger-surface-border-color);
            color: var(--dbp-on-danger-surface);
Reiter, Christoph's avatar
Reiter, Christoph committed
        .button.button.is-danger:hover:enabled,
        .button.is-danger:hover:enabled {
            background-color: var(--dbp-hover-background-color, var(--dbp-danger-surface));
            color: var(--dbp-hover-color, var(--dbp-on-danger-surface));
            border-color: var(--dbp-hover-background-color, var(--dbp-danger-surface-border-color));
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }
Reiter, Christoph's avatar
Reiter, Christoph committed
        button.button[disabled],
        .button[disabled],
        fieldset[disabled] .button {
            opacity: 0.4;
            cursor: not-allowed;
Reiter, Christoph's avatar
Reiter, Christoph committed
        button:focus-visible {
            outline: none !important;
Steinwender, Tamara's avatar
Steinwender, Tamara committed
            outline-width: 0 !important;
            box-shadow: none;
            -moz-box-shadow: none;
            -webkit-box-shadow: none;
            box-shadow: 0px 0px 4px 2px var(--dbp-accent);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
    `;
}
export function getRadioAndCheckboxCss() {
    // language=css
Reiter, Christoph's avatar
Reiter, Christoph committed
    return css`
        /* 
        Radiobutton:
            <label class="button-container">
                Labeltext
                <input type="radio" name="myradiobutton">
                <span class="radiobutton"></span>
            </label>
            
        Checkbox:
            <label class="button-container">
                Labeltext
                <input type="checkbox" name="mycheckbox"> 
                <span class="checkmark"></span>
            </label>
         */
        .button-container {
            display: block;
            position: relative;
            padding-left: 35px;
            cursor: pointer;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }
Reiter, Christoph's avatar
Reiter, Christoph committed

        .button-container input[type='radio'],
        .button-container input[type='checkbox'] {
            position: absolute;
            opacity: 0;
            cursor: pointer;
            height: 0;
            width: 0;
            left: 0px;
        }
        .checkmark {
            position: absolute;
            top: 0;
            left: 0;
            height: 21px;
            width: 21px;
            background-color: var(--dbp-background);
            border-radius: 0px;
            border: var(--dbp-border);
        .radiobutton {
            position: absolute;
            top: 0;
            left: 0;
Steinwender, Tamara's avatar
Steinwender, Tamara committed
            height: 20px;
            width: 20px;
            background-color: var(--dbp-background);
            border: solid;
            border-radius: 100%;
            border: var(--dbp-border);
Steinwender, Tamara's avatar
Steinwender, Tamara committed
            box-sizing: content-box;
Reiter, Christoph's avatar
Reiter, Christoph committed
        .button-container input[type='radio']:checked ~ .radiobutton:after {
            border-color: var(--dbp-background);
Reiter, Christoph's avatar
Reiter, Christoph committed

        .button-container input[type='radio']:disabled ~ .radiobutton {
            border-color: var(--dbp-muted);
            background-color: var(--dbp-muted);
Reiter, Christoph's avatar
Reiter, Christoph committed
        .button-container input[type='radio']:checked:disabled ~ .radiobutton:after {
            border-color: var(--dbp-muted);
            background-color: var(--dbp-muted);
        .radiobutton:after {
Reiter, Christoph's avatar
Reiter, Christoph committed
            content: '';
            position: absolute;
            display: none;
        }
Reiter, Christoph's avatar
Reiter, Christoph committed

        .button-container input[type='radio']:checked ~ .radiobutton:after {
        .button-container .radiobutton:after {
Steinwender, Tamara's avatar
Steinwender, Tamara committed
            left: 0px;
            top: 0px;
            width: 100%;
            height: 100%;
            background-color: var(--dbp-content);
Steinwender, Tamara's avatar
Steinwender, Tamara committed
            border: none;
            border-radius: 100%;
            border: 2px solid var(--dbp-background);
Steinwender, Tamara's avatar
Steinwender, Tamara committed
            box-sizing: border-box;
Reiter, Christoph's avatar
Reiter, Christoph committed

        .button-container input[type='checkbox']:checked ~ .checkmark:after {
            border-bottom: var(--dbp-border);
            border-right: var(--dbp-border);
            border-width: 0 2px 2px 0;
Reiter, Christoph's avatar
Reiter, Christoph committed
        .button-container input[type='checkbox']:focus-visible ~ .checkmark {
            outline: none !important;
Steinwender, Tamara's avatar
Steinwender, Tamara committed
            outline-width: 0 !important;
            box-shadow: none;
            -moz-box-shadow: none;
            -webkit-box-shadow: none;
            box-shadow: 0px 0px 4px 2px var(--dbp-accent);
Reiter, Christoph's avatar
Reiter, Christoph committed

        .button-container input[type='checkbox']:disabled ~ .checkmark {
            border-color: var(--dbp-muted);
            background-color: var(--dbp-muted);
Reiter, Christoph's avatar
Reiter, Christoph committed
        .button-container input[type='checkbox']:checked:disabled ~ .checkmark:after {
            border-color: var(--dbp-muted);
Reiter, Christoph's avatar
Reiter, Christoph committed
            content: '';
            position: absolute;
            display: none;
        }
Reiter, Christoph's avatar
Reiter, Christoph committed

        .button-container input[type='checkbox']:checked ~ .checkmark:after {
        .button-container .checkmark:after {
            left: 7px;
            top: 4px;
            width: 6px;
            height: 10px;
            border: var(--dbp-border);
            border-width: 0 2px 2px 0;
            -webkit-transform: rotate(45deg);
            -ms-transform: rotate(45deg);
            transform: rotate(45deg);
        }
    `;
}

Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
export function getTagCSS() {
    // language=css
    return css`
        .tags {
            align-items: center;
            display: flex;
Reiter, Christoph's avatar
Reiter, Christoph committed
            flex-wrap: nowrap;
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
            justify-content: flex-start;
        }

        .tags .tag {
            margin-bottom: 0.5rem;
        }

        .tags .tag:not(:last-child) {
            margin-right: 0.5rem;
        }

        .tags:last-child {
            margin-bottom: -0.5rem;
        }

        .tags:not(:last-child) {
            margin-bottom: 1rem;
        }

        .tags.are-medium .tag:not(.is-normal):not(.is-large) {
            font-size: 1rem;
        }

        .tags.are-large .tag:not(.is-normal):not(.is-medium) {
            font-size: 1.25rem;
        }

        .tags.is-centered {
            justify-content: center;
        }

        .tags.is-centered .tag {
            margin-right: 0.25rem;
            margin-left: 0.25rem;
        }

        .tags.is-right {
            justify-content: flex-end;
        }

        .tags.is-right .tag:not(:first-child) {
            margin-left: 0.5rem;
        }

        .tags.is-right .tag:not(:last-child) {
            margin-right: 0;
        }

        .tags.has-addons .tag {
            margin-right: 0;
        }

        .tags.has-addons .tag:not(:first-child) {
            margin-left: 0;
            border-bottom-left-radius: 0;
            border-top-left-radius: 0;
        }

        .tags.has-addons .tag:not(:last-child) {
            border-bottom-right-radius: 0;
            border-top-right-radius: 0;
        }

        .tag:not(body) {
            align-items: center;
            background-color: var(--dbp-muted);
            border-radius: var(--dbp-border-radius);
            border: var(--dbp-border);
            border-color: var(--dbp-muted-surface-border-color);
            color: var(--dbp-muted);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
            display: inline-flex;
            font-size: 0.75rem;
            height: 2em;
            justify-content: center;
            line-height: 1.5;
            padding-left: 0.75em;
            padding-right: 0.75em;
            white-space: nowrap;
        }

        .tag:not(body) .delete {
            margin-left: 0.25rem;
            margin-right: -0.375rem;
        }

        .tag:not(body).is-dark {
            background-color: var(--dbp-secondary-surface);
            color: var(--dbp-on-secondary-surface);
            border-color: var(--dbp-secondary-surface-border-color);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }

        .tag:not(body).is-light {
            background-color: var(--dbp-background);
            color: var(--dbp-content);
            border: var(--dbp-border);
Bekerle, Patrizio's avatar
Bekerle, Patrizio committed
        }

        .tag:not(body).is-normal {
            font-size: 0.75rem;
        }

        .tag:not(body).is-medium {
            font-size: 1rem;
        }

        .tag:not(body).is-large {
            font-size: 1.25rem;
        }

        .tag:not(body) .icon:first-child:not(:last-child) {
            margin-left: -0.375em;
            margin-right: 0.1875em;
        }

        .tag:not(body) .icon:last-child:not(:first-child) {
            margin-left: 0.1875em;
            margin-right: -0.375em;
        }

        .tag:not(body) .icon:first-child:last-child {