同じ「丸み」でも、比べる相手が違えば別の表に置く
フッターの上の角を丸めています。ページの下に別の面が敷かれている、という見え方を作るためです。
ところが、実機で見返すと「もう少し丸くていい、50pxでもいいくらい」と感じました。当時は14pxでした。
丸みを1つの表で持っている構成に、表へ入れられない値が出てきたときの扱いです。1か所だけ大きくするか、表そのものを直すか、という話ではありませんでした。
丸みは1つの表で持っている
このサイトでは、角の丸さを6段階の表で持っています。既定値より意識的に小さくしてあります。
| 名前 | この表の値 | もとの既定値 |
|---|---|---|
| DEFAULT | 3px | 4px |
| md | 4px | 6px |
| lg | 6px | 8px |
| xl | 8px | 12px |
| 2xl | 10px | 16px |
| 3xl | 14px | 24px |
表で持っている理由は、調整を1か所で終わらせるためです。「全体的にもう少し角を立てたい」と思ったとき、この表の数字を書き換えれば、丸みを指定しているすべての場所が同じ方向へ動きます。個別に書いていたら、直し漏れた場所だけが取り残されます。
一番大きい値を50pxにすればいい、ではなかった
最初に考えたのは、表の一番大きい値を50pxにすることでした。フッターはその値を使っているので、これで目的は果たせます。
しかもこの値は、調べたらサイト全体でフッター1か所しか使っていませんでした。他に影響が出ないので、書き換えても壊れません。
それでもやめました。
壊れないことと、正しいことは別です。表の一番大きい値を50pxにすると、この表の意味そのものが変わります。
いまは1か所でも、次に誰かがカードの角を「一番大きく」したくなったとき、受け取る値は50pxになります。そのときには「なぜ一番大きい丸みだけ極端なのか」を説明できる人がいません。壊れるのは今日ではなく、次にこの表を使うときです。
比べる相手が違うものは、同じ表に置けない
考え直して分かったのは、この表が何のためにあるかでした。
DEFAULTから一番大きい値までは、1本の段階になっています。小さいものから大きいものへ並んでいて、ボタン、入力欄、タグ、カードのように本文の中に置かれる部品のためにあります。
これらの部品には共通点があります。画面の中で隣り合って並ぶので、互いの丸みを見比べられるということです。ボタンよりカードのほうが少し丸い、という関係が意味を持ちます。だから同じ段階の上に居る必要があります。
フッターは違います。幅が画面いっぱいあり、隣に並ぶものがありません。比べる相手は画面の縁だけです。
| 部品の丸み | 面の丸み | |
|---|---|---|
| 対象 | ボタン・入力欄・カード | フッターのような大きな面 |
| 置かれる場所 | 本文の中 | ページの下に敷かれる |
| 比べる相手 | 隣り合う他の部品 | 画面の縁 |
| 決め方 | 段階の中での前後関係 | その面だけで見て伝わるか |
表の6段階はそのままにして、panel という名前で50pxを別に足しました。段階の外です。
こうすると、表を書き換えたときに動くのは部品だけになります。面の丸みは別の判断で決まるので、一緒に動かないほうが正しい。同じ「丸み」という言葉で呼んでいても、決め方が違うものは別の場所に置くということです。
なぜ14pxでは足りなかったのか
数字の話も書いておきます。
同じ半径でも、対象が横に広いほど、角の丸みは相対的に小さく見えます。幅300pxのカードの14pxと、幅1200pxのフッターの14pxでは、目に入る割合が違います。
フッターの角を丸めているのは、そこに背景がわずかに覗いて「下に別の面が重なっている」と伝えるためです。角が丸いことに気づけない大きさでは、その役割を果たしません。14pxは、部品としては十分でも、面としては足りませんでした。
今回の学び
まず、壊れないことは、変えてよい理由にはならないこと。使っている場所が1か所しかなければ、書き換えても何も起きません。ただし表の意味は変わっていて、次にその表を使う人が想定外の値を受け取ります。影響が出るのが今日でないだけです。
次に、同じ言葉で呼んでいるものが、同じ決め方とは限らないこと。部品の丸みは隣と比べて決まり、面の丸みはそれ単体で伝わるかで決まります。決め方が違うものを1本の段階に押し込むと、どちらかが無理をすることになります。
そして、例外は、例外だと分かる場所に置くこと。段階の中に極端な値を混ぜると、段階のほうが読めなくなります。外へ出して名前を付ければ、なぜそこにあるのかを書き残せます。書き残せる形にすること自体が、判断を残す手段になります。
関連記事

進捗バーが0から始まらないのは、測る場所を1つ間違えていたからだった
なぜ0から始まらなかったのか、どこを基準に測るかで何が変わるのか。そして、終わりの位置を動かさずに始まりだけ直す方法です。

「画面に入った」で数えたら、17%残して読了になった
「画面に入った」で数えると何が起きるか、それを「通り過ぎた」に変えると何が揃うか。そして、速く動かしたときに何を数えていいのかです。

一瞬だけ、白くなる
ダークモードを入れました。開いた瞬間に一瞬だけ白くなる現象と、24か所に散らばった色を1つずつ直さずに済ませた方法の記録です。