$supergood-color: hsl(145,51%,45%); $good-color: hsl(62,45%,46%); $ok-color: hsl(41,100%,49%); $bad-color: hsl(30,93%,50%); $superbad-color: hsl(19,90%,51%); $task-state-closed-color: $supergood-color; $task-state-pending-color: hsl(206,7%,28%); $task-state-open-color: $ok-color; $task-state-escalating-color: $superbad-color; $minWidth: 1024px; $sidebarWidth: 280px; $navigationWidth: 260px; $highlight-color: hsl(205,90%,60%); @mixin desktop { @media screen and (min-width: 1260px) { @content; } } @mixin small-desktop { @media screen and (max-width: 1260px) { @content; } } @mixin tablet { @media screen and (min-width: 768px) { @content; } } @mixin phone { @media screen and (max-width: 767px) { @content; } } /* sets LTR and RTL within the same style call */ @mixin bidi-style($prop, $value, $inverse-prop, $default-value) { #{$prop}: $value; html[dir=rtl] & { #{$inverse-prop}: $value; #{$prop}: $default-value; } } /* adds a property only in RTL */ @mixin rtl($prop, $value) { html[dir=rtl] & { #{$prop}: $value; } } /* adds a property only in LTR */ @mixin ltr($prop, $value) { html[dir=ltr] & { #{$prop}: $value; } } %clickable { cursor: pointer; user-select: none; touch-action: manipulation; } html { height: 100%; } body { font-family: "Fira Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; line-height: 1.45; font-weight: normal; background: hsl(210,14%,97%); height: 100%; color: hsl(60,1%,34%); word-wrap: break-word; overflow-wrap: break-word; display: flex; flex-direction: column; } /* prevent clickable */ use { pointer-events: none; } p { margin: 12px 0; &.subtle { color: hsl(60,1%,74%); } &.description { color: hsl(190,2%,74%); } } h3 + .description { margin-top: 0; } strong { font-weight: 500; } .text-muted { color: hsl(60,1%,74%); } .text-small { font-size: 12px; } .u-highlight { color: #0F94D6; } .u-dontfold { flex-shrink: 0; } .u-invisible { opacity: 0; pointer-events: none; position: absolute !important; } [data-dir="ltr"] { direction: ltr; } [data-dir="rtl"] { direction: rtl; } a { outline: none !important; @extend .u-highlight; &.is-disabled, &[disabled] { pointer-events: none; cursor: not-allowed; opacity: .33; } } a.create { color: hsl(145,51%,45%); text-decoration: underline; } small { color: hsl(198,4%,56%); font-size: 12px; } blockquote { font-size: inherit; } ol, ul { padding-inline-start: 20px; } #app { display: flex; flex: 1; min-width: $minWidth; overflow: auto; } .u-unclickable { pointer-events: none; } .u-clickable { @extend %clickable; } .u-unselectable { pointer-events: none; user-select: none; } .u-no-userselect { user-select: none; } .u-textTruncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .u-positionOrigin { position: relative; } .u-inlineBlock { display: inline-block; } .u-notAllowed { cursor: not-allowed; } .zIndex-1, .zIndex-2, .zIndex-3, .zIndex-4, .zIndex-5, .zIndex-6, .zIndex-7, .zIndex-8, .zIndex-9, .zIndex-10 { position: relative; } .zIndex-1 { z-index: 100; } .zIndex-2 { z-index: 200; } .zIndex-3 { z-index: 300; } .zIndex-4 { z-index: 400; } .zIndex-5 { z-index: 500; } .zIndex-6 { z-index: 600; } .zIndex-7 { z-index: 700; } .zIndex-8 { z-index: 800; } .zIndex-9 { z-index: 900; } .zIndex-10 { z-index: 1000; } .clickCatcher { top: 0; left: 0; width: 100%; height: 100%; position: absolute; cursor: default; } .debug .clickCatcher { background: hsla(0,100%,50%,.13); } .debug .clickCatcher + .clickCatcher { background: hsla(50,100%,50%,.13); } .clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } .clearfix { display: inline-block; } /* start commented backslash hack \*/ * html .clearfix { height: 1%; } .clearfix { display: block; } /* close commented backslash hack */ [contenteditable] { display: block; outline-style: none; border-radius: 3px; /* needed to make empty tags editable, otherwise no focus can be set */ min-height: 10px; min-width: 20px; } [contenteditable]:hover, [contenteditable]:focus { background: hsl(210,17%,98%); } [contenteditable]:focus { text-overflow: clip !important; } [contenteditable].invalid { background: #F92; } [contenteditable] > .placeholder { color: #999; } [contenteditable] p { margin: 0; } /* fix for placeholder */ .Medium-placeholder { position: relative; } .close, .close:hover { float: none; opacity: 1; } #app > nav { position: relative; z-index: 1; } pre { display: block; padding: 9.5px; margin: 0 0 20px; font-size: 13px; line-height: 1.42857143; color: #333; word-break: break-all; word-wrap: break-word; background: white; border: 1px solid hsl(0,0%,90%); border-radius: 3px; } pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap; background-color: transparent; border-radius: 0; } .hljs, code { background: none; padding: 2px 4px; font-size: 0.88em; } code:not(.hljs) { border: 1px solid rgba(0,0,0,.2); border-radius: 3px; white-space: nowrap; } pre code.hljs { font-size: 1em; } .textarea::placeholder, .form-control::placeholder, .token-input::placeholder, .u-placeholder { color: hsl(0,0%,80%); } .btn { display: inline-block; font-size: 14px; padding: 10px 24px 9px; color: hsl(0,0%,33%); background: white; border: 1px solid rgba(0,0,0,.1); outline: none !important; border-radius: 4px; text-align: center; white-space: nowrap; vertical-align: middle; @extend %clickable; .icon { vertical-align: middle; margin-top: -3px; fill: currentColor; } &--icon--last .icon { @include bidi-style(margin-left, 5px, margin-right, 0); // so far only used in ticket_zoom secondaryAction dropup } &:focus { box-shadow: 0 0 0 3px hsl(201,62%,90%); } &--small { padding-top: 5px; padding-bottom: 4px; } &--slim { padding-left: 12px; padding-right: 12px; } &--fullWidth { width: 100%; text-align: center; justify-content: center; } &--table { padding: 4px 9px; border: none; margin: 5px 6px 0; vertical-align: baseline; /* calendar_subscriptions.jst.eco */ .icon { vertical-align: middle; @include bidi-style(margin-right, 5px, margin-left, 0); &:only-child { @include bidi-style(margin-right, 5px, margin-left, 0); } } .btn-label { margin-left: 0; } &.btn--text { padding: 4px 9px; margin: 5px 6px 0; } } &.is-disabled, &[disabled], &:disabled { pointer-events: none; cursor: not-allowed; opacity: .33; } &:active { box-shadow: none; background: hsl(0,0%,98%); } &--action { text-transform: uppercase; color: hsl(0,0%,60%); font-size: 12px; letter-spacing: 0.05em; height: 31px; padding: 0 11px !important; display: inline-flex; align-items: center; .icon { margin: -2px 5px 0 -2px; } .icon:only-child { margin: 0; } &.btn--slim { padding-left: 7px !important; padding-right: 7px !important; .btn-label { @include bidi-style(margin-left, 0, margin-right, 0); } &.btn--small { padding-left: 5px !important; padding-right: 5px !important; } } &.btn--small { height: 27px; font-size: 11px; padding-left: 8px; padding-right: 8px; } } // used in .recipientList-controls and in breadcrumbs &--onDark { background: hsla(200,100%,97%,0.15); border-color: hsl(250,7%,16%); color: white; .icon { opacity: 1; } } &--primary { color: white; background: hsl(203,65%,55%); &:active { background: hsl(203,65%,45%); } .icon { fill: white; opacity: 1; } } &--secondary { color: hsl(202,68%,54%); } &--positive, &--create, &--success { color: white; background: hsl(145,51%,45%); &:active { background: hsl(145,51%,35%); } &.btn--secondary { background: white; color: hsl(145,51%,45%); &:active { background: hsl(0,0%,98%); } } &.btn--text { color: $supergood-color; } } &--danger { color: white; background: hsl(0,65%,55%); &:active { background: hsl(0,65%,45%); } &.btn--secondary { background: white; color: hsl(0,65%,55%); &:active { background: hsl(0,0%,98%); } } } &--text { font-size: inherit; margin: -10px; padding: 10px; color: hsl(203,65%,55%); border: none; background: none; vertical-align: baseline; text-align: start; .icon { opacity: 1; } &:active { color: hsl(203,65%,40%); background: none; } &.btn--secondary { color: hsl(0,0%,68%); text-decoration: underline; &:active { color: hsl(0,0%,53%); } } &.btn--positive { color: hsl(145,51%,45%); &:active { color: hsl(145,51%,30%); background: none; } } &.btn--danger { color: hsl(0,65%,55%); &:active { color: hsl(0,65%,40%); background: none; } } &.btn--subtle { text-decoration: underline; color: hsl(0,0%,85%); &:active { color: hsl(0,0%,75%); } } &.space-left { @include bidi-style(margin-left, 0, margin-right, -10px); } &.space-right { @include bidi-style(margin-right, 0, margin-left, -10px); } } &--large { &.btn--text { margin: 0; } } &--quad { padding: 10px 12px 9px; .icon { margin-top: -1px; } } &--split--first { @include bidi-style(border-radius, 3px 0 0 3px, border-radius, 0 3px 3px 0); } &--split, &--split--last { border-radius: 0; @include bidi-style(border-left-width, 0, border-right-width, 1px); @include ltr(margin-left, 0 !important); @include rtl(margin-right, 0 !important); } &--split--last { @include bidi-style(border-radius, 0 3px 3px 0, border-radius, 3px 0 0 3px); } &--dropdown { position: relative; select { opacity: 0; width: 100%; height: 100%; left: 0; top: 0; position: absolute; @extend %clickable; } } } .btn + .btn, .btn + .buttonDropdown, .buttonDropdown + .buttonDropdown { @include bidi-style(margin-left, 10px, margin-right, 0); } .btn + .btn.align-right { @include bidi-style(margin-left, auto, margin-right, 0); } .btn.align-right ~ .btn { @include bidi-style(margin-left, 15px, margin-right, 0); } .vertical > .btn:not(.hidden) + .btn { @include bidi-style(margin-left, 0, margin-right, 0); margin-top: 10px; } .btn--download .icon-download { margin-right: 6px; @include rtl(margin-right, -10px); margin-top: 4px; margin-left: -10px; @include rtl(margin-left, 6px); vertical-align: top; fill: white; } .btn-label { @include bidi-style(margin-left, 7px, margin-right, 0); } .visibility-change { /* Interactive Visibility Change Classes:
Important: HTML Order active > hover > normal */ [data-visible=active], [data-visible=hover] { display: none; } &.is-active [data-visible=active] { display: block; & ~ [data-visible=normal] { display: none } } &:hover [data-visible=hover] { display: block; & ~ [data-visible=normal] { display: none } } } .btn-group { display: inline-flex; flex-wrap: wrap; &--full { display: flex; } & + .btn-group { margin-top: 10px; padding-top: 10px; border-top: 1px solid hsl(240,2%,92%); } .btn { &:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; } &:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; border-right-width: 0; } + .btn { @include bidi-style(margin-left, 0, margin-right, 10px); } } .btn--text { padding: 6px 10px 5px; /* reporting main.eco */ display: inline-block; border-radius: 3px; &.is-selected { background: hsl(203,65%,55%); color: white; } } } .buttonDropdown { display: flex; align-items: center; position: relative; user-select: none; .dropdown-menu { margin-bottom: 0; } &.is-open .dropdown-menu { display: block; } .btn--text { padding-left: 13px; padding-right: 13px; } } .status-fields { display: flex; } .status-field { color: hsl(0,0%,60%); border: 1px solid hsl(0,0%,90%); display: flex; height: 34px; align-items: center; line-height: 35px; &.is-clickable { background: hsl(203,65%,55%); color: white; border-color: hsl(203,65%,45%); box-shadow: 1px 0 hsl(203,65%,45%); position: relative; @extend %clickable; } &.is-blinking { animation: pulsate 667ms ease-in-out infinite alternate; } &:not(:last-child):not(:only-child) { @include bidi-style(border-right-width, 0, border-left-width, 1px); } &:first-child { border-radius: 5px 0 0 5px; @include rtl(border-radius, 0 5px 5px 0); } &:last-child { border-radius: 0 5px 5px 0; @include rtl(border-radius, 5px 0 0 5px); } &:only-child { border-radius: 5px; } .badge { @include bidi-style(margin, 0 5px 0 10px, margin, 0 10px 0 5px); background: hsla(210,50%,10%,.24); } .status-badge { width: 32px; display: inline-flex; align-items: center; justify-content: center; align-self: stretch; } } .status-badge { display: inline-block; } .info-badge { fill: currentColor; padding: 3px 6px 1px; line-height: 12px; opacity: 0.5; position: relative; /* border in its own layer to make it more translucend but still depend on the currentColor */ &:after { content: ""; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border: 1px solid currentColor; opacity: 0.5; border-radius: 100%; } } @keyframes pulsate { to { filter: brightness(1.2); } } .badge { display: inline-block; min-width: 18px; padding: 3px 5px; font-size: 12px; font-weight: 500; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: top; border-radius: 9px; background: hsl(198,18%,86%); @include bidi-style(margin-right, 3px, margin-left, 0); flex-shrink: 0; &:empty { display: none; } &.badge--big { min-width: 22px; font-size: 14px; border-radius: 11px; padding: 5px 7px 3px; } &.badge--text { min-width: 0; padding: 0; margin-right: 0; @include bidi-style(margin-right, 0, margin-left, 0); font-size: inherit; font-weight: inherit; text-align: inherit; line-height: inherit; color: #d0d2d3; background: none; border-radius: 0; vertical-align: baseline; } } .key-value { td:first-child { @include bidi-style(padding-right, 10px, padding-left, 0); color: #999; } } table { table-layout: fixed; } .table { display: table; small { color: inherit; } } .table--light { color: hsl(198,4%,56%); } .table-fluid { table-layout: auto; } .table .table-row { display: table-row; } .table--placeholder { th { text-align: center; } td { height: 40px; } } .table th:not(.noTruncate) .table-column-title, .table td:not(.noTruncate) { @extend .u-textTruncate; } .table > thead > tr > th { padding: 12px 9px 10px; border-bottom: none; border-top: 1px solid #ececec; background: #f0f1f2; color: #444a4f; font-weight: normal; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; position: relative; user-select: none; } .table-column-head { display: flex; @extend %clickable; } .table-column-sortIcon { @include bidi-style(margin-left, auto, margin-right, 0); } th.align-right { .table-column-title { @include bidi-style(margin-left, auto, margin-right, 0); } .table-column-sortIcon { @include bidi-style(margin-left, 0, margin-right, 0); } } .table > tbody > tr > td { padding: 10px 10px 8px; border-color: hsl(0,0%,95%); } .table-hover > tbody > tr:hover > td, .table-hover > tbody > tr.is-hover > td { background: white; } .table-hover > tbody > tr:hover > th { background: rgba(0,8,14,.015); } .table-col-resize { position: absolute; @include bidi-style(right, 0, left, auto); top: 0; height: 100%; cursor: col-resize; padding: 10px; @include bidi-style(margin-right, -10px, margin-left, 0); z-index: 1; &:after { content: ""; display: block; width: 1px; height: 100%; background: hsl(210,7%,85%); } } .table > thead:first-child > tr:first-child > th.no-padding, .table > thead > tr > th.no-padding, .table > tbody > tr > td.no-padding { padding: 0; } .table tr.is-inactive { color: #bbb; text-decoration: line-through; a { color: inherit; } } .table tr.is-grayed-out { color: hsl(120,1%,77%); .icon { opacity: 0.33; } } .table .icon { vertical-align: middle; } .table .icon-draggable { fill: hsl(240,1%,77%); } .table-checkbox, .table-radio { padding: 0 !important; } .table .table-sort-arrow { opacity: 1; fill: hsl(206,7%,33%); width: 8px; height: 8px; @include bidi-style(margin-left, 3px, margin-right, 0); margin-top: -2px; vertical-align: middle; } .checkbox-list { list-style: none; margin-bottom: 15px; padding: 3px 12px; font-size: 14px; line-height: 25px; color: hsl(60,1%,34%); background: white; border: 1px solid hsl(0, 0%, 90%); border-radius: 3px; } .checkbox-replacement, .radio-replacement { padding: 0; margin: 0; @extend .u-clickable; display: flex; align-items: center; justify-content: center; position: relative; .icon-checked { color: black; } .icon-unchecked { color: hsl(60,1%,61%); } .icon-indeterminate { display: none; color: hsl(60,1%,61%); } &.is-disabled { cursor: default; } &.checkbox-replacement--fullscreen, &.radio-replacement--fullscreen { position: absolute; left: 0; top: 0; width: 100%; height: 100%; } &.checkbox-replacement--inline, &.radio-replacement--inline { display: inline-flex; @include bidi-style(margin-right, 3px, margin-left, 0); } input { pointer-events: none; position: absolute; opacity: 0; &:disabled ~ .icon { opacity: 0.33; fill: none; cursor: default; } &:not(:checked) ~ .icon-checked, &:checked ~ .icon-unchecked { display: none; } &:focus:not(.is-active) ~ .icon-checked, &:focus:not(.is-active) ~ .icon-unchecked { box-shadow: 0 0 0 2px hsl(201,62%,90%); color: hsl(200,71%,59%); } } + .label-text { @include bidi-style(margin-left, 0, margin-right, 3px); } } .checkbox-replacement { &:indeterminate { ~ .icon-checked, ~ .icon-unchecked { display: none; } ~ .icon-indeterminate { display: block; } } } .radio-replacement { input:focus ~ .icon-checked, input:focus ~ .icon-unchecked { border-radius: 100%; } } .table .checkbox-replacement, .table .radio-replacement { height: 40px; width: 40px; } .table-overview tbody .icon-checkbox, .table-overview tbody .icon-radio, .table-overview tbody .icon-checkbox-checked, .table-overview tbody .icon-radio-checked { fill: transparent; } .table .table-cell { vertical-align: top; display: table-cell; border-bottom: 1px solid #eeeeee; } .hero-two { width: 100%; } .hero-two .hero-left { width: 50%; float: left; } .hero-two .hero-right { width: 50%; float: right; } #task { position: fixed; display: table; width: 100%; min-width: 1000px; top: 46px; display: none; } #task > .taskbar { display: table-row; z-index: 1040; } #task > .taskbar > div { padding: 0 4px 4px 4px; display: table-cell; } #task .task { @extend .u-textTruncate; max-width: 120px; display: inline-block; } #task .task > a, #task .task > a:hover { color: #ffffff; text-decoration: none; } #task .btn-default .task > a, #task .btn-default .task > a:hover { color: #333333; } #task .taskbar .btn-small { padding: 3px 8px 4px; margin-top: 2px; font-size: 11px; font-weight: 300; } #task .taskbar .btn-default { background-color: #c3c3c3; border-color: #c3c3c3; } #task [data-type="close"] { @include bidi-style(margin-left, 5px, margin-right, 0); font-size: 13px; top: 1px; } #task .taskbar-items { } #task .taskbar-new { text-align: end; padding-right: 12px; } .max-size-scroll { max-height: 240px; overflow-y: scroll; } /* #content > *:not(.active) { display: none !important; } */ h1, h2, h3, h4, h5, h6 { font-weight: normal; color: hsl(202,8%,28%); } h1 { font-size: 24px; line-height: 30px; } h2, h2.popover-title { font-size: 20px; line-height: 25px; } h3 { font-size: 16px; margin: 20px 0 8px; color: hsl(207,7%,29%); font-weight: normal; .subtitle { display: inline; font-size: 12px; text-transform: none; color: hsl(0,0%,60%); letter-spacing: initial; } } h4 { font-size: 13px; text-transform: uppercase; } h5 { font-size: 13px; font-weight: bold; } label, .checkbox.form-group label, .label { text-transform: uppercase; color: hsl(198,19%,72%); display: block; font-size: 13px; font-weight: normal; letter-spacing: 0.05em; margin-bottom: 4px; text-align: start; padding: 0; /* user-select: none; disabled because of chrome51 https://github.com/martini/zammad/issues/183 */ } /* circumventing the label:not(.inline-label) selector because it's too strong */ .inline-label, .label-success, .label-warning, .label-danger, .fileUpload label { font-size: inherit; font-weight: inherit; text-align: inherit; color: inherit; letter-spacing: 0; margin: 0; text-transform: none; display: inline; } table { .inline-label, .label-success, .label-warning, .label-danger { white-space: nowrap; /* for labels in tables that might get crushed view: calendar_subscriptions */ } } .inline-label { color: hsl(206,7%,28%); } .label-text { @include bidi-style(margin-left, 3px, margin-right, 0); @extend %clickable; } .label-success, .label-warning, .label-danger { background: none; } .label-success { color: $supergood-color; } .label-warning { color: $ok-color; } .label-danger { color: $superbad-color; } .label-subtle { color: hsl(0,0%,80%); } fieldset { margin: 0 -4px; @extend .clearfix; h2 { margin-left: 4px; margin-right: 4px; } } /* Firefox Specific Hack to fix the overflow of column select with long names https://stackoverflow.com/questions/17408815/fieldset-resizes-wrong-appears-to-have-unremovable-min-width-min-content/17863685#17863685 */ @-moz-document url-prefix() { fieldset { display: table-cell; } } fieldset > .form-group { padding: 0 4px; } .form-group { margin-bottom: 16px; &.form-group--inactive { opacity: 0.5; } } .date.form-group .controls { position: relative; } .form-group + .form-group { margin-top: 0; } .merge-group { display: flex; align-items: stretch; &.merge-group--inactive { } &.merge-group--header { h2 { margin-bottom: 0; } label { display: inline; } .merge-source, .merge-target { border-bottom: 1px solid #eee; } } .merge-target, .merge-source { flex: 1; width: 33%; display: flex; flex-direction: column; justify-content: flex-end; } .merge-source, .merge-target { padding-bottom: 3px; border-left: 1px solid #eee; border-right: 1px solid #eee; padding: 7px 13px; } &:first-of-type { margin-top: 6px; .merge-source, .merge-target { border-top: 1px solid #eee; border-radius: 3px 3px 0 0; } } &:last-of-type { margin-bottom: 6px; .merge-source, .merge-target { border-bottom: 1px solid #eee; border-radius: 0 0 3px 3px; } } .merge-value { margin-bottom: 3px; } .form-group { padding: 0; } .form-control { margin: 0 !important; } &.merge-group--multi { .merge-value + .merge-value { margin-top: 12px; } } } .merge-controls { flex: 1; align-self: flex-end; } .merge-control { margin-bottom: 5px; height: 31px; text-align: center; display: flex; flex: 1; justify-content: space-between; align-items: center; align-self: flex-end; } .merge-control-input { flex: 1; } .merge-arrow { margin: 0 12px; display: flex; align-items: center; justify-content: center; .line-arrow { fill: #e6e6e6; } } .formGroup-label { padding: 0 2px; margin-bottom: 5px; position: relative; display: flex; align-items: center; label { margin: 0; } .bookmark.icon { margin-bottom: -1px; } .formGroup-metaControl { @extend .u-clickable; padding: 6px 4px; margin: -6px 0 -6px auto; font-size: 20px; line-height: 1; color: hsl(198, 19%, 72%); } } .formGroup-bookmark { @extend .u-clickable; display: flex; align-items: center; flex-direction: row-reverse; width: 30px; height: 30px; position: absolute; right: 0; top: -10px; } .form-group .controls .richtext { position: relative; height: auto; } .form-group .help-message { cursor: help; opacity: 0.2; top: -2px; position: relative; @include bidi-style(margin-left, auto, margin-right, 0); .icon-help { display: block; } } .form-group:not(.formGroup--halfSize) { clear: left; } .form-group.formGroup--halfSize { width: 50%; float: left; .form-control { min-width: initial; } } .formGroup--standalone .form-control { margin-bottom: 0; } .controls--select { position: relative; } .controls--datetime { position: relative; display: flex; } .controls--date { position: relative; } .controls-label { margin: 11px 10px 0; flex-shrink: 0; } /* do not show safari auto fill icon - see issue #962 */ input::-webkit-contacts-auto-fill-button { visibility: hidden; display: none !important; pointer-events: none; position: absolute; right: 0; } input[type="radio"], input[type="checkbox"] { margin: 0; } input[type=text], input[type=password], input[type=email], input[type=date], input[type=url], textarea, .form-control, .checkbox.form-group .checkbox { display: block; padding: 7px 12px; width: 100%; height: 41px; font-size: 14px; font-weight: normal; line-height: 25px; color: #555; background: white; border: 1px solid hsl(0, 0%, 90%); border-radius: 3px; transition: none; box-shadow: none; outline: none; appearance: none; &.form-control--small { padding: 5px 8px 4px; height: 31px; line-height: 20px; &.form-control--multiline { min-height: 31px; } } &.form-control--inline { display: inline-block; width: auto; } &.form-control--multiline { height: auto; min-height: 41px; } &:focus, &.focus { border-color: hsl(200,71%,59%); box-shadow: 0 0 0 3px hsl(201,62%,90%); } &.is-disabled, // .is-disabled should not be used - legacy support &[disabled], &[readonly] { background: hsl(210,17%,93%); border-color: hsl(210,10%,85%); &:focus, &.focus { border-color: hsl(200,71%,59%); } } &.is-disabled, // .is-disabled should not be used &[disabled] { cursor: not-allowed; opacity: 1; } } input[type=url] { min-width: 400px; } .user-select.form-control { padding-right: 35px; min-width: 300px; } input[type=time] { width: auto; padding-left: 6px; padding-right: 6px; } input.timeframe, input.time { box-sizing: content-box; padding: 0 6px; line-height: 42px; flex-shrink: 0; &.form-control--small { line-height: 31px; } } input.timeframe { width: 5.5ch; } input.time { width: 4.5ch; } input.time.time--12 { width: 7.5ch; } .tokenfield.focus { border-color: hsl(200,71%,59%); box-shadow: 0 0 0 3px hsl(201,62%,90%); } .richtext.form-control { padding-bottom: 28px; } .richtext.form-control [contenteditable] { height: auto; min-height: 82px; background: none; } .richtext.form-control .attachments.attachments--list:not(:empty) { border-top: 1px solid rgba(0,0,0,.04); white-space: normal; margin: 0 -12px -28px; padding: 25px 20px 21px 72px; position: relative; line-height: 1; } textarea.form-control { height: 118px; } select.form-control:not([multiple]) { @include bidi-style(padding-right, 34px, padding-left, 12px); word-wrap: normal; } .form-control.is-hidden { display: none; } .form-control.form-control--borderless { border: none; padding: 0; line-height: inherit; height: auto; &:focus { box-shadow: none; } } .select.form-group, .user_autocompletion.form-group { .form-control { padding-right: 21px; } } .form-control + .icon-arrow-down, .dropdown-arrow { position: absolute; @include bidi-style(right, 12px, left, auto); top: 50%; margin-top: -3px; fill: black; opacity: 0.39; width: 13px; height: 7px; @extend .u-unclickable; } select::-ms-expand { display: none; } .has-error .form-control, .has-error .form-control:focus, .has-error .form-control.focus { box-shadow: none; border-color: red !important; } input.has-error { box-shadow: none; border-color: red !important; } .help-inline:not(:empty) { color: red; padding: 2px; font-size: 13px; } /* use on input[type=radio] */ .primary-email-switch { display: none; & + label { font-size: 11px; color: #DBDBDB; margin: 0; @extend %clickable; } &:checked + label { color: $highlight-color; } } .primary-email-switch-label { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } .primary-email-switch + label { align-self: stretch; padding: 0 5px; display: flex; align-items: center; } .controls--button { display: flex; input, .form-control { flex: 1; @include bidi-style(border-right-width, 0, border-left-width, 1px); @include bidi-style(border-top-right-radius, 0, border-top-left-radius, 3px); @include bidi-style(border-bottom-right-radius, 0, border-bottom-left-radius, 3px); &:focus + .controls-button { .controls-button-inner { border-color: hsl(200,71%,59%); } /* fake the form-control outline */ &:before { content: ""; position: absolute; left: 0; @include rtl(left, -3px); top: -3px; right: -3px; @include rtl(right, 0); bottom: -3px; background: hsl(201,62%,90%); @include bidi-style(border-radius, 0 7px 7px 0, border-radius, 7px 0 0 7px); } } } } .controls-button { position: relative; display: flex; &.is-active .icon { fill: $highlight-color; } } .controls-button-inner { display: flex; justify-content: center; align-items: center; padding: 0 10px; background: white; position: relative; border: 1px solid hsl(0, 0%, 90%); @include bidi-style(border-radius, 0 3px 3px 0, border-radius, 3px 0 0 3px); } .searchfield { position: relative; margin-bottom: 20px; .icon { @include bidi-style(left, 15px, right, auto); top: 12px; width: 17px; height: 17px; position: absolute; fill: hsl(60,1%,61%); } input[type=search] { appearance: textfield; border-radius: 19px; padding: 0 17px 0 42px; @include rtl(padding, 0 42px 0 17px); will-change: transform; &.is-empty + .empty-search { visibility: hidden; } } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } .empty-search { height: 41px; width: 50px; visibility: visible; .icon { position: static; opacity: 0.5; } } } .content { overflow: auto; position: relative; background-color: #f8f9fa; } .content.fit { padding: 10px; background: #2c2d36; z-index: 501; } .fullscreenMessage { padding: 22px; display: flex; align-items: center; justify-content: center; flex: 1; svg, .icon { @include bidi-style(margin-right, 14px, margin-left, 0); } h2 { margin: 0; } } .selected-clue { @extend .zIndex-6; pointer-events: none; } .modal--clue { display: flex; align-items: center; justify-content: center; @extend .zIndex-5; .modal-backdrop { bottom: 0; width: 200%; height: 200%; left: -100%; top: -100%; background: radial-gradient(hsla(202,68%,54%,0.1), hsla(202,68%,54%,.9)); } .modal-spacer { position: absolute; opacity: 0; padding: 18px; } .modal-arrow { background: inherit; width: 20px; height: 20px; position: absolute; margin: -10px 0 53px -10px; left: 0; top: 50%; transform: rotate(45deg); } .modal-spacer[data-position="above"] .modal-arrow { left: 50%; top: 100%; background: hsl(210,5%,97%); } .modal-spacer[data-position="below"] .modal-arrow { left: 50%; top: 0; } .modal-spacer[data-position="left"] .modal-arrow { left: 100%; top: 50%; } .modal-content { border: none; width: 300px; box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.05); } .modal-controls { background: hsl(210,5%,97%); margin: 23px 0 0; padding: 10px; display: flex; align-items: center; justify-content: space-between; } .modal-control { padding-left: 14px; padding-right: 14px; .btn.is-disabled { opacity: 1; color: hsl(240,5%,83%); } } .modal-header { padding-bottom: 7px; font-size: 18px; } .modal-body { max-width: 340px; } } kbd { background: hsl(200,8%,90%); border-radius: 3px; border: 1px solid hsl(240,7%,77%); box-shadow: 0 1px rgba(0,0,0,.08); color: hsl(240,7%,37%); display: inline-block; font-size: 12px; margin: 0 1px; padding: 0 4px; vertical-align: top; } .form-stacked .checkbox label { color: inherit; font-size: 13px; text-transform: inherit; vertical-align: baseline; letter-spacing: inherit; } .pagination { margin: 0 0 0 19px; @includ rtl(margin, 0 19px 0 0); display: flex; } .pagination > li > a, .pagination > li > span { padding: 0; width: 31px; height: 31px; border-color: #e5e5e5; @include bidi-style(margin-left, -1px, margin-right, 0); } .pagination > li:first-child > a, .pagination > li:first-child > span { @include bidi-style(border-top-left-radius, 4px, border-top-right-radius, 0); @include bidi-style(border-bottom-left-radius, 4px, border-bottom-right-radius, 0); } .pagination > li:last-child > a, .pagination > li:last-child > span { @include bidi-style(border-top-right-radius, 4px, border-top-left-radius, 0); @include bidi-style(border-bottom-right-radius, 4px, border-bottom-left-radius, 0); } .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { background: #0F94D6; border-color: #0F94D6; } .pagination-counter { margin: 0 0 0 19px; @include rtl(margin, 0 19px 0 0); line-height: 33px; color: #9c9c9b; } .pagination-items-range { color: #706f6f; } .page-header { margin: 0 0 15px; padding: 0; display: flex; align-items: center; flex-wrap: wrap; } .page-header--center { justify-content: center; } .page-header-title { display: flex; align-items: center; .zammad-switch { @include bidi-style(margin-right, 9px, margin-left, 0); } h1, h2 { margin-top: 9px; margin-bottom: 7px; } } .page-header-center { justify-self: center; @include bidi-style(padding-left, 9px, padding-right, 0); margin: 0 auto; & + .page-header-meta { @include bidi-style(margin-left, 0, margin-right, auto); flex: none; } } .page-header-meta { @include bidi-style(margin-left, auto, margin-right, 0); @include bidi-style(padding-left, 20px, padding-right, 0); display: flex; justify-content: flex-end; flex: 1; min-width: 0; /* firefox flexbug */ .btn { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .btn + .btn { @include bidi-style(margin-left, 9px, margin-right, 0); } } .page-content { .formGroup-label label, .label { color: hsl(197,18%,70%); } .help-text, .help-block { color: hsl(198,19%,72%); } } .page-description p { color: initial; } .page-body--two-column { display: flex; } .page-aside { @include bidi-style(padding-right, 20px, padding-left, 0); @include bidi-style(border-right, 1px solid hsl(0,0%,90%), border-left, none); @include bidi-style(margin-right, 20px, margin-left, 0); width: 240px; flex-shrink: 0; flex-grow: 0; } .page-main { flex: 1; } .page-loading { min-height: 500px; display: flex; align-items: center; justify-content: center; } .page-loading-label { @include bidi-style(margin-left, 10px, margin-right, 0); margin-top: 1px; } .dropdown-menu .count { padding-top: 1px; @include bidi-style(margin-left, 10px, margin-right, 0); } .help-block { margin: 0; color: #bcbcbc; font-size: 13px; &.help-block--center { text-align: center; } } .help-block:not(:empty) { margin: 8px 2px 0; } /* replace music icon with attachment */ .icon-attachment { background-position: -24px 0; } /* * hero-unit (used on getstarted, login, signup) */ .hero-unit { width: 500px; margin: 10px 0; padding: 23px 25px; border: 1px solid #e5f0f5; color: inherit; background-color: white; border-radius: 6px; box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); label { color: hsl(0,0%,60%); } .inline-label { font-size: inherit; } } .hero-unit h1, .hero-unit h2 { margin-top: 0; } .getstarted, .reset_password, .signup, .darkBackground, .login { padding: 10px; background: hsl(234,10%,19%); } .content.getstarted { padding: 0; .main { padding: 20px 10px; } } .login { padding: 24px 24px 97px; color: hsl(212,8%,40%); a { color: hsl(229,2%,51%); } &.login--fancy { color: hsla(0,0%,100%,.7); background: radial-gradient(circle at 49.06% 50.5%, #a36f71, transparent 74%), radial-gradient(circle at 6.95% 9.56%, #745479, transparent 100%), radial-gradient(circle at 2.58% 98.57%, #392e3e, transparent 51%), radial-gradient(circle at 82.11% 97.15%, #5c404e, transparent 100%), radial-gradient(circle at 50% 50%, #8b6b76, #8b6b76 100%); a { color: white; } .hero-unit { box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.09); } } .btn:not(.btn--text) { min-width: calc(33.33% - 6px); // auth provider width } } .login .hero-unit { width: 430px; margin: 0 0 28px; } .login .company-logo { max-height: 100px; max-width: 200px; margin: 20px auto 42px; display: block; } .login p { margin: 0 auto 22px; max-width: 400px; text-align: center; } .login hr { margin: 0 auto 22px; border-top-color: hsl(240,5%,27%); width: 100%; max-width: 400px; } .login p a { text-decoration: underline; } .poweredBy { display: flex; align-items: center; justify-content: center; color: hsl(233,7%,26%); margin: auto 0 34px -16px; @include rtl(margin, auto -16px 34px 0); cursor: default; position: absolute; bottom: 0; left: 0; right: 0; .icon-logo { @include bidi-style(margin-right, 8px, margin-left, 0); margin-top: -11px; } .logotype { @include bidi-style(margin-left, 7px, margin-left, 0); margin-top: -3px; fill: hsl(225,9%,27%); } } .fullscreen { @extend .fit; display: table; width: 100%; height: 100%; min-height: 100vh; } .fullscreen p { color: hsl(212,8%,40%); } .fullscreen-center { display: table-cell; vertical-align: middle; text-align: center; } .fullscreen-body { text-align: start; display: inline-block; } ol.tabs { list-style: decimal inside; } ol.tabs li { display: list-item; } .tabs { display: flex; padding: 0; margin-bottom: 20px; color: #b8b8b8; border: 1px solid rgba(0,8,14,.08); border-radius: 3px; background: white; } .tabs-condensed .tab { padding-left: 5px; padding-right: 5px; } .progress-tabs .tab { cursor: default; } .tab { color: inherit; height: 35px; padding: 8px 20px; text-align: center; border-right: 1px solid rgba(0,8,14,.08); flex: 1 1 auto; @extend .u-clickable; white-space: nowrap; &.active { color: white; background: #444a4f; box-shadow: none; .tab-badge { color: hsl(204,3%,65%); } } } .tab-dropdown { position: relative; display: flex; align-items: center; justify-content: center; .arrow { @include bidi-style(margin-left, 10px, margin-right, 0); opacity: 0.75; } .icon { fill: hsl(0,0%,70%); } &.active { background: white; .icon { fill: #444a4f; opacity: 1; } } } .tab:first-child { border-radius: 3px 0 0 3px; @include rtl(border-radius, 0 3px 3px 0); @include bidi-style(border-right-width, 1px, border-right-width, 0); } .tab:last-child:not(:only-child) { border-radius: 0 3px 3px 0; @include bidi-style(border-right-width, 0, border-right-width, 1px); @include rtl(border-radius, 3px 0 0 3px); } .tab:only-child { border-radius: 3px; @include bidi-style(border-right-width, 0, border-right-width, 1px); } .tab-badge { @include bidi-style(margin-left, 3px, margin-right, 0); font-size: 0.95em; } .tabs.tabs--inline { display: inline-flex; margin-left: 0; margin-right: 0; .tab { flex: none; } } .tabs--big { margin: 28px auto; font-size: 14px; border-radius: 8px; .tab { height: auto; padding: 10px 23px 9px; &:first-child { border-radius: 8px 0 0 8px; @include rtl(border-radius, 0 8px 8px 0); } &:last-child { border-radius: 0 8px 8px 0; @include rtl(border-radius, 8px 0 0 8px); } &:only-child { border-radius: 8px; } } .tab-dropdown { padding-left: 18px; padding-right: 15px; @include rtl(padding-left, 15px); @include rtl(padding-right, 18px); } } .dashboard .tabs--big { width: 50%; } .separator { margin: 20px 0; position: relative; text-align: center; } .separator:before { content: ""; position: absolute; width: 100%; height: 1px; top: 50%; left: 0; background: #e6e6e6; } .separator-text { padding: 0 10px; color: #999; font-size: 12px; letter-spacing: 0.05em; text-transform: uppercase; background: white; display: inline-block; position: relative; } .auth-providers { display: flex; flex-wrap: wrap; justify-content: space-between; margin-bottom: -10px; } .auth-provider { height: 40px; padding: 0 10px 0 7px; margin-bottom: 10px; color: white !important; line-height: 23px; border-radius: 4px; display: flex; align-items: center; text-decoration: none; width: calc(33.33% - 6px); &.auth-provider--wide { padding-right: 25px; } &.auth-provider--facebook { background: #4f699c; } &.auth-provider--google { background: hsl(0,0%,93%); color: hsl(0,0%,46%) !important; } &.auth-provider--twitter { background: #2daee1; } &.auth-provider--email { background: #ffd22e; } &.auth-provider--linkedin { background: #006087; } &.auth-provider--github { background: hsl(0,0%,27%); } &.auth-provider--gitlab { background: hsl(10,78%,53%); } &.auth-provider--oauth2 { background: hsl(0,0%,15%); } &.auth-provider--office365 { background: hsl(15,100%,47%); } &.auth-provider--weibo { background: hsl(0,0%,27%); } .provider-name { flex: 1; } .provider-icon { width: 29px; height: 24px; @include bidi-style(margin-right, 10px, margin-left, 0); } } /* global icon definitions ======================= */ .icon-arrow-down, .icon-arrow-up, .icon-arrow-left, .icon-arrow-right { fill: black; opacity: 0.39; } .icon-arrow-left, .icon-arrow-right { &.arrow--x2 { width: 14px; height: 26px; } } .arrow--disabled { opacity: 0.23; } .icon-checkmark { fill: $supergood-color; } .icon-error { fill: $superbad-color; } .loading.icon { display: inline-block; width: 30px; height: 30px; background: hsl(145,51%,45%); animation: rotateplane 1.2s infinite ease-in-out; } .small.loading.icon { width: 20px; height: 20px; } .tiny.loading.icon { width: 12px; height: 12px; } .loading.icon.muted { background: hsl(195,20%,96%); } @keyframes rotateplane { 0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg); } 50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); } 100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } } .color-swatch { padding: 2px; margin: -2px 0 -4px; @extend %clickable; /* :after technique for bigger click area */ &:after { content: ""; display: inline-block; height: 11px; width: 11px; border-radius: 100%; background: currentColor; } } .icon-status { fill: $ok-color; &.inline { margin-top: -3px; vertical-align: middle; } &.inactive { fill: hsl(198,18%,86%); } &.ok { fill: $supergood-color; } &.error { fill: $superbad-color; } &.neutral { fill: $ok-color; } } .icon-status-modified-inner-circle { position: absolute; left: 50%; top: 0; will-change: opacity; transform: translate3d(-50%,0,0); animation: fade 1.8s ease-in-out infinite; } @keyframes fade { 54% { opacity: 1 } 90% { opacity: 0 } to { opacity: 1 } } .icon-checkbox, .icon-checkbox-checked, .icon-checkbox-indeterminate { fill: white; } /* * removed margin of forms to not break the layout with submit buttons within
area e. g. for modal dialogs */ form { margin: 0; &.form--flexibleWidth .controls { display: table; } &.form--grid { display: flex; flex-wrap: wrap; width: calc(100% + 20px); margin-left: -10px; margin-right: -10px; .form-group { display: block; padding: 0 10px; width: 100%; $sizes: "1/2", "1/3", "2/3", "1/4", "2/4", "3/4", "1/5", "2/5", "3/5", "4/5"; @each $size in $sizes { &[data-width="#{$size}"] { width: calc(#{$size} * 100%); } } } } } .form-controls { @extend .clearfix; display: flex; align-items: center; margin-top: 10px; .btn + .btn:not(.align-right) { @include bidi-style(margin-left, 20px, margin-right, 10px); } } form a.standalone { line-height: 40px; margin: 0 5px; } form a.standalone.align-right { @include bidi-style(margin-left, auto, margin-right, 0); } footer { clear: both; padding-top: 10px; padding-left: 10px; padding-right: 22px; @include rtl(padding-left, 22px); @include rtl(padding-right, 10px); } .can-move { cursor: move; } .can-move-placeholder { border: 1px dashed #DDD; background: #EEE; margin-top: 5px; margin-bottom: 5px; } .customer_info { } .customer_info ul.nav > li { width: 50%; } .customer_info ul.nav > li > a { @extend .u-textTruncate; } .customer_info .thumbnail { position: absolute; right: 20px; } .customer_info textarea { @include bidi-style(padding-left, 10px, padding-right, 0); width: 100%; border-color: #eee; } .overviews { .sidebar { @include small-desktop { display: none; } } .table > tbody > tr > td { user-select: none; } } .overview-header { position: relative; margin: 20px 0 32px; height: 41px; display: none; align-items: center; .tabsHolder { flex: 1; @include bidi-style(margin-right, 20px, margin-left, 0); min-width: 0; /* Firefox bug fix */ } .tabs { margin: 0; position: relative; } .tabs-clone { right: 0; } .dropdown { min-width: 0; width: 336px; } @include small-desktop { display: flex; } } .tableOverview-edit { @extend .u-clickable, .u-highlight; } .bulkAction { position: fixed; bottom: 0; left: $sidebarWidth + $navigationWidth; right: 0; min-width: $minWidth - $sidebarWidth - $navigationWidth; background: white; z-index: 1; box-shadow: 0 -1px rgba(0,0,0,.05), 0 -2px rgba(0,0,0,.03), 0 -3px rgba(0,0,0,.01); @include small-desktop { left: $navigationWidth; min-width: $minWidth - $sidebarWidth; } } .bulkAction-firstStep { display: flex; align-items: center; } .bulkAction-firstStep .has-error { border-color: red !important; border: 1px solid; } .bulkAction-secondStep { display: flex; flex-direction: column; } .bulkAction .btn { margin: 0 16px; } .bulkAction .btn--text { @include bidi-style(margin-right, 0, margin-left, 16px); } .bulkAction-controls { margin-top: 10px; @include bidi-style(margin-left, auto, margin-right, 0); } .panel { box-shadow: none; color: hsl(60,1%,34%); } .panel-default > .panel-heading { padding-bottom: 8px; font-weight: normal; text-transform: uppercase; font-size: 12px; line-height: 17px; letter-spacing: 0.05em; background: hsl(197, 20%, 93%); background: hsl(197,20%,93%); border-color: hsl(198,18%,86%); } .panel-title { font-size: inherit; } .panel-group .panel-heading { display: block; } .panel-body ul { list-style: none; padding: 0; margin: 0; } .well { background: white; border: 1px solid hsl(240,3%,92%); border-radius: 3px; padding: 10px; } .well-muted { background-color: whiteSmoke; border: 1px solid #eee; border: 1px solid rgba(0, 0, 0, 0.05); border-radius: 4px; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } .merged, .merge:hover { text-decoration: line-through; } .translation { border: 1px dotted #F92; border-radius: 3px; cursor: text; } .translation:hover { } .translation[contenteditable="true"] { display: inline; } .translation[contenteditable="true"]:hover, .translation[contenteditable="true"]:focus { background: none; } .translation .icon-edit { display: none; } .translation:hover .icon-edit { display: inline-block; } .translationOverview .btn + .btn { margin: -10px; } .sub_attribute .control-label { width: 60px; } .sub_attribute .controls { @include bidi-style(margin-left, 80px, margin-right, 0); } .splash { position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: hsl(210,0%,98%); display: flex; align-items: center; justify-content: center; font-size: 16px; color: hsl(0,0%,45%); .icon { @include bidi-style(margin-right, 10px, margin-left, 0); filter: grayscale(90%); } } .navigation { width: $navigationWidth; background: hsl(232,10%,16%); position: relative; } .navigation:empty { display: none !important; } .menu { padding: 0; margin: 0; list-style: none; flex-shrink: 0; } .menu .badge { background: $ok-color; color: hsl(233,10%,16%); @include bidi-style(margin-right, 8px, margin-left, 0); } .menu .zammad-switch { height: 22px; } .menu .dropdown-menu { left: 10px; right: 15px; min-width: 0; } .menu-item { padding: 0 15px; height: 48px; color: rgba(240, 250, 255, .25); border-bottom: 1px solid rgba(240, 250, 255, .05); text-decoration: none; display: flex; align-items: center; @extend %clickable; &:hover { background: hsl(230,10%,13%); border-bottom-color: rgba(240, 250, 255, .08); } &.is-active, &.is-hovered { background: none; color: white; } &.is-active .menu-item-icon, &.is-active .dropdown-icon, &.is-hovered .menu-item-icon { fill: currentColor; } &.is-active, &.is-hovered { background: hsl(202,68%,54%); } &.is-active .zammad-switch { input:not(:checked) + label { // switch background background: hsl(202,68%,43%); } label:after { background: white; } } .dropdown-icon { fill: currentColor; } } .menu-item-icon { @include bidi-style(margin-right, 15px, margin-left, 0); width: 24px; height: 24px; fill: hsl(206,7%,37%); } .menu-item-name { flex: 1; margin-top: 2px; } .tasks { background: #2c2d36; flex: 1; overflow: auto; } .tasks.tasks--standalone { background: none; margin: 8px 0 0; padding: 0; overflow: visible; } .tasks--standalone .task { padding: 0; margin-bottom: 9px; display: flex; } .tasks--standalone .task-text { flex: 1; min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */ } .tasks--standalone .name { @extend .u-highlight, .u-textTruncate; display: block; } .tasks--standalone .time { color: hsl(198,19%,72%); } .tasks--standalone .icon-task-state { @include bidi-style(margin-right, 4px, margin-left, 0); } .nav-tab { @include bidi-style(padding, 10px 15px 9px 0, padding, 10px 0 9px 15px); position: relative; color: #808080; display: flex; align-items: center; @extend .u-clickable; } .tasks-navigation .nav-tab { height: 40px; border-bottom: 1px solid #33363e; } .tasks-navigation .nav-tab:not(.is-active):hover { background: #26272e; } .navigation .nav-tab-name { text-align: start; } .tasks-navigation .nav-tab-icon .error { transform: scale(0.85); } .nav-tab:hover { color: #808080; text-decoration: none; } .nav-tab.is-active, .nav-tab.nav-tab--search:hover, .nav-tab.nav-tab--search.is-hover { background: #389ed9; color: white; .nav-tab-icon .icon { fill: white; } } .nav-tab.ui-sortable-helper { border-bottom-color: transparent; } .nav-tab.nav-tab--search { height: 30px; padding-top: 9px; } .nav-tab-icon { margin-top: -3px; display: flex; align-items: center; justify-content: center; position: relative; width: 30px; } .nav-tab-icon .icon { max-width: 18px; max-height: 18px; fill: #808080; } .nav-tab-icon .icon-diagonal-cross { fill: #F35910; width: 12px; height: 12px; } .nav-tab-icon .icon.icon-loading { animation: rotateplane 1.2s infinite ease-in-out; fill: $supergood-color; /* Safari font rendering bugfix while animating http://stackoverflow.com/questions/9733011/safari-changing-font-weights-when-unrelated-animations-are-running */ @extend .zIndex-5; // stay beneath .global-search-menu position: relative; } .nav-tab-close { position: absolute; @include bidi-style(right, 0, left, auto); top: 0; height: 100%; @include bidi-style(padding-right, 16px, padding-left, 0); visibility: hidden; @extend .u-clickable; display: flex; align-items: center; } .nav-tab:hover .nav-tab-close { visibility: visible; } .nav-tab-close-inner { width: 19px; height: 19px; background-color: #2c2d36; border-radius: 100%; display: flex; align-items: center; justify-content: center; } .nav-tab-close:hover .nav-tab-close-inner { background-color: #972e29; } .nav-tab-close svg { width: 9px; height: 9px; fill: white; opacity: 0.3; } .nav-tab-close:hover svg { opacity: 1; } .icon-task-state { margin-top: 1px; display: block; } .nav-tab-icon .icon-task-state { margin: 0; } .nav-tab.task-state-open.is-active { background-color: $task-state-open-color; } .task-state-open-color { color: $task-state-open-color; } .icon-task-state.open { fill: $task-state-open-color; } .nav-tab.task-state-closed.is-active { background-color: $task-state-closed-color; } .task-state-closed-color { color: $task-state-closed-color; } .icon-task-state.closed { fill: $task-state-closed-color; } .nav-tab.task-state-escalating.is-active { background-color: $task-state-escalating-color; } .task-state-escalating-color { color: $task-state-escalating-color; } .icon-task-state.escalating { fill: $task-state-escalating-color; } // pending: stays blue // .nav-tab.task-state-pending.is-active { // background-color: $task-state-pending-color; // } .task-state-pending-color { color: $task-state-pending-color; } .icon-task-state.pending { fill: $task-state-pending-color; } .search { padding: 11px 5px 4px 10px; @include rtl(padding, 11px 10px 4px 0px); border-bottom: 1px solid rgba(240,250,255,.05); flex-shrink: 0; display: flex; background-color: inherit; } .search-holder { flex: 1; border-radius: 15px; position: relative; transition: 240ms; } .empty-search { position: absolute; @include bidi-style(right, 0, left, auto); top: 0; height: 30px; width: 40px; z-index: 1; visibility: hidden; display: flex; align-items: center; justify-content: center; @extend %clickable; } .search .empty-search .icon-diagonal-cross { fill: white; opacity: 0.5; } .filled.search .empty-search { visibility: visible; } .search input[type=search] { width: 100%; padding: 5px 33px 5px 33px; height: 30px; color: #ECECEC; background: #31373b; line-height: 20px; outline: none; border: none; border-radius: 15px; position: relative; z-index: 1; appearance: textfield; } input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration { -webkit-appearance: none; } .search .icon-magnifier { position: absolute; top: 8px; left: 10px; @include bidi-style(left, 10px, right, auto); z-index: 2; opacity: 0.5; fill: white; } .search.focused .search-holder { @include bidi-style(margin-right, -46px, margin-left, 0); } .search.focused .logo { opacity: 0; z-index: -1; } .search .logo { position: relative; @extend .u-clickable, .zIndex-3; margin: -4px 10px 0 12px; transition: 240ms; } .search .logo .icon-logo { position: relative; } .search .logo .activity-counter { min-width: 21px; position: absolute; right: -3px; bottom: 2px; padding: 0 4px; font-size: 12px; font-weight: 300; line-height: 16px; text-align: center; color: white; text-shadow: 0 1px 1px rgba(0,0,0,.21); background: hsl(360,71%,60%); border-radius: 10px; border: 2px solid hsl(233,10%,16%); } .search .logo .activity-counter:empty { display: none; } .global-search-menu { @extend .zIndex-6; background: #26272e; position: absolute; left: 0; right: 0; bottom: 0; top: 53px; display: none; overflow: auto; .divider { height: 1px; background: #2f3238; margin: 14px 0 17px; } } .search.open .global-search-menu { display: block; } .global-search-detail-link { padding: 9px 15px 8px 0; margin-bottom: 7px; height: auto !important; .nav-tab-icon { width: 18px; margin-left: 10px; margin-right: 10px; .icon { width: 18px; height: 14px; } } .nav-tab-name { .icon { fill: currentColor; margin: -2px 0 0 3px; vertical-align: middle; } } } .global-search-result { margin: 0; padding: 0; list-style: none; } .user-menu { padding: 0; margin: 0; list-style: none; position: relative; flex-shrink: 0; display: flex; } .user-menu > li { flex: 1; background: #26272e; } .user-menu .list-button { height: 60px; position: relative; text-decoration: none; @extend .u-clickable; display: flex; align-items: center; justify-content: center; } .user-menu .list-button *:not(.dropdown-nose):not(.icon-crown) { position: relative; } .user-menu > li:hover .list-button:before, .user-menu > li.is-active .list-button:before, .user-menu > li.is-hovered .list-button:before { content: ''; position: absolute; top: 4px; right: 4px; bottom: 4px; left: 4px; background: white; } .user-menu > li.is-active .list-button:before { background: $highlight-color; } .user-menu li.add:hover .list-button:before, .user-menu li.add.is-active .list-button:before, .user-menu li.add.is-hovered .list-button:before { background: #38ae6a; } .user-menu-icon { width: 20px; height: 20px; fill: hsl(0,0%,30%); } .user-menu-icon.icon-plus { fill: hsl(145,51%,45%); } .user-menu > li:hover .user-menu-icon { fill: hsl(232,10%,16%); } .user-menu > li.is-active .user-menu-icon { fill: white; } .user-menu > li.add:hover .user-menu-icon.icon-plus, .user-menu > li.add.is-hovered .user-menu-icon.icon-plus, .user-menu > li.add.is-active .user-menu-icon.icon-plus { fill: white; } .user-menu > li:not(:last-child) { border-right: 1px solid #2c2d36; } .dropdown-nose { position: absolute; border: 7px solid transparent; border-bottom: none; border-top: 7px solid white; left: 50%; margin-left: -7px; top: -6px; display: none; } li.add .dropdown-nose { border-top-color: #38af6e; } .open.dropdown .dropdown-nose, .open.dropup .dropdown-nose { display: block; } .user-menu .dropdown-menu { padding: 0; border-radius: 0; margin-bottom: 5px; min-width: 0; left: 10px; right: 15px; width: auto; } .user-menu li.add .dropdown-menu { background-color: #38af6e; } .user-menu li.add .dropdown-menu li > a { color: white; } .user-menu li.add .dropdown-menu .divider { background: #4cb77c; } .user-menu .dropdown-menu .divider { margin: 0; } .user-menu .dropdown-menu > li > a { display: flex; } .avatar { width: 40px; height: 40px; background-size: cover; background-position: center; background-color: rgba(0,0,0,.05); border-radius: 100%; display: inline-block; vertical-align: bottom; position: relative; flex-shrink: 0; &.size-30 { width: 30px; height: 30px; } .icon-crown { position: absolute; width: 28px; left: 50%; margin-left: -14px; top: -15px; fill: hsl(47,100%,59%); } &-status { position: absolute; right: -4px; bottom: -4px; border-radius: 999px; background: hsl(234,10%,19%); fill: white; width: 21px; height: 21px; display: flex; align-items: center; justify-content: center; } &.size-50 { width: 50px; height: 50px; .icon-crown { width: 36px; margin-left: -18px; top: -15px; } } &.size-80 { width: 82px; height: 82px; .icon-crown { width: 64px; margin-left: -32px; top: -16px; } } &--idle { filter: grayscale(100%); opacity: 0.5; } &--inactive { filter: grayscale(100%); opacity: 0.2; } &--vacation { filter: grayscale(70%); opacity: 1; } &--unique { background-image: image_url("/assets/images/avatar-bg.png"); background-size: 300px 226px; color: white; line-height: 40px; text-align: center; font-size: 13px; letter-spacing: 0.05em; text-transform: uppercase; text-shadow: 0 1px rgba(0,0,0,.2); cursor: default; &.size-30 { font-size: 10px; line-height: 32px; background-size: 225px 170px; } &.size-50 { font-size: 16px; line-height: 52px; background-size: 375px 283px; } &.size-80 { font-size: 26px; line-height: 84px; background-size: 600px 452px; } } &--organization { display: flex; align-items: center; justify-content: center; .icon-organization { fill: currentColor; } &.size-80 { .icon-organization { width: 32px; height: 32px; } } } &--group { overflow: hidden; .icon { fill: white; position: absolute; left: 50%; transform: translateX(-50%); width: 44px; height: 44px; bottom: -8px; } &.size-30 .icon { width: 33px; height: 33px; bottom: -6px; } &.size-50 .icon { width: 55px; height: 55px; bottom: -10px; } &.size-80 .icon { width: 88px; height: 88px; bottom: -15px; } &-color-0 { background: hsl(192,100%,38%); } &-color-1 { background: hsl(148,100%,38%); } &-color-2 { background: hsl(57,100%,37%); } } .icon-logo { width: 100%; height: 100%; } } .sidebar { position: relative; width: 280px; padding: 20px; color: hsl(60,1%,34%); background: white; @include bidi-style(border-right, 1px solid #e6e6e6, border-left, none); overflow: auto; @include small-desktop { &.optional { display: none; } } h2 { margin-top: 0; } h3 { margin: 0; color: rgba(0,8,14,.73); font-weight: normal; font-size: 16px; text-transform: initial; letter-spacing: 0; } } .sidebar-block { margin: 20px 0; &:first-child { margin-top: 0; } } .sidebar-block [contenteditable=true] { white-space: normal; // do no u-textTruncate, we want to edit it inline } .main + .sidebar { border-right: none; border-left: 1px solid #e6e6e6; } .NavBarAdmin.sidebar, .NavBarProfile.sidebar, { width: $sidebarWidth; h2 { margin: 21px 0 12px; } h2:first-child { margin-top: 0; } } .nav-stacked > li + li { margin-top: 0; } .nav-pills > li > a, .nav-pills > li > a:focus, .nav-pills > li > a:active { color: #0f94d6; border-radius: 0; background: transparent; /* a:focus, a:active with bg: transparent fixes gray focus bg in IE 10 */ display: flex; @extend .u-textTruncate; } .nav-pills.nav-stacked > li > a, .nav-pills.nav-stacked > li > a:focus, .nav-pills.nav-stacked > li > a:active { padding: 0; height: 40px; line-height: 39px; border-top: 1px solid #f2f2f3; } .nav-pills > li:hover > a { background: #f2f2f3; } .nav-pills.nav-stacked > li:hover > a, .nav-pills.nav-stacked > li:hover + li:not(.active) > a { border-color: transparent; } .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { color: white; background: #2c2d36; border-color: initial; } .nav-pills.nav-stacked > li:hover > a, .nav-pills.nav-stacked > li.active > a, .nav-pills.nav-stacked > li.active > a:hover, .nav-pills.nav-stacked > li.active > a:focus { padding-left: 10px; padding-right: 10px; margin-left: -10px; margin-right: -10px; } .sidebar:not(.NavBarAdmin) .nav-pills > li:first-child > a { border-top: none; } .nav-pills > li > a > .icon { fill: currentColor; flex-shrink: 0; align-self: center; margin-top: -2px; &:first-child { @include bidi-style(margin-right, 5px, margin-right, 0); } } .nav-pills > li > a > .badge { margin-left: auto; margin-right: 5px; @include bidi-style(padding-left, 10px, padding-right, 0); @include rtl(margin-left, 5px); @include rtl(margin-right, auto); } a.list-group-item.active > .badge, .nav-pills > .active > a > .badge { color: #96969b; background: none; } .main { padding: 10px 20px; overflow: auto; position: relative; &--large-padding { padding: 30px 40px; } } .main--tabs, .main.no-padding { padding: 0; } .tooltip { font-family: inherit; } .tooltip-inner { max-width: 400px; } .popover { @extend .zIndex-6; position: absolute; font-family: inherit; width: 372px; max-width: 9999px; border-radius: 0; border: none; color: hsl(206,7%,28%); box-shadow: 0 1px 14px rgba(0,8,14,.25); @include rtl(text-align, right); } .popover-body { overflow: auto; } .popover-title { border: none; background: none; padding: 21px 17px 4px; } .popover-content { padding: 0 17px; margin-bottom: 21px; } .popover.right { margin-left: 4px; } .popover.right > .arrow { border-right: none; left: -9px; } .popover.top { margin-bottom: 9px; } .popover.top > .arrow { border-top: none; bottom: -9px; } .popover.left { margin-right: 9px; margin-left: 0; } .popover.left > .arrow { border-left: none; right: -9px; } .popover.bottom { margin-top: 9px; } .popover.bottom > .arrow { border-bottom: none; top: -9px; } .popover > .arrow:after { border-width: 8px; } .popover .priority.icon:after { background: white; } .popover .person .organization { color: #a1a4a7; } .popover .user-organization { @extend .u-textTruncate; margin-bottom: 8px; margin-top: -4px; } .popover-block { @extend .sidebar-block; margin: 10px 0; } .popover hr { margin: 8px 0; } .popover .person .organization:before { content: '('; } .popover .person .organization:after { content: ')'; } .popover label { font-size: 13px; color: #a9bcc4; font-weight: 300; text-transform: uppercase; letter-spacing: 0.05em; } .popover .two-columns, .popover .three-columns { margin-top: -8px; } .popover .column label { margin: 8px 0 1px; } .popover .column { margin-top: 8px; } .popover--notifications { padding: 0; left: $navigationWidth; @include rtl(right, $navigationWidth); margin: 8px 2px; max-height: calc(100% - 16px); width: auto; max-width: 400px; min-width: 350px; flex-direction: column; &.is-visible { display: flex; } &.is-empty .popover-notificationsHeader { box-shadow: none; } .arrow { top: 23px !important; left: -11px; @include rtl(left, 408px); @include rtl(transform, rotate(180deg)); } .popover-content { padding-left: 0; padding-right: 0; margin-bottom: 0; overflow-y: auto; } .popover-notificationsHeader { box-shadow: 0 1px hsla(240,4%,95%,.5), 0 2px hsla(240,4%,95%,.2); padding-bottom: 14px; flex-shrink: 0; .btn { padding-top: 3px; padding-bottom: 5px; } } .activity-placeholder { margin-bottom: 21px; } } .popover-notificationsHeader { padding-bottom: 8px; margin: 21px 17px 0; .popover-title { @extend h1; padding: 0; line-height: 1; } .btn { margin-top: 3px; } } .popover-notificationsCounter { color: #e25253; @include bidi-style(padding-left, 3px, padding-right, 0); } .user-popover, .ticket-popover, .organization-popover { @extend .u-clickable; } .stat-icon { position: relative; } .mood-icon { width: 60px; height: 59px; } .stopwatch-icon { position: absolute; left: 0; top: 0; width: 100%; height: 100%; } .stat-stopwatch { width: 77px; height: 83px; position: relative; } .stat-channel-icon { width: 16px; height: 16px; fill: hsl(198,18%,72%); } .total-tickets { height: 83px; width: 48px; @include bidi-style(margin-right, 4px, margin-left, 0); margin-bottom: -9px; } .one-ticket { width: 48px; height: 10px; margin-top: -7px; margin-bottom: 2px; } .stat-tickets { height: 100px; } .in-process-icon { width: 64px; height: 64px; } .reopening-icon { width: 68px; height: 47px; } .supergood-color { fill: $supergood-color;} .good-color { fill: $good-color; } .ok-color { fill: $ok-color; } .bad-color { fill: $bad-color; } .superbad-color { fill: $superbad-color; } .stat-widgets { margin: -7px -7px 20px; } .stat-widget { height: 200px; padding: 13px; text-align: center; line-height: 20px; } .dashboard .stat-widget { margin: 7px; background: white; border: 1px solid #e5f0f5; border-radius: 1px; box-shadow: 0 1px rgba(0,8,14,.02); } .stat-title { font-size: 13px; margin: 2px 0 8px; color: #444a4f; text-transform: uppercase; font-weight: normal; } .stat-widget .stat-label { color: #444a4f; @extend .u-textTruncate; } .stat-widget .stat-detail { color: #b4b7b9; @extend .u-textTruncate; } .channel-distribution.stat-widget { color: #a1a4a7; } .stat-graphic { flex: 1; display: flex; justify-content: center; align-items: center; user-select: none; } .time.stat-widget .stat-amount { margin-top: 12px; text-align: center; font-size: 30px; color: white; text-shadow: 0 2px rgba(0,8,14,.2); position: relative; cursor: default; } .time.stat-widget .stat-dial { position: absolute; top: 21px; left: 14px; } .stats-row { padding: 8px 0 7px; margin-bottom: -7px; border-radius: 3px; display: flex; flex-direction: column; align-items: center; } .stats-row:hover { background: rgba(0,8,14,.03); } .stats-row .stat-bars { height: 73px; margin: 16px 0 15px; padding: 2px 12px; width: 100%; background: linear-gradient(to top, #f2f2f3, #f2f2f3 1px, transparent 1px); background-position: center bottom; background-size: 100% 12px; display: flex; align-items: flex-end; } .stat-bars .stat-bar { border-radius: 5px; width: 10px; color: #a9bcc4; background: #a9bcc4; } .stat-widget .secondary { opacity: .38; color: #a9bcc4; background: #a9bcc4; } .stat-legend { margin-top: 30px; @include bidi-style(margin-left, auto, margin-right, 0); display: flex; } .stat-legendEntry { font-size: 11px; line-height: 1; @include bidi-style(margin-left, 20px, margin-right, 0); background: none !important; } .stat-circle { margin-bottom: -1px; @include bidi-style(margin-right, 3px, margin-left, 0); width: 10px; height: 10px; border-radius: 100%; display: inline-block; } .frequency.stat-widget { .stat-bars { margin-top: 0; } .stats-row { margin-bottom: 0; } .stat-label { color: #a1a4a7; } .primary { color: hsl(145,51%,45%); background: hsl(145,51%,45%); } } .activity.sidebar { width: 370px; padding: 0; border-left: 1px solid #e8e8e8; } .activity h2 { margin-left: 19px; margin-bottom: 15px; margin-right: 26px; @include rtl(margin-right, 19px); @include rtl(margin-left, 26px); } .activity-entries { margin: 0 -17px; } .activity-placeholder { @extend .u-textTruncate; padding: 0 17px; } .activity-entry { display: flex; padding: 0 17px; &.is-inactive { opacity: 0.5; } &.is-hover { background-color: #f8f9fa; } &.activity-entry--removeable { @include bidi-style(padding-right, 0, margin-left, 17px); } &:not(:hover) .activity-remove { opacity: 0; } &:not(:last-child) .activity-body:after { content: ""; position: absolute; bottom: 0; right: 0; left: 0; border-bottom: 1px solid #f2f2f3; } &.activity-entry--removeable:not(:last-child) .activity-body:after { right: 17px; @include bidi-style(right, 17px, left, 0); } } .activity-avatar { padding: 16px 2px 0; @include bidi-style(margin-right, 10px, margin-left, 0); flex-shrink: 0; } .activity-body { padding: 16px 0 16px 2px; @include rtl(padding, 16px 2px 16px 0); position: relative; display: flex; flex: 1; min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */ } .activity-message { color: #444a4f; flex: 1; min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */ &:hover .activity-text { text-decoration: underline; } } .activity-time { margin-top: 2px; color: #a1a4a7; display: block; } .activity-remove { display: flex; align-items: center; justify-content: center; @extend %clickable; padding-left: 10px; padding-right: 27px; @include rtl(padding-left, 27px); @include rtl(padding-right, 10px); .activity-remove-icon-holder { width: 19px; height: 19px; border-radius: 100%; display: flex; align-items: center; justify-content: center; background: hsl(0,0%,80%); } .icon { fill: white; width: 9px; height: 9px; } &:hover { .activity-remove-icon-holder { background: #972e29; } .icon { opacity: 1; } } } .form-inline { display: flex; } .form-inline .input-group-addon, .form-inline .form-control:not(textarea) { background: white; border: none; line-height: 1; } .form-inline .form-group { overflow: hidden; position: relative; height: 60px; flex: 1 1 auto; &.datetime { min-width: 140px; overflow: visible; // datepicker popup needs to be visible } } .form-group.is-changed { position: relative; } .form-group.is-changed:before { content: ""; position: absolute; top: 23px; left: -12px; bottom: 0; width: 3px; background: repeating-linear-gradient(45deg, hsl(193,18%,90%), hsl(193,18%,90%) 5px, transparent 5px, transparent 9px) repeat center; background-size: 11px 11px; } .form-inline .form-group.is-changed:before { width: 100%; height: 3px; top: 0; left: 0; bottom: auto; } .form-group.is-changed label { color: hsl(198,19%,72%); position: relative; } .form-group.is-changed label:before { position: absolute; content: ''; left: -10px; width: 5px; height: 5px; top: 50%; margin-top: -3px; border-radius: 100%; background: hsl(198,19%,72%); } .form-inline .form-group .btn { margin: 10px; } .form-inline .form-group:not(:last-child), .form-inline.form-inline--enclosed .form-group { border-right: 1px solid #f0f0f0; } .form-inline .input-group-addon { width: auto; padding: 0; margin: 10px 18px 0; font-size: 13px; letter-spacing: 0.05em; color: #ccc; display: inline-block; position: relative; } .form-inline .form-control:not(textarea) { width: 100%; height: 100%; left: 0; top: 0; position: absolute; padding: 28px 5px 12px 20px; float: none; display: block; border-radius: 0; background: none; } .form-inline { .controls--datetime, .controls--date, .controls--select { position: static; } .controls--datetime { position: absolute; bottom: 12px; left: 0; padding: 0 5px 0 20px; width: 100%; .controls-label { display: none; } .form-control { width: 70px; line-height: inherit; position: static; padding: 0; height: auto; &.time { margin-left: 5px; width: 38px; } } } } .bulkAction-secondStep .form-group { min-width: 140px; } .bulkAction-secondStep .form-inline .textarea.form-group { padding: 5px 10px; height: auto; } .bulkAction-secondStep .form-inline .textarea.form-group .input-group-addon { margin-left: 8px; margin-right: 8px; margin-bottom: 5px; } .bulkAction-secondStep .form-inline textarea.form-control { display: block; width: 100%; resize: vertical; } .bulkAction-secondStep .form-inline .expanding-wrapper { margin: 0 6px; } .bulkAction-secondStep .form-inline textarea.form-control:not(:focus) { border-color: #f0f0f0; } .ticketZoom { background: #f8f9fa; } .ticketZoom-controls { display: flex; justify-content: flex-end; align-items: center; padding: 28px 0 0 0; @include bidi-style(margin-right, -40px, margin-left, 0); } .icon-marker { fill: hsl(0,0%,61%); width: 17px; height: 19px; } .ticketZoom .ticketZoom-header { margin-top: 6px; padding: 0; } .ticketZoom .ticket-article { margin-top: 55px; } .ticketZoom > .overview-navigator { margin-top: 32px; @include bidi-style(padding-left, 20px, padding-right, 0); } .ticket-article, .article-new { max-width: 1080px; margin: 0 auto; padding: 0 21px; } .ticket-title { max-width: 1080px; padding: 0 81px; } .ticket-title-update { @extend h1; white-space: normal; margin-top: 15px; margin-bottom: 8px; padding: 0 7px; text-align: center; .ticketZoom-header & { &:hover, &:focus { background: hsl(210,17%,93%); } } } .task-subline { text-align: center; display: block; } .ticket-article-item { padding-bottom: 33px; position: relative; z-index: 1; // fixed chrome 49 + flex issue, not shown article .avatar { position: absolute; right: 0; top: 5px; } &.agent .avatar { right: auto; left: 0; } } /* clip the article-meta to not stand out on the other side of the textBubble if the text bubble is small */ .article-meta-clip { overflow: hidden; position: relative; height: 100%; margin: 0 55px; } .article-content { color: hsl(60,1%,34%); position: relative; z-index: 1; padding: 0 55px; } .article-content-meta { position: absolute; width: 100%; } .article-meta { background: #2c2d36; color: white; padding: 21px 25px 11px; margin: 0 12px; } .article-meta.bottom { padding-top: 17px; padding-bottom: 8px; } .article-meta-row { margin-bottom: 5px; } .article-meta-key { width: 20%; text-transform: uppercase; } .article-meta-value { @include bidi-style(margin-left, 8px, margin-right, 0); } .article-meta-icon { fill: white; vertical-align: top; margin: 2px 3px 0 0; @include rtl(margin, 2px 0 0 3px); } .article-meta .text-muted { color: #96969b; } .internal-border { padding: 5px; border-radius: 8px; margin: -5px; } .is-internal .internal-border { background: repeating-linear-gradient(45deg, hsl(18,79%,89%), hsl(18,79%,89%) 5px, hsl(210,17%,98%) 5px, hsl(210,17%,98%) 6px); background-size: 8px 8px; } .is-internal .bubble-arrow { display: none; } .textBubble { padding: 10px 20px; background: white; border-radius: 2px; border: 1px solid hsl(240,4%,95%); box-shadow: 0 0 1px rgba(0,0,0,.06) inset; position: relative; /* email css reset */ p { margin: 0; } } .ticket-article-item.state--folde-out .textBubble { border-color: hsl(0,0%,90%); } .textBubble-content { overflow: hidden; position: relative; } .textBubble-footer { display: flex; justify-content: space-between; align-items: center; margin: 0 -12px -28px; padding: 6px 12px; border-radius: 0 0 4px 4px; } .textBubble-control { display: flex; } .textBubble-letterCount:not(.label-danger):not(.label-warning) { color: hsl(0,0%,80%); } .textBubble-overflowContainer { position: absolute; bottom: 0; left: 0; right: 0; background: white; &.is-open { &:before { opacity: 0; } } .btn { padding-top: 17px; padding-bottom: 17px; font-size: 10px; } &:before { content: ""; position: absolute; left: 0; right: 0; top: -30px; height: 30px; background: linear-gradient(rgba(255,255,255,0), white); transition: opacity 300ms; } } .customer .textBubble-overflowContainer { background: #e5f0f5; &:before { background: linear-gradient(hsla(199,44%,93%,0), hsl(199,44%,93%)); } } .customer.ticket-article-item .textBubble { background: #e5f0f5; border-color: hsl(199,38%,92%); box-shadow: none; } .customer .richtext-content blockquote { border-left: 5px solid #dfdfdf; } .customer.ticket-article-item.state--folde-out .textBubble { border-color: hsl(199,44%,85%); } .bubble-arrow { position: absolute; width: 7px; height: 9px; left: -6px; top: 15px; overflow: hidden; } .bubble-arrow:after { content: ""; position: absolute; top: -1px; left: 2px; width: 11px; height: 11px; background: white; border: 1px solid hsl(240,4%,95%); box-shadow: 0 0 1px rgba(0,0,0,.06) inset; transform: rotate(-45deg); } .customer.ticket-article-item .bubble-arrow { left: auto; right: -6px; } .customer.ticket-article-item .bubble-arrow:after { background: #e5f0f5; left: auto; right: 2px; border-color: hsl(199,38%,92%); box-shadow: none; } .attachments.attachments--list:not(:empty) { border-top: 1px solid rgba(0,0,0,.04); white-space: normal; margin: 10px -20px 0; padding: 26px 20px 7px 72px; position: relative; } .attachments.attachments--list .attachments-title { font-size: 13px; color: hsl(60,1%,34%); font-weight: 500; padding: 0 7px; } .attachments .icon-paperclip { position: absolute; left: 33px; top: 27px; fill: hsl(240,1%,84%); } .attachments-block { margin-bottom: 12px; &:last-child { margin-bottom: 0; } &-headline { font-size: 13px; color: hsl(60,1%,34%); font-weight: 500; text-transform: uppercase; margin: 0 7px; } } .ticket-article-item .task-subline { margin-top: 12px; } .article-action { padding-top: 5px; margin-top: 5px; color: hsl(198,4%,56%); font-size: 12px; text-align: center; @extend .u-clickable; } .article-action:hover { color: black; text-decoration: none; } .article-action-icon { @include bidi-style(margin-right, 5px, margin-left, 0); vertical-align: top; width: 17px; height: 17px; fill: currentColor; } .article-action-name { @media screen and (max-width: 1080px) { display: none; } @media screen and (max-width: 1358px) { .main:not(.is-closed) & { display: none; } } } .article-add { position: relative; z-index: 1; // fixed chrome 49 + flex issue, not shown article } .article-new { margin-top: auto; margin-bottom: 36px; } .dropArea { background: white; border: 5px solid; color: hsl(202,66%,55%); font-size: 20px; margin: 5px; display: none; @extend .fit; } .is-dropTarget .dropArea { display: block; } .dropArea-inner { @extend .fit; display: flex; align-items: center; justify-content: center; } .shortcut .dropdown-menu > .is-active > a { background: none; } .shortcut .dropdown-menu { overflow: auto; position: absolute; max-width: 100%; } .editControls { position: absolute; left: 0; top: 5px; } .article-add[data-type=email] .editControls { top: 159px; } .editControls-item { position: absolute; top: 43px; @extend .u-clickable, .zIndex-4; &.is-hidden { display: none; } } .editControls-item:nth-child(3) { top: 79px; } .editControls-item:nth-child(4) { top: 115px; } .editControls-item:not(:last-child) { border-bottom: 1px solid #e6e6e6; } .editControls-iconHolder { width: 38px; height: 35px; display: flex; align-items: center; justify-content: center; } .editControls-icon .icon { fill: hsl(210,2%,78%); } .pop-selector { position: absolute; top: 0; left: 0; display: flex; align-items: center; justify-content: center; border-radius: 4px; box-shadow: 0 1px 7px rgba(0,8,14,.13); &.is-hidden { display: none; } } .pop-selectable { width: 35px; height: 35px; display: flex; align-items: center; justify-content: center; @extend .u-clickable; background: hsl(240,9%,19%); } .pop-selectable:hover { background: white; } .pop-selectable:first-child { @include bidi-style(border-radius, 4px 0 0 4px, border-radius, 0 4px 4px 0); } .pop-selectable:last-child { @include bidi-style(border-radius, 0 4px 4px 0, border-radius, 4px 0 0 4px); } .pop-selectable:only-child { border-radius: 4px; } .pop-selectable-icon { fill: hsl(231,3%,40%); } .pop-selectable:hover .pop-selectable-icon { fill: hsl(240,9%,19%); } .article-add .icon-internal { fill: hsl(18,87%,65%); } .article-add.is-public .icon-internal, .article-add.is-internal .icon-public { display: none; } .article-new .recipient-picker { height: 36px; position: relative; transition: 300ms; } .article-new .recipient-picker.is-open { opacity: 1; } .recipient-picker .icon { margin-top: -2px; } .recipient-count { @include bidi-style(margin-left, 3px, margin-right, 0); margin-top: 1px; line-height: 1; } .recipient-list { position: absolute; background: hsl(234,10%,19%); left: 48px; color: white; } .recipient-picker.is-open .recipient-list { display: block; } .list-arrow { position: absolute; top: 210px; left: -6px; margin-top: -6px; border-right: 6px solid #2c2d36; border-top: 6px solid transparent; border-bottom: 6px solid transparent; } .list-head { height: 38px; line-height: 38px; padding: 1px 19px 0; text-transform: uppercase; } .list-head div { position: relative; left: -20px; } .list-entry { width: 340px; height: 60px; padding: 0 16px; border-top: 1px solid hsl(240,6%,27%); } .list-entry-name { @include bidi-style(margin-left, 18px, margin-right, 0); } .list-entry-type { font-size: 12px; } .list-entry-type div { padding: 3px 7px; border: 1px solid hsl(234,10%,10%); color: hsl(0,0%,40%); background: hsl(234,10%,14%); } .list-entry-type .active { color: white; background: inherit; box-shadow: 0 1px rgba(255,255,255,.03) inset; } .list-entry-type div:not(:last-child) { border-right: none; } .list-entry-type div:first-child { border-radius: 3px 0 0 3px; @include rtl(border-radius, 0 3px 3px 0); } .list-entry-type div:last-child { border-left: none; border-radius: 0 3px 3px 0; @include rtl(border-radius, 3px 0 0 3px); } .recipient-list input { padding-top: 2px; background: hsl(232,10%,16%); color: white; border: none; outline: none; } .recipient-list input[type=submit] { height: 0; width: 0; padding: 0; position: absolute; visibility: hidden; } .recipient-list input::placeholder { color: #666; } .article-new .textBubble { border-color: #b3b3b3; border-radius: 5px; padding-left: 12px; padding-right: 12px; cursor: text; } .articleNewEdit-body { width: 100%; position: relative; min-height: 20px; vertical-align: bottom; border: none; outline: none; resize: none; height: auto; } .article-new .bubble-arrow:after { border-color: #b3b3b3; box-shadow: none; } .article-attachment { position: absolute; bottom: -4px; left: 10px; right: 10px; height: 42px; padding: 10px 0; color: #b3b3b3; overflow: hidden; @extend .u-unclickable, .u-textTruncate; } .attachments:not(:empty) { padding: 9px 5px; border-top: 1px solid hsl(0,0%,93%); margin: 6px -12px 30px; } .attachment.attachment--row { font-size: 13px; padding: 1px 10px 1px 7px; @include rtl(padding, 1px 7px 1px 10px); cursor: default; position: relative; display: flex; } .attachment.attachment--preview { display: block; font-size: 13px; padding: 9px 4px 9px 43px; position: relative; min-height: 42px; color: inherit; align-items: center; border-bottom: 1px solid hsl(0,0%,96%); &:last-child { border-bottom: none; } } .attachment-icon { position: absolute; left: 0; top: 9px; width: 38px; text-align: center; svg { vertical-align: bottom; } img { width: 30px; height: 30px; object-fit: cover; } } .attachment--preview .attachment-name { min-width: 0; display: block; @extend .u-highlight; word-break: break-all; } .attachment--preview .attachment-size { white-space: nowrap; font-size: 11px; color: hsl(200,8%,77%); } .attachment--preview .attachment-delete { color: hsl(198,19%,72%); text-decoration: underline; display: none; white-space: nowrap; @include bidi-style(margin-left, auto, margin-right, 0); @extend %clickable; } .attachment:hover .attachment--preview .attachment-delete { padding: 0 10px 0 30px; float: right; display: block; position: absolute; right: 0; background: linear-gradient(to right, hsla(200,20%,97%,0), hsla(200,20%,97%,1) 20px); } .attachment--preview .attachment-delete .icon { fill: hsl(198,18%,72%); width: 9px; height: 9px; @include bidi-style(margin-right, 5px, margin-left, 0); } .attachment--row .attachment-name { @include bidi-style(margin-right, 5px, margin-left, 0); min-width: 0; @extend .u-highlight; } .attachment--row .attachment-size { white-space: nowrap; float: right; @include bidi-style(margin-right, 10px, margin-left, 0); } .attachment--row .attachment-delete { color: hsl(198,19%,72%); text-decoration: underline; display: none; white-space: nowrap; @include bidi-style(margin-left, auto, margin-right, 0); @extend %clickable; } .attachment:hover.attachment--row .attachment-delete { padding: 0 10px 0 30px; float: right; display: block; position: absolute; right: 0; background: linear-gradient(to right, hsla(200,20%,97%,0), hsla(200,20%,97%,1) 20px); } .attachment--row .attachment-delete .icon { fill: hsl(198,18%,72%); width: 9px; height: 9px; @include bidi-style(margin-right, 5px, margin-left, 0); } .attachmentPlaceholder-inputHolder { position: relative; display: inline-block; overflow: hidden; vertical-align: bottom; pointer-events: auto; @extend .u-highlight; } .attachmentUpload { color: hsl(198,19%,72%); } .attachmentUpload-cancel { @extend .u-clickable; @include bidi-style(margin-left, auto, margin-right, 0); text-decoration: underline; } .attachmentUpload .icon { fill: hsl(198,18%,72%); width: 9px; height: 9px; @include bidi-style(margin-right, 5px, margin-left, 0); } .attachmentUpload-progressBar { position: absolute; height: 4px; background: hsl(202,66%,55%); left: 0; bottom: 0; } .tabsSidebar-tabsSpacer { @include bidi-style(padding-right, 62px !important, padding-left, 0); /* force div to show scrollbars because we offset the sidebar tabs when the os shows scrollbars */ overflow-x: hidden; overflow-y: scroll; } .tabsSidebar-sidebarSpacer { @include bidi-style(margin-right, $sidebarWidth, margin-left, 0); transition: margin-right 500ms; @include rtl(transition, margin-left 500ms); } .tabsSidebar-sidebarSpacer.is-closed { margin-right: 0; @include rtl(margin-left, 0); } .tabsSidebar-holder { overflow: hidden; position: relative; flex: 1; display: flex; flex-direction: column; } .tabsSidebar .sidebar { width: $sidebarWidth; border-left: 1px solid #e6e6e6; padding: 0; } .tabsSidebar .sidebar > hr { margin: 20px; } .tabsSidebar .sidebar-header { display: flex; align-content: stretch; position: relative; margin: 0 20px; + hr { margin-top: 0; } } .sidebar-header-headline { padding: 33px 8px 17px 25px; @include rtl(padding, 33px 25px 17px 8px); margin: 0 0 0 -20px; @include rtl(margin, 0 -20px 0 0); line-height: 1; @extend .u-clickable, .u-textTruncate; } .sidebar-header-actions { flex: 1; @include bidi-style(margin-right, 5px, margin-left, 0); display: flex; align-items: center; .dropdown { flex: 1; position: static; } .dropdown-toggle { padding-top: 38px; padding-bottom: 24px; } } .tabsSidebar-close { padding: 27px 35px 12px 0; margin: 0 -20px 0 0; @extend .u-clickable; display: flex; align-items: center; justify-content: center; .icon { fill: black; } } .tabsSidebar .sidebar-content { padding: 0 20px 20px; } .sidebar.bottom-form-shadow { box-shadow: 0 -1px rgba(0,0,0,.005) inset, 0 -2px rgba(0,0,0,.005) inset, 0 -3px rgba(0,0,0,.005) inset, 0 -4px rgba(0,0,0,.005) inset; } .tabsSidebar { position: absolute; @include bidi-style(right, 0, left, auto); top: 0; bottom: 0; transition: 500ms; &.tabsSidebar--attributeBarSpacer { bottom: 60px; } } .tabsSidebar.is-closed { transform: translateX($sidebarWidth); @include rtl(transform, translateX(-$sidebarWidth)); } .tabsSidebar-tabs { display: flex; flex-direction: column; justify-content: center; position: absolute; @include bidi-style(left, -55px, right, auto); top: 0; bottom: 0; pointer-events: none; } .test { position: absolute; width: 100%; } .tabsSidebar-tab { width: 56px; height: 60px; background: hsl(197,20%,93%); position: relative; border-top: 1px solid hsl(202,12%,87%); @extend .u-clickable; pointer-events: auto; display: flex; align-items: center; justify-content: center; } .tabsSidebar-tab.is-changed:before { position: absolute; content: ''; left: -3px; width: 6px; height: 6px; top: 50%; margin-top: -3px; border-radius: 100%; background: hsl(198,19%,72%); box-shadow: 0 0 0 2px hsl(210,17%,98%); } .tabsSidebar-tab:first-child { @include bidi-style(border-top-left-radius, 8px, border-top-right-radius, 0); border-top: none; } .tabsSidebar-tab:last-child { @include bidi-style(border-bottom-left-radius, 8px, border-bottom-right-radius, 0); } .tabsSidebar-tab .icon { width: 24px; height: 24px; fill: hsl(197,19%,78%); } .tabsSidebar-tab.active { .tabsSidebar-tab-count { background: hsl(206,7%,37%); &:after { border-right-color: hsl(206,7%,37%); } &.tabsSidebar-tab-count--info { background: hsl(203,65%,55%); opacity: 1; &:after { border-right-color: hsl(203,65%,55%); } } &.tabsSidebar-tab-count--success { background: hsl(145,51%,45%); opacity: 1; &:after { border-right-color: hsl(145,51%,45%); } } &.tabsSidebar-tab-count--warning { background: hsl(45,98%,63%); opacity: 1; &:after { border-right-color: hsl(45,98%,63%); } } &.tabsSidebar-tab-count--danger { background: hsl(11,85%,48%); opacity: 1; &:after { border-right-color: hsl(11,85%,48%); } } } .icon { fill: hsl(206,7%,37%); } } .tabsSidebar-tab-count { position: absolute; left: 9px; top: 5px; background: hsl(197,19%,78%); width: 16px; height: 13px; text-align: center; border-radius: 2px; font-size: 9px; line-height: 14px; color: hsl(197,20%,93%); [data-tab="organization"] & { left: 7px; + .icon { margin-left: 3px; } } + .icon { margin-top: 6px; } &:after { content: ""; position: absolute; top: 100%; right: 20%; border-bottom: 3px solid transparent; border-right: 5px solid hsl(197,19%,78%); } &.tabsSidebar-tab-count--info { background: hsl(203,65%,55%); opacity: .5; &:after { border-right-color: hsl(203,65%,55%); } } &.tabsSidebar-tab-count--success { background: hsl(145,51%,45%); opacity: .5; &:after { border-right-color: hsl(145,51%,45%); } } &.tabsSidebar-tab-count--warning { background: hsl(45,98%,63%); opacity: .5; &:after { border-right-color: hsl(45,98%,63%); } } &.tabsSidebar-tab-count--danger { background: hsl(11,85%,48%); opacity: .5; &:after { border-right-color: hsl(11,85%,48%); } } } .sidebar .text-muted { color: hsl(198,22%,82%); } .alert { padding: 10px 15px 8px; border-radius: 3px; color: white; border: none; &.alert--info { background: hsl(203,65%,55%); } &.alert--success { background: hsl(145,51%,45%); } &.alert--warning { color: hsl(45,98%,17%); background: hsl(45,98%,63%); } &.alert--danger { background: hsl(11,85%,48%); } } .tags, .links { margin: 20px 0; } .tags { margin-top: 10px; } .userNotifications label + .btn { margin-top: 1px; } .list { padding: 0; margin-bottom: 5px; } .list-title { margin-top: 7px; margin-bottom: 4px; text-transform: uppercase; color: hsl(198,19%,84%); display: block; font-size: 12px; font-weight: normal; letter-spacing: 0.05em; } .list-item { display: flex; align-items: center; color: hsl(206,7%,28%); border-bottom: 1px solid hsl(240,4%,95%); } .list-item-name { flex: 1; padding: 4px 1px; } .list-item-delete { padding: 0 10px; @include bidi-style(margin-right, -3px, margin-left, 0); display: flex; align-items: center; justify-content: center; align-self: stretch; @extend .u-clickable; .icon { width: 9px; height: 9px; fill: hsl(0,0%,82%); } } .list-item-delete:hover .icon { fill: hsl(1,77%,47%); } .ticket-id { color: white; background: hsl(198,19%,72%); font-size: 11px; border-radius: 7px; padding: 0 5px; @include bidi-style(margin-right, 2px, margin-left, 0); } .attributeBar { height: 60px; background: white; transition: margin 250ms; flex-shrink: 0; padding: 10px; display: flex; justify-content: flex-end; &.is-closed { margin-bottom: -60px; } &--border { border-top: 1px solid hsl(0,0%,94%); } } .newTicket { padding: 14px 34px; } .newTicket .sidebar { width: 290px; } .newTicket .form-control { border-color: hsl(0,0%,90%); &:focus, &.focus { border-color: hsl(200,71%,59%); } } .newTicket .article-form-top { margin-top: 15px; } .newTicket--chatTicket { flex: 1; display: flex; padding: 0; height: 100%; & > .icon { position: absolute; top: 50%; transform: translateY(-50%) translateX(-50%); } & > .box { width: calc(50% - 47px); margin: 34px; } .chatHistory { display: flex; flex-direction: column; } .boxFade { width: 94px; top: 34px; height: 100%; position: absolute; @include bidi-style(margin-left, -34px, margin-right, 0); z-index: 1; } } .box { background: white; margin: 20px 0; border: 1px solid #e6e6e6; padding: 20px 24px; } .box.box--newTicket { max-width: 1080px; margin-left: auto; margin-right: auto; } .box .page-header { text-align: center; margin-bottom: 12px; } .box--paper { background-image: linear-gradient(transparent 30px, hsl(0,0%,93%) 31px); background-size: 100% 31px; line-height: 31px; padding-top: 31px; padding-bottom: 31px; h1, h2, h3 { margin: 0; line-height: inherit; } h3:not(:first-child) { margin-top: 31px; } } .box h1 { margin-top: 10px; margin-bottom: 12px; color: hsl(60,1%,34%); flex: 1; } .box h2 { margin-top: 12px; } .box .two-columns { margin-left: -4px; margin-right: -4px; } .box .two-columns .column { margin-left: 4px; margin-right: 4px; width: calc(50% - 8px); } .box-controls { margin-top: 20px; display: flex; align-items: center; } .box--yellow { background: hsl(47,100%,93%); border-color: hsl(47,100%,75%); color: hsl(47,20%,67%); h1, h2 { color: hsl(47,3%,28%); } } .box-progress { display: flex; align-items: center; justify-content: center; } .box-progress-title { color: hsl(47,3%,28%); } .box-progress-body { flex: 1; @include bidi-style(margin-left, 24px, margin-right, 0); display: flex; align-items: center; justify-content: center; progress { width: 100%; } } .horizontal > .box { margin-top: 4px; margin-bottom: 4px; & + .box { border-left-width: 0; } } .formset-inset { margin: 34px -24px 24px; padding: 19px 24px 24px; background: hsl(197,20%,93%); border-top: 1px solid hsl(0,0%,90%); border-bottom: 1px solid hsl(0,0%,90%); } .type-tabs .tab { height: 40px; line-height: 42px; padding: 0 12px 0 12px; list-style: none; } .type-tabs .tab-icon { width: 16px; height: 16px; fill: #ccc; vertical-align: top; @include bidi-style(margin-right, 9px, margin-left, 0); margin-top: 11px; transform: scale(1.2); } .type-tabs .tab.active .tab-icon { fill: white; } .token { padding: 0 0 0 10px; margin: 0 5px 6px 0; height: 26px; color: white; border-radius: 3px; background: hsl(198,19%,72%); border: none; float: none; display: inline-flex; align-items: center; cursor: default; max-width: 100%; &.active { background: $highlight-color; .close, .token-close { opacity: .5; } } } /* selector needs to be stronger than .token-input in order to override input[type=text] */ .tokenfield .token-input { vertical-align: top; padding: 0 10px 7px 5px; margin: 0; min-width: 60px; height: 32px; display: inline-block; border: none; box-shadow: none; outline: none; flex: 1; &:focus { box-shadow: none; } } .tokenfield .token ~ .token-input { padding: 0 5px 7px 0; } .token-label { padding: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .tokenfield.form-control { padding: 7px 7px 0; height: auto; display: flex; flex-wrap: wrap; } .token .close, .token-close { margin: 0; padding: 0 9px 0 6px; font-family: inherit; font-weight: 100; font-size: 28px; line-height: 1; color: white; text-shadow: none; opacity: .3; outline: none; height: auto; @extend %clickable; } .token .close:hover, .token-close:hover { opacity: .5; } /* allow/show autocomplete in modal dialog */ .ui-autocomplete.ui-widget-content { @extend .zIndex-9; position: absolute; } .ui-menu { background: hsl(240,9%,19%); border: none; color: white; font-family: inherit; font-size: inherit; .ui-menu-item { padding: 9px 15px; list-style-image: none; &:not(:first-child) { box-shadow: 0 1px rgba(255,255,255,.13) inset; } &.ui-state-focus { margin: 0; border: none; background: hsl(205,90%,60%); color: inherit; + li { box-shadow: none; } } } } .drox { color: hsl(60,1%,74%); } .drox .drox-header { padding-bottom: 2px; margin-bottom: 16px; border-bottom: 1px solid hsl(240,4%,95%); } .drox a.create { margin-top: 2px; display: inline-block; } .drox .form-group { margin-bottom: 22px; } .drox .drox-body p:first-child { margin-top: 20px; } .newTicket .templates { border-bottom: 1px solid hsl(240,4%,95%); padding-bottom: 14px; } .templates-manage fieldset { margin: 0; } .template-attributes { margin: 17px 0 19px; } .template-attribute { height: 24px; line-height: 25px; @include bidi-style(padding-left, 10px, padding-right, 0); margin-bottom: 2px; font-size: 13px; color: hsl(198,11%,59%); background: hsl(197,20%,93%); border: 1px solid hsl(0,0%,90%); border-radius: 3px; } .template-attribute .key { text-transform: uppercase; @include bidi-style(margin-right, 3px, margin-left, 0); } .template-attribute .value { @include bidi-style(margin-left, 3px, margin-right, 0); } .template-attribute .delete { padding: 0 7px; margin-top: 4px; line-height: 19px; font-size: 28px; font-weight: 300; opacity: .4; } .customer-name { color: hsl(60,1%,34%); } .customer-email { margin-top: 5px; margin-bottom: 20px; display: block; } .table.user-list { tr:hover .switchView { visibility: visible; } td .list { margin-top: -4px; } .switchView { visibility: hidden; display: block; text-overflow: ellipsis; overflow: hidden; } // lame hardcoded width of this "View from users' perspective" button td // i can't find another way to do it. It's not flexible. It sucks .actionCell { width: 250px; } } .switchBackToUser { display: flex; align-items: center; background: hsl(200,87%,45%); color: #fff; height: 45px; padding: 0 17px; /*top: -45px !important;*/ border-bottom: 5px solid hsl(205,90%,60%); } .switchBackToUser-icon { width: 19px; height: 18px; } .switchBackToUser-text { @include bidi-style(margin-left, 10px, margin-right, 0); } .switchBackToUser-close { width: 40px; height: 40px; @include bidi-style(margin-right, -10px, margin-left, 0); display: flex; align-items: center; justify-content: center; svg { fill: white; } } .modal { position: fixed; @extend .zIndex-9; } .modal-dialog { width: auto; max-width: 660px; margin-top: 35px; margin-bottom: 35px; &.wizard { margin: 35px auto; } } .modal--veryLarge .modal-dialog { max-width: 990px; } .modal--large .modal-dialog { max-width: 740px; } .modal--small .modal-dialog { max-width: 440px; } .modal-dialog.wizard { max-width: 460px; } .modal-backdrop { position: fixed; } .modal-content { border-radius: 0; border: 1px solid hsl(0,0%,90%); box-shadow: none; color: hsl(60,1%,34%); } .modal-header { padding: 30px 23px 23px; border: none; } .modal-header h1 { text-align: center; } .modal-close { padding: 23px; position: absolute; right: 0; @include rtl(right, auto); @include rtl(left, 0); top: 0; @extend .u-clickable; } .modal-close .icon-diagonal-cross { opacity: 0.18; } .modal-body { padding: 0 23px; h2:first-child { margin-top: 0; } p:first-child, .alert.hidden:first-child + p { margin-top: 0; } .table > thead > tr > th { background: hsl(197,20%,93%); } } .modal-footer { padding: 23px 23px 20px; border: none; display: flex; @include rtl(text-align, left); } .modal-leftFooter, .modal-centerFooter, .modal-rightFooter { display: flex; align-items: center; /* because of btn--text btn--subtle being thinner than the rest */ flex: 1; } .modal.modal--local { display: block; padding: 0 40px; .modal-backdrop { background: hsla(210,17%,93%,.55); opacity: 1; } .modal-dialog { box-shadow: 0 0 40px hsla(210,17%,40%,.34); } } .caret { position: absolute; top: 50%; margin-top: -3px; right: 10px; } .dropdown-backdrop { position: fixed; @extend .zIndex-5; // has to be behind dropdown-menu (dropdown-menu is also zIndex-5 but behind dropdown-backdrop in dom) } .dropdown-menu { @extend .zIndex-5; // has to be behind modal windows and beneath notifications (popover) position: absolute; margin: 0; padding: 0; min-width: 100%; color: white; text-transform: initial; letter-spacing: 0; background: hsl(234,10%,19%); border-radius: 0; border: none; box-shadow: none; overflow: hidden; @include rtl(text-align, right); overscroll-behavior: contain; } .dropdown-menu kbd { background: none; color: inherit; padding: 2px 5px; @include bidi-style(margin-left, 7px, margin-right, 0); line-height: 1; vertical-align: baseline; opacity: 0.5; } .dropdown-toggle { display: flex; align-items: center; @extend .u-clickable; } .dropdown-icon { width: 16px; height: 16px; opacity: 0.39; } .dropdown-menu.dropdown-menu--light { background: white; color: hsl(198,19%,72%); } .dropdown-menu.dropdown-menu--light > li { color: hsl(202,70%,49%); &.dropdown-header { color: hsl(198,19%,72%); } } .dropdown-menu.dropdown-menu--light > li > a:hover { color: #2594d4; background: rgba(0,0,0,.05); } .dropdown-menu.dropdown-menu--light li:hover { background: none; } .dropdown-menu.dropdown-menu--light li.is-active { color: white; } .dropdown ul { margin: 0; padding: 0; } .dropdown li, .dropup li { height: 39px; line-height: 39px; padding: 0 15px; @extend %clickable; white-space: nowrap; &:focus { outline: none; } } .dropdown li:not(:first-child) { box-shadow: 0 1px rgba(255,255,255,.13) inset; } .dropdown li:hover, .dropdown li.is-active { background: hsl(205,90%,60%); + li { box-shadow: none; } } .dropdown-menu > li.danger:hover, .dropdown-menu > li.danger.is-active { background: hsl(0,65%,55%); } .dropdown-menu > li.create:hover, .dropdown-menu > li.create.is-active { background: hsl(145,51%,45%); } .dropdown-menu > li > a { color: inherit; padding: 0 15px; margin: 0 -15px; line-height: inherit; } .dropdown-menu > li > a:hover { color: inherit; background: none; } .dropdown-menu > li > a span { display: block; } .dropdown-menu .badge { @include bidi-style(padding-left, 10px, padding-right, 0); } .dropdown.dropdown--actions { li { line-height: initial; height: auto; padding: 11px 15px; display: flex; align-items: center; word-break: break-all; } .dropdown-iconSpacer, .dropdown-selectedSpacer { display: flex; align-items: center; } .dropdown-iconSpacer { width: 25px; } .dropdown-selectedSpacer { width: 34px; @include bidi-style(margin-left, auto, margin-right, 0); justify-content: flex-end; opacity: 0; .icon { fill: white; } &.is-selected { opacity: 1; } } a { @extend .u-clickable; display: flex; flex: 1; padding: 0 18px; } .icon { fill: currentColor; } } .dropdown.dropdown--wide { li { padding-top: 12px; padding-bottom: 12px; } } li.dropdown-header { line-height: 34px; height: 30px; } .dropdown-menu--has-submenu { overflow: hidden; background: none; ul { background: hsl(234,10%,19%); } } .dropdown-submenu { position: absolute; top: 0; left: 0; width: 100%; } .dropdown.dropdown--actions .dropdown-controls { @extend .u-clickable; display: flex; &:not(:hover):not(.is-active) { background: hsl(206,7%,28%); } .icon { fill: white; @include bidi-style(margin-right, 10px, margin-left, 0); flex-shrink: 0; } } .dropdown-title { flex-shrink: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .dropdown-detail { opacity: 0.5; } .recipientList, .recipientList-organizationMembers { list-style: none; padding: 0; } .recipientList-entry { display: flex; align-items: center; @extend .u-clickable; } .recipientList-entry .recipientList-iconSpacer { width: 20px; @include bidi-style(margin-left, -5px, margin-right, 0); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .recipientList-icon { width: 16px; height: 16px; fill: white; opacity: 0.2; } .recipientList--new, .recipientList-entry:hover, .recipientList-entry.is-active { .recipientList-icon { opacity: 1; } } .recipientList-name { color: white; @include bidi-style(margin-left, 10px, margin-right, 0); flex: 1; @extend .u-textTruncate; } .recipientList-status { opacity: 0.5; margin: 0 10px; flex-shrink: 1; &:last-child { margin-right: 0; } } .recipientList-arrow { fill: white; opacity: 0.39; } .recipientList-entry:hover .recipientList-arrow { opacity: 1; } .recipientList-detail { opacity: 0.5; } .recipientList-icon.plus { @include bidi-style(margin-left, 13px, margin-right, 0); } .recipientList--new { background: hsl(145,51%,45%); } .dropdown .recipientList--new:hover { background: hsl(147,52%,43%); } .recipientList-controls, .recipientList-controls:hover { @extend .u-clickable; padding: 0 10px !important; background: hsl(206,7%,28%); & + li { box-shadow: 0 1px rgba(255,255,255,.13) inset; } } .recipientList-organizationMembers { position: absolute; top: 0; left: 0; right: 0; } .userInfo-avatar { float: right; @include rtl(float, left); position: relative; } .organizationInfo-avatar { @extend .userInfo-avatar; @include bidi-style(padding, 18px 0 0 18px, padding, 18px 18px 0 0); } .userList { list-style: none; padding: 0; .userList-entry { margin: 10px 0; display: flex; align-items: center; &:last-child { margin-bottom: 0; } } .userList-name { @extend .u-textTruncate; @include bidi-style(margin-left, 7px, margin-right, 0); } } .checkbox.form-group .checkbox { margin-top: 0; margin-bottom: 15px; height: auto; padding-top: 3px; padding-bottom: 3px; background: hsl(210,17%,98%); } .checkbox.form-group label { padding: 0 2px; cursor: default; } .checkbox, .radio { &.form-group .controls label { padding: 2px 0; font: inherit; font-size: 13px; margin-bottom: 0; color: inherit; text-transform: inherit; letter-spacing: 0; @extend .u-clickable; } } .userSearch-label { margin-top: 11px; @include bidi-style(margin-right, 10px, margin-left, 0); } .userSearch .tab:not(.active) { background: white; } .userSearch { margin: 0 0 20px; } .userSearch .tabs { margin: 0; } .nav { list-style: none; padding: 0; margin: 0; } .nav a { padding: 10px 15px; display: block; } .nav-tabs { display: flex; margin: 10px -20px 20px; padding: 0 20px 0 21px; /* margin-left: -1px */ @include rtl(padding, 0 21px 0 20px); position: relative; } .nav-tabs li { margin: 0; color: hsl(0,0%,70%); border: 1px solid hsl(0,0%,90%); margin-left: -1px; background: white; position: relative; &:first-child { border-radius: 7px 0 0 7px; @include rtl(border-radius, 0 7px 7px 0); } &:last-child { border-radius: 0 7px 7px 0; @include rtl(border-radius, 7px 0 0 7px); } &:only-child { border-radius: 7px; } &.active { color: white; background: hsl(206,7%,28%); } a { padding: 10px 24px 8px; color: inherit; color: inherit; } } .tab-content { h2:first-child { margin-top: 0; } } .settings-entry { margin-bottom: 42px; max-width: 700px; } .setting-controls { margin-top: 14px; display: flex; justify-content: flex-end; } .form-item .form-group { margin-bottom: 0; } .form-item .form-group + .form-group { margin-top: 15px; } .form-item + .btn { @include bidi-style(margin-left, 23px, margin-right, 0); } .scrollPageHeader { @extend .zIndex-5; display: flex; align-items: center; background: white; border-bottom: 1px solid hsl(0,0%,78%); height: 64px; top: 0; left: 0; right: 0; padding: 0 22px; position: absolute; transform: translateY(-64px); } .scrollPageHeader small { color: hsl(198,19%,72%); } .scrollPageHeader .ticket-title { max-width: initial; padding: 0; min-width: 0; flex: 1; } .scrollPageHeader h1 { font-size: 19px; margin: 0 15px; @extend .u-textTruncate; } .wizard { margin: auto; // makes sure that the wizard is scrollable } .wizard-logo { fill: white; @include bidi-style(margin-left, -25px, margin-right, 0); margin-bottom: 5px; } .wizard-slide { @extend .hero-unit; display: flex; flex-direction: column; width: 400px; padding-bottom: 18px; margin-bottom: 20px; &.wizard-slide--large { width: 460px; } } .wizard h2 { text-align: center; border-bottom: 1px solid rgba(0,0,0,.13); padding-bottom: 8px; margin-bottom: 16px; & + p { margin-top: 0; } } .wizard-body { flex: 1; padding-bottom: 15px; .form-control { min-width: 0; } } .wizard-controls { display: flex; margin-top: 15px; height: 39px; } .wizard-buttonList { margin-top: 15px; min-width: 200px; } p + .wizard-buttonList, label + .wizard-buttonList { margin-top: 5px; } .wizard-loadingText { text-align: center; margin: 0; } .wizard-loadingText .loading { vertical-align: middle; @include bidi-style(margin-right, 10px, margin-left, 0); } .wizard-aside { padding-top: 15px; text-align: center; border-top: 1px solid rgba(0,0,0,.13); } .setup.wizard .wizard-body { min-height: 140px; & > p:first-child { margin-top: 0; } } .setup.wizard .logo-preview, .branding .logo-preview { display: block; height: 0; max-width: 200px; max-height: 100px; &[src=""] { visibility: hidden; } + .logo-preview-placeholder { height: 100px; color: hsl(0,0%,60%); background: hsl(0,0%,95%); margin-bottom: 10px; display: flex; align-items: center; justify-content: center; } } .setup.wizard .logo-preview:not([src=""]) { margin: 0 auto 15px; height: auto; + .logo-preview-placeholder { display: none; } } .setup.wizard .base-outbound-settings { margin-top: 15px; } .branding .logo-preview:not([src=""]) { margin: 20px auto 12px; height: auto; + .logo-preview-placeholder { display: none; } } .branding.login { padding: 24px 24px 0px; } .import.wizard .wizard-slide { min-height: 300px; } .import-source { border-radius: 5px; border: 1px solid rgba(0,0,0,.13); height: 50px; margin: 5px 0; @extend .u-clickable; } .input-feedback { position: absolute; @include bidi-style(padding-left, 10px, padding-right, 0); right: 1px; top: 1px; bottom: 1px; width: 52px; border-radius: 0 5px 5px 0; background: linear-gradient(to right, rgba(255,255,255,0), white 33%); } .input-feedback .icon { display: none; } .input-feedback[data-state=loading] .loading.icon, .input-feedback[data-state=error] .icon-error, .input-feedback[data-state=success] .icon-checkmark { display: block; } .progressTable { width: 100%; margin: 0 auto; } .progressTable td { padding: 8px; overflow: auto; width: 33%; } .progressTable tr:not(:last-child) { border-bottom: 1px solid #eee; } .progressTable td:first-child { text-align: end; } .progressTable progress { width: 100%; min-width: 60px; display: block; } .progressTable .icon-checkmark { @include bidi-style(margin-left, 10px, margin-right, 0); opacity: 0; } .progressTable tr.is-done .icon-checkmark { opacity: 1; } .channelList { flex: 1; display: flex; flex-direction: column; background: white; border-radius: 2px; margin: 5px 0 20px; } .channelList, .channelList-controls, .channelList-controlEntry { border: 1px solid hsl(251,6%,90%); } .channelList-entry { display: flex; cursor: default; padding: 5px 8px; &:not(:last-child) { border-bottom: 1px solid hsl(251,6%,90%); } } .channelList-label { margin: 0 10px; flex: 1; & > * { @extend .u-textTruncate; } } .channelList-status { font-size: 12px; color: #999; } .channelList-placeholder { display: flex; align-items: center; justify-content: center; flex: 1; color: #999; } .channelList-controls { margin-top: auto; display: flex; background: hsl(251,6%,92%); border-left: none; border-right: none; border-bottom: none; } .channelList-controlEntry { display: flex; justify-content: center; width: 26px; height: 26px; border-left: none; border-top: none; border-bottom: none; position: relative; [data-toggle=dropdown] { position: relative; } .icon { opacity: 0.8; } } .avatar-gallery { display: flex; flex-wrap: wrap; } .avatar-holder { display: inline-block; position: relative; margin: 0 32px 32px 0; border-radius: 100%; box-shadow: 0 0 0 4px white; .avatar { @extend .u-clickable; &.is-active { box-shadow: 0 0 0 4px hsl(200,71%,59%); } } } .avatar--new { background: hsl(145,51%,45%); @extend .u-clickable; } .avatar-holder .avatar-delete { position: absolute; right: -15px; top: -15px; width: 40px; height: 40px; pointer-events: none; visibility: hidden; background: white; display: flex; align-items: center; justify-content: center; border-radius: 100%; box-shadow: 0 1px 5px rgba(0,0,0,.05); @extend .u-clickable; svg { opacity: 0.5; fill: hsl(234,10%,19%); } &:hover svg { opacity: 1; } } .avatar-holder:hover .avatar-delete { visibility: visible; pointer-events: auto; } .camera video { position: absolute; visibility: hidden; pointer-events: none; } .camera-preview { display: block; margin: 0 auto; } .camera-flash { @extend .fit; background: white; opacity: 0; @extend .u-unclickable; } .camera-flash.is-active { animation: flash 500ms ease; } @keyframes flash { 0% { opacity: 0 } 50% { opacity: 1 } 100% { opacity: 0 } } .fileUpload { position: relative; overflow: hidden; } .fileUpload input { position: absolute; right: 0; top: 0; font-size: 118px; margin: 0; padding: 0; @extend %clickable; opacity: 0; &:focus + label { text-decoration: underline; } } .imagePreview img { max-width: 100%; max-height: 100%; } .imageCropper p { margin: 0; } .imageCropper-holder { height: 340px; margin: 15px 0; } .imageCropper-image { max-width: 100%; max-height: 100%; opacity: 0; } .imageCropper-preview { width: 40px; height: 40px; border-radius: 100%; overflow: hidden; margin: 0 10px; background: hsl(210,17%,98%); } .cropper-container { /* prevent cropper.js's centering – we center via flex */ left: 0 !important; } .profile { padding: 60px; overflow: auto; flex: 1; h1 { margin: 18px 0 0; } .tabs { margin-top: 2px; margin-bottom: 25px; } } .profile-window { color: hsl(60,1%,34%); background: white; max-width: 660px; margin: 0 auto; border: 1px solid #e6e6e6; } .profile-section { padding: 20px 50px; &.profile-memberSection { margin-bottom: 10px; } } .profile-section:not(:last-child) { border-bottom: 1px solid #f2f2f2; } .profile-action { @include bidi-style(margin-right, -20px, margin-left, 0); .dropdown-toggle { margin-top: -20px; @include bidi-style(margin-right, -30px, margin-left, 0); margin-bottom: 8px; padding: 26px 40px 2px; } label { margin: 0 8px; padding: 0; cursor: inherit; } } .profile-subtitle { font-size: 16px; @extend .u-highlight; } .profile-details { @include bidi-style(margin-left, -50px, margin-right, 0); } .profile-ticketsPlaceholder { flex: 1; margin: 8px 0 22px; color: hsl(209,28%,74%); .stat-icon { margin-bottom: 10px; } } .profile-detailsEntry { margin: 8px 0; @include bidi-style(padding-left, 50px, padding-right, 0); width: 50%; } .profile-detailsEntry label { padding: 0; margin-bottom: 2px; display: block; } .profile-organizationMember { @extend .profile-detailsEntry; display: flex; align-items: center; .avatar { @include bidi-style(margin-right, 10px, margin-left, 0); } } .profile-ticketLists { display: flex; margin: 0 -25px; } .profile-ticketList { display: flex; flex-direction: column; flex: 1 1 50%; padding: 0 25px; min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */ .tasks { margin-bottom: 10px; display: flex; flex-basis: auto; flex-direction: column; } } .profile .frequency.stat-widget { height: 230px; .stat-bars { height: 100px; } } .profile-organizationIcon { display: flex; align-items: center; justify-content: center; width: 80px; height: 80px; background: hsl(0,0%,87%); border-radius: 100%; opacity: 0.4; svg { width: 32px; height: 32px; } } .highlighter { display: flex; } [data-highlightcolor=Yellow]::selection { background: #f7e7b2; } .highlight-Yellow { background: #f7e7b2; } [data-highlightcolor=Green]::selection { background: #bce7b6; } .highlight-Green { background: #bce7b6; } [data-highlightcolor=Blue]::selection { background: #b3ddf9; } .highlight-Blue { background: #b3ddf9; } [data-highlightcolor=Pink]::selection { background: #fea9c5; } .highlight-Pink { background: #fea9c5; } [data-highlightcolor=Purple]::selection { background: #eac5ee; } .highlight-Purple { background: #eac5ee; } .translationOverview { tbody > tr > td { padding: 20px 0 0 10px; } .translationOverview-itemContainer { padding: 10px 0 10px 10px; } .translationOverview-source { width: 25%; } .translationOverview-target { width: 35%; } .translationOverview-initial { width: 25%; } .translationOverview-item { width: 100%; } } .overview-navigator { display: flex; } .overview-navigator .pagination { margin: 0 0 0 10px; @include rtl(margin, 0 10px 0 0); } .empty-space { padding: 50px; svg { width: 200px; height: auto; } .empty-space-tagline { color: hsl(198, 19%, 72%); margin-top: 15px; font-size: 18px; } } .horizontal-filters { margin-bottom: 20px; } .horizontal-filter { display: flex; align-items: center; background: hsl(197,20%,93%); padding: 7px; border: 1px solid hsl(198,19%,86%); &:first-child { border-radius: 4px 4px 0 0; @include rtl(border-radius, 0 0 4px 4px); } &:last-child { border-radius: 0 0 4px 4px; @include rtl(border-radius, 4px 4px 0 0); } &:only-child { border-radius: 4px; } & + .horizontal-filter { border-top: none; } .controls, input { @include bidi-style(margin-right, 5px, margin-left, 0); } .controls-label { margin-left: 0; margin-right: 5px; @include rtl(margin-left, 5px); @include rtl(margin-right, 0); } select, input { border-color: hsl(198,19%,86%); } input[type=text] { width: auto; } } .horizontal-filter-body { display: flex; align-items: center; flex: 1; } .horizontal-filter-value { flex-shrink: 0; // lower the min-width of url input fields (normally 400px) so that it fits in input[type=url] { min-width: 200px; } } .output-input { margin: 0 0 14px; output { margin: 0; border-radius: 3px 3px 0 0; border: 1px solid hsl(200,71%,59%); border-bottom: none; display: block; } input { flex: 1; border-top-left-radius: 0; border-top-right-radius: 0; border-top: none; &:focus { border-color: hsl(0,0%,90%); box-shadow: none; } } } output { border-bottom: 1px solid hsl(200,71%,59%); margin: 14px 0 0; display: inline-block; padding: 10px 12px 8px; background: hsl(201,62%,93%); &[disabled] { border-color: hsl(358,53%,56%); background: hsl(358,53%,76%); } } .zammad-switch { overflow: hidden; width: 50px; height: 30px; border-radius: 15px; &.zammad-switch--small { width: 40px; height: 24px; border-radius: 12px; } &.zammad-switch--dark { label { background: hsl(234,10%,5%); } label:before { background: hsl(233,10%,10%); } label:after { background: hsl(234,10%,19%); } } &.zammad-switch--green input:checked + label { background: $supergood-color; } } .zammad-switch label { margin: 0; position: relative; width: 100%; height: 100%; border-radius: inherit; outline: none; background: white; box-shadow: 0 0 0 1px rgba(0,0,0,.1) inset; transition: background 200ms; @extend %clickable; &:after { content: ""; position: absolute; transition: transform 200ms; width: calc(60% - 2px); height: calc(100% - 2px); border-radius: inherit; left: 1px; top: 1px; box-shadow: 0 0 0 1px rgba(0,0,0,.05), 0 1px 3px rgba(0,0,0,.2); background: white; @include rtl(transform, translateX(70%)); } } .zammad-switch input { display: none; &[disabled] + label { cursor: not-allowed; background: hsl(210,17%,93%); border-color: hsl(210,10%,85%); } &:focus + label { transition: none; background: hsl(200,71%,59%); box-shadow: 0 0 0 3px hsl(201,62%,90%); } &:checked + label { background: hsl(200,71%,59%); } &:checked + label:after { transform: translateX(70%); @include rtl(transform, none); } } .controls .zammad-switch { margin-top: 10px; } .horizontal-filter-text { @include bidi-style(margin-right, 5px, margin-left, 0); } .filter-controls { display: flex; align-items: center; } .filter-control { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; box-shadow: 0 0 0 1px hsl(198,19%,86%) inset; border-radius: 100%; background: white; @extend %clickable; &:hover:not(.is-disabled) { border-color: hsl(198,19%,83%); .icon { fill: black; } } &.is-disabled { cursor: not-allowed; opacity: 0.5; } &:not(:last-child) { @include bidi-style(margin-right, 7px, margin-left, 0); } .icon { fill: hsl(0,0%,61%); } } .filter-preview { margin: 20px 0; } .day-name { text-align: center; margin-bottom: 0; color: inherit; white-space: nowrap; } .form-group.day-time { padding: 10px 5px 6px; margin: 0; label { text-align: center; } .form-control { margin-left: auto; margin-right: auto; margin-bottom: 8px; } } .settings-row { margin-bottom: 10px; } .settings-list { border-collapse: separate; color: hsl(60,1%,34%); background: white; table-layout: auto; margin-bottom: 20px; word-break: break-all; word-wrap: break-word; &.is-invalid { border-radius: 3px; box-shadow: 0 0 0 2px white, 0 0 0 4px hsl(0,90%,70%); } &.settings-list--fixed { table-layout: fixed; } &.settings-list--stretch { width: 100%; } &:not(:last-child) { margin-bottom: 34px; } &.settings-list--toggleRow { tr:not(.is-active) td > *:not(.dont-grey-out) { opacity: 0.33; } } &.settings-list--toggleColumn { td:not(.is-active) * { opacity: 0.33; } } &.settings-list--placeholder { th { text-align: center; border-bottom: 1px solid hsl(198, 18%, 86%); border-radius: 4px; } td { height: 40px; } } th, td { vertical-align: top; padding: 10px; border: 1px solid hsl(198,18%,86%); } th { font-weight: normal; text-transform: uppercase; font-size: 12px; line-height: 17px; letter-spacing: 0.05em; background: hsl(197,20%,93%); border-bottom: none; word-break: normal; } td.empty-cell { border-top: none; } .settings-list-separator { @include bidi-style(border-left-width, 3px, border-right-width, 1px); } .text-muted { text-transform: none; font-size: 10px; letter-spacing: 0; color: hsl(198,18%,72%); } .inline-label { color: inherit; } .btn--table { padding-top: 0; padding-bottom: 0; } th:not(:last-child), td:not(:last-child) { @include bidi-style(border-right-width, 0, border-left-width, 1px); } tr:not(:last-child) td, & > tbody:not(:last-child) tr td { border-bottom: none; } tr.is-inactive td { color: hsl(199,19%,80%); text-decoration: line-through; } & > thead > tr > th:first-child { @include bidi-style(border-top-left-radius, 4px, border-top-right-radius, 0); } & > thead > tr > th:last-child { @include bidi-style(border-top-right-radius, 4px, border-top-left-radius, 0); } & > tbody:last-child > tr:last-child > td:first-child, & > tfoot:last-child > tr:last-child > td:first-child { @include bidi-style(border-bottom-left-radius, 4px, border-bottom-right-radius, 0); } & > tbody:last-child > tr:last-child > td:last-child, & > tfoot:last-child > tr:last-child > td:last-child { @include bidi-style(border-bottom-right-radius, 4px, border-bottom-left-radius, 0); } p { margin: 0; } .settings-list-action-cell { @extend .u-clickable; text-align: center; color: hsl(198,19%,72%); background: hsl(197,22%,96%); line-height: 1; padding-top: 11px; padding-bottom: 9px; &:hover { color: hsl(60,1%,34%); } .icon { fill: currentColor; vertical-align: top; margin-top: -2px; } } .settings-list-controls { padding: 0; & > div { display: flex; min-height: 40px; } .settings-list-control { display: flex; align-items: center; justify-content: center; padding: 0 10px; } } .settings-list-control-cell { padding: 5px; & ~ .settings-list-row-control { padding-bottom: 7px; } } } .select-boxes { display: flex; align-items: flex-start; } .select-box { display: flex; flex-wrap: wrap; margin: 0 14px; background: white; color: hsl(60,1%,34%); @include bidi-style(border-right, 1px solid hsl(198,18%,86%), border-left, none); border-bottom: 1px solid hsl(198,18%,86%); border-radius: 3px 3px 0 0; &.select-box--vertical .select-value { flex-basis: 100%; } &.select-box--four .select-value { flex-basis: 25%; } &.select-box--six .select-value { flex-basis: calc(100%/6); } .select-box-header { @extend label; margin: 0; color: inherit; display: flex; align-items: center; padding: 8px 10px; flex-basis: 100%; white-space: nowrap; background: hsl(197, 20%, 93%); @include bidi-style(border-left, 1px solid hsl(198,18%,86%), border-right, none); border-top: 1px solid hsl(198,18%,86%); border-radius: 3px 3px 0 0; } .select-value { display: flex; align-items: center; justify-content: center; min-height: 34px; background-clip: content-box; box-shadow: 1px 0 hsl(198,18%,86%) inset, 0 1px hsl(198,18%,86%) inset; @extend %clickable; &.is-selected { background-color: $highlight-color; box-shadow: none; color: white; } } &:first-child { @include bidi-style(margin-left, 0, margin-left, 14px); } &:last-child { @include bidi-style(margin-right, 0, margin-left, 14px); } } .searchableSelect { position: relative; .form-control { padding-right: 37px; @include bidi-style(padding-right, 37px, padding-left, 12px); } .searchableSelect-main { position: relative; line-height: 19px; &.form-control--small ~ .searchableSelect-autocomplete { top: 7px; left: 9px; } } .searchableSelect-shadow { position: absolute; left: -9999px; } .dropdown-menu { margin-top: -3px; max-width: 100%; } &-option-text { flex: 1 1 0%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; display: block; & + .icon { @include bidi-style(margin-left, 10px, margin-right, 0); } } &.dropdown li { &:hover:not(.is-active) { background: none; } &.is-hidden { display: none; } } li:not(.is-active):hover + li { box-shadow: 0 1px rgba(255,255,255,.13) inset; } .searchableSelect-autocomplete { position: absolute; left: 13px; top: 11px; right: 37px; white-space: nowrap; overflow: hidden; display: flex; pointer-events: none; white-space: pre; line-height: 19px; } .searchableSelect-autocomplete-invisible { color: transparent; } .searchableSelect-autocomplete-visible { color: hsl(0,0%,33%); background: hsl(201,61%,90%); } .loading.icon { position: absolute; right: 11px; top: 11px; display: none; } &.is-loading { .loading.icon { display: block; } .icon-arrow-down { display: none; } } } .action { background: white; border: 1px solid hsl(199,44%,93%); color: hsl(206,7%,28%); box-shadow: 0 2px hsl(210,7%,94%); display: flex; flex-wrap: wrap; padding: 10px; margin-bottom: 17px; &.is-inactive { background: none; box-shadow: none; position: relative; top: 2px; border-color: hsl(199,44%,94%); & > *:not(.action-controls) { opacity: 0.33; } } .action-flow { display: flex; flex-wrap: wrap; &.action-flow--noWrap { flex-wrap: nowrap; } &.action-flow--row { flex-basis: 100%; } } .action-separator { width: 1px; background: hsl(0,0%,97%); margin: 0 10px; } .table { margin-left: -9px; margin-right: -9px; } h2 { margin-bottom: 0; .action-form-status .icon { margin-top: 0; } } .action-block, .action-controls, .action-row { padding: 10px; h2:first-child, h3:first-child { margin-top: 0; } } .action-block { &.action-block--flex { flex: 1; } } .action-row { flex-basis: 100%; } h3 { color: hsl(0,0%,60%); margin-top: 0; } .action-label { background: hsl(197,20%,93%); border: 1px solid hsl(197,20%,88%); align-self: flex-start; padding: 5px 10px; margin: -4px -25px -5px auto; @include rtl(margin, -4px auto -5px -25px); color: hsl(197,16%,65%); cursor: default; } .action-flow-icon { width: 15px; height: 24px; margin-top: 16px; /* compensate for h3 height */ margin-left: 20px; margin-right: 20px; fill: hsl(198,17%,89%); } .action-controls { display: flex; @include bidi-style(margin-left, auto, margin-right, 0); align-self: flex-end; .btn { align-self: center; } } } /* datepicker resets some css it potentially inherits when its rendered inside a table */ .datepicker { background: hsl(234,10%,19%); color: white; padding: 0 14px 11px; position: absolute; min-width: 0; cursor: default; &.datepicker-rtl { left: auto; right: 0; } .datepicker-switch { padding: 12px 0; font-weight: bold; font-size: 15px; text-align: center; letter-spacing: 0; line-height: 1.5; text-transform: none; @extend %clickable; &:hover { background: hsl(240,10%,14%); } } th { background: none; } th, td { border: none; } .next, .prev { padding: 12px 9px 0; vertical-align: top; text-align: center; @extend %clickable; .icon { margin-top: 4px; fill: white; opacity: 1; } &:hover { background: hsl(240,10%,14%); } } .dow { text-transform: uppercase; font-size: 12px; padding: 5px 5px 0; text-align: center; } .day { width: 27px; height: 26px; border-radius: 14px; padding: 1px 0 0 !important; } .month, .year { float: left; width: 23%; margin: 1%; padding: 5px 0; } .day, .month, .year { text-align: center; font-size: 15px; &:not(.disabled) { @extend %clickable; } &.disabled, &.old, &.new { color: hsl(0,0%,33%); } &.today { background: hsl(240,10%,4%); } &.focused { box-shadow: 0 0 0 1px hsl(207,82%,64%) inset; } &.active { color: white; background: hsl(207,82%,64%); } } .today { text-align: center; padding: 2px 0 0; @extend %clickable; &.hidden { display: none; } } } #notify { position: absolute; top: 10px; left: 0; right: 0; @extend .zIndex-10; pointer-events: none; .noty_bar { max-width: 500px; text-align: center; margin: 0 auto 10px; .noty_message { pointer-events: auto; display: inline-block; background: rgba(0,0,0,.75); padding: 10px 15px 8px; border-radius: 3px; color: white; } .icon { vertical-align: middle; margin-top: -3px; @include bidi-style(margin-right, 5px, margin-left, 0); } a { color: inherit; text-decoration: none; } } } .animated { animation-duration: 300ms; animation-fill-mode: both; } .fadeInDown { animation-name: fadeInDown; } @keyframes fadeInDown { from { opacity: 0; transform: translate3d(0, -50%, 0); } to { opacity: 1; transform: none; } } .fadeOutDown { animation-name: fadeOutDown; } @keyframes fadeOutDown { from { opacity: 1; } to { opacity: 0; transform: translate3d(0, 50%, 0); } } .loading-placeholder { display: flex; align-items: center; justify-content: center; height: 133px; .loading-text { @include bidi-style(margin-left, 10px, margin-right, 0); } } .chat { background: white; flex: 1; display: flex; flex-direction: column; padding: 0 14px; .page-header { margin: 15px 6px 5px; } } .chat-workspace { display: flex; flex-wrap: wrap; padding: 0 0 10px; margin: 0 -4px; flex: 1; } .chat-window { flex: 0 1 0; overflow: hidden; display: flex; flex-direction: column; color: hsl(0,0%,33%); transition: all 500ms; transform: scale(0); &.is-open { flex: 1 0 25%; transform: scale(1); padding: 10px; } &.is-offline { .chat-controls { opacity: 0.5; } } } .chat-header { background: hsl(210,8%,95%); border: 1px solid hsl(0,0%,91%); border-radius: 3px 3px 0 0; height: 43px; line-height: 13px; flex-shrink: 0; display: flex; justify-content: space-between; align-items: center; } .chat-name { margin: 0 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; .status-badge { @include bidi-style(margin-left, 2px, margin-right, 0); vertical-align: middle; height: 100%; } } .chat-status { @include bidi-style(margin-left, 10px, margin-right, 0); &[data-status='online'] .icon { fill: $supergood-color; } &[data-status='offline'] .icon { fill: $superbad-color; } .icon-status-modified-inner-circle, .icon-status-modified-outer-circle { display: none; } &.is-modified { .icon-status { display: none; } .icon-status-modified-inner-circle, .icon-status-modified-outer-circle { display: block; } } } .chat-status-holder { position: relative; } .chat-disconnect, .chat-close { @extend %clickable; padding: 10px; .btn { min-width: 80px; justify-content: center; } } .chat-disconnect.is-hidden, .chat-close.is-hidden { display: none; } .chat-scroll-hint { background: hsl(210,8%,98%); display: flex; align-items: center; border: 1px solid hsl(0,0%,91%); border-top: none; padding: 7px 10px 6px; color: hsl(0,0%,60%); @extend %clickable; &.is-hidden { display: none; } .icon { fill: hsl(210,5%,78%); @include bidi-style(margin-right, 8px, margin-left, 0); } } .chat-body-holder { flex: 1; background: hsl(210,17%,98%); font-size: 13px; line-height: 18px; overflow: auto; @include bidi-style(border-right, 1px solid hsl(0,0%,91%), border-left, none); border-left: 1px solid hsl(0,0%,91%); position: relative; } .chat-body-holder--standalone { border-top: 1px solid hsl(0,0%,91%); border-bottom: 1px solid hsl(0,0%,91%); } .chat-body { padding: 10px; display: flex; flex-direction: column; align-items: flex-start; position: absolute; width: 100%; top: 0; left: 0; } .chat-timestamp, .chat-notice-message { font-size: 12px; color: hsl(10,5%,78%); margin-bottom: 4px; align-self: center; } .chat-timestamp-label { font-weight: 500; } .chat-message { max-width: 90%; background: white; padding: 6px 12px; border-radius: 16px; margin-bottom: 4px; } .chat-message--customer.chat-message--new { font-weight: bold; } .chat-message--agent { @include bidi-style(margin-left, auto, margin-right, 0); background: hsl(199,44%,93%); align-self: flex-end; } .chat-message--agent + .chat-message--customer, .chat-message--customer + .chat-message--agent { margin-top: 10px; } .chat-status-message { align-self: center; background: hsl(197,18%,92%); padding: 6px 12px; margin: 4px 0 10px; border-radius: 3px; } .chat-loader { @include bidi-style(margin-right, -4px, margin-left, 0); .icon { width: 12px; height: 12px; fill: hsl(0,0%,90%); @include bidi-style(margin-left, -4px, margin-right, 0); vertical-align: middle; animation: ease-in-out load-fade 600ms infinite alternate; } .icon + .icon { animation-delay: .13s; } .icon + .icon + .icon { animation-delay: .26s; } } @keyframes load-fade { from { opacity: .5; transform: scale(0.6); } 67% { opacity: 1; transform: scale(1); } } .chat-footer { border-top: 1px solid hsl(0,0%,93%); padding: 10px 10px 0; display: flex; justify-content: center; align-self: stretch; margin: 0 -10px; } .chat-controls { display: flex; align-items: flex-start; padding: 10px; border: 1px solid hsl(0,0%,91%); border-radius: 0 0 3px 3px; flex-shrink: 0; } .chat-input { @include bidi-style(margin-right, 10px, margin-left, 0); flex-grow: 1; position: relative; .form-control { overflow: auto; max-height: 50vh; } } .browser { margin: 0 0 20px; border: 1px solid hsl(0,0%,90%); border-radius: 5px; position: relative; transition: 500ms; width: 100%; } .browser-body { position: relative; overflow: hidden; height: 450px; width: 100%; .browser-website { position: relative; height: 100%; transform-origin: left top; overflow: hidden; &.is-picking { cursor: image_url("/assets/images/eyedropper.gif") 0 15, auto; } } img { vertical-align: bottom; } } .browser-head { display: flex; padding: 10px; border-bottom: 1px solid hsl(0,0%,90%); .browser-input { position: relative; flex: 1; @include bidi-style(margin-right, 10px, margin-left, 0); input { min-width: 0; @include bidi-style(padding-right, 40px, padding-left, 12px); &.is-loading + .loading.icon { display: block; } } .loading.icon { position: absolute; @include bidi-style(right, 11px, left, auto); top: 10px; display: none; } } .help-block { margin-bottom: -3px; } .browser-control { width: 39px; display: flex; align-items: center; justify-content: center; fill: hsl(202,8%,28%); @extend %clickable; } } .chat-demo { .zammad-chat { position: absolute; transform-origin: right bottom; transition: 500ms; user-select: none; will-change: transform; &.is-fullscreen { right: 0; width: 100%; height: 100%; border-radius: 0 !important; .zammad-chat-header { border-radius: 0 !important; box-shadow: 0 -1px rgba(0,0,0,.1), 0 -1px rgba(0,0,0,.1) inset, 0 1px 1px rgba(0,0,0,.13); } .zammad-chat-controls { border-radius: 0 0 5px 5px; } } &.no-transition { transition: none; } .zammad-chat-welcome { display: block !important; } .zammad-chat-header-icon-open { display: inline !important; } .zammad-chat-agent-status, .zammad-chat-header-icon-close, .zammad-chat-agent { display: none !important; } &.is-open { .zammad-chat-agent { display: block !important; } .zammad-chat-header-icon-close, .zammad-chat-agent-status { display: inline-block !important; } .zammad-chat-welcome, .zammad-chat-header-icon-open { display: none !important; } } &.is-fullscreen { height: 100%; .zammad-chat-controls { border-radius: 0 0 5px 5px; } } } .zammad-chat-header { pointer-events: auto; } .chat-demo-animationHolder { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; animation: slide-up 500ms; pointer-events: none; } } @keyframes slide-up { from { transform: translateY(100%); } } .select-tabs { display: flex; border: 1px solid hsla(206,100%,3%,0.08); border-radius: 3px; .tab { height: 39px; padding-top: 11px; &.is-selected { background: linear-gradient(hsla(202,50%,20%,0.1), hsla(202,50%,20%,.03)); } } } .todo { position: relative; display: block; .icon { fill: hsl(0,0%,80%); vertical-align: middle; margin: -2px 3px 0 0; } &.is-done .icon { fill: $supergood-color; } } .columnSelect { height: 234px; display: flex; padding: 0; line-height: 22px; .columnSelect-shadow { display: none; } .columnSelect-column--selected { flex: 1 1 66%; overflow: auto; padding: 7px; } .columnSelect-column--sidebar { flex-basis: 33%; flex-shrink: 1; border-left: 1px solid hsl(198,4%,90%); background: hsl(198,4%,96%); display: flex; flex-direction: column; min-width: 0; .columnSelect-option:hover { background: hsl(198,4%,91%); } } .columnSelect-pool { flex: 1 1 auto; overflow: auto; padding: 7px; } .columnSelect-option { @extend %clickable; padding: 0 5px; border-radius: 1px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; &:hover { background: hsl(198,4%,96%); } } .is-hidden, .is-filtered { display: none; } } .columnSelect-search { position: relative; .icon { fill: hsl(198,4%,85%); } .icon-magnifier { left: 7px; top: 5px; position: absolute; } .columnSelect-search-clear { position: absolute; right: 0; top: 0; padding: 5px 7px; @extend %clickable; line-height: 1; } input { width: 100%; padding: 2px 30px 1px; border: none; outline: none; border-bottom: 1px solid hsl(198,4%,90%); background: none; } } .pulsate-animation { animation: pulsate 667ms ease-in-out infinite alternate; } .richtext-content { &[contenteditable] { &, &:hover, &:focus { background: none; } } table, pre, blockquote { margin-bottom: 16px; } & > p, & > table, & > pre, & > blockquote { &:first-child { margin-top: 6px; } &:last-child { margin-bottom: 6px; } } table { table-layout: auto; display: block; width: 100%; overflow: auto; word-break: break-all; col { width: auto; } } blockquote { padding: 8px 12px; border-left: 5px solid #eee; } code { border: none; background: hsl(0,0%,97%); white-space: pre-wrap; } pre { padding: 12px 15px; font-size: 13px; line-height: 1.45; background: hsl(0,0%,97%); white-space: pre-wrap; border-radius: 3px; border: none; overflow: auto; } hr { margin-top: 6px; margin-bottom: 6px; border: 0; border-top: 1px solid #dfdfdf; } } .detail-search-header { margin: 20px 0 32px; } .batch-overlay { @extend .fit, .zIndex-1; color: white; text-transform: uppercase; text-align: center; letter-spacing: 0.07em; font-size: 0.95em; line-height: 1.3; display: none; will-change: display; cursor: grabbing; overflow: hidden; user-select: none; &.is-visible { display: block; } &-backdrop { @extend .fit; background: hsla(231,20%,8%,.8); opacity: 0; will-change: opacity; } &-circle { margin: 35px auto; background: hsl(207,7%,29%); border-radius: 100%; border: 4px solid white; width: 140px; height: 140px; padding: 20px 0; display: flex; flex-direction: column; justify-content: space-around; align-items: center; position: absolute; left: 0; right: 0; will-change: transform, opacity; visibility: hidden; &--top { top: 0; } &--bottom { bottom: 0; } .icon { fill: currentColor; opacity: 1; } &-label { width: 50%; margin: 10px 0; } } &-cancel { background: hsla(0,0%,100%,.21); background-clip: padding-box; border: 2px dashed hsla(0,0%,100%,.3); border-radius: 8px; padding: 28px; margin: auto 200px; position: absolute; left: 0; right: 0; max-height: 100px; visibility: hidden; will-change: opacity; display: flex; justify-content: center; align-items: center; } &-box { background: hsl(232,9%,17%); width: 100%; position: absolute; visibility: hidden; will-change: opacity, transition; &-inner { margin: 37px 25px; display: flex; flex-wrap: wrap; justify-content: center; overflow: hidden; } } &-assign { padding-bottom: 50px; bottom: -50px; // extra space for bounce animation .batch-overlay-box-inner { max-height: 310px; @media screen and (min-height: 1000px) { max-height: 465px; } } &-group { box-shadow: 0 0 35px hsla(0,0%,0%,.5); .batch-overlay-box-inner { margin-top: 42px; margin-bottom: 10px; } &-name { position: absolute; left: 0; right: 0; top: 0; padding: 11px 13px 8px; line-height: 1; position: absolute; background: hsl(233,10%,15%); } } &-entry { padding: 13px; width: 116px; height: 155px; &.is-hovered { .avatar { border-color: $highlight-color; transform: scale(1.05); } } .avatar { border: 4px solid hsl(231,5%,30%); margin-bottom: 10px; box-sizing: content-box; transition: transform 120ms; cursor: inherit; z-index: 1; } &-name { max-height: 34px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; word-break: break-word; } &-detail { color: gray; } } } &-macro { padding-top: 50px; top: -50px; // extra space for bounce animation .batch-overlay-box-inner { max-height: 146px; margin: 24px 12px; @media screen and (min-height: 800px) { max-height: 292px; } } &-entry { margin: 13px; border: 4px solid hsl(231,5%,30%); background: hsl(233,9%,24%); border-radius: 100%; height: 120px; width: 120px; padding: 13px 13px 10px; display: flex; align-items: center; justify-content: center; font-size: 0.9em; &.is-hovered { border-color: $highlight-color; transform: scale(1.05); } } } } .batch-dragger { position: absolute; left: 0; top: 0; pointer-events: none; width: 250px; height: 40px; will-change: transform; &-item { position: absolute; left: 0; width: 100%; background: hsl(200,100%,91%); border-radius: 4px; display: flex; align-items: center; padding: 11px 0 9px 11px; box-shadow: 0 0 10px hsla(0,0%,0%,.28); will-change: transform; a { color: inherit; } td { display: block; padding: 0 12px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; flex-shrink: 0; &:nth-child(3) { flex-shrink: 1; } &:nth-child(n+4) { display: none; } } } &-counter { position: absolute; right: -8px; bottom: -8px; width: 25px; height: 25px; border-radius: 99px; z-index: 1; color: white; background: $highlight-color; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 10px hsla(0,0%,0%,.28); will-change: transform; &:empty { display: none; } } } /* ---------------- layout classes ---------------- */ .horizontal, .vertical, .centered { display: flex; } .horizontal.hide, .vertical.hide, .centered.hide { display: none; } .horizontal { flex-direction: row; } .horizontal.reverse { flex-direction: row-reverse; } .vertical { flex-direction: column; } .vertical.reverse { flex-direction: column-reverse; } .vertical.stretch > *, .horizontal.stretch > * { flex: 1; } .relative { position: relative; } .fit { position: absolute; top: 0; left: 0; bottom: 0; right: 0; } body.fit { margin: 0; } .scrollable { overflow: auto; } .flex { flex: 1; } /* Firefox minimum content bugfix https://github.com/philipwalton/flexbugs#1-minimum-content-sizing-of-flex-items-not-honored "By default, flex items won’t shrink below their minimum content size (the length of the longest word or fixed-size element). To change this, set the min-width or min-height property." */ .flex-shrink-horizontal { min-width: 0; } .flex-full { flex: 1 1 100%; } .flex-auto { flex: 1 1 auto; } .flex-shrink { flex: 0 1 auto; } .flex-none { flex: none; } .flex-1 { flex: 1; } .flex-2 { flex: 2; } .flex-3 { flex: 3; } .justify-start { justify-content: flex-start; } .justified { justify-content: center; } .justify-end { justify-content: flex-end; } .justify-between { justify-content: space-between; } .start { align-items: flex-start; } .center { align-items: center; } .baseline { align-items: baseline; } .centered { align-items: center; justify-content: center; } .end { align-items: flex-end; } .self-start { align-self: start; } .self-end { align-self: end; } .span-width { flex-basis: 100%; } .two-columns, .three-columns, .wrap { flex-wrap: wrap; } .two-columns > .column { width: 50%; } .three-columns > .column { width: 33.33%; } .align-left { @include bidi-style(margin-right, auto, margin-left, 0); } .align-right { @include bidi-style(margin-left, auto, margin-right, 0); } .space-left { @include bidi-style(margin-left, 10px, margin-right, 0); } .space-right { @include bidi-style(margin-right, 10px, margin-left, 0); } .align-center { margin-left: auto; margin-right: auto; } .half-spacer { width: 5px; height: 5px; } .spacer { width: 10px; height: 10px; } .double-spacer { width: 20px; height: 20px; } .flex-spacer { flex: 1; } span.is-disabled { cursor: not-allowed; opacity: 0.5; }