[CSS] :focus, :focus-visible ์ฐจ์ด์
focus, focus-visible
:focus
: ๋ชจ๋ ํฌ์ปค์ค ์ํฉ(ํค๋ณด๋, ๋ง์ฐ์ค, ํฐ์น)์ ์ ์ฉ:focus-visible
: ํค๋ณด๋ ํฌ์ปค์ค ๋๋ ๋ธ๋ผ์ฐ์ ์์ ํฌ์ปค์ค ํ์๊ฐ ํ์ํ๋ค๊ณ ํ๋จํ ๋๋ง ์ ์ฉ- Tab ํค๋ก ํฌ์ปค์ค ์ด๋ ์(ํค๋ณด๋ ํฌ์ปค์ค)
- ํค๋ณด๋ ์ ๋ ฅ์ ์ง์ํ๋ ์์(ํ ์คํธ ์ ๋ ฅ ํ๋ ๋ฑ)
- …
์ผ๋ฐ์ ์ผ๋ก ๋ง์ฐ์ค ์ฌ์ฉ์์๊ฒ ๋ถํ์ํ ์ธ๊ณฝ์ ์ ์จ๊ธฐ๋ฉด์ ํค๋ณด๋ ์ฌ์ฉ์์ ์ ๊ทผ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด :focus
์ :focus-visible
์ ํ์๋ฅผ ์กฐํฉํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
/* ๊ธฐ๋ณธ ํฌ์ปค์ค ์คํ์ผ ๋ฆฌ์
*/
button:focus {
outline: none;
}
/* ํค๋ณด๋ ํฌ์ปค์ค ์ ์คํ์ผ ์ ์ฉ */
button:focus-visible {
outline: 2px solid green;
}
outline, ring
Shadcn ์ปดํฌ๋ํธ์์ :focus-visible
์ํ์ outline
๋์ ring
์ ์ฌ์ฉํ๋ค. outline
์ ๋ธ๋ผ์ฐ์ ๋ง๋ค ํ์ ๋ฐฉ์์ด ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ ๋์์ธ ์์คํ
์ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ด๋ ต๋ค. ๋ฐ๋ฉด, Tailwind CSS์ ring
์ ํธ๋ฆฌํฐ ํด๋์ค๋ box-shadow
๋ฅผ ํ์ฉํ๋ฏ๋ก ์ํ๋ ๋๊ป์ ์์์ผ๋ก ์ผ๊ด๋ ๋์์ธ์ ์ ์งํ ์ ์๋ค.
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
์ฐธ๊ณ ๋ก border
๋ ๋ฐ์ค ๋ชจ๋ธ์ ํฌํจ๋๊ธฐ ๋๋ฌธ์ ์์ ํฌ๊ธฐ์ ์ํฅ์ ์ฃผ์ง๋ง, outline
๊ณผ ring
์ ๋ฐ์ค ๋ชจ๋ธ ๋ฐ๊นฅ ์์ญ์ ๊ทธ๋ ค์ ธ์ ์์ ํฌ๊ธฐ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
๊ธ ์์ ์ฌํญ์ ๋ ธ์ ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์