Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9004

Rails6+Reactで付箋アプリっぽいページを作ってみた。4 (UI作成編2)

$
0
0

記事について

前回まででUIの作成を行いましたが、見た目があまりに寂しいので、
スタイルシートを使って、それっぽく見せてみます。

関連する記事

書いているうちに分量がすごくなって記事を分割したので、リンク先をまとめておきます。
その1(環境構築〜モデル作成編)
その2(API作成編)
その3(UI作成編1)
その4(UI作成編2)
おまけ(モデルのテスト編)

スタイルシート

white_board/main.htmlで使われるwhite_board.scssを編集して、各DOM要素の見た目を目ます。
全体的なレイアウトにはflexレイアウト。
付箋の中身は段組が指定しやすかったのでgridレイアウトを使用しています。

app/assets/stylesheets/white_board.scss
// タイトル要素div#WhiteBoardTitle{font-weight:bold;font-family:Monospace;font-size:24px;border-collapse:collapse;}// ホワイトボード全体// "display: flex"でflexレイアウトを指定しています。// 左上からピチっと並べてもらいます。div#WhiteBoard{width:100vw;height:100vh;display:flex;flex-flow:rowwrap;justify-content:flex-start;align-items:flex-start;align-content:flex-start;}// ユーザ毎の箱div.UserBox{margin:1px;width:45vw;height:45vh;border:1pxsolid;border-collapse:collapse;}// ユーザ名を表示する箱div.UserName{width:100%;height:25px;font-weight:bold;font-size:18px;font-family:Monospace;text-align:center;background-color:#FFEEAA;border-bottom:1pxsolid;}// 付箋表示エリア// ここもflexレイアウトdiv.TaskArea{width:100%;height:100%;display:flex;flex-flow:rowwrap;align-items:flex-start;align-content:flex-start;}// 付箋本体// 影をつけてそれっぽくdiv.Sticky{display:grid;padding:1px;margin:5px;width:100px;height:80px;font-size:10px;font-family:monospace;text-align:left;border:1px#FFFF00solid;background-color:#FFFF00;box-shadow:05px5pxrgba(0,0,0,0.3);}// タスクのタイトルdiv.TaskTitle{grid-row:1;grid-column:1/3;font-size:12px;font-weight:bold;font-family:monospace;border-bottom:#FF00001pxsolid;}// タスクの本文div.TaskDescription{grid-row:2/6;grid-column:1/3;font-size:10px;font-family:monospace;}// タスクの期日divTaskDueDate{grid-row:7/8;grid-column:1/3;font-size:8px;font-family:monospace;}

完成イメージ

こんな感じになると思います。
これで少しはましになったかなぁ。
スクリーンショット 2020-05-16 9.07.50.png

スタイルの変更後もテストだ。

まずは、これまで作ったテストを流してみます。
(間違ってvisible: hiddenになってしまったりなどの影響がないことが確認できます。)

で、狙ったスタイルが適用されているかもテストしてみます。

test/system/whiteboards_test.rb
test"style check"do# white_board/mainを開く。visitwhite_board_main_url;# タイトルはfont-weigt: bold, font-size: 24pxのはず。# font-weightをマッチする時はboldでなく、数値(700)でマッチします。find("div#WhiteBoardTitle").assert_matches_style("font-weight"=>"700","font-size"=>"24px");find("div#WhiteBoard").assert_matches_style("display"=>"flex","flex-flow"=>"row wrap","align-content"=>"flex-start","align-items"=>"flex-start");# ユーザ名部分username_divs=all("div",class: "UserName");username_divs.eachdo|username_div|username_div.assert_matches_style("font-weight"=>"700","font-size"=>"18px");end# 付箋# 色はrgba(赤, 緑, 青, 透過率)で比較するようです。stickies=all("div",class: "Sticky");stickies.eachdo|sticky|sticky.assert_matches_style("background-color"=>"rgba(255, 255, 0, 1)","width"=>"100px","display"=>"grid");endend

こういうテストを作っておくとスタイルシートの書き間違いなどで、狙ったスタイルが適用されてないことを検出することができます。
さらに、期日が近くなったら背景を赤くするなどの仕組みを取り入れたら、そういうのも自動でテストできるようになります。


Viewing all articles
Browse latest Browse all 9004

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>