/** * styles/components/_buttons.less * * Shared SP button component — single source of truth for all dialog buttons. * Imported by each dialog that needs buttons; all selectors scoped under * the dialog's own namespace. */ // Base button — every dialog button should extend this .sp-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-btn-gap, 6px); padding: var(--sp-btn-padding, 7px 14px); font-family: var(--font-primary, ui-sans-serif, system-ui, sans-serif); font-size: var(--sp-btn-font-size, 12px); font-weight: 600; border: 1px solid transparent; border-radius: var(--sp-btn-radius, 5px); cursor: pointer; transition: background 0.15s, border-color 0.15s, color 0.15s, opacity 0.15s; line-height: 1.2; user-select: none; i { font-size: 0.9em; pointer-events: none; } &:disabled { opacity: 0.45; cursor: not-allowed; pointer-events: none; } // Primary action — green accent &--primary { background: var(--sp-btn-primary-bg, var(--sp-accent)); color: var(--sp-btn-primary-text, #fff); letter-spacing: 0.02em; &:hover:not(:disabled) { background: var(--sp-btn-primary-hover, var(--sp-accent-hover)); color: var(--sp-btn-primary-text, #fff); } &:active:not(:disabled) { background: var(--sp-btn-primary-active, var(--sp-accent-active)); } } // Secondary — subtle, neutral &--secondary { background: var(--sp-btn-secondary-bg, rgba(255,255,255,0.05)); color: var(--sp-btn-secondary-text, var(--sp-text-secondary)); border-color: var(--sp-btn-secondary-border, rgba(255,255,255,0.12)); font-weight: 500; &:hover:not(:disabled) { background: var(--sp-btn-secondary-hover-bg, rgba(255,255,255,0.1)); color: var(--sp-btn-secondary-hover-text, var(--sp-text-primary)); } } // Danger — red &--danger { background: var(--sp-btn-danger-bg, var(--sp-color-red)); color: var(--sp-btn-danger-text, #fff); &:hover:not(:disabled) { background: var(--sp-btn-danger-hover, var(--sp-color-red-dark)); } } // Sizes &--sm { padding: var(--sp-btn-padding-sm, 4px 10px); font-size: var(--sp-btn-font-size-sm, 11px); } &--lg { padding: var(--sp-btn-padding-lg, 9px 18px); font-size: var(--sp-btn-font-size-lg, 13px); } // Icon-only &--icon { width: 28px; height: 28px; padding: 0; font-size: 13px; justify-content: center; } }