<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>hansom_0.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Tue, 24 Feb 2026 00:44:52 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. hansom_0.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/hansom_0" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[SCSS 조건문 (@if, @for)]]></title>
            <link>https://velog.io/@hansom_0/SCSS-%EC%A1%B0%EA%B1%B4%EB%AC%B8</link>
            <guid>https://velog.io/@hansom_0/SCSS-%EC%A1%B0%EA%B1%B4%EB%AC%B8</guid>
            <pubDate>Tue, 24 Feb 2026 00:44:52 GMT</pubDate>
            <description><![CDATA[<h3 id="scss-조건문---if문">SCSS 조건문 - @if문</h3>
<p>: @if, @else if, @else 사용 (JS와 유사)</p>
<ol>
<li>조건문 작성</li>
</ol>
<pre><code>@mixin breakpoint-view($breakpoint) {
    @if $breakpoint == pc {
        @media (width &gt;= 1280px) {
            @content;
        }
    } @else if $breakpoint == tablet {
        @media (width &lt;= 920px) {
            @content;
        }
    } @else {
        @media (width &lt;= 480px) {
            @content;
        }
    }
}</code></pre><p>-&gt; 매개변수 만들어서 조건문 사용
@content : 콘텐츠 그대로 가져옴</p>
<ol start="2">
<li>@include 하고 content 작성<pre><code>.con {
     @include breakpoint-view(tablet) {
         padding-inline: 1rem;
     }
 }</code></pre></li>
</ol>
<p>-&gt; width값이 tablet 조건문이 되면 .con의 padding 좌우값이 1rem이 된다</p>
<hr>
<h3 id="scss-조건문---for문">SCSS 조건문 - @for문</h3>
<p>: @for 사용</p>
<ul>
<li>@for $i from 1 through 7 { } ( 1부터 7까지 포함 )</li>
</ul>
<ol>
<li><p>@for문 작성 &amp;-#{$i} { ~ }</p>
<pre><code>.section-1 {
 .box {
     @for $i from 1 through 7 {
         &amp;-#{$i} {
             background-color: nth((red, orange, yellow, green, blue, navy, purple), $i);
         }
     }
 }
}</code></pre></li>
<li><p>리스트(배열) 사용 - 더 깔끔함</p>
<pre><code>.section-1 {
 // 리스트
 $colors: (red, orange, yellow, green, blue, navy, purple);
 .box {
     @for $i from 1 through 7 {
         &amp;-#{$i} {
             background-color: nth(($colors), $i);
         }
     }
 }
}</code></pre></li>
</ol>
<p>-&gt; $colors를 만들어서 nth(()) 안에 넣어주기</p>
<ul>
<li>@for $i from 1 to 7 { } ( 1부터 7까지 / 1~6만 나옴. 7은 제외)</li>
</ul>
<br>
여러가지 이미지를 불러와야할 때 꿀팁 ( 단 id가 있는 사진이어야함 )

