0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Next.js+supabaseで商品成分サーチアプリを作ってみた話4(CSS)

Last updated at Posted at 2024-09-11

※初心者のため、間違いや何かご存じの方がいましたら、教えていただけると助かります。

作ったもの

概要

取得データから、テーブルセルに値が表示されるが、値だけではユーザーがわかりにくいため、以下のように、値によって色付けするようにした。
css色付け.png

環境

windows11
docker-desktop
Next.js(app routerを使用)
supabase
ホスティング:Vercel

内容

1. cssファイルに以下のclassを用意。

.pink {
    background-color: pink !important;
}

.red {
    background-color: palevioletred !important;
}

.light-green {
    background-color: rgb(178, 235, 178) !important;
}

.green {
    background-color: greenyellow !important;
}

2. page.tsxで、上記cssをimport

3. page.tsxに以下のgetClassName(名前はなんでもよい。)を追記。なお、'light-green'はハイフン(-)が含まれているため、styles['light-green']としている。

const getClassName = (value: string) => {
        switch (value) {
            case '2':
                return styles.pink;
            case '3':
                return styles.red;
            case '-2':
                return styles['light-green'];
            case '-3':
                return styles.green;
            default:
                return '';
        }
    };

4. データセルのclassNameから、上記のgetClassNameを呼び出す。このとき、引数にセルに入るデータ値を渡すことで、3.の条件分岐にあったclassNameが適用されるようになる。

<tr key={ingredient.id}>
    <td className={getClassName(ingredient.absorp)} >{ingredient.absorp}</td>
    <td className={getClassName(ingredient.risk)} >{ingredient.risk}</td>
    <td className={getClassName(ingredient.environmental)} >
        {ingredient.environmental}
    </td>
</tr>

まとめ

MySQLやPostgreSQLなどのデータベースは、データ値を扱うことはできるが、エクセルやスプレッドシートと違って、そのままブラウザに表示してもユーザーには見にくい。(比較するものではないと思うが。エクセルなどでは、「条件付き書式」があり、セルを見やすくするのは簡単。)
そこで、CSSでセルに色付けをすることとした。
データを表示する際は、値だけではなく、「ユーザーが直感的に見やすいか」を軸に表示するように努めていきたい。

この4回までで、アプリ作成の詳細は省くが、今回アプリを作るうちに今後使えそうな機能をまとめた。

今回データベースとしてsupabaseを用いたが、このアプリを「非エンジニア」に渡したとしても、データの管理がしにくいと思われる。
そこで、次はgoogleスプレッドシートをデータベースみたいに使うアプリを考えている。(まだ構想段階。)
スプレッドシートであれば、「非エンジニア」であっても、データ操作が比較的管理しやすいはず。
これから勉強するため、しばし投稿をお待ちください。


0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?