feat(spindle-ui): add form components#9
Conversation
|
|
||
| .spui-Checkbox-input:focus ~ .spui-Checkbox-outline { | ||
| /* TODO: set module background color instead of white */ | ||
| box-shadow: 0 0 0 2px white, 0 0 0 4px var(--color-focus-clarity); |
There was a problem hiding this comment.
outline用の1つめのbox-shadow色が、親要素の背景色(認証だと--app-surface-color)を入れるようになっているのだけど、いろんなアプリケーションで使うUIだと毎回指定ちと大変かなと思いつつ、いい方法あるかな?
- カスタムプロパティにして指定できるようにする
- outlineの実装方法を変更する (同時にスタイルも変わってしまう可能性もある)
There was a problem hiding this comment.
たしかにレイアウトによっては、Surface Colorを2枚以上重ねたり、Surface Colorに半透明の色(gray alpha 5とか)を使っている(※)要素の上にこういったComponentを配置した場合、今の outline用の1つめのbox-shadow色 が必要な実装だと、必ずしもこのoutline用の1つめのbox-shadow色 がSurface Colorと同色にならないんですよね。
(※この図のSecondary, Tertiaryを使う時
)
(認証の場合偶然white 100だったので問題なかったですが。)
- カスタムプロパティにして指定できるようにする
こっちなら配置する場所のSurface Colorに合わせて色を近づけることはできそうです。(Surface Colorが半透明色の場合、厳密に同じ色ではないですが、大きな問題にはならなそう?)
- outlineの実装方法を変更する (同時にスタイルも変わってしまう可能性もある)
オブジェクトの形に沿ったアウトライン形状にしたいというオーダーでbox-shadowを選択したので、outlineプロパティでは難しそう・・:thinking:
1が良さそうかなと思いつつ、他に実現方法を @hiloki 先生が知っていたりしないかな・・:eyes:チラッ
There was a problem hiding this comment.
アウトラインの内側に2pxのoffsetがあればいいってことですよね?
かつアウトライン用のspanがあるということであれば、
.spui-Checkbox-outline {
border-radius: 2px;
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
/* ~padding: 2px;~ さっき書いたけどこれは不要だった */
}
.spui-Checkbox-input:focus ~ .spui-Checkbox-outline {
box-shadow: 0 0 0 2px var(--color-focus-clarity);
}
Sample: https://jsbin.com/beraqof/1/edit?html,css,output
こういう感じで実現できる予感。
53da7b7 to
17cf8ae
Compare
|
@herablog 複数のCheckboxやRadioで、tab操作のときにフォーカス順がおかしいのってなんでだろ? |
|
@hiloki むむ、こりはTabのみで遷移した場合ってことですかな!? |
|
@herablog そうです!っておもったけど、radioだとその挙動がデフォルトだった...なんでもないです! |
|
@hiloki ダヨネ。確認ありがとです! |
hiloki
left a comment
There was a problem hiding this comment.
アイコンを含めた装飾やレイアウトはまだ未確定のところがあるので、本PRはApproveます


認証プロジェクトを参考にForm関連要素のText Field, Label, Checkbox, Radio, InavalidMessageコンポーネントを作成しました。いくつか気になるところ、相談したいところがあるので、それぞれ個別にコメントします。
Storybook
TODO
別のPRで対応