[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
์ ๋ฐ์ค ๋ชจ๋ธ ๋ฐ๊นฅ ์์ญ์ ๊ทธ๋ ค์ ธ์ ์์ ํฌ๊ธฐ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
๊ธ ์์ ์ฌํญ์ ๋ ธ์ ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์
'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ๋๋ค ์์(Random Color) ์์ฑํ๊ธฐ (0) | 2025.03.04 |
---|---|
[CSS] ์์ ๋งฅ๋ฝ Stacking Context (0) | 2025.02.26 |
[React] ๋ฆฌ์กํธ 19 ์ ๋ฐ์ดํธ ๋ด์ฉ ํบ์๋ณด๊ธฐ (0) | 2025.02.08 |
[Next.js] Dynamic Routes ๋ค์ด๋๋ฏน ๋ผ์ฐํธ (0) | 2025.01.31 |
[Next.js] App Router ๊ณต์ ํํ ๋ฆฌ์ผ ํบ์๋ณด๊ธฐ (1) | 2025.01.30 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ๋๋ค ์์(Random Color) ์์ฑํ๊ธฐ
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ๋๋ค ์์(Random Color) ์์ฑํ๊ธฐ
2025.03.04 -
[CSS] ์์ ๋งฅ๋ฝ Stacking Context
[CSS] ์์ ๋งฅ๋ฝ Stacking Context
2025.02.26 -
[React] ๋ฆฌ์กํธ 19 ์ ๋ฐ์ดํธ ๋ด์ฉ ํบ์๋ณด๊ธฐ
[React] ๋ฆฌ์กํธ 19 ์ ๋ฐ์ดํธ ๋ด์ฉ ํบ์๋ณด๊ธฐ
2025.02.08 -
[Next.js] Dynamic Routes ๋ค์ด๋๋ฏน ๋ผ์ฐํธ
[Next.js] Dynamic Routes ๋ค์ด๋๋ฏน ๋ผ์ฐํธ
2025.01.31