UNPKG

@ou-imdt/css

Version:

The IMDT CSS library styles native elements with light, extendable CSS. It is developed for Interactive Media Developers at the Open University.

167 lines (150 loc) 5.68 kB
/* Buttons should even be a <button> or an element with the following attributes role="button" AND a class of button AND a tabindex="-1/0/1" */ :root, :host { /* Buttons (inc. Input:Button & Input:Submit) */ --btn-weight: normal; --btn-transition: background 0.25s, color 0.25s; --btn-spacing: 0.2em; --btn-inline-padding: 0.7em 0.0em; --btn-padding: 0.2rem 0.7rem; --btn-bg: #ffffff; --btn-fg: var(--core1, var(--accent)); --btn-decoration: none; --btn-radius: 3px; --btn-border: 2px solid var(--core2, var(--accent)); --btn-outline: 2px var(--accent) solid; --btn-outline-offset: 1px; --btn-hover-bg: var(--core1); --btn-hover-fg: var(--bg1); --btn-hover-decoration: underline; --btn-hover-decoration-thickness: 1px; --btn-hover-underline-offset: 2px; /* --btn-focus-bg: var(--core1); --btn-focus-fg: var(--bg1); */ --btn-focus-bg: var(--bg1); --btn-focus-fg: var(--fg1); --btn-focus-decoration: underline; --btn-focus-decoration-thickness: 1px; --btn-focus-underline-offset: 2px; --btn-focus-border: 2px solid var(--core2, var(--accent)); --btn-focus-visible-bg: var(--bg1); --btn-focus-visible-fg: var(--core1); --btn-focus-visible-decoration: underline; --btn-focus-visible-decoration-thickness: 1px; --btn-focus-visible-underline-offset: 2px; --btn-focus-visible-border: 2px solid #000000; --btn-active-fg: var(--accent); --btn-active-bg: #D8D6E6; --btn-active-decoration: underline; --btn-active-decoration-thickness: 1px; --btn-active-underline-offset: 2px; --btn-active-boxshadow: inset 0 3px 0px -1px #666, inset 0 4px 4px -1px #666; --btn-disabled-border: 2px solid #d4d2d2; --btn-disabled-bg: #B3B3B3; --btn-disabled-fg: var(--bg1, #ffffff); /* --btn-disabled-filter: var(--disabled-filter); */ --btn-disabled-opacity: 1; } button, input[type="button"], input[type="submit"], input[type="reset"], a.button[role="button"], .button[role="button"][tabindex] { display: inline-block; border: var(--btn-border); border-radius: var(--btn-radius, --radius); background: var(--btn-bg); color: var(--btn-fg); margin: var(--btn-spacing) 0; padding: var(--btn-padding); min-height: var(--wcag-min-target); min-width: var(--wcag-min-target); transition: var(--btn-transition); outline-offset: var(--btn-outline-offset); text-decoration: var(--btn-decoration); font-weight: var(--btn-weight); >svg * { fill: currentColor; } } /* button[aria-pressed="true"], input[type="button"][aria-pressed="true"], a.button[role="button"]:active, .button[role="button"][aria-pressed="true"][tabindex] { background: var(--btn-active-bg, var(--btn-fg)); color: var(--btn-active-fg, var(--btn-bg)); box-shadow: inset 0 3px 5px 1px hsla(0, 0%, 100%, 0.301); transform: translateY(1px); } */ button:hover:not(:disabled), button.hover:not(:disabled), input[type="button"]:hover:not(:disabled), input[type="submit"]:hover:not(:disabled), input[type="reset"]:hover:not(:disabled), a.button[role="button"]:hover:not(:disabled), .button[role="button"][tabindex]:hover:not(:disabled) { background: var(--btn-hover-bg, var(--btn-fg)); color: var(--btn-hover-fg, var(--btn-bg)); cursor: var(--interactive-cursor); text-decoration: var(--btn-hover-decoration); text-decoration-thickness: var(--btn-hover-decoration-thickness); text-underline-offset: var(--btn-hover-underline-offset); } button:focus, input[type="submit"]:focus, input[type="reset"]:focus, input[type="button"]:focus, a.button[role="button"]:focus, .button[role="button"][tabindex]:focus { outline: var(--btn-outline); background: var(--btn-focus-bg, var(--btn-fg)); color: var(--btn-focus-fg, var(--btn-bg)); border: var(--btn-focus-border); text-decoration: var(--btn-focus-decoration); text-decoration-thickness: var(--btn-focus-decoration-thickness); text-underline-offset: var(--btn-focus-underline-offset); } button:focus-visible, input[type="submit"]:focus-visible, input[type="reset"]:focus-visible, input[type="button"]:focus-visible, a.button[role="button"]:focus-visible, .button[role="button"][tabindex]:focus-visible { outline: var(--btn-outline); background: var(--btn-focus-visible-bg, var(--btn-fg)); color: var(--btn-focus-visible-fg, var(--btn-bg)); border: var(--btn-focus-visible-border); text-decoration: var(--btn-focus-visible-decoration); text-decoration-thickness: var(--btn-focus-visible-decoration-thickness); text-underline-offset: var(--btn-focus-visible-underline-offset); } button:active:not(:disabled), button.active:not(:disabled), input[type="submit"]:active:not(:disabled), input[type="reset"]:active:not(:disabled), input[type="button"]:active:not(:disabled), a.button[role="button"]:active:not(:disabled), .button[role="button"][tabindex]:active:not(:disabled), button[aria-pressed="true"]:not(:disabled), input[type="button"][aria-pressed="true"]:not(:disabled), a.button[role="button"]:active:not(:disabled), .button[role="button"][aria-pressed="true"][tabindex]:not(:disabled) { background: var(--btn-active-bg, var(--btn-fg)); color: var(--btn-active-fg, var(--btn-bg)); box-shadow: var(--btn-active-boxshadow); } :is(span, p, h1, h2, h3, h4, h5, h6, blockquote) button, :is(span, p, h1, h2, h3, h4, h5, h6, blockquote) input[type="button"], :is(span, p, h1, h2, h3, h4, h5, h6, blockquote) a.button { /* max-height: 100%; */ padding: 0 var(--btn-inline-padding); margin: 0; } button:disabled, input[type="button"]:disabled { opacity: var(--btn-disabled-opacity); background: var(--btn-disabled-bg, var(--btn-bg)); color: var(--btn-disabled-fg, var(--btn-fg)); border: var(--btn-disabled-border); }