Chatwoot/app/javascript/dashboard/assets/scss/_mixins.scss

247 lines
4.8 KiB
SCSS
Raw Normal View History

@import '~dashboard/assets/scss/variables';
@import '~widget/assets/scss/mixins';
$spinner-before-border-color: rgba(255, 255, 255, 0.7);
//borders
@mixin border-nil() {
border-color: transparent;
border: 0;
}
@mixin thin-border($color) {
border: 1px solid $color;
}
@mixin custom-border-bottom($size, $color) {
border-bottom: $size solid $color;
}
@mixin custom-border-top($size, $color) {
border-top: $size solid $color;
}
@mixin border-normal() {
border: 1px solid $color-border;
}
2019-10-27 13:58:02 +00:00
@mixin border-normal-left() {
border-left: 1px solid $color-border;
}
2019-10-27 13:58:02 +00:00
@mixin border-normal-top() {
border-top: 1px solid $color-border;
}
2019-10-27 13:58:02 +00:00
@mixin border-normal-right() {
border-right: 1px solid $color-border;
}
2019-10-27 13:58:02 +00:00
@mixin border-normal-bottom() {
border-bottom: 1px solid $color-border;
}
@mixin border-light() {
border: 1px solid $color-border-light;
}
2019-10-27 13:58:02 +00:00
@mixin border-light-left() {
border-left: 1px solid $color-border-light;
}
2019-10-27 13:58:02 +00:00
@mixin border-light-top() {
border-top: 1px solid $color-border-light;
}
2019-10-27 13:58:02 +00:00
@mixin border-light-right() {
border-right: 1px solid $color-border-light;
}
2019-10-27 13:58:02 +00:00
@mixin border-light-bottom() {
border-bottom: 1px solid $color-border-light;
}
// background
@mixin background-gray() {
background: $color-background;
}
@mixin background-light() {
background: $color-background-light;
}
@mixin background-white() {
background: $color-white;
}
// input form
@mixin ghost-input() {
box-shadow: none;
border-color: transparent;
2019-10-27 13:58:02 +00:00
&:active,
&:hover,
&:focus {
border-color: transparent;
box-shadow: none;
}
}
// flex-layout
@mixin space-between() {
2019-10-20 08:04:19 +00:00
display: flex;
justify-content: space-between;
}
@mixin space-between-column() {
@include space-between;
2019-10-20 08:04:19 +00:00
flex-direction: column;
}
2019-10-27 13:58:02 +00:00
@mixin space-between-row() {
@include space-between;
2019-10-20 08:04:19 +00:00
flex-direction: row;
}
@mixin flex-shrink() {
2019-11-01 08:14:03 +00:00
flex: 0 0 auto;
max-width: 100%;
}
@mixin flex-weight($value) {
// Grab flex-grow for older browsers.
$flex-grow: nth($value, 1);
// 2009
@include prefixer(box-flex, $flex-grow, webkit moz spec);
// 2011 (IE 10), 2012
@include prefixer(flex, $value, webkit moz ms spec);
}
// full height
@mixin full-height() {
height: 100%;
}
2019-10-27 13:58:02 +00:00
@mixin round-corner() {
border-radius: 1000px;
}
@mixin scroll-on-hover() {
overflow: hidden;
&:hover {
overflow-y: auto;
}
}
@mixin horizontal-scroll() {
overflow-y: auto;
}
@mixin elegant-card() {
@include normal-shadow;
border-radius: $space-small;
}
@mixin color-spinner() {
@keyframes spinner {
to {
transform: rotate(360deg);
}
}
&::before {
animation: spinner .9s linear infinite;
border: 2px solid $spinner-before-border-color;
border-radius: 50%;
border-top-color: lighten($color-woot, 10%);
box-sizing: border-box;
content: '';
height: $space-medium;
left: 50%;
margin-left: -$space-one;
margin-top: -$space-one;
position: absolute;
top: 50%;
width: $space-medium;
}
}
// --------------------------------------------------------
// arrows
// --------------------------------------------------------
// $direction: top, left, right, bottom, top-left, top-right, bottom-left, bottom-right
// $color: hex, rgb or rbga
// $size: px or em
// @example
// .element{
// @include arrow(top, #000, 50px);
// }
@mixin arrow($direction, $color, $size) {
display: block;
height: 0;
width: 0;
content: '';
@if $direction == 'top' {
border-bottom: $size solid $color;
border-left: $size solid transparent;
border-right: $size solid transparent;
}
@else if $direction == 'right' {
border-bottom: $size solid transparent;
border-left: $size solid $color;
border-top: $size solid transparent;
}
@else if $direction == 'bottom' {
border-left: $size solid transparent;
border-right: $size solid transparent;
border-top: $size solid $color;
}
@else if $direction == 'left' {
border-bottom: $size solid transparent;
border-right: $size solid $color;
border-top: $size solid transparent;
}
@else if $direction == 'top-left' {
border-right: $size solid transparent;
border-top: $size solid $color;
}
@else if $direction == 'top-right' {
border-left: $size solid transparent;
border-top: $size solid $color;
}
@else if $direction == 'bottom-left' {
border-bottom: $size solid $color;
border-right: $size solid transparent;
}
@else if $direction == 'bottom-right' {
border-bottom: $size solid $color;
border-left: $size solid transparent;
}
}
@mixin text-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
@mixin three-column-grid($column-one-width: 25.6rem,
$column-three-width: 25.6rem) {
width: 100%;
height: 100%;
display: grid;
grid-template-columns: minmax($column-one-width, 6fr) 10fr minmax($column-three-width, 6fr);
}