123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- @import './variables.scss';
- @import "./animation.scss";
- @import './splitButtonGroup.scss';
- $module: #{$prefix}-button;
- .#{$module} {
- @include shadow-0;
- @include font-size-regular;
- height: $height-button_default;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- margin: 0;
- cursor: pointer;
- user-select: none;
- border: $width-button-border $color-button_primary-border-default solid;
- border-radius: $radius-button;
- padding-left: $spacing-button_default-paddingLeft;
- padding-right: $spacing-button_default-paddingRight;
- padding-top: $spacing-button_default-paddingTop;
- padding-bottom: $spacing-button_default-paddingTop;
- font-weight: $font-button-fontWeight;
- outline: none;
- vertical-align: middle;
- white-space: nowrap;
- // the specificity of `.#{$module}:focus-visible` may lower than `reset.css` default `focus-visible` style
- // so we add a class at the same level
- &.#{$module}-primary,
- &.#{$module}-secondary,
- &.#{$module}-tertiary,
- &.#{$module}-warning,
- &.#{$module}-danger {
- &:focus-visible {
- outline: $width-button-outline solid $color-button_primary-outline-focus;
- }
- }
- &-danger {
- background-color: $color-button_danger-bg-default;
- color: $color-button_danger-text-default;
- transition: background-color $transition_duration-button_danger-bg $transition_function-button_danger-bg $transition_delay-button_danger-bg,
- border $transition_duration-button_danger-border $transition_function-button_danger-border $transition_delay-button_danger-border;
- transform: scale(var($transform-scale-button_danger));
- &:hover {
- background-color: $color-button_danger-bg-hover;
- }
- &:active {
- background-color: $color-button_danger-bg-active;
- }
- &.#{$module}-light,
- &.#{$module}-borderless {
- color: $color-button_danger_borderless-text-default;
- }
- &:not(.#{$module}-borderless):not(.#{$module}-light):focus-visible {
- outline: $width-button-outline solid $color-button_danger-outline-focus;
- }
- }
- &-warning {
- background-color: $color-button_warning-bg-default;
- color: $color-button_warning-text-default;
- transition: background-color $transition_duration-button_warning-bg $transition_function-button_warning-bg $transition_delay-button_warning-bg,
- border $transition_duration-button_warning-border $transition_function-button_warning-border $transition_delay-button_warning-border;
- transform:scale(var($transform_scale-button_warning));
- &:hover {
- background-color: $color-button_warning-bg-hover;
- }
- &:active {
- background-color: $color-button_warning-bg-active;
- }
- &.#{$module}-light,
- &.#{$module}-borderless {
- color: $color-button_warning_borderless-text-default;
- }
- &:not(.#{$module}-borderless):not(.#{$module}-light):focus-visible {
- outline: $width-button-outline solid $color-button_warning-outline-focus;
- }
- }
- &-tertiary {
- background-color: $color-button_tertiary-bg-default;
- color: $color-button_tertiary-text-default;
- transition: background-color $transition_duration-button_tertiary-bg $transition_function-button_tertiary-bg $transition_delay-button_tertiary-bg,
- border $transition_duration-button_tertiary-border $transition_function-button_tertiary-border $transition_delay-button_tertiary-border;
- transform:scale(var($transform_scale_button_tertiary));
- &:hover {
- background-color: $color-button_tertiary-bg-hover;
- }
- &:active {
- background-color: $color-button_tertiary-bg-active;
- }
- &.#{$module}-light,
- &.#{$module}-borderless {
- color: $color-button_tertiary_solid-text-default;
- }
- }
- &-primary {
- background-color: $color-button_primary-bg-default;
- color: $color-button_primary-text-default;
- transition: background-color $transition_duration-button_primary-bg $transition_function-button_primary-bg $transition_delay-button_primary-bg,
- border $transition_duration-button_primary-border $transition_function-button_primary-border $transition_delay-button_primary-border;;
- transform:scale(var($transform_scale-button_primary));
- &:not(.#{$module}-borderless):not(.#{$module}-light):hover {
- background-color: $color-button_primary-bg-hover;
- }
- &:not(.#{$module}-borderless):not(.#{$module}-light):active {
- background-color: $color-button_primary-bg-active;
- }
- &.#{$module}-light,
- &.#{$module}-borderless {
- color: $color-button_primary_borderless-text-default;
- }
- }
- &-secondary {
- background-color: $color-button_secondary-bg-default;
- outline-color: $color-button_secondary-border-default;
- color: $color-button_secondary-text-default;
- transition: background-color $transition_duration-button_secondary-bg $transition_function-button_secondary-bg $transition_delay-button_secondary-bg,
- border $transition_duration-button_secondary-border $transition_function-button_secondary-border $transition_delay-button_secondary-border;
- transform:scale(var($transform_scale-button_secondary));
- &:hover {
- background-color: $color-button_secondary-bg-hover;
- }
- &:active {
- background-color: $color-button_secondary-bg-active;
- }
- &.#{$module}-light,
- &.#{$module}-borderless {
- color: $color-button_secondary_borderless-text-default;
- }
- }
- &-disabled {
- color: $color-button_disabled_solid-text-default;
- background-color: $color-button_disabled-bg-default;
- &:not(.#{$module}-borderless):not(.#{$module}-light):hover {
- color: $color-button_disabled-text-hover;
- background-color: $color-button_disabled-bg-hover;
- }
- cursor: not-allowed;
- &.#{$module}-light,
- &.#{$module}-borderless {
- color: $color-button_disabled-text-default;
- }
- }
- &-borderless {
- background-color: transparent;
- border: $width-button_borderless-border $color-button_borderless-border-default solid;
- transition:background-color $transition_duration-button_borderless-bg $transition_function-button_borderless-bg $transition_delay-button_borderless-bg;
- transform:scale(var($transform_scale-button_borderless));
- &:not(.#{$module}-disabled):hover {
- background-color: $color-button_borderless-bg-hover;
- border: $width-button_borderless-border $color-button_borderless-border-hover solid;
- }
- &:not(.#{$module}-disabled):active {
- background-color: $color-button_borderless-bg-active;
- border: $width-button_borderless-border $color-button_borderless-border-active solid;
- }
- }
- &-light {
- background-color: $color-button_light-bg-default;
- border: $width-button_light-border $color-button_light-border-default solid;
- transition: background-color $transition_duration-button_light-bg $transition_function-button_light-bg $transition_delay-button_light-bg,
- border $transition_duration-button_light-border $transition_function-button_light-border $transition_delay-button_light-border;
- transform:scale(var($transform_scale-button_light));
- &:not(.#{$module}-disabled):hover {
- background-color: $color-button_light-bg-hover;
- border: $width-button_light-border $color-button_light-border-hover solid;
- }
- &:not(.#{$module}-disabled):active {
- background-color: $color-button_light-bg-active;
- border: $width-button_light-border $color-button_light-border-active solid;
- }
- }
- &-size-small {
- height: $height-button_small;
- padding-top: $spacing-button_small-paddingTop;
- padding-bottom: $spacing-button_small-paddingBottom;
- padding-left: $spacing-button_small-paddingLeft;
- padding-right: $spacing-button_small-paddingRight;
- }
- &-size-large {
- height: $height-button_large;
- padding-top: $spacing-button_large-paddingTop;
- padding-bottom: $spacing-button_large-paddingBottom;
- padding-left: $spacing-button_large-paddingLeft;
- padding-right: $spacing-button_large-paddingRight;
- }
- &-block {
- width: 100%;
- }
- &-group {
- & > .#{$module} {
- margin: 0;
- padding-left: 0;
- padding-right: 0;
- border-radius: 0;
- .#{$module}-content {
- padding-left: $spacing-button_default-paddingLeft;
- padding-right: $spacing-button_default-paddingRight;
- }
- &-size-large {
- .#{$module}-content {
- padding-left: $spacing-button_large-paddingLeft;
- padding-right: $spacing-button_large-paddingRight;
- }
- }
- &-size-small {
- .#{$module}-content {
- padding-left: $spacing-button_small-paddingLeft;
- padding-right: $spacing-button_small-paddingRight;
- }
- }
- &.#{$module}-with-icon-only {
- padding-left: 0;
- padding-right: 0;
- .#{$module}-content {
- padding-left: $spacing-button_iconOnly_default-paddingLeft;
- padding-right: $spacing-button_iconOnly_default-paddingRight;
- }
- &.#{$module}-size {
- &-small {
- .#{$module}-content {
- padding-left: $spacing-button_iconOnly_small-paddingLeft;
- padding-right: $spacing-button_iconOnly_small-paddingRight;
- }
- }
- &-large {
- .#{$module}-content {
- padding-left: $spacing-button_iconOnly_large-paddingLeft;
- padding-right: $spacing-button_iconOnly_large-paddingRight;
- }
- }
- }
- }
- &:first-child {
- border-top-left-radius: $radius-button_group;
- border-bottom-left-radius: $radius-button_group;
- }
- &:not(:last-child) {
- .#{$prefix}-button-content {
- border-right: $width-button_group-border $color-button_group-border-default solid;
- }
- }
- &:last-child {
- border-top-right-radius: $radius-button_group;
- border-bottom-right-radius: $radius-button_group;
- }
- }
- }
- }
- @import './rtl.scss';
|