143
164

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Figma でデザイン、そのままデモ、そのまま実装!

Last updated at Posted at 2023-10-18

はじめに

この記事は社内勉強会用に書いたものです

みなさん、デザインツールの Figma を使っていますか?

私はまだ「使っている」と言えるほど使えていません

というわけで勉強会を開催して勉強します

Figma とは

公式の紹介文は以下のとおりです

デザインの追求からプロトタイプ作成、制作物のコーディングまで、Figmaはチームがコラボレーションして製品開発するためのプラットフォームです

本記事のタイトルと同じように、「デザインからデモ・実装までチームで製品開発できる」旨が書かれています

まさにその通りで、ブラウザ上で UI をデザインし、そのまま動かしてみることができ、最終的にはコードの生成までできてしまうツールです

Figmaの画面

Figma の人気

2022年に世界中のデザイン関係者を対象としたアンケートでも Figma は圧倒的な人気です
いずれのランキングでも2位の10倍以上の得票数になっています

また、2023年に使ってみたいツールでも2位の3倍以上の人気で、これからもこの状況が続きそうです

Figma の料金体系

こちらが料金表です

まずは無料で使い始めることができます

無料でも個人用の下書き(Drafts)であればいくつでも作ることが可能です

また、下書きを他の人に閲覧してもらうことも可能です

ただし、下書きを編集できるのは自分だけなので、複数人で編集したい場合、チーム開発の機能を使う必要があります

無料プランと有料プランの違い

無料のスタータープランでは チーム内にプロジェクト(Figmaファイル)を3つまで、一つのプロジェクト内にページを3つまで 作成できます

また、スタータープランでは他のユーザーと共有する際、 リンクのURLだけでアクセス可能になってしまう ため、秘密情報は扱えません

有料のプロフェッショナルプランでは チーム内のプロジェクト数、プロジェクト内のページ数が無制限 になります

また、共有の際に パスワード保護 を掛けることができます

スクリーンショット 2023-10-16 20.10.23.png

更に上位のビジネスプランでは複数チームを作成することができたり、SSOや認可などセキュリティ機能が強化されています

業務で使用する場合は有償プランを使いましょう

課金体系

編集者一人当たり で課金されます

したがって、 閲覧するだけのユーザーであれば課金されません

特定の人だけが編集するのであれば料金を抑えることができます

Figma のはじめかた

Figma のトップページ右上の「無料で始める」をクリックします

スクリーンショット 2023-10-16 20.25.11.png

とりあえず使ってみるだけであれば「Googleで続行」で Google アカウントを使うのが簡単です

社内で使うのであれば社用メールを使ってアカウントを作りましょう

スクリーンショット 2023-10-16 20.26.28.png

Figma の使い方

Figma のデザインは「デザインファイル」の中に作っていきます

デザインファイルの追加

上部メニューの「+デザインファイル」をクリックします

スクリーンショット 2023-10-16 23.53.09.png

以下のように空のデザインファイルが開きます

スクリーンショット 2023-10-16 23.54.35.png

上部中央「無題」と書いてあるところをクリックすると、ファイル名が変更できます

フレームの追加

左上の#マークをクリックし、中央の灰色の領域上でドラッグするとフレームが追加できます

フレームは一つの画面(または画面の状態)をデザインする領域です

frame.gif

図形の追加

「#」の右隣、四角形をクリックしてフレーム内でドラッグすると四角形が追加できます
(他にも直線や矢印、楕円、多角形などの図形が追加できます)

追加した図形は右メニューで色や丸みなどの属性を変更可能です

rectangle.gif

テキストの追加

上部メニュー「T」をクリックし、フレーム内で再びクリックするとテキストを追加できます

テキストも右メニューから属性を変更可能です

text.gif

コンポーネント化

複数の図形やテキストを選択して右クリック「コンポーネントの作成」でコンポーネント化することができます

コンポーネントをコピーすると、属性情報が共有された状態になります

component.gif

プロトタイプ(画面遷移デモ)の作成

右メニュー上部で「プロトタイプ」を選択します

その状態で図形の端をクリックすると、矢印が出てきます

矢印の先を別のフレームに接続します

上メニューの再生ボタン(▶️)をクリックすると、ボタンクリックで画面遷移するデモが実行できます

prototype.gif

コードの生成

上メニューの小さい図形が4つ集まっているアイコンをクリックし、プラグインを検索します

code と入力すると「Figma to Code」プラグインが表示されるので選択します

「Figma to Code」のダイアログが開き、その状態でフレームやコンポーネントを選択すると、選択したものが HTML などのコードに変換されます

to-code.gif

Figma から生成されるコードを活かす実装例

Tailwind CSS はスタイルを CSS ではなく HTML 内のクラス名で完結させるため、 Figma との相性が良いです

「Figma to Code」のダイアログで「Tailwind」タブを選択しておけば、そのままコードを貼り付けるだけで実装できてしまいます

もちろん、実際にはスタイルや要素の調整が必要にはなりますが、ある程度構造や属性ができた状態になるので効率的です

この辺りは Pines と同じ感覚ですね

実際に使用する例として Phoenix と Nuxt の実装を紹介します

Phoenix LiveView

Phoenix の前提条件

Elixir がインストールされていること

Phoenix のインストール

以下のコマンドを実行し、 Phoenix をインストールします

mix archive.install hex phx_new

詳細はこちら

Phoenix プロジェクトの作成

Phoenix プロジェクトを新規作成します

今回はとりあえず画面だけを見たいので、 DB は使わないように指定しています

mix phx.new phoenix_app --no-ecto

詳細はこちら

Phoenix へのコード反映

Phoenix LiveView は標準で Tailwind CSS に対応しています

テンプレートファイル(.heex)に Figma から出力したコードを貼り付けるだけです

lib/phoenix_app_web/controllers/page_html/home.html.heex

<div class="w-96 h-64 relative bg-white">
  <div class="w-40 h-12 left-[127px] top-[105px] absolute">
    <div class="w-40 h-12 left-0 top-0 absolute bg-fuchsia-600 rounded-3xl"></div>
    <div class="left-[42px] top-[10px] absolute text-white text-2xl font-normal font-['Inter']">ボタン</div>
  </div>
  <div class="w-40 h-12 left-[127px] top-[178px] absolute">
    <div class="w-40 h-12 left-0 top-0 absolute bg-fuchsia-600 rounded-3xl"></div>
    <div class="left-[42px] top-[10px] absolute text-white text-2xl font-normal font-['Inter']">ボタン</div>
  </div>
</div>

http://localhost:4000 にアクセスすると、 Figma でデザインしたのと同じ画面が表示されます

スクリーンショット 2023-10-17 11.36.04.png

Nuxt.js (Vue.js)

Nuxt の前提条件

Node.js がインストールされていること

Nuxt プロジェクトの作成

Nuxt のプロジェクトを新規作成します

npx nuxi@latest init nuxt-app

色々な質問に適当に答えていくと、 Nuxt の最小限の構成が作成されます

詳細はこちら

Nuxt への Tailwind CSS 導入

公式サイトの手順に従い、 Nuxt プロジェクトに Tailwind CSS を導入します

以下のコマンドを実行し、依存パッケージのインストール初期化を実行します

npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init

nuxt.config.js を以下のとおり編集します

export default defineNuxtConfig({
- devtools: { enabled: true }
+ devtools: { enabled: true },
+ css: ['~/assets/css/main.css'],
+ postcss: {
+   plugins: {
+     tailwindcss: {},
+     autoprefixer: {},
+   },
+ },
})

tailwind.config.js を以下のとおり編集します

module.exports = {
- content: [],
+ content: [
+   "./components/**/*.{js,vue,ts}",
+   "./layouts/**/*.vue",
+   "./pages/**/*.vue",
+   "./plugins/**/*.{js,ts}",
+   "./app.vue",
+   "./error.vue",
+ ],
  theme: {
    extend: {},
  },
  plugins: [],
}

assets/css/main.css ファイルを以下の内容で作成します

@tailwind base;
@tailwind components;
@tailwind utilities;

Nuxt へのコード反映

app.vue<template></template> 内に Figma から出力したコードを貼り付けます

<template>
- <div>
-   <NuxtWelcome />
- </div>
+ <div class="w-96 h-64 relative bg-white">
+   <div class="w-40 h-12 left-[127px] top-[105px] absolute">
+     <div class="w-40 h-12 left-0 top-0 absolute bg-fuchsia-600 rounded-3xl"></div>
+     <div class="left-[42px] top-[10px] absolute text-white text-2xl font-normal font-['Inter']">ボタン</div>
+   </div>
+   <div class="w-40 h-12 left-[127px] top-[178px] absolute">
+     <div class="w-40 h-12 left-0 top-0 absolute bg-fuchsia-600 rounded-3xl"></div>
+     <div class="left-[42px] top-[10px] absolute text-white text-2xl font-normal font-['Inter']">ボタン</div>
+   </div>
+ </div>
</template>

Nuxt 起動

以下のコマンドで Nuxt サーバーを起動します

npm run dev

http://localhost:3000 にアクセスすると、 Figma でデザインしたのと同じ画面が表示されます

スクリーンショット 2023-10-17 11.21.05.png

その他のプラグイン

Figma には他にも様々なプラグインがあり、他サービスと連携して React や Vue のコードを生成することも可能です

本記事ではサインイン等が不要なものだけ紹介します

html.to.design

既存の Web サイトを Figma にインポートできます

スクリーンショット 2023-10-17 11.51.30.png

Mockup

スマホなどの画面上に写っているように見せることができます

スクリーンショット 2023-10-17 14.07.26.png

エクスポートすれば簡単に広告画像が作成可能

iPhone 15.png

Split Shape

等間隔に分割できます

split.gif

Wave & Curve

キレイな波線や曲線を描くことができます

curve.gif

Unsplash

フリー素材の画像を検索し、 Figma にインポートできます

スクリーンショット 2023-10-17 11.58.40.png

Iconify

無料アイコンを検索し、 Figma にインポートできます

スクリーンショット 2023-10-17 12.00.31.png

まとめ

Figma を使うことで簡単にデザイン、デモ、実装ができました

ツールを使いこなして効率的に開発しましょう!

143
164
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
143
164

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?