反応と尾風によるフローティングラベル入力
5497 ワード
私は、2011年のサインのページに取り組んでいますHyperlaunch 今週、いくつかの良いタッチを追加したい(第一印象カウント!).
これらのうちの1つは素敵な「浮動ラベル」入力をすることになっていました-あなたが材料UIなどで見るように、それはユーザー・サインインのような機能のために本当に素晴らしいパターンです.
あなたは、このアプローチがちょうど使用していると思うかもしれません
私の浮動小数点ラベルの入力を実装React and Tailwind CSS - を使うstate hook ユーザーアクションに基づいてクラス名を切り替えるには.
結果は良い、簡潔なコンポーネントです.
これらのうちの1つは素敵な「浮動ラベル」入力をすることになっていました-あなたが材料UIなどで見るように、それはユーザー・サインインのような機能のために本当に素晴らしいパターンです.
あなたは、このアプローチがちょうど使用していると思うかもしれません
placeholder
属性-しかし、残念なことに、それは少しのアクセシビリティ問題を引き起こすことがありえます.この方法はabsolute
代わりにラベルを配置-ので、画面の読者はまだフォームを正しく解釈することができます.このアプローチは、本当にUXゲームに微妙な移行を追加することができるという利点があります.私の浮動小数点ラベルの入力を実装React and Tailwind CSS - を使うstate hook ユーザーアクションに基づいてクラス名を切り替えるには.
結果は良い、簡潔なコンポーネントです.
function FloatingLabelInput({ type, name, children }) {
const [active, setActive] = React.useState(false);
function handleActivation(e) {
setActive(!!e.target.value);
}
return (
<div className="relative border rounded mb-2 bg-gray-600 text-white border-white border-opacity-25">
<input
className={[
"outline-none w-full rounded bg-transparent text-sm transition-all duration-200 ease-in-out p-2",
active ? "pt-6" : ""
].join(" ")}
id={name}
name={name}
type={type}
onChange={handleActivation}
/>
<label
className={[
"absolute top-0 left-0 flex items-center text-white text-opacity-50 p-2 transition-all duration-200 ease-in-out",
active ? "text-xs" : "text-sm"
].join(" ")}
htmlFor={name}
>
{children}
</label>
</div>
);
}
これは以下のように使いやすい.<FloatingLabelInput name="username" type="text">Username</FloatingLabelInput>
あなたは行動でそれを見ることができますmy CodepenReference
この問題について(反応と尾風によるフローティングラベル入力), 我々は、より多くの情報をここで見つけました https://dev.to/chrsgrrtt/floating-label-input-with-react-and-tailwind-2e5hテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol