UNPKG

@roadtrip/css

Version:

CSS framework for Roadtrip Design System

346 lines (276 loc) 5.69 kB
/* * Buttons * * Use custom button styles for actions in forms, dialogs, and more * with support for multiple sizes, states, and more. * * Index * - Button * - Plain buttons * - Outline buttons * - Disabled buttons * - Button sizes * */ /* BUTTON -------------------- */ .btn { display: -webkit-inline-flex; display: inline-flex; align-items: center; justify-content: center; height: 3rem; padding: 0 1.5em; margin-bottom: 1rem; font-family: var(--road-font); font-size: var(--road-button-medium); font-weight: 700; line-height: 1.375; color: var(--road-grey-10); text-decoration: none; white-space: nowrap; vertical-align: middle; background: var(--road-grey-80); border: 1px solid transparent; border-radius: 0.25rem; transition: background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; } .btn:not(:disabled) { cursor: pointer; } /** * Fix states */ .btn:hover { text-decoration: none; } /* PLAIN BUTTONS -------------------- */ /** * Button primary */ .btn-primary { color: var(--road-on-button-primary); background: var(--road-button-primary); } .btn-primary:hover, .btn-primary:focus, .btn-primary.focus-visible { background: var(--road-button-primary-variant); outline: 0; } /** * Button secondary */ .btn-secondary { color: var(--road-on-button-secondary); background: var(--road-button-secondary); } .btn-secondary:hover { background: var(--road-button-secondary-variant); } /** * Button destructive */ .btn-destructive { color: var(--road-on-button-destructive-primary); background: var(--road-button-destructive-primary); } .btn-destructive:hover { background: var(--road-button-destructive-primary-variant); } /** * Button default */ .btn-default:hover { background: var(--road-grey-80); } /** * Button link */ .btn-link { font-weight: 400; color: var(--road-link-primary); text-decoration: underline; background: transparent; } .btn-link:hover{ color: var(--road-primary-30); } /** * Button Ghost */ .btn-ghost { color: var(--road-on-button-ghost); background: transparent; } .btn-ghost:hover{ background: var(--road-button-ghost-variant); } /* OUTLINE BUTTONS -------------------- */ .btn-outline-primary, .btn-outline-secondary, .btn-outline-default, .btn-outline-destructive { background: transparent; } /** * Button outline default */ .btn-outline-default { color: var(--road-on-surface-weak); border-color: var(--road-input-outline); } .btn-outline-default:hover { background: var(--road-grey-80); } /** * Button outline primary */ .btn-outline-primary { color: var(--road-button-primary); border-color: var(--road-button-tertiary-outline); } .btn-outline-primary:hover{ background: var(--road-button-tertiary-variant); } /** * Button outline secondary */ .btn-outline-secondary { color: var(--road-button-primary); border-color: var(--road-button-primary); } .btn-outline-secondary:hover { background: var(--road-button-tertiary-variant); } /** * Button outline destructive */ .btn-outline-destructive { color: var(--road-on-button-destructive-secondary); border-color: var(--road-button-destructive-outline); } .btn-outline-destructive:hover { background: var(--road-button-destructive-secondary-variant); } /* BUTTON -------------------- */ .btn-icon-only { width: 56px; padding: 0; } .btn-icon-only.btn-xl { width: 56px; padding: 0; } .btn-icon-only.btn-lg { width: 48px; padding: 0; } .btn-icon-only.btn-md { width: 40px; padding: 0; } .btn-icon-only.btn-sm { width: 32px; padding: 0; } .btn-icon-only svg{ width: 32px; fill: currentColor; } .btn-icon-only.btn-md svg{ width: 24px; fill: currentColor; } .btn-icon-only.btn-sm svg{ width: 20px; fill: currentColor; } /* DISABLED BUTTONS -------------------- */ .btn:disabled { color: var(--road-on-surface-disabled); cursor: not-allowed; background: var(--road-surface-disabled); border-color: var(--road-surface-disabled); } [class*="btn-outline"]:disabled:hover{ background: var(--road-surface-disabled); } [class*="btn-primary"]:disabled, [class*="btn-secondary"]:disabled, [class*="btn-ghost"]:disabled, [class*="btn-default"]:disabled, [class*="btn-primary"][disabled], [class*="btn-secondary"][disabled], [class*="btn-ghost"][disabled], [class*="btn-default"][disabled] { color: var(--road-on-surface-disabled); cursor: not-allowed; background: var(--road-surface-disabled); border-color: var(--road-surface-disabled); } [class*="btn-outline-primary"]:disabled, [class*="btn-outline-default"]:disabled, [class*="btn-outline-secondary"]:disabled, [class*="btn-outline-primary"][disabled], [class*="btn-outline-default"][disabled], [class*="btn-outline-secondary"][disabled] { color: var(--road-on-surface-disabled); cursor: not-allowed; background: none; border-color: var(--road-surface-disabled); } /* BUTTON SIZES -------------------- */ .btn-icon { width: 2rem; margin-right: 0.5rem; fill: currentColor; } .btn-link .btn-icon { transition: fill 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; fill: currentColor; } /** * Extra Large button */ .btn-xl, .btn-group-xl > .btn { height: 3.5rem; } /** * Medium button */ .btn-md, .btn-group-md > .btn { height: 2.5rem; font-size: var(--road-font-size-14); } .btn-md .btn-icon { width: 1.5rem; height: 1.5rem; } /** * Small button */ .btn-sm, .btn-group-sm > .btn { height: 2rem; font-size: var(--road-font-size-14); } .btn-sm .btn-icon { width: 1.25rem; height: 1.25rem; } /** * Button block */ .btn-block { width: 100%; }