import * as React from 'react'; import { TextareaAutosize } from '@mui/base/TextareaAutosize'; import { styled } from '@mui/joy/styles'; import Textarea from '@mui/joy/Textarea'; const StyledTextarea = styled(TextareaAutosize)({ resize: 'none', border: 'none', // remove the native textarea border minWidth: 0, // remove the native textarea width outline: 0, // remove the native textarea outline padding: 0, // remove the native textarea padding paddingBlockStart: '1em', paddingInlineEnd: `var(--Textarea-paddingInline)`, flex: 'auto', alignSelf: 'stretch', color: 'inherit', backgroundColor: 'transparent', fontFamily: 'inherit', fontSize: 'inherit', fontStyle: 'inherit', fontWeight: 'inherit', lineHeight: 'inherit', '&::placeholder': { opacity: 0, transition: '0.1s ease-out', }, '&:focus::placeholder': { opacity: 1, }, // specific to TextareaAutosize, cannot use '&:focus ~ label' '&:focus + textarea + label, &:not(:placeholder-shown) + textarea + label': { top: '0.5rem', fontSize: '0.75rem', }, '&:focus + textarea + label': { color: 'var(--Textarea-focusedHighlight)', }, }); const StyledLabel = styled('label')(({ theme }) => ({ position: 'absolute', lineHeight: 1, top: 'calc((var(--Textarea-minHeight) - 1em) / 2)', color: theme.vars.palette.text.tertiary, fontWeight: theme.vars.fontWeight.md, transition: 'all 150ms cubic-bezier(0.4, 0, 0.2, 1)', })); const InnerTextarea = React.forwardRef(function InnerTextarea(props, ref) { const id = React.useId(); return ( Label ); }); export default function FloatingLabelTextarea() { return (