diff --git a/package.json b/package.json index 52858275..26831cd9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@soramitsu/soramitsu-js-ui", - "version": "0.6.2", + "version": "0.6.3", "private": false, "publishConfig": { "registry": "https://nexus.iroha.tech/repository/npm-soramitsu-private/" diff --git a/src/components/Button/SButton.vue b/src/components/Button/SButton.vue index e2cecedc..6858f377 100644 --- a/src/components/Button/SButton.vue +++ b/src/components/Button/SButton.vue @@ -100,6 +100,7 @@ export default class SButton extends Mixins(SizeMixin, BorderRadiusMixin) { private iconLeftOffset = 0 elementIcon = '' + pressed = false get computedType (): string { if (this.type === ButtonTypes.PRIMARY) { @@ -127,6 +128,9 @@ export default class SButton extends Mixins(SizeMixin, BorderRadiusMixin) { if (this.alternative) { cssClasses.push('s-alternative') } + if (this.pressed) { + cssClasses.push('s-pressed') + } return cssClasses } @@ -159,6 +163,10 @@ export default class SButton extends Mixins(SizeMixin, BorderRadiusMixin) { handleClick (): void { this.$emit('click') + this.pressed = true + setTimeout(() => { + this.pressed = false + }, 500) } mounted (): void { diff --git a/src/styles/button.scss b/src/styles/button.scss index db55f392..2b026621 100644 --- a/src/styles/button.scss +++ b/src/styles/button.scss @@ -38,118 +38,120 @@ $s-color-button-tertiary-background-focused: var(--s-color-base-background) !def color: transparent; } } -.s-primary { - background-color: var(--s-color-theme-accent); - border-color: var(--s-color-theme-accent); - color: var(--s-color-base-on-accent); - &:hover { - background-color: var(--s-color-theme-accent-hover); - border-color: var(--s-color-theme-accent-hover); - } - &:active { - background-color: var(--s-color-theme-accent-pressed); - border-color: var(--s-color-theme-accent-pressed); - } - &:focus { - background-color: var(--s-color-theme-accent-focused); - border-color: var(--s-color-theme-accent-focused); - } - @include disabled; -} -.s-secondary { - background-color: var(--s-color-base-on-accent); - color: var(--s-color-base-content-primary); - border-color: var(--s-color-base-border-primary); - &:hover, &:active, &:focus { - color: var(--s-color-theme-accent); - background-color: var(--s-color-base-on-accent); +.el-button { + &.s-primary { + background-color: var(--s-color-theme-accent); border-color: var(--s-color-theme-accent); + color: var(--s-color-base-on-accent); + &.focusing { + background-color: var(--s-color-theme-accent-focused); + border-color: var(--s-color-theme-accent-focused); + } + &:hover { + background-color: var(--s-color-theme-accent-hover); + border-color: var(--s-color-theme-accent-hover); + } + &.s-pressed { + background-color: var(--s-color-theme-accent-pressed); + border-color: var(--s-color-theme-accent-pressed); + } + @include disabled; } - @include disabled; - &.s-alternative { - &:hover, &:active, &:focus { - color: var(--s-color-base-content-primary); - background-color: var(--s-color-base-background); - border-color: var(--s-color-base-background); + &.s-secondary { + background-color: var(--s-color-base-on-accent); + color: var(--s-color-base-content-primary); + border-color: var(--s-color-base-border-primary); + &.focusing, &:hover, &.s-pressed { + color: var(--s-color-theme-accent); + background-color: var(--s-color-base-on-accent); + border-color: var(--s-color-theme-accent); } @include disabled; + &.s-alternative { + &.focusing, &:hover, &.s-pressed { + color: var(--s-color-base-content-primary); + background-color: var(--s-color-base-background); + border-color: var(--s-color-base-background); + } + @include disabled; + } } -} -.s-link { - color: var(--s-color-base-content-primary); - border: none; - background-color: transparent; - &:hover, &:active, &:focus { - color: var(--s-color-theme-accent); + &.s-link { + color: var(--s-color-base-content-primary); + border: none; background-color: transparent; - } - &:disabled, &:disabled:hover { - color: var(--s-color-base-on-disabled); - } -} -.s-tertiary { - color: var(--s-color-button-tertiary-color); - border-color: var(--s-color-button-tertiary-background); - background-color: var(--s-color-button-tertiary-background); - &:hover, &:active, &:focus { - color: var(--s-color-button-tertiary-color-active); - } - &:hover { - background-color: var(--s-color-button-tertiary-background-hover); - border-color: var(--s-color-button-tertiary-background-hover); - } - &:active { - background-color: var(--s-color-button-tertiary-background-pressed); - border-color: var(--s-color-button-tertiary-background-pressed); - } - &:focus { - background-color: var(--s-color-button-tertiary-background-focused); - border-color: var(--s-color-button-tertiary-background-focused); - } - @include disabled; -} -.s-action { - &.s-big { - width: $s-size-big; - padding: 12px; - i { - font-size: var(--s-icon-font-size-medium); + &.focusing, &:hover, &.s-pressed { + color: var(--s-color-theme-accent); + background-color: transparent; } - } - &.s-medium { - width: $s-size-medium; - padding: 10px; - i { - font-size: var(--s-icon-font-size-small); + &:disabled, &:disabled:hover { + color: var(--s-color-base-on-disabled); } } - &.s-small { - width: $s-size-small; - padding: 9px; - i { - font-size: var(--s-icon-font-size-mini); - margin-left: -2px; - margin-top: -2px; + &.s-tertiary { + color: var(--s-color-button-tertiary-color); + border-color: var(--s-color-button-tertiary-background); + background-color: var(--s-color-button-tertiary-background); + &.focusing, &:hover, &.s-pressed { + color: var(--s-color-button-tertiary-color-active); + } + &.focusing { + background-color: var(--s-color-button-tertiary-background-focused); + border-color: var(--s-color-button-tertiary-background-focused); } + &:hover { + background-color: var(--s-color-button-tertiary-background-hover); + border-color: var(--s-color-button-tertiary-background-hover); + } + &.s-pressed { + background-color: var(--s-color-button-tertiary-background-pressed); + border-color: var(--s-color-button-tertiary-background-pressed); + } + @include disabled; } - color: var(--s-color-base-content-primary); - background-color: var(--s-color-base-background); - border-color: var(--s-color-base-background); - &:hover, &:active, &:focus { + &.s-action { + &.s-big { + width: $s-size-big; + padding: 12px; + i { + font-size: var(--s-icon-font-size-medium); + } + } + &.s-medium { + width: $s-size-medium; + padding: 10px; + i { + font-size: var(--s-icon-font-size-small); + } + } + &.s-small { + width: $s-size-small; + padding: 9px; + i { + font-size: var(--s-icon-font-size-mini); + margin-left: -2px; + margin-top: -2px; + } + } color: var(--s-color-base-content-primary); - background-color: var(--s-color-base-background-hover); - border-color: var(--s-color-base-background-hover); - } - @include disabled; - &.s-alternative { - background-color: var(--s-color-base-on-accent); - border-color: var(--s-color-base-border-primary); - &:hover, &:active, &:focus { + background-color: var(--s-color-base-background); + border-color: var(--s-color-base-background); + &.focusing, &:hover, &.s-pressed { color: var(--s-color-base-content-primary); - background-color: var(--s-color-base-background); - border-color: var(--s-color-base-background); + background-color: var(--s-color-base-background-hover); + border-color: var(--s-color-base-background-hover); } @include disabled; + &.s-alternative { + background-color: var(--s-color-base-on-accent); + border-color: var(--s-color-base-border-primary); + &.focusing, &:hover, &.s-pressed { + color: var(--s-color-base-content-primary); + background-color: var(--s-color-base-background); + border-color: var(--s-color-base-background); + } + @include disabled; + } } } button { @@ -165,10 +167,11 @@ button { } } } -.el-button-group .el-button--plain { +.el-button-group .el-button.el-button--plain { color: var(--s-color-base-content-primary); border-color: var(--s-color-base-border-primary); - &:hover, &:active, &:focus { + background-color: var(--s-color-base-on-accent); + &.focusing, &:hover, &.s-pressed { color: var(--s-color-theme-accent); background-color: var(--s-color-base-on-accent); border-color: var(--s-color-theme-accent);