<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>seonhui.log</title>
        <link>https://velog.io/</link>
        <description>UX/UI</description>
        <lastBuildDate>Tue, 25 Feb 2025 02:05:28 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>seonhui.log</title>
            <url>https://velog.velcdn.com/images/seonhui__/profile/2c4a637d-04e7-4d1c-9d8b-4ee9d94dc5a5/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. seonhui.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/seonhui__" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[햄버거메뉴 변형]]></title>
            <link>https://velog.io/@seonhui__/%ED%96%84%EB%B2%84%EA%B1%B0%EB%A9%94%EB%89%B4-%EB%B3%80%ED%98%95</link>
            <guid>https://velog.io/@seonhui__/%ED%96%84%EB%B2%84%EA%B1%B0%EB%A9%94%EB%89%B4-%EB%B3%80%ED%98%95</guid>
            <pubDate>Tue, 25 Feb 2025 02:05:28 GMT</pubDate>
            <description><![CDATA[<p>리니지M 웹사이트에서 햄버거버튼이 마우스를 가져다대면 화살표로 변하는게 맘에들었다.
gif로 만들어서 넣으면 편하겠지만 svg로 만들어봤다</p>
<p>path로 필요한 선을 그려준 뒤 각각에 class를 줘서 스타일을 적용했다.
회전할 중심점을 잡아주고 화살표의 머리부분은 길이를 줄여주었다.</p>
<p>만들면서 가끔 보이던 한바퀴 빙글 도는 취소버튼도 만들었다.</p>
<p>마우스를 올리면(hover) transition이 실행되게 하고싶은데
각각 따로따로 움직이는 상황이 있었다. (마우스를 올린 막대기만 움직임)</p>
<p>.hambugi 클래스를 가진 요소에 마우스가 올라갔을 때, 그 요소의 자손인 .path1 클래스를 가진 요소에 스타일을 적용하는 방법으로 자손요소가 한번에 재생되도록 바꿨다.</p>
<p>!codepen[ysuwjwgl-the-styleful/embed/qEBaZJX?default-tab=html%2Cresult]</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[마우스를 따라오는 얼굴]]></title>
            <link>https://velog.io/@seonhui__/%EB%A7%88%EC%9A%B0%EC%8A%A4%EB%A5%BC-%EB%94%B0%EB%9D%BC%EC%98%A4%EB%8A%94-%EC%96%BC%EA%B5%B4</link>
            <guid>https://velog.io/@seonhui__/%EB%A7%88%EC%9A%B0%EC%8A%A4%EB%A5%BC-%EB%94%B0%EB%9D%BC%EC%98%A4%EB%8A%94-%EC%96%BC%EA%B5%B4</guid>
            <pubDate>Mon, 17 Feb 2025 03:31:44 GMT</pubDate>
            <description><![CDATA[<p>mousemove이벤트와 event.clientX, event.clientY 로 마우스의 위치값을 받아낸 뒤
마우스를 인식할 영역의 중앙위치(얼굴이미지의 중심좌표)를 기준으로 마우스 위치값과의 차이를 계산해 그 값만큼 눈동자, 얼굴이 각각 *0.03, *0.04만큼씩 이동하게 제작했다.</p>
<p>인식 영역의 세로 길이가 짧아 움직임이 적기 때문에 세로(Y)축에는 *0.07, *0.1으로 계산해 가로에 비해 조금더 움직임을 크게 줬다.</p>
<p>!codepen[ysuwjwgl-the-styleful/embed/xbxwVve?default-tab=html%2Cresult]</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[토글버튼]]></title>
            <link>https://velog.io/@seonhui__/%ED%86%A0%EA%B8%80%EB%B2%84%ED%8A%BC</link>
            <guid>https://velog.io/@seonhui__/%ED%86%A0%EA%B8%80%EB%B2%84%ED%8A%BC</guid>
            <pubDate>Fri, 14 Feb 2025 09:00:09 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/seonhui__/post/9d36dc5c-8d7a-4357-8e6f-459b1692ae29/image.gif" alt=""></p>
<p>checkbox로 구현하는데 디자인을 바꾸면서 checkbox의 기능은 구현하기 위해
label태그로 연결한 뒤 labal태그에 디자인을 구현하고 기존 checkbox는 display: none;처리했다..(접근성 측면에서는 이러면 안되던가 좀더 고민)</p>
<p>정확히 버튼을 클릭하지 않아도 동작하도록 라벨 태그를 배경으로 만들고
::before 요소로 토글 버튼 안쪽을 만들었다.</p>
<pre><code>    #btn:checked + .togle {
        background-color: #70f190;
        box-shadow: 3px 3px 10px 0 #51ac51 inset;
    }

    #btn:checked + .togle::before {
        background-color: white; 
        transform: translateX(40px); 
    }</code></pre><p>기능없는 토글버튼은 CSS만 사용해서 구현 가능하기 때문에 
#btn:checked + .togle로 체크되었을때의 배경색, 버튼색, 버튼위치를 만들었다.</p>
<p>자연스럽게 바뀌게 하기 위해 기존 디자인에는 
transition: background-color 0.3s ease;
transition: transform 0.3s ease;
를 작성해서 시간을 줬다.</p>
<p>기존에 배경색과 버튼색을 동일하게해서 달의 파여진면을 표현했는데
박스셰도우때문에 위쪽이 어색하게 남은 부분을 투명도를 주어 제거했다.</p>
<h3 id="토글버튼구현-코드펜">토글버튼구현 코드펜</h3>
<p>!codepen[ysuwjwgl-the-styleful/embed/raNVBBJ?default-tab=html%2Cresult]</p>
<p>!codepen[ysuwjwgl-the-styleful/embed/LEYVPEq?default-tab=html%2Cresult]</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스크롤에 따라오는 라인]]></title>
            <link>https://velog.io/@seonhui__/%EC%8A%A4%ED%81%AC%EB%A1%A4%EC%97%90-%EB%94%B0%EB%9D%BC%EC%98%A4%EB%8A%94-%EB%9D%BC%EC%9D%B8</link>
            <guid>https://velog.io/@seonhui__/%EC%8A%A4%ED%81%AC%EB%A1%A4%EC%97%90-%EB%94%B0%EB%9D%BC%EC%98%A4%EB%8A%94-%EB%9D%BC%EC%9D%B8</guid>
            <pubDate>Wed, 12 Feb 2025 05:01:54 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>참고한 사이트: <a href="https://www.fl-ex.co.kr/">https://www.fl-ex.co.kr/</a> </p>
</blockquote>
<p>웹사이트를 구경하다가 스크롤에 맞춰서 라인이 생기는게 너무 멋있었다.
<img src="https://velog.velcdn.com/images/seonhui__/post/da8497ad-1847-4c9d-bbc5-a96da703bf86/image.gif" alt=""></p>
<p>svg로 path를만들기 위해 우선 일러스트레이터로 패스를 그렸다.
그린 패스의 앵커포인트 위치를 순서대로 정리하고 그 사이에 있는 핸들의 끝점위치를 찍어 작성했다.</p>
<p>처음 점좌표는 시작점이라서 앞에 M을 붙이고 그 다음으로 오는 좌표에 커브라는 뜻의 C를 붙이고 좌표 3개를 적은다음 반복하면 된당</p>
<p>M시작앵커포인트 C핸들 핸들 앵커포인트 C핸들 핸들 앵커포인트 ... 이런식</p>
<p>M0,168 C12,144 80,82 191,76 C361,67 401,224 258,367 C151,473 101,441 93,420 C85,400 109,348 234,322 C407,286 408,342 412,429 C417,507 463,573 595,554</p>
<p><img src="https://velog.velcdn.com/images/seonhui__/post/2892fa30-870d-4fe1-a03a-5591a5135d43/image.PNG" alt=""></p>
<p><a href="https://codepen.io/ysuwjwgl-the-styleful/pen/GgRRXVo">https://codepen.io/ysuwjwgl-the-styleful/pen/GgRRXVo</a>
**아래는 코드펜에서 스크롤값이 작아지기 때문에 end:&quot;top -120px&quot;로 수정해뒀다.
실제로는 웹 사이트 높이에 맞게 넣어야 이쁜것같다.</p>
<p>!codepen[ysuwjwgl-the-styleful/embed/RNwwerr?default-tab=html%2Cresult]</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[스크롤 프로그래스바 🚀]]></title>
            <link>https://velog.io/@seonhui__/%EC%8A%A4%ED%81%AC%EB%A1%A4-%EC%9C%84%EC%B9%98%EC%97%90-%EB%A7%9E%EC%B6%B0-%EC%9D%B4%EB%8F%99</link>
            <guid>https://velog.io/@seonhui__/%EC%8A%A4%ED%81%AC%EB%A1%A4-%EC%9C%84%EC%B9%98%EC%97%90-%EB%A7%9E%EC%B6%B0-%EC%9D%B4%EB%8F%99</guid>
            <pubDate>Tue, 11 Feb 2025 08:56:05 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>참고한 블로그 : <a href="https://devinus.tistory.com/61">https://devinus.tistory.com/61</a></p>
