Files
mixtape/zero.Web.UI/Sass/Modules/Buttons/_button.scss
T
2020-05-20 13:15:20 +02:00

315 lines
4.6 KiB
SCSS

button
{
@extend %font;
color: var(--color-fg);
outline: 0 solid transparent !important;
display: inline-block;
&:visited, &:link
{
text-decoration: none;
}
&:focus, &:active
{
outline: 0 solid transparent !important;
}
&[disabled]
{
cursor: default;
pointer-events: none;
}
}
button::-moz-focus-inner
{
border: 0;
}
.ui-button
{
position: relative;
display: inline-flex;
justify-content: space-between;
align-items: center;
color: var(--color-primary-fg);
background: var(--color-primary);
padding: 0 20px;
height: 42px;
border-radius: 3px;
font-size: 14px;
font-weight: 700;
margin: 0;
-webkit-backface-visibility: hidden;
-webkit-appearance: none;
cursor: pointer;
user-select: none;
border: none;
will-change: transform, background, border-color;
transition: background .2s, transform .2s, opacity .2s;
overflow: hidden;
outline: 0 solid transparent !important;
@extend %font;
&:hover
{
opacity: 0.9;
}
&:focus, &:active
{
outline: none !important;
}
&:active
{
opacity: 1;
}
&[disabled]
{
cursor: default;
opacity: 0.7;
pointer-events: none;
}
&.type-outline
{
height: 43px;
background: var(--color-box);
color: var(--color-fg);
border: 1px solid var(--color-line);
box-sizing: border-box;
position: relative;
top: 1px;
}
&.type-secondary
{
background: var(--color-secondary);
}
&.type-big
{
height: 50px;
padding: 0 30px;
}
&.type-light
{
background: var(--color-bg-mid);
color: var(--color-fg);
border: none;
}
&.type-danger
{
background: var(--color-negative);
color: white;
border: none;
}
&.type-white
{
background: var(--color-box);
color: var(--color-fg);
border: none;
box-shadow: var(--color-shadow-short);
}
&.type-blank
{
background: transparent;
color: var(--color-fg);
border: none;
padding: 0 16px;
}
&.type-block
{
display: flex;
width: 100%;
}
& + .ui-button
{
margin-left: 15px;
}
.ui-button-icon, .ui-button-caret
{
margin-left: 18px;
margin-right: -3px;
position: relative;
font-size: var(--font-size-l);
top: -1px;
/*color: var(--color-fg-mid);*/
}
&.caret-left
{
flex-direction: row-reverse;
.ui-button-icon, .ui-button-caret
{
margin-right: 12px;
margin-left: -7px;
}
}
&.has-ellipsis .ui-button-text:after
{
content: '...';
}
}
.ui-button-state
{
position: absolute;
left: 50%;
top: 50%;
display: flex;
align-items: center;
justify-content: center;
width: 16px;
height: 16px;
margin-left: -8px;
margin-top: -8px;
text-align: center;
}
.ui-button-progress
{
width: 100%;
height: 100%;
z-index: 2;
border-radius: 40px;
border: 2px solid rgba(white, 0.2);
border-left-color: var(--color-bg);
opacity: 1;
will-change: transform;
animation: rotating .5s linear infinite;
transition: opacity .25s ease;
.type-light &, .type-blank &
{
border-color: var(--color-bg-mid);
border-left-color: var(--color-fg);
}
}
@keyframes rotating
{
from
{
-webkit-transform: rotate(0);
transform: rotate(0)
}
to
{
-webkit-transform: rotate(1turn);
transform: rotate(1turn)
}
}
// states
.ui-button.has-state:not(.state-default)
{
> :not(.ui-button-state)
{
visibility: hidden;
}
}
.ui-dot-button
{
@extend .ui-button;
background: transparent;
padding: 0;
height: 28px;
width: 36px;
text-align: center;
justify-content: center;
color: var(--color-text);
&:hover
{
background: var(--color-bg-mid);
}
.ui-button-icon
{
font-size: var(--font-size-xl);
margin: 0;
}
}
.ui-icon-button
{
@extend .ui-button;
background: var(--color-bg-mid);
padding: 0;
height: 32px;
width: 32px;
border-radius: 16px;
text-align: center;
justify-content: center;
font-size: var(--font-size-l);
&:hover
{
opacity: 1;
}
.ui-button-icon
{
color: var(--color-fg);
margin: 0;
top: 0;
}
}
.ui-select-button
{
olor: var(--color-fg);
display: inline-flex;
align-items: center;
}
.ui-select-button-icon
{
width: 50px;
height: 50px;
line-height: 50px !important;
border-radius: var(--radius);
background: var(--color-bg-mid);
color: var(--color-fg);
text-align: center;
font-size: 16px;
margin-right: 16px;
}
.ui-select-button-content
{
display: inline-flex;
flex-direction: column;
}
.ui-select-button-label
{
}
.ui-select-button-description
{
color: var(--color-fg-mid);
margin-top: 3px;
font-size: var(--font-size-xs);
}