/** * Button */ // Reboot based on : // - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css // - sanitize.css v12.0.1 | CC0 1.0 Universal | github.com/csstools/sanitize.css // –––––––––––––––––––– // 1. Change the font styles in all browsers // 2. Remove the margin in Firefox and Safari // 3. Show the overflow in Edge button { margin: 0; // 2 overflow: visible; // 3 font-family: inherit; // 1 text-transform: none; // 1 } // Correct the inability to style clickable types in iOS and Safari button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } // Remove the inner border and padding in Firefox button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { padding: 0; border-style: none; } // Pico // –––––––––––––––––––– button { display: block; width: 100%; margin-bottom: var(--spacing); } a[role="button"] { display: inline-block; text-decoration: none; } button, input[type="submit"], input[type="button"], input[type="reset"], a[role="button"] { --background-color: var(--primary); --border-color: var(--primary); --color: var(--primary-inverse); --box-shadow: var(--button-box-shadow, 0 0 0 rgba(0, 0, 0, 0)); padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal); border: var(--border-width) solid var(--border-color); border-radius: var(--border-radius); outline: none; background-color: var(--background-color); box-shadow: var(--box-shadow); color: var(--color); font-weight: var(--font-weight); font-size: 1rem; line-height: var(--line-height); text-align: center; cursor: pointer; @if $enable-transitions { transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition); } &:hover, &:active, &:focus { --background-color: var(--primary-hover); --border-color: var(--primary-hover); --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)); } &:focus { --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--primary-focus); } } // Secondary button without .class input[type="reset"] { --background-color: var(--secondary); --border-color: var(--secondary); --color: var(--secondary-inverse); cursor: pointer; &:hover, &:active, &:focus { --background-color: var(--secondary-hover); --border-color: var(--secondary-hover); } &:focus { --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--secondary-focus); } } // .secondary, .contrast & .outline @if $enable-classes { button, input[type="submit"], input[type="button"], input[type="reset"], a[role="button"] { // Secondary &.secondary { --background-color: var(--secondary); --border-color: var(--secondary); --color: var(--secondary-inverse); cursor: pointer; &:hover, &:active, &:focus { --background-color: var(--secondary-hover); --border-color: var(--secondary-hover); } &:focus { --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--secondary-focus); } } // Contrast &.contrast { --background-color: var(--contrast); --border-color: var(--contrast); --color: var(--contrast-inverse); &:hover, &:active, &:focus { --background-color: var(--contrast-hover); --border-color: var(--contrast-hover); } &:focus { --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--contrast-focus); } } // Outline (primary) &.outline { --background-color: transparent; --color: var(--primary); &:hover, &:active, &:focus { --background-color: transparent; --color: var(--primary-hover); } } // Outline (secondary) &.outline.secondary { --color: var(--secondary); &:hover, &:active, &:focus { --color: var(--secondary-hover); } } // Outline (contrast) &.outline.contrast { --color: var(--contrast); &:hover, &:active, &:focus { --color: var(--contrast-hover); } } } } // Button [disabled] button[disabled], input[type="submit"][disabled], input[type="button"][disabled], input[type="reset"][disabled], a[role="button"]:not([href]), a[role="button"][disabled] { opacity: 0.5; pointer-events: none; }