UNPKG

@syncfusion/react-buttons

Version:

Syncfusion React Buttons package is a feature-rich collection of UI components including Button, CheckBox, RadioButton, Switch, Chip, and more for building modern, interactive React applications.

461 lines 17.5 kB
.sf-switch { position: relative; height: var(--sf-spacing-1); width: var(--sf-spacing-1); opacity: var(--sf-spacing-0); pointer-events: none; } .sf-switch-wrapper { user-select: none; -webkit-tap-highlight-color: transparent; } .sf-switch-label { cursor: pointer; align-items: center; gap: var(--sf-spacing-8); font-size: var(--sf-font-size-base); line-height: var(--sf-line-height-base); font-weight: var(--sf-font-weight-normal); } .sf-switch-label.sf-left, .sf-switch-label.sf-right { flex-direction: row; justify-content: flex-start; align-items: center; } .sf-switch-label.sf-top, .sf-switch-label.sf-bottom { flex-direction: column; justify-content: flex-start; align-items: center; } .sf-switch-track { position: relative; align-items: center; flex-shrink: 0; box-sizing: border-box; overflow: visible; height: var(--sf-spacing-28); width: calc(var(--sf-spacing) * 3.75); border-radius: var(--sf-radius-full); border: var(--sf-spacing-2) solid; transition: background-color 200ms cubic-bezier(0.2, 0, 0, 1), border-color 200ms cubic-bezier(0.2, 0, 0, 1); -webkit-tap-highlight-color: transparent; } .sf-switch-track:active .sf-switch-handle { padding: var(--sf-spacing-12); inset-inline-start: calc(var(--sf-spacing) * -0.1); } .sf-switch-track:active .sf-switch-track.sf-switch-track-checked .sf-switch-handle { padding: var(--sf-spacing-12); } .sf-switch-track:has(.sf-switch-track-label) { width: calc(var(--sf-spacing) * 3.75); } .sf-switch-track:has(.sf-switch-track-label) .sf-switch-handle.sf-switch-handle-checked { transform: translateX(calc(var(--sf-spacing) * 2.125)); } .sf-switch-track:has(.sf-switch-track-label .sf-icon) { width: calc(var(--sf-spacing) * 3.75); } .sf-switch-track:has(.sf-switch-track-label .sf-icon) .sf-switch-handle.sf-switch-handle-checked { transform: translateX(calc(var(--sf-spacing) * 2.125)); } .sf-switch-handle { position: absolute; border-radius: var(--sf-radius-full); box-sizing: border-box; padding: var(--sf-spacing-8); transform: translateX(var(--sf-spacing-4)); transition: transform 200ms cubic-bezier(0.2, 0, 0, 1), width 200ms cubic-bezier(0.2, 0, 0, 1), height 200ms cubic-bezier(0.2, 0, 0, 1), background-color 200ms cubic-bezier(0.2, 0, 0, 1); } .sf-switch-handle.sf-switch-handle-checked { padding: var(--sf-spacing-10); transform: translateX(calc(var(--sf-spacing) * 2.125)); } .sf-switch-handle.sf-switch-handle-icon { padding: var(--sf-spacing-10); } .sf-switch-state-layer { position: absolute; border-radius: var(--sf-radius-full); pointer-events: none; width: calc(var(--sf-spacing) * 2.25); height: calc(var(--sf-spacing) * 2.25); top: 50%; inset-inline-start: 50%; transform: translate(-50%, -50%); } .sf-switch-icon { position: absolute; font-size: var(--sf-font-size-sm); } .sf-switch-icon svg { width: var(--sf-font-size-sm); height: var(--sf-font-size-sm); } .sf-switch-track-label { position: absolute; top: 50%; transform: translateY(-50%); align-items: center; justify-content: center; pointer-events: none; user-select: none; z-index: 1; font-size: var(--sf-font-size-sm); font-weight: var(--sf-font-weight-normal); white-space: nowrap; line-height: var(--sf-line-height-sm); -webkit-tap-highlight-color: transparent; } .sf-switch-track-label > * { font-size: var(--sf-font-size-base); } .sf-switch-track-label-on { inset-inline-start: var(--sf-spacing-8); } .sf-switch-track-label-off { inset-inline-end: var(--sf-spacing-8); } .sf-switch-track-label-on:has(*) { inset-inline-start: var(--sf-spacing-8); } .sf-switch-track-label-off:has(*) { inset-inline-end: var(--sf-spacing-8); } .sf-switch-wrapper.sf-small .sf-switch-label { font-size: var(--sf-font-size-sm); line-height: var(--sf-line-height-sm); gap: var(--sf-spacing-8); } .sf-switch-wrapper.sf-small .sf-switch-track { height: var(--sf-spacing-24); width: var(--sf-spacing-48); } .sf-switch-wrapper.sf-small .sf-switch-track:active .sf-switch-handle { padding: var(--sf-spacing-10); inset-inline-start: calc(var(--sf-spacing) * -0.01); } .sf-switch-wrapper.sf-small .sf-switch-track:active .sf-switch-track.sf-switch-track-checked .sf-switch-handle { padding: var(--sf-spacing-11); } .sf-switch-wrapper.sf-small .sf-switch-track:has(.sf-switch-track-label) { width: var(--sf-spacing-48); } .sf-switch-wrapper.sf-small .sf-switch-track:has(.sf-switch-track-label) .sf-switch-handle.sf-switch-handle-checked { transform: translateX(var(--sf-spacing-24)); } .sf-switch-wrapper.sf-small .sf-switch-track:has(.sf-switch-track-label .sf-icon) { width: var(--sf-spacing-48); } .sf-switch-wrapper.sf-small .sf-switch-track:has(.sf-switch-track-label .sf-icon) .sf-switch-handle.sf-switch-handle-checked { transform: translateX(var(--sf-spacing-24)); } .sf-switch-wrapper.sf-small .sf-switch-handle { padding: var(--sf-spacing-6); transform: translateX(var(--sf-spacing-4)); } .sf-switch-wrapper.sf-small .sf-switch-handle.sf-switch-handle-checked { padding: var(--sf-spacing-9); transform: translateX(var(--sf-spacing-24)); } .sf-switch-wrapper.sf-small .sf-switch-handle.sf-switch-handle-icon { padding: var(--sf-spacing-9); } .sf-switch-wrapper.sf-small .sf-switch-state-layer { width: var(--sf-spacing-28); height: var(--sf-spacing-28); } .sf-switch-wrapper.sf-small .sf-switch-track-label { font-size: var(--sf-font-size-xs); } .sf-switch-wrapper.sf-small .sf-switch-track-label > * { font-size: var(--sf-font-size-xs); } .sf-switch-wrapper.sf-small .sf-switch-track-label-on { inset-inline-start: var(--sf-spacing-6); } .sf-switch-wrapper.sf-small .sf-switch-track-label-off { inset-inline-end: var(--sf-spacing-6); } .sf-switch-wrapper.sf-small .sf-switch-track-label-on:has(*) { inset-inline-start: var(--sf-spacing-6); } .sf-switch-wrapper.sf-small .sf-switch-track-label-off:has(*) { inset-inline-end: var(--sf-spacing-6); } .sf-switch-wrapper.sf-small .sf-switch-icon { font-size: var(--sf-font-size-2xs); } .sf-switch-wrapper.sf-small .sf-switch-icon svg { width: var(--sf-font-size-2xs); height: var(--sf-font-size-2xs); } .sf-switch-wrapper.sf-large .sf-switch-label { font-size: var(--sf-font-size-base); line-height: var(--sf-line-height-base); gap: var(--sf-spacing-8); } .sf-switch-wrapper.sf-large .sf-switch-track { height: var(--sf-spacing-32); width: calc(var(--sf-spacing) * 4); } .sf-switch-wrapper.sf-large .sf-switch-track:active .sf-switch-handle { padding: var(--sf-spacing-14); inset-inline-start: calc(var(--sf-spacing) * -0.1); } .sf-switch-wrapper.sf-large .sf-switch-track:active .sf-switch-track.sf-switch-track-checked .sf-switch-handle { padding: var(--sf-spacing-14); } .sf-switch-wrapper.sf-large .sf-switch-track:has(.sf-switch-track-label) { width: calc(var(--sf-spacing) * 4); } .sf-switch-wrapper.sf-large .sf-switch-track:has(.sf-switch-track-label) .sf-switch-handle.sf-switch-handle-checked { transform: translateX(calc(var(--sf-spacing) * 2.125)); } .sf-switch-wrapper.sf-large .sf-switch-track:has(.sf-switch-track-label .sf-icon) { width: calc(var(--sf-spacing) * 4); } .sf-switch-wrapper.sf-large .sf-switch-track:has(.sf-switch-track-label .sf-icon) .sf-switch-handle.sf-switch-handle-checked { transform: translateX(calc(var(--sf-spacing) * 2.125)); } .sf-switch-wrapper.sf-large .sf-switch-handle { padding: var(--sf-spacing-8); transform: translateX(var(--sf-spacing-5)); } .sf-switch-wrapper.sf-large .sf-switch-handle.sf-switch-handle-checked { padding: var(--sf-spacing-12); transform: translateX(calc(var(--sf-spacing) * 2.125)); } .sf-switch-wrapper.sf-large .sf-switch-handle.sf-switch-handle-icon { padding: var(--sf-spacing-12); } .sf-switch-wrapper.sf-large .sf-switch-state-layer { width: var(--sf-spacing-40); height: var(--sf-spacing-40); } .sf-switch-wrapper.sf-large .sf-switch-track-label { font-size: var(--sf-font-size-sm); } .sf-switch-wrapper.sf-large .sf-switch-track-label > * { font-size: var(--sf-font-size-lg); } .sf-switch-wrapper.sf-large .sf-switch-track-label-on { inset-inline-start: var(--sf-spacing-10); } .sf-switch-wrapper.sf-large .sf-switch-track-label-off { inset-inline-end: var(--sf-spacing-10); } .sf-switch-wrapper.sf-large .sf-switch-track-label-on:has(*) { inset-inline-start: var(--sf-spacing-10); } .sf-switch-wrapper.sf-large .sf-switch-track-label-off:has(*) { inset-inline-end: var(--sf-spacing-10); } .sf-switch-wrapper.sf-large .sf-switch-icon { font-size: var(--sf-font-size-base); } .sf-switch-wrapper.sf-large .sf-switch-icon svg { width: var(--sf-font-size-base); height: var(--sf-font-size-base); } .sf-rtl.sf-switch-wrapper .sf-switch-handle { inset-inline-start: 0; transform: translateX(calc(-1 * var(--sf-spacing-4))); } .sf-rtl.sf-switch-wrapper .sf-switch-handle.sf-switch-handle-checked { transform: translateX(calc(-1 * var(--sf-spacing) * 2.125)); } .sf-rtl.sf-switch-wrapper .sf-switch-state-layer { inset-inline-end: 50%; inset-inline-start: auto; transform: translate(-50%, -50%); } .sf-rtl.sf-switch-wrapper.sf-small .sf-switch-handle { transform: translateX(calc(-1 * var(--sf-spacing-4))); } .sf-rtl.sf-switch-wrapper.sf-small .sf-switch-handle.sf-switch-handle-checked { transform: translateX(calc(-1 * var(--sf-spacing-24))); } .sf-rtl.sf-switch-wrapper.sf-large .sf-switch-handle { transform: translateX(calc(-1 * var(--sf-spacing-5))); } .sf-rtl.sf-switch-wrapper.sf-large .sf-switch-handle.sf-switch-handle-checked { transform: translateX(calc(-1 * var(--sf-spacing) * 2.125)); } .sf-switch-wrapper .sf-switch-track:hover .sf-switch-handle { background-color: rgb(var(--sf-color-on-surface-variant)); } .sf-switch-wrapper .sf-switch-track:hover.sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-primary-container)); } .sf-switch-wrapper .sf-switch-track:hover.sf-switch-track-checked .sf-switch-state-layer { background-color: rgba(var(--sf-color-primary), 0.08); } .sf-switch-wrapper .sf-switch-track:hover .sf-switch-state-layer { background-color: rgba(var(--sf-color-on-surface), 0.08); } .sf-switch-wrapper .sf-switch:focus-visible + .sf-switch-track { box-shadow: var(--sf-color-shadow-focus-ring1); background-color: rgb(var(--sf-color-surface-variant)); } .sf-switch-wrapper .sf-switch:focus-visible + .sf-switch-track .sf-switch-handle { background-color: rgb(var(--sf-color-on-surface-variant)); } .sf-switch-wrapper .sf-switch:focus-visible + .sf-switch-track.sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-on-primary)); } .sf-switch-wrapper .sf-switch:focus-visible + .sf-switch-track.sf-switch-track-checked .sf-switch-state-layer { background-color: rgba(var(--sf-color-primary), 0.12); } .sf-switch-wrapper .sf-switch:focus-visible + .sf-switch-track .sf-switch-state-layer { background-color: rgba(var(--sf-color-on-surface), 0.12); } .sf-switch-wrapper .sf-switch-track:active { box-shadow: none; background-color: rgb(var(--sf-color-surface-variant)); } .sf-switch-wrapper .sf-switch-track:active .sf-switch-handle { background-color: rgb(var(--sf-color-on-surface-variant)); } .sf-switch-wrapper .sf-switch-track:active.sf-switch-track-checked .sf-switch-state-layer { background-color: rgba(var(--sf-color-primary), 0.12); } .sf-switch-wrapper .sf-switch-track:active .sf-switch-state-layer { background-color: rgba(var(--sf-color-on-surface), 0.12); } .sf-switch-wrapper.sf-disabled { opacity: 1; } .sf-switch-wrapper.sf-disabled .sf-switch-track { background-color: rgb(var(--sf-color-surface-variant)); border-color: rgba(var(--sf-color-on-surface), 0.12); } .sf-switch-wrapper.sf-disabled .sf-switch-track.sf-switch-track-checked { background-color: rgba(var(--sf-color-on-surface), 0.12); border-color: transparent; } .sf-switch-wrapper.sf-disabled .sf-switch-label { color: rgba(var(--sf-color-on-surface), 0.38); } .sf-switch-wrapper.sf-disabled .sf-switch-handle { background-color: rgba(var(--sf-color-on-surface), 0.38); } .sf-switch-wrapper.sf-disabled .sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-surface)); } .sf-switch-wrapper.sf-disabled .sf-switch-icon { color: rgba(var(--sf-color-on-surface), 0.38); } .sf-switch-wrapper .sf-switch-track-label > * { color: rgb(var(--sf-color-on-surface-variant)); } .sf-switch-wrapper .sf-switch-track-checked .sf-switch-track-label > * { color: rgb(var(--sf-color-on-primary)); } .sf-switch-label { color: rgb(var(--sf-color-on-surface)); } .sf-switch-track { background-color: rgb(var(--sf-color-surface-variant)); border-color: rgb(var(--sf-color-outline)); } .sf-switch-track.sf-switch-track-checked { background-color: rgb(var(--sf-color-primary)); border-color: rgb(var(--sf-color-primary)); } .sf-switch-handle { background-color: rgb(var(--sf-color-outline)); } .sf-switch-handle.sf-switch-handle-checked { background-color: rgb(var(--sf-color-on-primary)); } .sf-switch-icon { color: rgb(var(--sf-color-inverse-on-surface)); } .sf-switch-track-checked .sf-switch-icon { color: rgb(var(--sf-color-primary)); } .sf-switch-track-label { color: rgb(var(--sf-color-inverse-on-surface)); } .sf-switch-track-label-on { color: rgb(var(--sf-color-on-primary)); } .sf-switch-track-label-off { color: rgb(var(--sf-color-on-surface)); } .sf-switch-wrapper.sf-primary .sf-switch-track.sf-switch-track-checked { background-color: rgb(var(--sf-color-primary)); border-color: rgb(var(--sf-color-primary)); } .sf-switch-wrapper.sf-primary .sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-on-primary)); } .sf-switch-wrapper.sf-primary .sf-switch-track:hover.sf-switch-track-checked .sf-switch-handle, .sf-switch-wrapper.sf-primary .sf-switch-track:active.sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-primary-container)); } .sf-switch-wrapper.sf-primary .sf-switch-track:hover.sf-switch-track-checked .sf-switch-state-layer, .sf-switch-wrapper.sf-primary .sf-switch-track:active.sf-switch-track-checked .sf-switch-state-layer { background-color: rgba(var(--sf-color-primary), 0.08); } .sf-switch-wrapper.sf-success .sf-switch-track.sf-switch-track-checked { background-color: rgb(var(--sf-color-success)); border-color: rgb(var(--sf-color-success)); } .sf-switch-wrapper.sf-success .sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-on-success)); } .sf-switch-wrapper.sf-success .sf-switch-track:hover.sf-switch-track-checked .sf-switch-handle, .sf-switch-wrapper.sf-success .sf-switch-track:active.sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-success-container)); } .sf-switch-wrapper.sf-success .sf-switch-track:hover.sf-switch-track-checked .sf-switch-state-layer, .sf-switch-wrapper.sf-success .sf-switch-track:active.sf-switch-track-checked .sf-switch-state-layer { background-color: rgba(var(--sf-color-success), 0.08); } .sf-switch-wrapper.sf-warning .sf-switch-track.sf-switch-track-checked { background-color: rgb(var(--sf-color-warning)); border-color: rgb(var(--sf-color-warning)); } .sf-switch-wrapper.sf-warning .sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-on-warning)); } .sf-switch-wrapper.sf-warning .sf-switch-track:hover.sf-switch-track-checked .sf-switch-handle, .sf-switch-wrapper.sf-warning .sf-switch-track:active.sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-warning-container)); } .sf-switch-wrapper.sf-warning .sf-switch-track:hover.sf-switch-track-checked .sf-switch-state-layer, .sf-switch-wrapper.sf-warning .sf-switch-track:active.sf-switch-track-checked .sf-switch-state-layer { background-color: rgba(var(--sf-color-warning), 0.08); } .sf-switch-wrapper.sf-error .sf-switch-track.sf-switch-track-checked { background-color: rgb(var(--sf-color-error)); border-color: rgb(var(--sf-color-error)); } .sf-switch-wrapper.sf-error .sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-on-error)); } .sf-switch-wrapper.sf-error .sf-switch-track:hover.sf-switch-track-checked .sf-switch-handle, .sf-switch-wrapper.sf-error .sf-switch-track:active.sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-error-container)); } .sf-switch-wrapper.sf-error .sf-switch-track:hover.sf-switch-track-checked .sf-switch-state-layer, .sf-switch-wrapper.sf-error .sf-switch-track:active.sf-switch-track-checked .sf-switch-state-layer { background-color: rgba(var(--sf-color-error), 0.08); } .sf-switch-wrapper.sf-info .sf-switch-track.sf-switch-track-checked { background-color: rgb(var(--sf-color-info)); border-color: rgb(var(--sf-color-info)); } .sf-switch-wrapper.sf-info .sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-on-info)); } .sf-switch-wrapper.sf-info .sf-switch-track:hover.sf-switch-track-checked .sf-switch-handle, .sf-switch-wrapper.sf-info .sf-switch-track:active.sf-switch-track-checked .sf-switch-handle { background-color: rgb(var(--sf-color-info-container)); } .sf-switch-wrapper.sf-info .sf-switch-track:hover.sf-switch-track-checked .sf-switch-state-layer, .sf-switch-wrapper.sf-info .sf-switch-track:active.sf-switch-track-checked .sf-switch-state-layer { background-color: rgba(var(--sf-color-info), 0.08); }