</blockquote>
<p>**
🚀이미지가 스크롤에 따라 left:0에서 left:100%까지 이동하는 프로그래스바
로켓은 스크롤 되는 동안 상단에 고정되며 글자보다 위에 있어야한다.
스크롤 진행도에 따라 이미지의 각도가 변경되었으면 좋겠다!**</p>
<p>!codepen[ysuwjwgl-the-styleful/embed/QwLrXpg?default-tab=html%2Cresult]</p>
<p><span><strong style="color:#20C997">코드확인</strong></span>
scrollHeight = document.documentElement.scrollHeight - window.innerHeight
전체 웹페이지의 높이 - 브라우저 창의 높이 = scrollHeight로 정의.
scrollHeight는 스크롤 하지 않았을 때 브라우저에 보이지 않는 영역의 높이와 같다.</p>
<p>scrolled = (window.scrollY / scrollHeight)<em>100
(스크롤된영역 / 보이지 않던 영역)</em>100 = scrolled로 정의.
스크롤된px만큼을 scrollHeight로 나눈 뒤 *100을 했다
scrolled는 스크롤 된 비율% 과 같다</p>
<p>scrolled를 progressBar.style.width = scrolled + &quot;%&quot;;로 속성값에 입력.</p>
<p>대충 전체 웹페이지의 높이가 1500px 브라우저 높이가1000px라고 치면
scrollHeight=500가 된다. 
*scrollHeight는 스크롤될 수 있는 부분의 높이군 즉 이전엔 안보이던 영역의 높이</p>
<p>window.scrollY/scrollHeight에서 100px만큼 스크롤을 내린다면
100/500=0.2*100 =20이고
progressBar.style.width=20%가 된다.</p>
<p>그럼 윈도우 너비가 1920px일때 width가 384px가 된다.
스크롤 된 % 만큼 너비가 늘어난것.</p>
<p>여기서 로켓 이미지를 추가하고 로켓의 rocket.style.left = r_scrolled + &quot;%&quot;;으로
로켓의 위치를 left:scrolled%만큼 이동시켜서 같이 이동하는 모양으로 만들었다!</p>
<p>scrolled100%가 되면 창 밖으로 로켓 이미지가 사라지기 때문에 
(window.scrollY / scrollHeight)* 95로 벗어나지 않게했다</p>
<p>이번엔 프로그래스바가 로켓 이미지보다 길어져서 튀어나와서
(window.scrollY / scrollHeight) * 98로 로켓 뒤에 가려지게했다</p>
<p>기존 각도 25deg에 스크롤진행도에 따라 각도를 더 주기 위해
const r_deg = (r_scrolled * 0.3) +25; 로 진행도의 0.3 만큼씩 각도를 더 준 다음
rocket.style.rotate = r_deg + &quot;deg&quot;; 각도에 넣어주었다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[글자 애니메이션]]></title>
            <link>https://velog.io/@seonhui__/%EA%B8%80%EC%9E%90-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98</link>
            <guid>https://velog.io/@seonhui__/%EA%B8%80%EC%9E%90-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98</guid>
            <pubDate>Fri, 07 Feb 2025 08:54:50 GMT</pubDate>
            <description><![CDATA[<p>!codepen[ysuwjwgl-the-styleful/embed/MYgNbvg?default-tab=html%2Cresult]</p>
<p>overflow: hidden을 적용한 컨테이너안의 글자를 top:70으로 내려 가려지게 한 뒤
애니메이션을 이용해 나타나게한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS Transform & Animations ]]></title>
            <link>https://velog.io/@seonhui__/CSS-Animations</link>
            <guid>https://velog.io/@seonhui__/CSS-Animations</guid>
            <pubDate>Thu, 09 Jan 2025 05:24:29 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/seonhui__/post/d0523b10-852a-480b-b0e9-fbdc55019796/image.PNG" alt=""></p>
<p>transform 속성으로 translate(이동), skew(기울이기), scale(크기), rotate(회전)등의 효과를 적용할 수 있다.</p>
<p>!codepen[ysuwjwgl-the-styleful/embed/emOVEqE?default-tab=html%2Cresult]</p>
<p>transform 속성을 이용하여 @keyprames로 애니메이션을 만들수도 있다.</p>
<p>!codepen[ysuwjwgl-the-styleful/embed/OPLQjKJ?default-tab=html%2Cresult]</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[치지직 채팅창 CSS]]></title>
            <link>https://velog.io/@seonhui__/%EC%B9%98%EC%A7%80%EC%A7%81-%EC%B1%84%ED%8C%85%EC%B0%BD-CSS</link>
            <guid>https://velog.io/@seonhui__/%EC%B9%98%EC%A7%80%EC%A7%81-%EC%B1%84%ED%8C%85%EC%B0%BD-CSS</guid>
            <pubDate>Fri, 03 Jan 2025 13:02:42 GMT</pubDate>
            <description><![CDATA[<p>자주 손 댈만한 속성에는 CSS 변수를 정의해서 유지보수/수정하기 쉽게 작성했다. </p>
<p><strong>기존 채팅창에 디자인을 추가한 형태의 CSS</strong></p>
<p><strong>수정한 채팅창 CSS</strong>
!codepen[ysuwjwgl-the-styleful/embed/NPKwXpx?default-tab=html%2Cresult]
기존 스타일을 초기화 하는 코드를 추가하고 스타일을 수정했다.
텍스트 외곽선을 위한 text-shadow옵션을 수정하기 쉽게 변수로 작성했다.</p>
<p>CSS 변수로 정의한 텍스트 컬러가 !important 적용이 되지 않아 치지직 채팅창의 인라인 스타일이 먼저 적용되는 오류가 있어 변수로 정의하지 않으니 수정됐다.</p>
<p>치지직스튜디오-방송관리-알림의 채팅창 주소를복사한 뒤
obs-소스목록-브라우저 사용자 지정CSS에 해당 CSS코드를 붙여넣으면 적용된다.</p>
]]></description>
        </item>
    </channel>
</rss>