텍스트 영역

여러 줄 텍스트 입력을 위한 컴포넌트입니다.

기본 사용법

textarea는 여러 줄의 텍스트를 입력받을 수 있는 입력 요소입니다.

HTML
<textarea placeholder="내용을 입력하세요..."></textarea>
<textarea placeholder="내용을 입력하세요..." rows="5"></textarea>
<textarea placeholder="비활성화됨" disabled></textarea>
실제 예제:

크기 조절

기본적으로 textarea는 크기 조절이 가능합니다. resize: none을 사용하여 크기 조절을 비활성화할 수 있습니다.

HTML
<!-- 크기 조절 가능 -->
<textarea rows="4" placeholder="크기를 조절할 수 있습니다"></textarea>

<!-- 크기 고정 (resize: none) -->
<textarea class="resize-none" rows="4" placeholder="크기가 고정되어 있습니다"></textarea>
실제 예제:
SCSS
textarea.resize-none {
  resize: none;
}

상태

textarea는 기본, 성공, 위험, 비활성화, 읽기 전용 상태를 지원합니다.

HTML
<!-- 기본 -->
<textarea placeholder="기본"></textarea>

<!-- 성공 -->
<textarea class="success">유효한 입력입니다.</textarea>

<!-- 위험 -->
<textarea class="danger">잘못된 입력입니다.</textarea>

<!-- 비활성화 -->
<textarea placeholder="비활성화" disabled></textarea>

<!-- 읽기 전용 -->
<textarea readonly>이 내용은 수정할 수 없습니다.</textarea>
실제 예제:
SCSS
// Success 상태 (border: 1px solid color('success'))
textarea.success {
  border: 1px solid color('success');

  &:focus-visible:not(:disabled) {
    outline: 4px solid color('success-outline');
  }
}

// Danger 상태 (border: 1px solid color('danger'))
textarea.danger {
  border: 1px solid color('danger');

  &:focus-visible:not(:disabled) {
    outline: 4px solid color('danger-outline');
  }
}

// Disabled 상태
textarea:disabled {
  background: color('bg-disabled');
  cursor: not-allowed;
}

// Read-only 상태 (border: none, resize: none)
textarea:read-only {
  border: none;
  resize: none;
}

SCSS 스타일

podo-ui의 믹스인을 사용하여 textarea 스타일을 적용할 수 있습니다.

component.module.scss
@use 'podo-ui/mixin' as *;

// 기본 textarea 스타일
textarea {
  @include p3;
  padding: s(3) s(4);
  background-color: color('bg-block');
  border: 1px solid color('border');
  border-radius: r(2);

  &:focus-visible:not(:disabled) {
    border-color: color('primary-base');
    outline: 4px solid color('primary-outline');
  }

  &::placeholder {
    color: color('placeholder');
  }
}

// 크기 조절 방지
textarea.resize-none {
  resize: none;
}

// Success/Danger 상태
textarea.success {
  border: 1px solid color('success');

  &:focus-visible:not(:disabled) {
    outline: 4px solid color('success-outline');
  }
}

textarea.danger {
  border: 1px solid color('danger');

  &:focus-visible:not(:disabled) {
    outline: 4px solid color('danger-outline');
  }
}

// 비활성화 상태
textarea:disabled {
  background: color('bg-disabled');
  cursor: not-allowed;
}

// 읽기 전용 상태
textarea:read-only {
  border: none;
  resize: none;
}

활용 예제

실제 사용 예제를 확인해보세요.

댓글 작성 폼
0 / 500자
피드백 폼