diff --git a/src/design-system/primitives/Textarea/Textarea.module.css b/src/design-system/primitives/Textarea/Textarea.module.css new file mode 100644 index 0000000..1c14d28 --- /dev/null +++ b/src/design-system/primitives/Textarea/Textarea.module.css @@ -0,0 +1,21 @@ +.textarea { + width: 100%; + padding: 6px 12px; + border: 1px solid var(--border); + border-radius: var(--radius-sm); + background: var(--bg-raised); + color: var(--text-primary); + font-family: var(--font-body); + font-size: 12px; + outline: none; + transition: border-color 0.15s, box-shadow 0.15s; + resize: vertical; +} + +.textarea::placeholder { color: var(--text-faint); } +.textarea:focus { border-color: var(--amber); box-shadow: 0 0 0 3px var(--amber-bg); } + +.resizeVertical { resize: vertical; } +.resizeHorizontal { resize: horizontal; } +.resizeNone { resize: none; } +.resizeBoth { resize: both; } diff --git a/src/design-system/primitives/Textarea/Textarea.test.tsx b/src/design-system/primitives/Textarea/Textarea.test.tsx new file mode 100644 index 0000000..09807bf --- /dev/null +++ b/src/design-system/primitives/Textarea/Textarea.test.tsx @@ -0,0 +1,79 @@ +import { describe, it, expect, vi } from 'vitest' +import { render, screen } from '@testing-library/react' +import userEvent from '@testing-library/user-event' +import { createRef } from 'react' +import { Textarea } from './Textarea' + +describe('Textarea', () => { + it('renders a textarea element', () => { + render(