form-control.scss 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. @use 'sass:math';
  2. @import '../mixins';
  3. .form-control-ds,
  4. .form-group-ds,
  5. .form-text-ds,
  6. .form-label-ds {
  7. --bs-body-font-family: var(--ds-font-family-sans), sans-serif;
  8. --bs-success-rgb: 25, 117, 76; // #19754c
  9. --bs-danger-rgb: 195, 9, 43; // #c3092b
  10. --content-placeholder: var(--ds-color-text-disabled);
  11. // Without this, it inherits the body's --bs-body-font-family which isn't the DS font
  12. font-family: var(--ds-font-family-sans), sans-serif;
  13. }
  14. input.form-control.form-control-ds {
  15. border-radius: var(--ds-border-radius-200);
  16. border-color: var(--ds-color-neutral-300);
  17. color: var(--ds-color-neutral-950);
  18. padding: calc(var(--ds-spacing-250) - 1px) calc(var(--ds-spacing-300) - 1px);
  19. &.form-control-lg {
  20. padding: calc(var(--ds-spacing-350) - 1px) calc(var(--ds-spacing-300) - 1px);
  21. }
  22. &:read-only {
  23. background: var(--ds-color-neutral-200);
  24. color: var(--ds-color-text-secondary);
  25. }
  26. &:disabled {
  27. color: var(--ds-color-text-disabled);
  28. background: var(--ds-color-neutral-100);
  29. }
  30. &:not(:disabled, :focus-visible) {
  31. &:hover,
  32. &.hover {
  33. border-color: var(--ds-color-neutral-400);
  34. }
  35. }
  36. &:focus-visible,
  37. &:focus {
  38. @include ds-focus-outline;
  39. border-color: var(--ds-color-neutral-950);
  40. }
  41. &.is-invalid,
  42. .was-validated &:invalid {
  43. border-color: var(--ds-color-red-500);
  44. }
  45. }
  46. .form-label.form-label-ds {
  47. @include ds-body-md-semibold;
  48. color: var(--ds-color-text-primary);
  49. &:has(+ .form-control:read-only) {
  50. color: var(--ds-color-text-secondary);
  51. }
  52. &:has(+ .form-control:disabled) {
  53. color: var(--ds-color-text-disabled);
  54. }
  55. }
  56. .form-text.form-text-ds {
  57. color: var(--ds-color-text-secondary);
  58. .form-text-inner-ds {
  59. display: flex;
  60. gap: var(--ds-spacing-200);
  61. margin-top: var(--ds-spacing-150);
  62. @include ds-body-sm-regular;
  63. }
  64. .ciam-form-text-icon {
  65. font-size: math.div(20em, 14);
  66. }
  67. }