aboutsummaryrefslogtreecommitdiff
path: root/templates/@theme-base/pm-styles/_pm-buttons.scss
diff options
context:
space:
mode:
Diffstat (limited to 'templates/@theme-base/pm-styles/_pm-buttons.scss')
-rw-r--r--templates/@theme-base/pm-styles/_pm-buttons.scss188
1 files changed, 130 insertions, 58 deletions
diff --git a/templates/@theme-base/pm-styles/_pm-buttons.scss b/templates/@theme-base/pm-styles/_pm-buttons.scss
index d206cf9..5b053a0 100644
--- a/templates/@theme-base/pm-styles/_pm-buttons.scss
+++ b/templates/@theme-base/pm-styles/_pm-buttons.scss
@@ -1,4 +1,4 @@
-
+
/*
* Buttons
*/
@@ -11,6 +11,7 @@
border-style: solid;
border-width: 1px;
text-decoration: none;
+ transition: .15s easing(easeOutQuint), background-position 0s;
& > button { // this is for drop down buttons
color: inherit;
}
@@ -24,27 +25,26 @@
.pm-button {
border-color: $pm-global-border;
- background: $white;
+ background-color: $white;
color: $pm-global-grey;
+
&:hover,
&:focus,
&:focus-within,
- &.is-hover {
+ &.is-hover {
color: $pm-global-grey;
box-shadow: 0 0 em(5) 0 rgba(0, 0, 0, 0.2);
}
&:not(div):active, // not(div) prevents active state in case of button groups with dropdowns
&.is-active {
//background-color: $pm-global-border;
- background: radial-gradient(closest-side, $white, $pm-global-border 90%);
+ background-image: radial-gradient(closest-side, transparent, rgba(black, .1));
box-shadow: none;
}
&[disabled],
&.is-disabled {
- background-color: $pm-global-muted;
- color: rgba( $pm-global-grey, .3 );
- pointer-events: none;
+ @include button-disabled-state;
}
/* just to cancel examples */
&.is-active:hover {
@@ -57,6 +57,22 @@
&.p0 {
padding: 0;
}
+
+ &[aria-expanded="true"] .caret-like {
+ @extend .rotateX-180;
+ }
+
+ &.pm-select {
+ padding-right: .6rem;
+ .mauto {
+ display: flex;
+ width: 100%;
+ }
+ .mr0-5 {
+ flex: 1 1 0px;
+ @extend .ellipsis;
+ }
+ }
}
@@ -77,20 +93,17 @@
&.is-hover {
color: $white;
box-shadow: 0 0 em(5) 0 rgba(0, 0, 0, 0.2);
- background: $pm-primary-dark;
+ background-color: $pm-primary-dark;
}
&:not(div):active, // not(div) prevents active state in case of button groups with dropdowns
&.is-active {
- background: $pm-primary-dark;
+ background-color: $pm-primary-dark;
text-shadow: 1px 1px 10px rgba( $white, .3 ),-1px -1px 10px rgba( $white, .3 );
box-shadow: none;
}
&[disabled],
&.is-disabled {
- background-color: $pm-global-muted;
- color: rgba( $pm-global-grey, .3 );
- border-color: $pm-global-border;
- pointer-events: none;
+ @include button-disabled-state($pm-primary);
}
/* just to cancel examples */
&.is-hover:hover {
@@ -115,15 +128,12 @@
&.is-active {
border-color: $pm-primary-dark;
color: $pm-primary-dark;
- background: radial-gradient(closest-side, $white, $pm-global-border 90%);
+ background-image: radial-gradient(closest-side, transparent, rgba(black, .1));
box-shadow: none;
}
&[disabled],
&.is-disabled {
- background-color: $pm-global-muted;
- color: rgba( $pm-global-grey, .3 );
- border-color: $pm-global-border;
- pointer-events: none;
+ @include button-disabled-state;
}
}
@@ -144,20 +154,17 @@
&.is-hover {
color: $white;
box-shadow: 0 0 em(5) 0 rgba(0, 0, 0, 0.2);
- background: $pv-green-dark;
+ background-color: $pv-green-dark;
}
&:not(div):active, // not(div) prevents active state in case of button groups with dropdowns
&.is-active {
- background: $pv-green-dark;
+ background-color: $pv-green-dark;
text-shadow: 1px 1px 10px rgba( $white, .3 ),-1px -1px 10px rgba( $white, .3 );
box-shadow: none;
}
&[disabled],
&.is-disabled {
- background-color: $pm-global-muted;
- color: rgba( $pm-global-grey, .3 );
- border-color: $pm-global-border;
- pointer-events: none;
+ @include button-disabled-state($pv-green);
}
/* just to cancel examples */
&.is-hover:hover {
@@ -182,15 +189,12 @@
&.is-active {
border-color: $pv-green-dark;
color: $pv-green-dark;
- background: radial-gradient(closest-side, $white, $pm-global-border 90%);
+ background-image: radial-gradient(closest-side, transparent, rgba(black, .1));
box-shadow: none;
}
&[disabled],
&.is-disabled {
- background-color: $pm-global-muted;
- color: rgba( $pm-global-grey, .3 );
- border: 1px solid $pm-global-border;
- pointer-events: none;
+ @include button-disabled-state;
}
}
@@ -203,10 +207,10 @@
/* modifiers */
.pm-button--large {
- padding: em(10) em(20) em(9); // design want 42px height
+ padding: em(10) em(20) em(9); // design want 42px height
}
.pm-button--small {
- padding: em(1) em(12) em(2); // design want 26px height
+ padding: em(1) em(12) em(2); // design want 26px height
}
.pm-button--for-icon {
@@ -236,6 +240,7 @@
.pm-group-button:active {
position: relative;
}
+
.pm-group-buttons > .pm-group-button:first-child {
border-radius: $global-border-radius 0 0 $global-border-radius;
border-left-width: 1px;
@@ -258,13 +263,43 @@
}
}
+/* special case for group button with primary colors */
+.pm-group-buttons > .pm-group-button.pm-button--primary {
+ border-color: $pm-primary;
+ border-left-width: 0;
+ &:first-child {
+ border-left-width: 1px;
+ }
+ &:not(:last-child) {
+ border-right-color: var(--bgcolor-main-area, $white);
+ }
+}
+
+/* exception for group buttons, disabled state should keep the border */
+.pm-group-button {
+ &[disabled],
+ &.is-disabled {
+ &.pm-button {
+ border-color: $pm-global-border;
+ }
+ &.pm-button-blueborder {
+ border-color: $pm-primary;
+ }
+ &.pv-button-greenborder {
+ border-color: $pv-green;
+ }
+ }
+}
+
+
/* aliases for buttons => different per project */
/* primary/link/error/warning/info */
@if ($pm-primary == $pm-blue) {
.pm-button--primary {
@extend .pm-button-blue;
}
- .pm-button--primaryborder {
+ .pm-button--primaryborder,
+ .pm-button--primaryborderEvenInDarkMode {
@extend .pm-button-blueborder;
}
.pm-button--primaryborder-dark {
@@ -275,7 +310,8 @@
.pm-button--primary {
@extend .pv-button-green;
}
- .pm-button--primaryborder {
+ .pm-button--primaryborder,
+ .pm-button--primaryborderEvenInDarkMode {
@extend .pv-button-greenborder;
}
.pm-button--primaryborder-dark {
@@ -307,41 +343,64 @@
text-decoration: none;
background-color: transparent; // to avoid heriting from other classes
}
+ &.nodecoration {
+ text-decoration: none;
+ }
+ &.pm-button--currentColor {
+ color: currentColor;
+ }
}
-.pm-button--error {
+.pm-button--error,
+.pm-button.pm-button--error {
@extend .pm-button-blue;
background-color: $pm-global-warning;
- border-color: $pm-global-warning;
-}
-.pm-button--error:focus,
-.pm-button--error:hover,
-.pm-button--error:not(div):active { // not div is here for a specificity issue for another fix
- background-color: $pm-global-warning;
- border-color: $pm-global-warning;
+ border-color: $pm-global-warning;
+ &:focus,
+ &:hover,
+ &:not(div):active { // not div is here for a specificity issue for another fix
+ background-color: $pm-global-warning;
+ border-color: $pm-global-warning;
+ }
+ &[disabled],
+ &.is-disabled {
+ @include button-disabled-state($pm-global-warning);
+ }
}
-.pm-button--warning {
+.pm-button--warning,
+.pm-button.pm-button--warning {
@extend .pm-button-blue;
background-color: $pm-global-attention;
- border-color: $pm-global-attention;
-}
-.pm-button--warning:focus,
-.pm-button--warning:hover,
-.pm-button--warning:not(div):active { // not div is here for a specificity issue for another fix
- background-color: $pm-global-attention;
- border-color: $pm-global-attention;
+ border-color: $pm-global-attention;
+ &:focus,
+ &:hover,
+ &:not(div):active { // not div is here for a specificity issue for another fix
+ background-color: $pm-global-attention;
+ border-color: $pm-global-attention;
+ }
+ &[disabled],
+ &.is-disabled {
+ @include button-disabled-state($pm-global-attention);
+ }
}
.pm-button--info {
@extend .pm-button;
}
/* other aliases requested */
-.pm-button--redborder.pm-button--redborder { // for darkmode... again
- @extend .pm-button;
- border-color: $pm-global-warning;
- color: $pm-global-warning;
+.pm-button--redborder,
+.pm-button.pm-button--redborder {
+ @extend .pm-button;
+ border-color: $pm-global-warning;
+ color: $pm-global-warning;
+ &:focus,
+ &:hover,
+ &:not(div):active,
+ &:active {
+ color: $pm-global-warning;
+ }
}
-
-.pm-button--whiteborder {
+.pm-button--whiteborder,
+.pm-button--primary.pm-button.pm-button--whiteborder {
border: 1px solid $white;
}
@@ -349,8 +408,21 @@
.pm-button--noborder {
border: 0;
}
-
-
.pm-button--currentColor {
color: currentColor;
-} \ No newline at end of file
+}
+.pm-button--pill {
+ border-radius: 2em;
+}
+.pm-button--transparent {
+ /* When using currentColor, you need to set the color you want on a container */
+ border: 1px solid currentColor;
+ color: currentColor;
+ &:focus,
+ &:hover,
+ &:not(div):active,
+ &:active {
+ background-color: rgba(black, .2);
+ color: currentColor;
+ }
+}