styled.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import styled, { css } from 'styled-components';
  2. import { color } from '../../constants/style';
  3. const baseStyles = css`
  4. border: 1.5px solid ${color.black38};
  5. border-radius: 4px;
  6. padding: 7px 15px;
  7. outline: none;
  8. transition: border 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;
  9. font-size: 14px;
  10. box-sizing: border-box;
  11. :disabled {
  12. color: ${color.black56};
  13. cursor: not-allowed;
  14. }
  15. `;
  16. export const Input = styled('input')<{error: boolean, shouldFitContainer: boolean}>`
  17. ${baseStyles}
  18. width: ${props => props.shouldFitContainer ? '100%' : 'auto'};
  19. ${props => props.error ? css`
  20. border: 1.5px solid ${color.error};
  21. ` : css`
  22. :focus {
  23. border: 1.5px solid ${color.primary};
  24. }
  25. `}
  26. `;
  27. export const TextArea = styled('textarea')<{error: boolean, shouldFitContainer: boolean}>`
  28. ${baseStyles}
  29. height: 54px;
  30. width: ${props => props.shouldFitContainer ? '100%' : 'auto'};
  31. ${props => props.error ? css`
  32. border: 1.5px solid ${color.error};
  33. ` : css`
  34. :focus {
  35. border: 1.5px solid ${color.primary};
  36. }
  37. `}
  38. `;