<pre><code>.box {
        @for $i from 1 through 7 {
            &amp;-#{$i} {
                background-image: url(https://picsum.photos/id/#{$i}/200/300)
            }
        }
    }</code></pre><p> lorem picsum에서 id 있는 링크 불러오기
 id 옆 번호에 #{$i}로 해서 다양한 이미지 불러오기 가능</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[@mixin(SCSS)]]></title>
            <link>https://velog.io/@hansom_0/mixinSCSS</link>
            <guid>https://velog.io/@hansom_0/mixinSCSS</guid>
            <pubDate>Mon, 23 Feb 2026 00:35:16 GMT</pubDate>
            <description><![CDATA[<h3 id="mixinscss">@mixin(SCSS)</h3>
<p>: 반복되는 CSS 코드를 하나의 묶음으로 만들어 필요할 때마다 불러서 사용하는 기능</p>
<p>-&gt; 컴포넌트 정의와 같음</p>
<pre><code>@mixin box-base() {
    width: 200px;
    height: 200px;
    background-color: #34cfeb;
    border-radius: 1.2rem;
    margin: 10px;
    transition: all .3s ease;

    &amp;:hover {
        background-color: #6d2fc4;
    }
}</code></pre><h3 id="include">@include</h3>
<p>: mixin 호출</p>
<pre><code>.box-1 {
    @include box-base();
}</code></pre><p>-&gt; mixin에서 변경하고 싶다면 바로 밑에 작성하면 됨</p>
<br>

<h3 id="mixin에서의--매개변수-인자-사용">@mixin에서의  매개변수, 인자 사용</h3>
<ol>
<li>@mixin에 매개변수 입력</li>
</ol>
<pre><code>@mixin box-base($btn-bg-color, $font-size) {
    width: 200px;
    height: 200px;
    background-color: $btn-bg-color;
    font-size: $font-size;
}</code></pre><ol start="2">
<li>@include에 인자값 입력하여 전달<pre><code>.box-1 {
 @include box-base(#d63eb8, 2rem);
}</code></pre></li>
</ol>
<br>

<h3 id="mixin-초기화-기본값-지정">@mixin 초기화 (기본값 지정)</h3>
<ol>
<li><p>@mixin 함수값 () 안에 매개변수 기본값 지정</p>
<pre><code>@mixin box-base(
 $btn-bg-color: #31eb69, 
 $font-size: 1.3rem,
 $width: 150px,
 $height: 150px
 ) {
 width: $width;
 height: $height;
 background-color: $btn-bg-color;
 font-size: $font-size;
}</code></pre></li>
<li><p>@include에 변경할 인자값 작성 (기본값이 있으면 전달 생략 가능)</p>
<pre><code>.box-1 {
 @include box-base(#34cfeb, 2rem, 300px, 250px);
}</code></pre></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[SASS/SCSS]]></title>
            <link>https://velog.io/@hansom_0/SASSSCSS</link>
            <guid>https://velog.io/@hansom_0/SASSSCSS</guid>
            <pubDate>Fri, 20 Feb 2026 00:42:40 GMT</pubDate>
            <description><![CDATA[<h3 id="sass">SASS</h3>
<ul>
<li>※들여쓰기※ </li>
<li>세미콜론, 중괄호 X</li>
<li>주석처리 // 가능</li>
</ul>
<h3 id="scss">SCSS</h3>
<ul>
<li>세미콜론, 중괄호 사용 (CSS와 동일)</li>
<li>주석처리 // 가능</li>
<li>&amp; 활용 가능
ex) .top-bar 안에 .top-bar_menu-1을 작성할 때 &amp;_menu-1 로 작성 가능함</li>
</ul>
<br>
<br>

<p>변수 : $~~</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS nesting (CSS 중첩)]]></title>
            <link>https://velog.io/@hansom_0/CSS-nesting-CSS-%EC%A4%91%EC%B2%A9</link>
            <guid>https://velog.io/@hansom_0/CSS-nesting-CSS-%EC%A4%91%EC%B2%A9</guid>
            <pubDate>Thu, 19 Feb 2026 01:35:55 GMT</pubDate>
            <description><![CDATA[<h3 id="css-nesting">CSS nesting</h3>
<p>: 선택기를 계속 이어서 작성 가능. 그룹으로 묶을 수 있는 장점이 있다.</p>
<pre><code>.top-bar {
    height: 80px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);

    .con {
        height: 100%;
        display: flex;
    }
}</code></pre><p>@media 쿼리 중첩 : max-width, min-width 없이 직관적으로 작성 가능</p>
<pre><code>.top-bar {
    height: 80px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);

    .con {
        height: 100%;
        display: flex;

        @media (width &lt;= 920px) {
        padding-inline: 1rem;
        }
    }
}</code></pre><hr>
<h4 id="-클래스명-붙일-때-주의사항">※ 클래스명 붙일 때 주의사항</h4>
<p>크게 감싸는 것들은 클래스명 뒤에 wrap, box 붙이기 ( 메뉴 nav, div 등 )</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[BEM, CSS Logical Properties]]></title>
            <link>https://velog.io/@hansom_0/BEM</link>
            <guid>https://velog.io/@hansom_0/BEM</guid>
            <pubDate>Thu, 12 Feb 2026 00:36:33 GMT</pubDate>
            <description><![CDATA[<h4 id="bem--클래스-규칙">BEM : 클래스 규칙</h4>
<p>B : Block - 독립적인 컴포넌트(header, card, button, modal, form)</p>
<p>E : Element - 구성요소( _ _ _ ) title, description, card_ _ _ , header, card__title</p>
<p>M : Modifier - 변형된 상태 (--) buttion--primary, card__title--large</p>
<p>&lt;장점&gt;
명확한 구조와 계층 관계 표현
재사용성이 높은 모듈화된 CSS
유지보수가 용이
협업 시 코드 이해도 향상</p>
<hr>
<h4 id="css-logical-properties--css-새로운-문법">CSS Logical Properties : CSS 새로운 문법</h4>
<p>참고 :
<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Logical_properties_and_values">https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Logical_properties_and_values</a></p>
<p>margin-block: margin 상하
margin-inline: margin 좌우</p>
<p>margin-block-start : margin-top
margin-block-end : margin-bottom
margin-inline-start : margin-left
margin-inline-end : margin-right</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[git, GitHub 사용법]]></title>
            <link>https://velog.io/@hansom_0/git-GitHub-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
            <guid>https://velog.io/@hansom_0/git-GitHub-%EC%82%AC%EC%9A%A9%EB%B2%95</guid>
            <pubDate>Wed, 11 Feb 2026 02:28:41 GMT</pubDate>
            <description><![CDATA[<h4 id="1-github에서-리포지터리-생성">1. GitHub에서 리포지터리 생성</h4>
<h4 id="2-폴더-만들고-vscode-열기">2. 폴더 만들고 vscode 열기</h4>
<h4 id="3-ctrl--j로-터미널창-열고-git-bash-창-열기">3. ctrl + J로 터미널창 열고 Git Bash 창 열기</h4>
<h4 id="4-git-폴더-생성--git-init">4. .git 폴더 생성 =&gt; git init</h4>
<h4 id="5-master에서-main으로-변경--git-branch--m-main">5. master에서 main으로 변경 : git branch -M main</h4>
<p>git config --global init.defaultBranch main</p>
<h4 id="6-사용자-설정">6. 사용자 설정</h4>
<ul>
<li>현재 폴더만 사용자 바꾸기
git config user.name &quot;&quot;
git config user.email &quot;&quot;</li>
<li>전체 폴더 사용자 바꾸기
git config --global user.name &quot;&quot;
git config --global user.email &quot;&quot;
사용자 확인 방법</li>
<li>git config user.name
git config user.email</li>
</ul>
<h4 id="7-리포지터리">7. 리포지터리</h4>
<ul>
<li>리포지터리 설정
git remote add origin 리포지터리 주소</li>
<li>리포지터리 삭제
git remote remove origin</li>
<li>리포지터리 확인
git remote -v</li>
</ul>
<h4 id="8-상태-확인-및-장바구니-담기">8. 상태 확인 및 장바구니 담기</h4>
<p>git 상태확인 : git status
git 장바구니 담기 : git add &#39;파일 이름&#39;
git 장바구니 모두 담기 : git add .
git 장바구니 취소 : git reset</p>
<h4 id="9-commit-메시지">9. commit 메시지</h4>
<ul>
<li>커밋 메세지
git commit -m &quot;커밋 내용&quot;
이왕이면 영어 한국어도 상관 없음</li>
<li>커밋 내용 확인
git log</li>
<li>커밋 수정
git commit --amend</li>
<li>수정모드 : a, i</li>
<li>저장 : esc =&gt; :wq!</li>
</ul>
<h4 id="10-git에-올리기">10. git에 올리기</h4>
<p>git push origin main</p>
<h4 id="11-리포지터리에서-가져오기---clone">11. 리포지터리에서 가져오기 - clone</h4>
<ul>
<li>소스코드가 아예 없는 처음 상태에서 가져오는 법
git clone 리포지터리 주소</li>
<li>폴더 옮기는 방법
cd + Tab</li>
</ul>
<h4 id="12-리포지터리에서-가져오기---pull">12. 리포지터리에서 가져오기 - pull</h4>
<ul>
<li>이미 소스코드가 있는 상태에서 최신 소스코드만 가져오는 법
git pull origin main
항상 작업하기 전에 먼저 pull을 해야함</li>
</ul>
<h4 id="13-코드-소스-수정-후-다시-올리기">13. 코드 소스 수정 후 다시 올리기</h4>
<ul>
<li><p>작업을 새로 할 때
git init
git remote add origin [깃 주소]</p>
</li>
<li><p>작업 후에 다시 명령어 반복
git add .
git commit -m &quot;작업 내용&quot;
git push origin main</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[-webkit-]]></title>
            <link>https://velog.io/@hansom_0/-webkit-</link>
            <guid>https://velog.io/@hansom_0/-webkit-</guid>
            <pubDate>Mon, 09 Feb 2026 00:40:05 GMT</pubDate>
            <description><![CDATA[<h3 id="-webkit-">-webkit-</h3>
<p>: 브라우저 전용 CSS </p>
<p>[브라우저 UI]
주소창, 탭, 메뉴 -&gt; webkit(HTML, CSS해석, 화면 렌더링) -&gt; 운영체제(macOS,iOS,Windows)</p>
<ol>
<li><p>HTML 파싱</p>
</li>
<li><p>CSS 적용</p>
</li>
<li><p>레이아웃 계산</p>
</li>
</ol>
<p>-글자 크기, 박스 크기, 위치 정하기</p>
<ol start="4">
<li>화면에 그림(렌더링)</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[mix-blend-mode, 커서 커스텀(pointer events), ]]></title>
            <link>https://velog.io/@hansom_0/mix-blend-mode-%EC%BB%A4%EC%84%9C-%EC%BB%A4%EC%8A%A4%ED%85%80pointer-events</link>
            <guid>https://velog.io/@hansom_0/mix-blend-mode-%EC%BB%A4%EC%84%9C-%EC%BB%A4%EC%8A%A4%ED%85%80pointer-events</guid>
            <pubDate>Fri, 06 Feb 2026 01:00:21 GMT</pubDate>
            <description><![CDATA[<h3 id="mix-blend-mode-css">mix-blend-mode (CSS)</h3>
<p>: 겹쳐진 두 요소의 색을 어떤 방식으로 계산해서 보여줄지 정하는 것
기본값 : normal
difference, multifly, hard-light 등 다양함</p>
<hr>
<h3 id="pointer-events--none">pointer events : none;</h3>
<p>ㄴ 이벤트를 모두 차단함 (클릭, 드래그, 호버 등)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[svg, tilt.js, marquee, arrow function]]></title>
            <link>https://velog.io/@hansom_0/svg-tilt.js-marquee-arrow-function</link>
            <guid>https://velog.io/@hansom_0/svg-tilt.js-marquee-arrow-function</guid>
            <pubDate>Thu, 05 Feb 2026 03:01:25 GMT</pubDate>
            <description><![CDATA[<h3 id="svg-벡터기반-이미지포맷-용량-작음">svg: 벡터기반 이미지포맷. 용량 작음</h3>
<p>텍스트 svg 만드는 사이트
<a href="https://danmarshall.github.io/google-font-to-svg-path/">https://danmarshall.github.io/google-font-to-svg-path/</a></p>
<hr>
<h3 id="tiltjs">tilt.js</h3>
<p>: 호버했을 때 애니메이션
: js 복붙 후 적용할 class명 맞추기</p>
<hr>
<h3 id="marquee">marquee</h3>
<p>: 무한으로 이어지는 애니메이션
: GPT 활용</p>
<hr>
<ul>
<li><h3 id="css-변수-만드는법">css 변수 만드는법</h3>
</li>
</ul>
<pre><code>:root {
    --background-color:#fff;
    --text-color: #222;
}</code></pre><ul>
<li>적용하는법<pre><code>:root {
  color: var(--text-color);
  background-color: var(--background-color);
}</code></pre></li>
</ul>
<hr>
<h3 id="arrow-function--간략하게-함수-작성">arrow function : 간략하게 함수 작성</h3>
<ul>
<li>일반 함수</li>
</ul>
<pre><code>$(&#39;.btn-toggle-theme&#39;).click(function() {
    $(&#39;:root&#39;).toggleClass(&#39;dark&#39;);
});</code></pre><p>-arrow function</p>
<pre><code>$(&#39;.btn-toggle-theme&#39;).click(() =&gt; $(&#39;:root&#39;).toggleClass(&#39;dark&#39;));</code></pre><p>만약 this를 써야한다면 arrow 사용 X</p>
<p>each = for 반복문</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[fullpage.js 효과, 반응형 swiper, user-select]]></title>
            <link>https://velog.io/@hansom_0/fullpage.js-%ED%9A%A8%EA%B3%BC-%EB%B0%98%EC%9D%91%ED%98%95-swiper-user-select</link>
            <guid>https://velog.io/@hansom_0/fullpage.js-%ED%9A%A8%EA%B3%BC-%EB%B0%98%EC%9D%91%ED%98%95-swiper-user-select</guid>
            <pubDate>Wed, 04 Feb 2026 01:47:14 GMT</pubDate>
            <description><![CDATA[<h3 id="fullpagejs">fullpage.js</h3>
<p>: 스크롤 내리면 다음 섹션이 풀 페이지로 나오게 하는 것</p>
<pre><code>main {
    overflow-y: scroll;
    height: 100vh;
    scroll-behavior: smooth;
    scroll-snap-type: y mandatory;
}</code></pre><p>-&gt; scroll-snap-type = 스크롤이 멈추면 어디에 맞출건지 설정
y mandatory = 세로 스크롤을 강제로 스냅포인트에 맞추는 설정
<br></p>
<pre><code>.section_group &gt; .section {
    min-height: 100vh;
    border: 10px solid red;
    box-sizing: border-box;
    scroll-snap-align: start;
}</code></pre><p>-&gt; scroll snap을 시작점으로 맞춤</p>
<hr>
<h3 id="반응형-swiper">반응형 swiper</h3>
<pre><code>breakpoints: {
        0: {
            slidesPerView: 1
        },
        768: {
            slidesPerView: 2
        },
        1024: {
            slidesPerView: 3
        },
        1280: {
            slidesPerView: 4
        },
        1536: {
            slidesPerView: 5
        }</code></pre><p>-&gt; js에 설정할 수 있음</p>
<hr>
<p>user-select: none;
-&gt; 사용자가 드래그 못하게 막음</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[width, background-image]]></title>
            <link>https://velog.io/@hansom_0/width-background-image</link>
            <guid>https://velog.io/@hansom_0/width-background-image</guid>
            <pubDate>Fri, 30 Jan 2026 01:41:14 GMT</pubDate>
            <description><![CDATA[<h3 id="width">width</h3>
<p>width()</p>
<ul>
<li>content 영역만 (padding, border, margin 제외)</li>
</ul>
<p>innterWidth()</p>
<ul>
<li>content + padding</li>
</ul>
<p>outerWidth()</p>
<ul>
<li>content + padding + border</li>
</ul>
<p>outerWidth(true)</p>
<ul>
<li>content + padding + border + margin</li>
</ul>
<h3 id="background-image">background-image</h3>
<p>: 배경 이미지</p>
<p>background-repeat : 배경이미지 반복여부
background-size : 배경이미지 크기
background-position : 배경이미지 위치
background-attachment : 배경이미지 고정여부 (fixed -&gt; 스크롤 내려도 고정됨)</p>
<hr>
<h4 id="애니메이션-코드">애니메이션 코드</h4>
<p>~ + codepen demo 검색 (모르겠으면 GPT한테 물어보기)
GPT 설명 보기 - 무엇인지는 알고 갖고오기</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AOS, animate (라이브러리)]]></title>
            <link>https://velog.io/@hansom_0/AOS-animate-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC</link>
            <guid>https://velog.io/@hansom_0/AOS-animate-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC</guid>
            <pubDate>Thu, 29 Jan 2026 02:04:42 GMT</pubDate>
            <description><![CDATA[<h3 id="aos-라이브러리-사용법">AOS (라이브러리) 사용법</h3>
<p>AOS.init();</p>
<ul>
<li>딜레마</li>
</ul>
<ol>
<li>이미지 로딩 전에 애니메이션 실행됨 </li>
</ol>
<p>-&gt; setTimeout으로 해결
2. 이미지가 더 빨리 로드되었을 때 애니메이션이 위에 있으면 실행이 안됨
-&gt; <strong>imagesLoded</strong> 사용
3. 인터넷이 느릴 때 흰 화면밖에 안 보임
-&gt; Loading 화면 만들어서 해결</p>
<h3 id="animate-라이브러리-사용법">animate (라이브러리) 사용법</h3>
<ol>
<li><p>CDN 검색 후 라이브러리 복붙</p>
</li>
<li><p>밑에 있는 코드 복붙</p>
<pre><code>&lt;h1 class=&quot;animate__animated animate__bounce&quot;&gt;An animated element&lt;/h1&gt;</code></pre></li>
<li><p>animate__bounce 부분 원하는 효과로 변경</p>
</li>
</ol>
<hr>
<p>모작 과제 </p>
<ol>
<li>header / main / footer</li>
<li>main section 나누기 (9개)</li>
<li>head에 라이브러리 태그 마지막에 넣기 (주석 필수) / css, js(defter) 연동</li>
<li>header / main &gt; section*9 / footer</li>
<li>젠코딩 - ctrl + space bar</li>
<li>head 안 title 이름 변경</li>
<li>main에 margin-top : header height값 넣기</li>
<li>폰트 불러오기 : 눈누에서 웹폰트 복붙 ( 맨 위에 ), 400/500/700 보통 3개 사용함</li>
<li>폰트적용 : html, html &gt; body, html &gt; body input { font-family : ~ }
사용된 폰트 - Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, Dotum, &#39;돋움&#39;, sans-serif;</li>
<li>work/images 파일 만들어서 이미지 저장. img ctrl+space bar 경로찾기</li>
</ol>
<p><strong>파일명은 모두 영어로</strong></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[swiper, slick(라이브러리)]]></title>
            <link>https://velog.io/@hansom_0/swiper-slick%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC</link>
            <guid>https://velog.io/@hansom_0/swiper-slick%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC</guid>
            <pubDate>Wed, 28 Jan 2026 02:03:35 GMT</pubDate>
            <description><![CDATA[<h4 id="글자-애니메이션--before-after을-사용한다">글자 애니메이션 : before, after을 사용한다</h4>
<h3 id="swiper-slick-js-라이브러리">swiper, slick (JS 라이브러리)</h3>
<p>: 슬라이드 라이브러리
<a href="https://swiperjs.com/demos">https://swiperjs.com/demos</a></p>
<p>swiper 여러개 넣고 싶을 때</p>
<ol>
<li>필요한 부분만 복붙</li>
<li>class를 구분하고 html, css 수정</li>
<li>주석 꼭 사용해서 구분하기</li>
<li>바꾸고 싶은건 f12로 이름 확인, css 추가</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[JS change/focus, attr/prop 차이, Masonry와 smooth scrollbar(라이브러리)]]></title>
            <link>https://velog.io/@hansom_0/JS-changefocus-attrprop-%EC%B0%A8%EC%9D%B4-Masonry%EC%99%80-smooth-scrollbar%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC</link>
            <guid>https://velog.io/@hansom_0/JS-changefocus-attrprop-%EC%B0%A8%EC%9D%B4-Masonry%EC%99%80-smooth-scrollbar%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC</guid>
            <pubDate>Tue, 27 Jan 2026 02:03:48 GMT</pubDate>
            <description><![CDATA[<h3 id="change--해당-값이-변경됐을-때">change : 해당 값이 변경됐을 때</h3>
<pre><code>$(&#39;.form-1__checkbox-all&#39;).change(function() {
    console.log(this.checked)
})</code></pre><p>console에 checkbox 선택됐을 때 true, 해제됐을 때 false값이 나옴</p>
<h3 id="focus--마우스-클릭했을-때">focus : 마우스 클릭했을 때</h3>
<p>현재 사용자의 입력을 받고 있는 대상이 누구인지</p>
<p>f12로 focuse 되었는지 확인가능</p>
<hr>
<h3 id="attr-attribute--정보">attr (attribute) : 정보</h3>
<p>: HTML에 적힌 초기값</p>
<pre><code>$(&#39;input&#39;).attr(&#39;checked&#39;);</code></pre><p>-&gt; &quot;checked&quot; 글자 그대로</p>
<ul>
<li>id, class, href, src 같은 정보를 얻고 싶을 때</li>
</ul>
<pre><code>#(&#39;a&#39;).attr(&#39;href&#39;,&#39;google.com&#39;);</code></pre><h3 id="prop-property--상태">prop (property) : 상태</h3>
<p>: 현재 DOM에 실제 상태</p>
<pre><code>$(&#39;input&#39;).prop(&#39;checked&#39;);</code></pre><p>-&gt; &quot;true&quot; or &quot;false&quot; 체크했다면 true, 아니라면 false</p>
<ul>
<li>checked, disabled, selected 확인<pre><code>$(&#39;input&#39;).prop(&#39;disabled&#39;,true);</code></pre></li>
</ul>
<hr>
<h3 id="masonry-라이브러리">masonry (라이브러리)</h3>
<p>: 배치를 자동으로 해줌 (카드 ui에 용이 ex-핀터레스트)
CSS에 반응형은 맞춰두고, 레이아웃값을 masonry에게 맡김</p>
<h3 id="smooth-scrollbar">smooth scrollbar</h3>
<p>: 스크롤바를 자연스럽게 만들어줌</p>
<br>
<br>

<p>!! 라이브러리를 여러개 사용할 때, 서로 호환이 되는지 확인해야함</p>
<hr>
]]></description>
        </item>
        <item>
            <title><![CDATA[currentcolor, JS toggleClass]]></title>
            <link>https://velog.io/@hansom_0/currentcolor-JS-toggleClass</link>
            <guid>https://velog.io/@hansom_0/currentcolor-JS-toggleClass</guid>
            <pubDate>Mon, 26 Jan 2026 02:17:49 GMT</pubDate>
            <description><![CDATA[<h3 id="currentcolor-css">currentcolor (CSS)</h3>
<pre><code>body {
    color: blue;
}

nav {
    width: 100px;
    height: 100px;
    border: 10px solid currentcolor;
}</code></pre><p>-&gt; border 색상값은 부모(body)의 값으로 지정된다.
만약 nav의 color를 지정했다면 그 값으로 지정된다.</p>
<hr>
<h3 id="체크박스">체크박스</h3>
<pre><code>&lt;div class=&quot;input_type&quot;&gt;
    &lt;label&gt;
        &lt;span&gt;문자입력 : &lt;/span&gt;
        &lt;input type=&quot;text&quot;&gt;
    &lt;/label&gt;
&lt;/div&gt;</code></pre><p>label : form 요소 이름
input : 사용자가 값을 입력하는 form 요소</p>
<h3 id="input-type">input type</h3>
<ul>
<li>text</li>
<li>number</li>
<li>email</li>
<li>checkbox
(종류 많음)</li>
</ul>
<h4 id="form--입력값을-전송하는-버튼-생성">form = 입력값을 전송하는 버튼 생성</h4>
<h4 id="form과-button의-차이">&lt; form과 button의 차이 &gt;</h4>
<p>button의 type은 3개 (button, submit, reset)
type을 submit으로 지정해주면 form과 같다.</p>
<h4 id="checkbox-노말라이즈">checkbox 노말라이즈</h4>
<pre><code>.custom_checkbox_1 &gt; input[type=&quot;checkbox&quot;] {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    width: 100%;
    height: 100%;
    display: block;
    box-sizing: border-box;
    border-radius: 0;
    opacity: 0;
}</code></pre><hr>
<h3 id="toggleclass-js">toggleClass (JS)</h3>
<p>addClass, removeClass 반복</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[@keyframes, :root]]></title>
            <link>https://velog.io/@hansom_0/keyframes</link>
            <guid>https://velog.io/@hansom_0/keyframes</guid>
            <pubDate>Mon, 26 Jan 2026 00:04:02 GMT</pubDate>
            <description><![CDATA[<h3 id="keyframes">@keyframes</h3>
<p>: <strong>CSS 애니메이션</strong> 과정의 중간 절차를 제어
: from/to, %별로 지정 가능</p>
<pre><code>div {
  animation-name: around; /* 이름 정의 */
  animation-duration: 1s; /* 몇초동안 애니메이션을 할건지 정의 */
  animation-iteration-count: infinite; /* 무한으로 실행 */
  animation-delay: 3s; /* 딜레이 추가 */
}</code></pre><p>animation-play-state: running; -&gt; 멈추고 싶을 때 paused</p>
<h3 id="animation-timing-function-종류">animation-timing-function 종류</h3>
<ul>
<li>ease (가장 많이 쓰이는 기본 자연스러운 움직임) 
: 시작-느림, 중간-빠름, 끝-느림 (ex. 버튼 hover, 카드 등장)</li>
<li>ease-in (점점 가속) 
: 시작-매우 느림, 끝-빠름 (ex. 물체가 출발하는 느낌, 아래에서 위로 튀어오르는 요소)</li>
<li>ease-out (멈추는 느낌 강조) 
: 시작-빠름, 끝-느림 (ex. 모달, 팝업 닫힐 때, 요소가 제자리 안에 안착하는 모션)</li>
<li>ease-in-out (가장 부드러운 곡선) 
: 시작-느림, 중간-빠름, 끝-느림 (ex.고급스러운 UI 모션, 페이지 전환 효과)</li>
<li>linear (기계적인 느낌) 
: 처음부터 끝까지 같은 속도 (ex.로딩 스피너, 무한 회전 애니메이션)</li>
<li>cubic-bezier (고급)
: 사용자 임의로 정할 수 있음 (ex. 디자인 시스템, 포폴에서 자주 사용)
<a href="https://cubic-bezier.com/">https://cubic-bezier.com/</a></li>
</ul>
<hr>
<h4 id="root">:root</h4>
<p>: CSS의 전역 설정 장소 root == html</p>
<h4 id="hr---줄-html">&lt; hr &gt; = 줄 (html)</h4>
]]></description>
        </item>
        <item>
            <title><![CDATA[테일윈드, display:grid;]]></title>
            <link>https://velog.io/@hansom_0/%ED%85%8C%EC%9D%BC%EC%9C%88%EB%93%9C</link>
            <guid>https://velog.io/@hansom_0/%ED%85%8C%EC%9D%BC%EC%9C%88%EB%93%9C</guid>
            <pubDate>Wed, 21 Jan 2026 02:23:49 GMT</pubDate>
            <description><![CDATA[<h3 id="테일윈드">테일윈드</h3>
<p>mx-auto - margin x값 모두 auto (가운데 정렬)</p>
<p>img 크기비율 - aspect-[ / ] object-cover w-full</p>
<p>그리드 - grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3
평소에는 1개씩, md사이즈일 때 2개씩, xl일 때 3개씩 정렬함</p>
<p>inset-0 : 4방향 모두 0;</p>
<p>애니메이션 : before:transition before:duration-300</p>
<p>a태그는 inline-block이라 overflow가 안 먹을 수 있기 때문에 display를 block으로 바꿔준다</p>
<p>띄어쓰기 X _로 표기</p>
<hr>
<h2 id="grid---여러-요소를-규칙적으로-놓을-때-필요">Grid - 여러 요소를 규칙적으로 놓을 때 필요</h2>
<ul>
<li>행(row): 가료방향 줄</li>
<li>열(column): 세로방향 줄</li>
<li>Grid Container : display:grid를 준 부모 박스</li>
<li>Grid item : 컨테이너 안에 있는 자식 박스들</li>
</ul>
<h3 id="display-grid">display: grid;</h3>
<ul>
<li>블록 요소처럼 한 줄을 차지하는 그리드 컨테이너</li>
</ul>
<h3 id="display-inline-grid">display: inline-grid;</h3>
<ul>
<li>내용 크기만큼만 차지하는 인라인 그리드</li>
</ul>
<p>grid-template-columns: 100px 100px 100px;
grid-template-columns: 1fr 1fr 1fr;</p>
<h3 id="flex-vs-grid">Flex vs Grid</h3>
<ul>
<li>grid: 2차원 (가로x세로)</li>
<li>flex: 1차원 (한 방향 위주)</li>
</ul>
<hr>
<p>css 까먹은 거</p>
<p>overflow: hidden;
ㄴ 넘치는 컨텐츠 가리기</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS 라이브러리, 테일윈드]]></title>
            <link>https://velog.io/@hansom_0/CSS-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%ED%85%8C%EC%9D%BC%EC%9C%88%EB%93%9C</link>
            <guid>https://velog.io/@hansom_0/CSS-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%ED%85%8C%EC%9D%BC%EC%9C%88%EB%93%9C</guid>
            <pubDate>Tue, 20 Jan 2026 02:50:11 GMT</pubDate>
            <description><![CDATA[<h3 id="라이브러리-종류">라이브러리 종류</h3>
<p>JS - 제이쿼리
CSS - 부트스트랩, 테일윈드, 데이지 UI</p>
<hr>
<h3 id="테일윈드">테일윈드</h3>
<p>유틸리티 퍼스트 : class를 조립해서 디자인한다.
단점 - html이 복잡하고 가독성이 떨어짐</p>
<p>JIT 모드 : 원하는 라이브러리가 없을 때 oo-[ ] 직접 정의</p>
<pre><code>&lt;ul class=&quot;flex bg-[#afafaf] p-[0_20px] rounded-[10px]&quot;&gt;</code></pre><p>컬러피커 지정, 패딩 = px(패딩 x값), py(패딩 y값)
적용된 코드를 모르겠다면 거꾸로 검색
group 설정</p>
<h3 id="img">img</h3>
<p>aspect-ratio 이미지 비율</p>
<p>이미지를  원본과 같이 맞추려면
object-fit: cover; (기본값 : fill;)
object-cover</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[반응형 웹 만들기, 모바일 퍼스트/데스크탑 퍼스트]]></title>
            <link>https://velog.io/@hansom_0/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
            <guid>https://velog.io/@hansom_0/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EB%A7%8C%EB%93%A4%EA%B8%B0</guid>
            <pubDate>Mon, 19 Jan 2026 02:27:45 GMT</pubDate>
            <description><![CDATA[<h3 id="반응형">반응형</h3>
<pre><code>@media (min-width: 768px) {
  .visible-on-md-up {
    display: block;
  }
}</code></pre><p>-&gt; 최소 768px 이상일 때 display: block;</p>
<p>min-width, max-width 활용하기</p>
<p>css는 깨지는 부분만 다시 수정하면 된다.
@media ( max-width: 1440px ) {}
@media ( max-width: 768px ) {}
@media ( max-width: 375px ) {}</p>
<p><img src="https://velog.velcdn.com/images/hansom_0/post/07672eed-34b0-454d-870d-c623e8e24783/image.png" alt="">
사이즈 참고</p>
<hr>
<h3 id="모바일-퍼스트-min-width">모바일 퍼스트 (min-width)</h3>
<ul>
<li>기본 스타일을 모바일 기준으로 작성</li>
<li>화면이 커지면 min-width 미디어쿼리로 점진적 레이아웃 확장</li>
<li>작은화면 -&gt; 큰 화면 순서로 스타일 적용</li>
<li>현대 트렌드, 유지보수 용이</li>
</ul>
<h3 id="데스크탑-퍼스트-max-width">데스크탑 퍼스트 (max-width)</h3>
<ul>
<li>기본 스타일을 데스크탑 기준으로 작성</li>
<li>화면이 작아지면 max-width 미디어쿼리로 조정</li>
<li>큰 화면 -&gt; 작은화면 순서로 스타일 적용</li>
<li>레거시 코드, 데스크탑 우선 디자인</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[라이브러리 태그, float, JS 메서드, eq]]></title>
            <link>https://velog.io/@hansom_0/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%ED%83%9C%EA%B7%B8-float</link>
            <guid>https://velog.io/@hansom_0/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%ED%83%9C%EA%B7%B8-float</guid>
            <pubDate>Fri, 16 Jan 2026 02:49:32 GMT</pubDate>
            <description><![CDATA[<h3 id="라이브러리-태그-주의할-점">라이브러리 태그 주의할 점</h3>
<p>.js -&gt; 자바스크립트 라이브러리 -&gt; script src=&quot;&quot;
css -&gt; css 라이브러리 -&gt; link href=&quot;&quot;</p>
<p>테일윈드 - 모두 노말라이즈 (버튼 디자인, h1 텍스트까지 )</p>
<hr>
<h3 id="max-width-min-width">max-width, min-width</h3>
<p>최대, 최소로 늘어날 수 있는 너비 사이즈 조정 (반응형)</p>
<h3 id="float">float</h3>
<p>왼쪽 오른쪽 정렬</p>
<pre><code>.faq-box__question::after {
  content: &quot;[+]&quot;;
  float: right;
}</code></pre><p>부모요소의 높이값이 깨질 수 있음 -&gt; flex, grid로 해결</p>
<hr>
<h3 id="js-메서드">JS 메서드</h3>
<p>show, hide : 보여주고 사라짐
fadeIn, fadeOut : 서서히 보여지고 서서히 사라짐 (시간값)
sideDown,slideDown : 서서히 내려가고 서서히 올라감 (시간값)</p>
<h3 id="index-eq">Index, eq</h3>
<ul>
<li>index : 배열 번호 (0,1,2 ...)<pre><code>let thisIndex = $this.index();
</code></pre></li>
</ul>
<pre><code>-&gt; this의 index를 찾는 변수 만들기

- eq: = 같다</code></pre><p>$box1Main.find(&#39; &gt; ul &gt; li&#39;).eq(thisIndex).addClass(&#39;active&#39;);</p>
<pre><code>$box1Main에서 find하고, 그 배열과 같은 요소를 찾아 addClass한다
</code></pre>]]></description>
        </item>
    </channel>
</rss>