);
}
diff --git a/src/components/textarea/textarea.scss b/src/components/textarea/textarea.scss
index 3d09353d7..ae2afa85b 100644
--- a/src/components/textarea/textarea.scss
+++ b/src/components/textarea/textarea.scss
@@ -5,6 +5,34 @@
cursor: text;
}
+.form-control {
+ display: flex;
+ flex-direction: column;
+
+ .label {
+ display: none;
+ }
+}
+
+.form-control--has-label {
+ .label {
+ display: inline-block;
+ margin-bottom: var(--sl-spacing-xx-small);
+
+ &.label--small {
+ font-size: var(--sl-input-font-size-small);
+ }
+
+ &.label--medium {
+ font-size: var(--sl-input-font-size-medium);
+ }
+
+ &.label--large {
+ font-size: var(--sl-input-font-size-large);
+ }
+ }
+}
+
.textarea {
display: flex;
align-items: center;
@@ -13,7 +41,7 @@
font-family: var(--sl-input-font-family);
font-weight: var(--sl-input-font-weight);
line-height: var(--sl-line-height-normal);
- letter-spacing: var(--sl-letter-spacing-normal);
+ letter-spacing: var(--sl-input-letter-spacing);
background-color: var(--sl-input-background-color);
border: solid var(--sl-input-border-width) var(--sl-input-border-color);
vertical-align: middle;
diff --git a/src/components/textarea/textarea.tsx b/src/components/textarea/textarea.tsx
index d174a714c..8dc765b0c 100644
--- a/src/components/textarea/textarea.tsx
+++ b/src/components/textarea/textarea.tsx
@@ -1,6 +1,8 @@
import { Component, Event, EventEmitter, Method, Prop, State, Watch, h } from '@stencil/core';
import ResizeObserver from 'resize-observer-polyfill';
+let id = 0;
+
/**
* @since 1.0
* @status stable
@@ -19,6 +21,8 @@ export class Textarea {
this.handleFocus = this.handleFocus.bind(this);
}
+ textareaId = `input-${++id}`;
+ labelId = `input-label-${id}`;
resizeObserver: any;
textarea: HTMLTextAreaElement;
@@ -33,6 +37,9 @@ export class Textarea {
/** The textarea's value attribute. */
@Prop({ mutable: true }) value = '';
+ /** The textarea's label. */
+ @Prop() label = '';
+
/** The textarea's placeholder text. */
@Prop() placeholder: string;
@@ -168,44 +175,63 @@ export class Textarea {
return (