Closed7
Figmaでフォームを作りながら操作方法を覚える
Figmaでフォームを作る
操作方法を覚えるのが主な目的なので、個別の用語については触れない
前提
- エンジニア
- Figmaの概念はある程度わかる(devモードで見たりするので)
- 操作方法がわからない
ちなみに、方針自体はClaudeに作ってもらいつつスクラップは自力で書いている
フレームの作成
- Fでベースとなるフレーム(Frame)を作る
- もう1回Fでフレームをつくって、Shift + AでAuto Layoutにする(Form Container) これがフォームのコンテンツを入れるコンテナになる 左パネルでDnDをしてFrame下に入れる
- ヘッダーをつける Tでテキストボックスを出して、適当な文字(New Form)を入力 Container下に置く
- 右側のTypographyからNew Formのスタイルを変更する
テキスト入力コンポーネントの作成
- Fでフレームを作る(TextField)、Shift + AでAutoLayout化
- Tでラベルを作成、TextField下に入れる ちなみに、文字色はFillで変えられる(なんでTypographyに含まれないんだろうか)
- Rで矩形(Input)を作成する 右カラムのStrokeから枠線をつける Apperanceでborder-radiusを指定する
- 今回はラベルとInputを縦に並べたい TextFieldを選択して、AutoLayoutのVertical Layoutを選択
- 同じくAutoLayoutからgapを調整する
- UIコンポーネント的な考え方でいうと外側のmargin/paddingは存在しないほうがいいので同じくAutoLayoutから0にする ただ、これはHTMLとして実装するときのベストプラクティスだからFigmaでも同じことが言えるかどうかはわからない
- TextFieldを選択して、Cmd + Option + Kでコンポーネント化
- さらに、利用側でラベルの文字列を変更できるようにしたい TextFieldを選択して、Add property->Textを選択 出てきたダイアログでName, Valueを適当に埋める
- Labelを選択して、TypographyのセクションからApply Text Propertyを選択 先ほど作ったプロパティを紐づける
- 適当にTextFieldをコピーして貼り付けると、右カラムにプロパティの変更セクションがあることが確認できる
ラジオボタンを追加する
- Fでフレームを作成(Radio), Auto Layout
- 先ほど作ったTextFieldからラベルをコピーしてきて、Radio下に配置(Label単体でコンポーネントとして切り出してもいいのかもしれない)
- Fでもう一度フレームを作成(RadioItem)、Auto Layout これは各選択肢
- Oで円を2つ作成 1つはラジオボタンの内側の円なので小さくする 2つを重ねる(親子関係になってなくてもよい)
- 2つの円を選択した状態で、Shift + AでAuto Layout化するとフレームが作成される(Radio Button) 並び方はAlign Centerにする RadioItemに入れる
- Tでテキストを作り、RadioItemに入れる
- RadioItemをコンポーネント化 必要ならラベルに対してPropertyの設定をする
- RadioItemを右クリックしてMain component->Add variant
- 新しくできたほうのVariantで、RadioButtonの内側の円を選択 Appearance->Hideで消す
- コンポーネントをコピーして、インスタンスをRadioに入れていく 1つ以外は右カラムのプロパティからVariantを内丸が非表示のほうにする
- Radioをコンポーネント化 必要ならラベルに対してPropertyの設定をする
あくまでサンプルなのでコンポーネントはこの2つで終わり
FormContainerに追加する
- TextField, Radioをコピーしていくつかインスタンスをつくる
- FormContainerに追加していく
- Auto Layoutで左揃えにする
- Propertyをそれぞれ適宜編集する
おわり
感想など
Figmaのコンポーネントの切り方とか、プロパティの設定とかをReactのコンポーネント設計に落とし込めるとよさそう
画面全体ではなくて、コンポーネント設計もデザインを実装に反映させていくイメージ
特にデザインシステムはこれで作れるとよいし、有名どころは実際そうしているんだろうと思う
ただ、デザイナーとエンジニアの間でコンポーネント設計に対して共通認識を持っていることがどれだけのメリットを生むのかはあまりわからない
やってよかった
これでGoogleを作れるようになっただろうと思います
このスクラップは1ヶ月前にクローズされました