/** * Form Controls - Toggles, Checkboxes, Inputs * * Reusable form control components used across the application. */ /* =========================================== TOGGLE SLIDER (Yes/No switch) =========================================== */ swp-toggle-row { display: flex; align-items: center; justify-content: space-between; padding: var(--spacing-3) 0; border-bottom: 1px solid var(--color-border); &:last-child { border-bottom: none; } } swp-toggle-label { font-size: var(--font-size-base); color: var(--color-text); } swp-toggle-description { display: block; font-size: var(--font-size-sm); color: var(--color-text-secondary); margin-top: var(--spacing-1); } swp-toggle-slider { display: inline-flex; width: fit-content; background: var(--color-background); border-radius: var(--radius-md); border: 1px solid var(--color-border); overflow: hidden; position: relative; } swp-toggle-slider::before { content: ''; position: absolute; top: 2px; left: 2px; width: calc(50% - 4px); height: calc(100% - 4px); background: var(--bg-green-strong); border-radius: var(--radius-sm); transition: transform 200ms ease, background 200ms ease; } swp-toggle-slider[data-value="no"]::before { transform: translateX(100%); background: var(--bg-red-strong); } swp-toggle-option { position: relative; z-index: 1; padding: var(--spacing-2) var(--spacing-5); font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-text-secondary); cursor: pointer; transition: color var(--transition-fast); user-select: none; } swp-toggle-slider[data-value="yes"] swp-toggle-option:first-child { color: var(--color-green); font-weight: var(--font-weight-semibold); } swp-toggle-slider[data-value="no"] swp-toggle-option:last-child { color: var(--color-red); font-weight: var(--font-weight-semibold); } /* =========================================== CHECKBOX LIST =========================================== */ swp-checkbox-list { display: flex; flex-direction: column; gap: var(--spacing-1); } swp-checkbox-row { display: flex; align-items: flex-start; gap: var(--spacing-4); padding: var(--spacing-3) var(--spacing-4); border-radius: var(--radius-md); cursor: pointer; transition: background var(--transition-fast); &:hover { background: var(--color-background-alt); } &.checked swp-checkbox-box { background: var(--color-teal); border-color: var(--color-teal); & svg { opacity: 1; } } } swp-checkbox-box { width: 18px; height: 18px; border: 2px solid var(--color-border); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; transition: all var(--transition-fast); & svg { width: 12px; height: 12px; fill: white; opacity: 0; transition: opacity var(--transition-fast); } } swp-checkbox-text { font-size: var(--font-size-base); color: var(--color-text); line-height: 1.4; } /* Intro text for checkbox lists (e.g. notifications) */ swp-notification-intro { display: block; font-size: var(--font-size-sm); color: var(--color-text-secondary); margin-bottom: var(--spacing-5); }