RED-5875: Material upgrade - buttons: user button

This commit is contained in:
Adina Țeudan 2023-05-31 00:37:53 +03:00
parent 9e8a1fc12e
commit 3d9a34b778
3 changed files with 161 additions and 236 deletions

View File

@ -1,110 +1,18 @@
iqser-icon-button .mdc-button.mat-mdc-button {
--mdc-text-button-container-shape: var(--iqser-button-radius);
--mdc-text-button-label-text-color: var(--iqser-accent);
&[disabled] {
--mdc-text-button-disabled-label-text-color: rgba(var(--iqser-accent-rgb), 0.3);
}
height: var(--iqser-button-height);
padding: 0 14px;
&.has-icon {
padding: 0 14px 0 10px;
> .mat-icon {
margin-right: 6px;
width: 14px;
}
}
&.primary {
--mdc-text-button-label-text-color: var(--iqser-white);
--mdc-text-button-disabled-label-text-color: rgba(255, 255, 255, 0.5);
background: var(--iqser-primary);
font-weight: 500;
}
&.dark {
background: var(--iqser-btn-bg);
@mixin iconSize14 {
.mat-icon {
width: 14px;
height: 14px;
font-size: 14px;
}
}
iqser-circle-button .mat-mdc-icon-button {
display: flex;
align-items: center;
justify-content: center;
.mat-mdc-button-touch-target {
width: var(--circle-button-size);
height: var(--circle-button-size);
}
&.mat-mdc-button-base {
height: var(--circle-button-size);
width: var(--circle-button-size);
padding: 0;
}
svg {
vertical-align: bottom;
width: inherit;
height: inherit;
}
&.primary {
--mdc-icon-button-icon-color: var(--iqser-white);
&[disabled] {
--mdc-icon-button-disabled-icon-color: rgba(255, 255, 255, 0.5);
}
background: var(--iqser-primary);
}
&.warn:not([disabled]) {
--mdc-icon-button-icon-color: var(--iqser-accent);
background-color: var(--iqser-warn);
}
mat-icon {
width: var(--circle-button-icon-size);
height: var(--circle-button-icon-size);
line-height: var(--circle-button-icon-size);
margin: 0 !important;
svg {
line-height: var(--circle-button-icon-size);
}
@mixin labelNoWrap {
.mdc-button__label {
white-space: nowrap;
}
}
iqser-chevron-button .mat-mdc-button {
--mdc-text-button-container-shape: var(--iqser-button-radius);
height: var(--iqser-button-height);
&:not([disabled]) {
--mdc-text-button-label-text-color: var(--iqser-accent);
}
}
iqser-chevron-button,
iqser-circle-button,
iqser-icon-button {
display: block;
position: relative;
.dot {
top: 1px;
left: 1px;
}
.overlay {
background: rgba(var(--iqser-primary-rgb), 0.1);
}
@mixin ariaExpanded {
&[aria-expanded='true'] {
.mat-mdc-button-base {
background: rgba(var(--iqser-primary-rgb), 0.1);
@ -120,115 +28,153 @@ iqser-icon-button {
}
}
//.mat-button,
//.mat-flat-button {
// border-radius: var(--iqser-button-radius) !important;
// font-size: var(--iqser-button-font-size) !important;
// display: flex !important;
// align-items: center;
//
// &:not(.text) {
// height: var(--iqser-button-height);
// }
//
// .mat-button-wrapper {
// display: flex;
// align-items: center;
// line-height: var(--iqser-font-size);
// transition: opacity 0.2s;
// width: 100%;
//
// > *:not(:last-child) {
// margin-right: 6px;
// }
//
// > span {
// margin: auto;
// }
// }
//}
//
//.mat-button,
//.mat-icon-button,
//.mat-flat-button {
// &.mat-button-disabled .mat-button-wrapper {
// color: var(--iqser-text);
// opacity: 0.3;
// }
//}
//
//.mat-flat-button.mat-primary,
//.mat-button.primary {
// padding: 0 14px;
// transition: background-color 0.2s, color 0.2s;
//
// background-color: var(--iqser-primary);
//
// &.mat-button-disabled {
// background-color: var(--iqser-primary);
//
// .mat-button-wrapper {
// color: var(--iqser-white);
// opacity: 0.5;
// }
// }
//
// &:not(.mat-button-disabled):hover {
// background-color: var(--iqser-primary-2);
// }
//}
//
//iqser-icon-button,
//iqser-chevron-button,
//.user-button,
//iqser-circle-button {
// position: relative;
// display: flex;
//
// button {
// font-weight: 400 !important;
// transition: background-color 0.2s;
//
// &.overlay {
// background: rgba(var(--iqser-primary-rgb), 0.1);
// }
//
// &:not(.overlay):not(.mat-button-disabled):not(.primary):not(.dark-bg):not(.warn):not(.help):not(.text):hover {
// background-color: var(--iqser-btn-bg);
// }
//
// &.text {
// color: var(--iqser-primary);
// font-weight: 500 !important;
//
// &:hover {
// background-color: rgba(var(--iqser-primary-rgb), 0.05);
// }
// }
//
// &.primary {
// font-weight: 500 !important;
// background-color: var(--iqser-primary);
// color: var(--iqser-white);
//
// &:hover {
// background-color: var(--iqser-primary-2);
// }
// }
//
// &.dark-bg:hover {
// background-color: var(--iqser-btn-bg-hover);
// }
//
// &.help:hover {
// background-color: var(--iqser-helpmode-primary);
// color: var(--iqser-grey-1);
// }
// }
//
// .dot {
// top: 1px;
// left: 1px;
// }
//}
//
@mixin dotOverlay {
position: relative;
.dot {
top: 1px;
left: 1px;
}
.overlay {
background: rgba(var(--iqser-primary-rgb), 0.1);
}
}
@mixin buttonShape {
.mat-mdc-button {
--mdc-text-button-container-shape: var(--iqser-button-radius);
height: var(--iqser-button-height);
.mat-mdc-button-touch-target {
height: var(--iqser-button-height);
}
}
}
iqser-icon-button {
@include buttonShape;
@include ariaExpanded;
@include dotOverlay;
@include labelNoWrap;
display: block;
.mdc-button.mat-mdc-button {
@include iconSize14;
--mdc-text-button-label-text-color: var(--iqser-accent);
padding: 0 14px;
&[disabled] {
--mdc-text-button-disabled-label-text-color: rgba(var(--iqser-accent-rgb), 0.3);
}
.mat-icon {
margin-right: 6px;
}
&.has-icon {
padding: 0 14px 0 10px;
}
&.primary {
--mdc-text-button-label-text-color: var(--iqser-white);
--mdc-text-button-disabled-label-text-color: rgba(255, 255, 255, 0.5);
background: var(--iqser-primary);
font-weight: 500;
}
&.dark {
background: var(--iqser-btn-bg);
}
}
}
iqser-circle-button {
@include ariaExpanded;
@include dotOverlay;
display: block;
.mat-mdc-icon-button {
display: flex;
align-items: center;
justify-content: center;
.mat-mdc-button-touch-target {
width: var(--circle-button-size);
height: var(--circle-button-size);
}
&.mat-mdc-button-base {
height: var(--circle-button-size);
width: var(--circle-button-size);
padding: 0;
}
svg {
vertical-align: bottom;
width: inherit;
height: inherit;
}
&.primary {
--mdc-icon-button-icon-color: var(--iqser-white);
&[disabled] {
--mdc-icon-button-disabled-icon-color: rgba(255, 255, 255, 0.5);
}
background: var(--iqser-primary);
}
&.warn:not([disabled]) {
--mdc-icon-button-icon-color: var(--iqser-accent);
background-color: var(--iqser-warn);
}
mat-icon {
width: var(--circle-button-icon-size);
height: var(--circle-button-icon-size);
line-height: var(--circle-button-icon-size);
margin: 0 !important;
svg {
line-height: var(--circle-button-icon-size);
}
}
}
}
iqser-chevron-button {
@include buttonShape;
@include ariaExpanded;
@include dotOverlay;
@include labelNoWrap;
display: block;
.mat-mdc-button {
@include iconSize14;
&:not([disabled]) {
--mdc-text-button-label-text-color: var(--iqser-accent);
}
}
}
iqser-user-button {
@include buttonShape;
@include ariaExpanded;
@include dotOverlay;
display: block;
.mat-mdc-button {
@include iconSize14;
padding: 0 10px 0 5px;
}
}

View File

@ -4,11 +4,11 @@
{{ userService.currentUser$ | async | name }}
</ng-container>
<mat-icon *ngIf="showDropdownArrow" svgIcon="iqser:arrow-down"></mat-icon>
<mat-icon *ngIf="showDropdownArrow" iconPositionEnd svgIcon="iqser:arrow-down"></mat-icon>
</button>
<div *ngIf="showDot" class="dot"></div>
<ng-template #initialsAvatar>
<iqser-initials-avatar [user]="userService.currentUser$ | async" [withName]="true" [showTooltip]="false"></iqser-initials-avatar>
<iqser-initials-avatar [showTooltip]="false" [user]="userService.currentUser$ | async" [withName]="true"></iqser-initials-avatar>
</ng-template>

View File

@ -1,24 +1,3 @@
@use '../../../../assets/styles/common-buttons';
:host {
//@extend .user-button;
min-width: fit-content;
button {
padding: 0 10px 0 5px;
mat-icon {
width: 14px;
}
}
&[aria-expanded='true'] {
button {
background: rgba(var(--iqser-primary-rgb), 0.1);
}
}
.dot {
left: -2px;
}
}