@import "@Themes/constants.scss"; .root { display: inline-flex; justify-content: center; border: 1px solid; box-sizing: border-box; height: fit-content; align-items: center; background: transparent; font-style: normal; font-weight: var(--font-text-weight-regular, 400); white-space: nowrap; user-select: none; cursor: pointer; font-family: var(--font-text-family); border: 1px solid var(--button-contained-primary-default-border, rgba(0, 0, 0, 0)); svg { width: 18px; height: 18px; } /** * Every possible variants */ &[variant="primary"] { color: var(--button-contained-primary-default-contrast); border-color: var(--button-contained-primary-default-border); background: var(--button-contained-primary-default-background); svg { stroke: var(--button-contained-primary-default-contrast); } &:hover { border-color: var(--button-contained-primary-hovered-border); background: var(--button-contained-primary-hovered-background); svg { stroke: var(--button-contained-primary-hovered-contrast); } } &:focus, &:active { color: var(--button-contained-primary-default-contrast); border-color: var(--button-contained-primary-pressed-border); background: var(--button-contained-primary-pressed-background); svg { stroke: var(--button-contained-primary-pressed-contrast); } } &[styletype="outlined"] { color: var(--button-outlined-primary-default-contrast); border-color: var(--button-outlined-primary-default-border); background: var(--button-outlined-primary-default-background); svg { stroke: var(--button-outlined-primary-default-contrast); } &:hover { border-color: var(--button-outlined-primary-hovered-border); background: var(--button-outlined-primary-hovered-background); svg { stroke: var(--button-outlined-primary-hovered-contrast); } } &:focus, &:active { color: var(--button-outlined-primary-pressed-contrast); border-color: var(--button-outlined-primary-pressed-border); background: var(--button-outlined-primary-pressed-background); svg { stroke: var(--button-outlined-primary-pressed-contrast); } } } &[styletype="text"] { color: var(--button-text-primary-default-contrast); border-color: var(--button-text-primary-default-border); background: var(--button-text-primary-default-background); svg { stroke: var(--button-text-primary-default-contrast); } &:hover { color: var(--button-text-primary-hovered-contrast); border-color: var(--button-text-primary-hovered-border); background: var(--button-text-primary-hovered-background); svg { stroke: var(--button-text-primary-hovered-contrast); } } &:focus, &:active { color: var(--button-text-primary-pressed-contrast); border-color: var(--button-text-primary-pressed-border); background: var(--button-text-primary-pressed-background); svg { stroke: var(--button-text-primary-pressed-contrast); } } } } &[variant="secondary"] { color: var(--button-contained-secondary-default-contrast); border-color: var(--button-contained-secondary-default-border); background: var(--button-contained-secondary-default-background); svg { stroke: var(--button-contained-secondary-default-contrast); } &:hover { border-color: var(--button-contained-secondary-hovered-border); background: var(--button-contained-secondary-hovered-background); svg { stroke: var(--button-contained-secondary-hovered-contrast); } } &:focus, &:active { color: var(--button-contained-secondary-default-contrast); border-color: var(--button-contained-secondary-pressed-border); background: var(--button-contained-secondary-pressed-background); svg { stroke: var(--button-contained-secondary-pressed-contrast); } } &[styletype="outlined"] { color: var(--button-outlined-secondary-default-contrast); border-color: var(--button-outlined-secondary-default-border); background: var(--button-outlined-secondary-default-background); svg { stroke: var(--button-outlined-secondary-default-contrast); } &:hover { border-color: var(--button-outlined-secondary-hovered-border); background: var(--button-outlined-secondary-hovered-background); svg { stroke: var(--button-outlined-secondary-hovered-contrast); } } &:focus, &:active { color: var(--button-outlined-secondary-pressed-contrast); border-color: var(--button-outlined-secondary-pressed-border); background: var(--button-outlined-secondary-pressed-background); svg { stroke: var(--button-outlined-secondary-pressed-contrast); } } } &[styletype="text"] { color: var(--button-text-secondary-default-contrast); border-color: var(--button-text-secondary-default-border); background: var(--button-text-secondary-default-background); svg { stroke: var(--button-text-secondary-default-contrast); } &:hover { color: var(--button-text-secondary-hovered-contrast); border-color: var(--button-text-secondary-hovered-border); background: var(--button-text-secondary-hovered-background); svg { stroke: var(--button-text-secondary-hovered-contrast); } } &:focus, &:active { color: var(--button-text-secondary-pressed-contrast); border-color: var(--button-text-secondary-pressed-border); background: var(--button-text-secondary-pressed-background); svg { stroke: var(--button-text-secondary-pressed-contrast); } } } } &[variant="neutral"] { color: var(--button-contained-neutral-default-contrast); border-color: var(--button-contained-neutral-default-border); background: var(--button-contained-neutral-default-background); svg { stroke: var(--button-contained-neutral-default-contrast); } &:hover { border-color: var(--button-contained-neutral-hovered-border); background: var(--button-contained-neutral-hovered-background); svg { stroke: var(--button-contained-neutral-hovered-contrast); } } &:focus, &:active { color: var(--button-contained-neutral-default-contrast); border-color: var(--button-contained-neutral-pressed-border); background: var(--button-contained-neutral-pressed-background); svg { stroke: var(--button-contained-neutral-pressed-contrast); } } &[styletype="outlined"] { color: var(--button-outlined-neutral-default-contrast); border-color: var(--button-outlined-neutral-default-border); background: var(--button-outlined-neutral-default-background); svg { stroke: var(--button-outlined-neutral-default-contrast); } &:hover { border-color: var(--button-outlined-neutral-hovered-border); background: var(--button-outlined-neutral-hovered-background); svg { stroke: var(--button-outlined-neutral-hovered-contrast); } } &:focus, &:active { color: var(--button-outlined-neutral-pressed-contrast); border-color: var(--button-outlined-neutral-pressed-border); background: var(--button-outlined-neutral-pressed-background); svg { stroke: var(--button-outlined-neutral-pressed-contrast); } } } &[styletype="text"] { color: var(--button-text-neutral-default-contrast); border-color: var(--button-text-neutral-default-border); background: var(--button-text-neutral-default-background); svg { stroke: var(--button-text-neutral-default-contrast); } &:hover { color: var(--button-text-neutral-hovered-contrast); border-color: var(--button-text-neutral-hovered-border); background: var(--button-text-neutral-hovered-background); svg { stroke: var(--button-text-neutral-hovered-contrast); } } &:focus, &:active { color: var(--button-text-neutral-pressed-contrast); border-color: var(--button-text-neutral-pressed-border); background: var(--button-text-neutral-pressed-background); svg { stroke: var(--button-text-neutral-pressed-contrast); } } } } &[variant="error"] { color: var(--button-contained-error-default-contrast); border-color: var(--button-contained-error-default-border); background: var(--button-contained-error-default-background); svg { stroke: var(--button-contained-error-default-contrast); } &:hover { border-color: var(--button-contained-error-hovered-border); background: var(--button-contained-error-hovered-background); svg { stroke: var(--button-contained-error-hovered-contrast); } } &:focus, &:active { color: var(--button-contained-error-default-contrast); border-color: var(--button-contained-error-pressed-border); background: var(--button-contained-error-pressed-background); svg { stroke: var(--button-contained-error-pressed-contrast); } } &[styletype="outlined"] { color: var(--button-outlined-error-default-contrast); border-color: var(--button-outlined-error-default-border); background: var(--button-outlined-error-default-background); svg { stroke: var(--button-outlined-error-default-contrast); } &:hover { border-color: var(--button-outlined-error-hovered-border); background: var(--button-outlined-error-hovered-background); svg { stroke: var(--button-outlined-error-hovered-contrast); } } &:focus, &:active { color: var(--button-outlined-error-pressed-contrast); border-color: var(--button-outlined-error-pressed-border); background: var(--button-outlined-error-pressed-background); svg { stroke: var(--button-outlined-error-pressed-contrast); } } } &[styletype="text"] { color: var(--button-text-error-default-contrast); border-color: var(--button-text-error-default-border); background: var(--button-text-error-default-background); svg { stroke: var(--button-text-error-default-contrast); } &:hover { color: var(--button-text-error-hovered-contrast); border-color: var(--button-text-error-hovered-border); background: var(--button-text-error-hovered-background); svg { stroke: var(--button-text-error-hovered-contrast); } } &:focus, &:active { color: var(--button-text-error-pressed-contrast); border-color: var(--button-text-error-pressed-border); background: var(--button-text-error-pressed-background); svg { stroke: var(--button-text-error-pressed-contrast); } } } } &[variant="success"] { color: var(--button-contained-success-default-contrast); border-color: var(--button-contained-success-default-border); background: var(--button-contained-success-default-background); svg { stroke: var(--button-contained-success-default-contrast); } &:hover { border-color: var(--button-contained-success-hovered-border); background: var(--button-contained-success-hovered-background); svg { stroke: var(--button-contained-success-hovered-contrast); } } &:focus, &:active { color: var(--button-contained-success-default-contrast); border-color: var(--button-contained-success-pressed-border); background: var(--button-contained-success-pressed-background); svg { stroke: var(--button-contained-success-pressed-contrast); } } &[styletype="outlined"] { color: var(--button-outlined-success-default-contrast); border-color: var(--button-outlined-success-default-border); background: var(--button-outlined-success-default-background); svg { stroke: var(--button-outlined-success-default-contrast); } &:hover { border-color: var(--button-outlined-success-hovered-border); background: var(--button-outlined-success-hovered-background); svg { stroke: var(--button-outlined-success-hovered-contrast); } } &:focus, &:active { color: var(--button-outlined-success-pressed-contrast); border-color: var(--button-outlined-success-pressed-border); background: var(--button-outlined-success-pressed-background); svg { stroke: var(--button-outlined-success-pressed-contrast); } } } &[styletype="text"] { color: var(--button-text-success-default-contrast); border-color: var(--button-text-success-default-border); background: var(--button-text-success-default-background); svg { stroke: var(--button-text-success-default-contrast); } &:hover { color: var(--button-text-success-hovered-contrast); border-color: var(--button-text-success-hovered-border); background: var(--button-text-success-hovered-background); svg { stroke: var(--button-text-success-hovered-contrast); } } &:focus, &:active { color: var(--button-text-success-pressed-contrast); border-color: var(--button-text-success-pressed-border); background: var(--button-text-success-pressed-background); svg { stroke: var(--button-text-success-pressed-contrast); } } } } &[variant="warning"] { color: var(--button-contained-warning-default-contrast); border-color: var(--button-contained-warning-default-border); background: var(--button-contained-warning-default-background); svg { stroke: var(--button-contained-warning-default-contrast); } &:hover { border-color: var(--button-contained-warning-hovered-border); background: var(--button-contained-warning-hovered-background); svg { stroke: var(--button-contained-warning-hovered-contrast); } } &:focus, &:active { color: var(--button-contained-warning-default-contrast); border-color: var(--button-contained-warning-pressed-border); background: var(--button-contained-warning-pressed-background); svg { stroke: var(--button-contained-warning-pressed-contrast); } } &[styletype="outlined"] { color: var(--button-outlined-warning-default-contrast); border-color: var(--button-outlined-warning-default-border); background: var(--button-outlined-warning-default-background); svg { stroke: var(--button-outlined-warning-default-contrast); } &:hover { border-color: var(--button-outlined-warning-hovered-border); background: var(--button-outlined-warning-hovered-background); svg { stroke: var(--button-outlined-warning-hovered-contrast); } } &:focus, &:active { color: var(--button-outlined-warning-pressed-contrast); border-color: var(--button-outlined-warning-pressed-border); background: var(--button-outlined-warning-pressed-background); svg { stroke: var(--button-outlined-warning-pressed-contrast); } } } &[styletype="text"] { color: var(--button-text-warning-default-contrast); border-color: var(--button-text-warning-default-border); background: var(--button-text-warning-default-background); svg { stroke: var(--button-text-warning-default-contrast); } &:hover { color: var(--button-text-warning-hovered-contrast); border-color: var(--button-text-warning-hovered-border); background: var(--button-text-warning-hovered-background); svg { stroke: var(--button-text-warning-hovered-contrast); } } &:focus, &:active { color: var(--button-text-warning-pressed-contrast); border-color: var(--button-text-warning-pressed-border); background: var(--button-text-warning-pressed-background); svg { stroke: var(--button-text-warning-pressed-contrast); } } } } &[variant="info"] { color: var(--button-contained-info-default-contrast); border-color: var(--button-contained-info-default-border); background: var(--button-contained-info-default-background); svg { stroke: var(--button-contained-info-default-contrast); } &:hover { border-color: var(--button-contained-info-hovered-border); background: var(--button-contained-info-hovered-background); svg { stroke: var(--button-contained-info-hovered-contrast); } } &:focus, &:active { color: var(--button-contained-info-default-contrast); border-color: var(--button-contained-info-pressed-border); background: var(--button-contained-info-pressed-background); svg { stroke: var(--button-contained-info-pressed-contrast); } } &[styletype="outlined"] { color: var(--button-outlined-info-default-contrast); border-color: var(--button-outlined-info-default-border); background: var(--button-outlined-info-default-background); svg { stroke: var(--button-outlined-info-default-contrast); } &:hover { border-color: var(--button-outlined-info-hovered-border); background: var(--button-outlined-info-hovered-background); svg { stroke: var(--button-outlined-info-hovered-contrast); } } &:focus, &:active { color: var(--button-outlined-info-pressed-contrast); border-color: var(--button-outlined-info-pressed-border); background: var(--button-outlined-info-pressed-background); svg { stroke: var(--button-outlined-info-pressed-contrast); } } } &[styletype="text"] { color: var(--button-text-info-default-contrast); border-color: var(--button-text-info-default-border); background: var(--button-text-info-default-background); svg { stroke: var(--button-text-info-default-contrast); } &:hover { color: var(--button-text-info-hovered-contrast); border-color: var(--button-text-info-hovered-border); background: var(--button-text-info-hovered-background); svg { stroke: var(--button-text-info-hovered-contrast); } } &:focus, &:active { color: var(--button-text-info-pressed-contrast); border-color: var(--button-text-info-pressed-border); background: var(--button-text-info-pressed-background); svg { stroke: var(--button-text-info-pressed-contrast); } } } } /** * Every possible sizes */ &[sizing="sm"] { padding: var(--spacing-0-5) var(--spacing-1-5); gap: var(--spacing-0-75); font-size: 14px; height: 32px; } &[sizing="md"] { padding: var(--spacing-1) var(--spacing-2); gap: var(--spacing-0-75); font-size: 16px; } &[sizing="lg"] { padding: var(--spacing-2) var(--spacing-3); gap: var(--spacing-1-5); font-size: 16px; } /** * Every possible style types */ &[styletype="contained"] { color: var(--color-generic-white); } &[styletype="outlined"] { background: transparent; } &[styletype="text"] { background: transparent; border: none; border-bottom: 1px solid; } /** * Every possible states */ &[fullwidthattr="true"] { width: 100%; flex: 1; } &[fullwidthattr="false"] { width: fit-content; } &[touppercase="false"] { text-transform: inherit; } &:disabled { opacity: var(--opacity-disabled, 0.3); pointer-events: none; } }