μž‘μ€ ν™”λ©΄μ—μ„œλ„ λΉ›λ‚˜λŠ” λ””μžμΈ: λ°˜μ‘ν˜• μ›Ήμ˜ 기술

2023. 11. 19. 01:22ㆍDevelopmentπŸ‘©πŸ»‍🦳/Dynamic Web

 

 

 

hue colors μ½”λ“œμ‚¬μš©μ˜ˆμ‹œ

 

HSL은 μƒ‰μƒμ„ ν‘œν˜„ν•˜λŠ” λ° μ‚¬μš©λ˜λŠ” μƒ‰μƒ λͺ¨λΈ μ€‘ ν•˜λ‚˜λ‘œ, 

"색상(Hue), μ±„도(Saturation), λͺ…도(Lightness)"의 μ„Έ κ°€μ§€ μš”μ†Œλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€. 

이 λͺ¨λΈμ€ μƒ‰μƒμ„ μ„ νƒν•˜κ³  μ‘°μ •ν•˜λŠ” λ° μ§κ΄€μ μΈ λ°©λ²•μ„ μ œκ³΅ν•˜μ—¬ 

λ§Žμ€ λ””μžμ΄λ„ˆλ“€κ³Ό μ›Ή κ°œλ°œμžλ“€μ—κ²Œ μΈκΈ°κ°€ μžˆμŠ΅λ‹ˆλ‹€. 

각 μš”μ†Œμ— λŒ€ν•΄ μžμ„Ένžˆ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€:

색상 (Hue):
색상은 λ¬΄μ§€κ°œμ˜ μƒ‰μ„ λ‚˜νƒ€λ‚΄λŠ” 360도 μƒ‰μƒ μ›μœΌλ‘œ ν‘œν˜„λ©λ‹ˆλ‹€.
색상은 0도뢀터 360λ„κΉŒμ§€μ˜ κ°’μœΌλ‘œ ν‘œν˜„λ˜λ©°, κ°κ°μ˜ κ°’은 μƒ‰μƒ μ›μƒμ˜ νŠΉμ • μœ„μΉ˜λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 

예λ₯Ό λ“€μ–΄, 0도(λ˜λŠ” 360도)λŠ” λΉ¨κ°„색, 120λ„λŠ” λ…Ήμƒ‰, 240λ„λŠ” νŒŒλž€μƒ‰μž…λ‹ˆλ‹€.

 

채도 (Saturation):
μ±„λ„λŠ” μƒ‰μƒμ˜ κ°•λ„λ₯Ό λ‚˜νƒ€λ‚΄λ©°, νΌμ„ΌνŠΈ(%)둜 ν‘œν˜„λ©λ‹ˆλ‹€.
0%의 μ±„λ„λŠ” νšŒμƒ‰μ‘°λ₯Ό λ‚˜νƒ€λ‚΄λ©°, 100%λŠ” κ°€μž₯ μ„ λͺ…ν•˜κ³  μˆœμˆ˜ν•œ μƒ‰μƒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.

 

λͺ…도 (Lightness):
λͺ…λ„λŠ” μƒ‰μƒμ˜ λ°κΈ°λ₯Ό λ‚˜νƒ€λ‚΄λ©°, μ΄ λ˜ν•œ νΌμ„ΌνŠΈλ‘œ ν‘œν˜„λ©λ‹ˆλ‹€.
0%의 λͺ…λ„λŠ” μ™„μ „ν•œ κ²€μ •μƒ‰μ„, 100%λŠ” μ™„μ „ν•œ ν°μƒ‰μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 50%의 λͺ…λ„λŠ” μ±„도에 λ”°λΌ λ” λ°κ±°λ‚˜ μ–΄λ‘μšΈ μˆ˜ μžˆλŠ” μƒ‰μƒμ˜ μ€‘κ°„ ν†€μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

 

μž₯점( merit ):
HSL μƒ‰μƒ λͺ¨λΈμ€ RGB(Red, Green, Blue) λͺ¨λΈλ³΄λ‹€ μ‚¬λžŒμ΄ μƒ‰μƒμ„ μΈμ‹ν•˜κ³  μ‘°μž‘ν•˜λŠ” λ°©μ‹μ— λ” κ°€κΉŒμš΄ λ°©μ‹μ„ μ œκ³΅ν•©λ‹ˆλ‹€. μ˜ˆλ₯Ό λ“€μ–΄, HSL을 μ‚¬μš©ν•˜λ©΄ μ›ν•˜λŠ” μƒ‰μƒμ˜ μƒ‰μ‘°λ₯Ό μ‰½κ²Œ μ°Ύκ³ , κ·Έ μƒ‰μƒμ„ λ°κ²Œ λ˜λŠ” μ–΄λ‘‘게 ν•˜κ±°λ‚˜, μƒ‰μƒμ˜ μ„ λͺ…도λ₯Ό μ‘°μ ˆν•˜κΈ° μ‰½μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ›Ή λ””μžμΈ, κ·Έλž˜ν”½ λ””μžμΈ, λ””지털 μ•„νŠΈ λ“± λ‹€μ–‘ν•œ λΆ„μ•Όμ—μ„œ λ„λ¦¬ μ‚¬μš©λ©λ‹ˆλ‹€.

 

 

μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ‰¬μš΄ μ½”λ“œ



ν•΄λ‹Ή μ½”λ“œλ“€μ„ μ»¨μ…‰μœΌλ‘œλ‘κ³  쒀더 κΉ”λ”ν•˜κ²Œ μ½”λ“œλ₯Όμ§œκΈ° μœ„ν•΄ λ…Έλ ₯ν–ˆμŠ΅λ‹ˆλ‹€

 

 

μ²«ν”„λ‘œμ νŠΈ 전체 μ™„λ£Œ

 

 

μ™„μ„±λœ μ½”λ“œλŠ” 제 κΉƒν—ˆλΈŒ κ³„μ •μ—μ„œ λ³΄μ‹€μˆ˜μžˆλ„λ‘ μ˜¬λ €λ†“λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€πŸ˜πŸ˜€

 

첫 ν”„λ‘œμ νŠΈμ΄λ‹€ λ³΄λ‹ˆ 10일정도 κ±Έλ €μ„œ μ™„μ„±ν•œκ²ƒκ°™λ‚΄μš”

 

쀑간에 였λ₯˜λ„ λ„ˆλ¬΄ 많이 λ§Œλ‚¬μ—ˆκ³ 

 

μ‚¬μ†Œν•œ μ˜€νƒ€λ“€λ•Œλ¬Έμ— λ‹€μ‹œ ν™•μΈν•˜κ³  κ³ μΉ˜λ‹€λ³΄λ©΄ λ°˜λ‚˜μ ˆμ΄ ν›Œμ©...μ§€λ‚˜κ°€λ”λΌκ΅¬μš”^-^...

 

 

 

 


ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©° κ²ͺ은 μ‹€μ œ λ¬Έμ œλ“€κ³Ό κ·Έμ— λŒ€ν•œ ν•΄κ²° λ°©λ²•μ„ μ½”λ“œ λ°œμ·Œμ™€ ν•¨κ»˜ μ˜ˆμ‹œμ™€ μ‚¬λ‘€ μˆœμ„œλ‘œ μ •λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

1. λ°˜μ‘ν˜• λ””μžμΈμ˜ μ΄ν•΄μ™€ μ μš©
문제: λ‹€μ–‘ν•œ λ””λ°”μ΄μŠ€ λ° ν™”λ©΄ ν¬κΈ°μ— λ§žκ²Œ μ›Ήμ‚¬μ΄νŠΈκ°€ μ μ ˆνžˆ μ‘°μ •λ˜μ§€ μ•ŠμŒ.

 

 

λ°˜μ‘ν˜• λ””μžμΈμ˜ λΆ€μž¬

μ•…μ˜ν–₯: μ›Ήμ‚¬μ΄νŠΈκ°€ λ‹€μ–‘ν•œ ν™”λ©΄ ν¬κΈ°μ™€ μž₯μΉ˜μ— λ§žκ²Œ μ‘°μ •λ˜μ§€ μ•ŠμœΌλ©΄ 

μ‚¬μš©μžκ°€ μ½˜ν…μΈ λ₯Ό μ œλŒ€λ‘œ λ³Ό μˆ˜ μ—†μ„ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ‚¬μš©μžκ°€ μ •λ³΄λ₯Ό μ°Ύκ±°λ‚˜ 

μ›ν•˜λŠ” μž‘업을 μˆ˜ν–‰ν•˜λŠ” λ° μ–΄λ €μ›€μ„ κ²ͺ게 ν•˜λ©°, μ΅œμ’…μ μœΌλ‘œ 

μ›Ήμ‚¬μ΄νŠΈ μ΄νƒˆλ‘œ μ΄μ–΄μ§ˆ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 

 


ν•΄κ²°: CSS λ―Έλ””μ–΄ μΏΌλ¦¬ μ‚¬μš©.

css
Copy code
@media screen and (max-width: 768px) {
    .container {
        margin-left: var(--mb-1);
        margin-right: var(--mb-1);
    }
    /* κΈ°νƒ€ μŠ€νƒ€μΌ μ‘°μ • */
}

 

2. λ„€λΉ„κ²Œμ΄μ…˜ λ©”λ‰΄μ˜ λ°˜μ‘ν˜• κ΅¬ν˜„
문제: λͺ¨λ°”일 λ””λ°”μ΄μŠ€μ—μ„œ λ„€λΉ„κ²Œμ΄μ…˜ λ©”뉴가 μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŒ.

 

 

λ„€λΉ„κ²Œμ΄μ…˜ λ©”λ‰΄μ˜ λ°˜μ‘ν˜• λ¬Έμ œ

μ•…μ˜ν–₯: λͺ¨λ°”일 ν™˜κ²½μ—μ„œ λ„€λΉ„κ²Œμ΄μ…˜ λ©”뉴가 
μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμœΌλ©΄ μ‚¬μš©μžκ°€ μ›Ήμ‚¬μ΄νŠΈ λ‚΄μ—μ„œ μ›ν™œν•˜κ²Œ μ΄λ™ν•˜λŠ” λ° μ–΄λ €μ›€μ„ κ²ͺ게 λ©λ‹ˆλ‹€. 
μ‚¬μš©μžλŠ” ν•„μš”ν•œ μ •λ³΄μ— μ‰½κ²Œ μ ‘κ·Όν•  μˆ˜ μ—†μ–΄ λΆˆνŽΈν•¨μ„ λŠλΌκ³ , 
μ΄λŠ” μ‚¬μš©μž λ§Œμ‘±λ„ μ €ν•˜λ‘œ μ΄μ–΄μ§‘λ‹ˆλ‹€.

 

 


ν•΄κ²°: μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ ν† κΈ€ κΈ°λŠ₯ κ΅¬ν˜„.

 

 


javascript
Copy code
const navToggle = document.getElementById('nav-toggle'),
      navMenu = document.getElementById('nav-menu');

navToggle.addEventListener('click', () => {
    navMenu.classList.add('show-menu');});

 

3. μŠ€ν‚¬ μ„Ήμ…˜μ˜ λ™μ  ν‘œν˜„
문제: μŠ€ν‚¬ μˆ™λ ¨λ„λ₯Ό μ‹œκ°μ μœΌλ‘œ ν‘œν˜„ν•˜λŠ” λ° μ–΄λ €μ›€.

μŠ€ν‚¬ μ„Ήμ…˜μ˜ 동적 ν‘œν˜„ μ‹€νŒ¨
μ•…μ˜ν–₯: μˆ™λ ¨λ„ ν‘œν˜„이 λͺ…ν™•ν•˜μ§€ μ•ŠμœΌλ©΄ 
μ‚¬μš©μžκ°€ κ°œλ°œμžμ˜ κΈ°μˆ  μˆ˜μ€€μ„ μ •ν™•νžˆ νŒŒμ•…ν•˜κΈ° μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€. 
μ΄λŠ” μ‹ λ’°μ„± μ €ν•˜λ‘œ μ΄μ–΄μ Έ ν¬νŠΈν΄λ¦¬μ˜€μ˜ μ „문성에 λŒ€ν•œ μ˜λ¬Έμ„ κ°€μ§ˆ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.


ν•΄κ²°: CSS둜 μˆ™λ ¨λ„ λ°” κ΅¬ν˜„.

css
Copy code
.skills__html {
    width: 80%;
}
.skills__css {
    width: 70%;}
/* κΈ°νƒ€ μŠ€ν‚¬ λ°” μŠ€νƒ€μΌ */

 

 

4. SwiperJSλ₯Ό ν™œμš©ν•œ ν¬νŠΈν΄λ¦¬μ˜€ μ„Ήμ…˜
문제: ν¬νŠΈν΄λ¦¬μ˜€ ν•­λͺ©μ„ νš¨κ³Όμ μœΌλ‘œ ν‘œμ‹œν•˜λŠ” λ°©λ²• κ³ λ―Ό.

 

 

SwiperJS ν™œμš© λ―Έν‘

μ•…μ˜ν–₯: ν¬νŠΈν΄λ¦¬μ˜€ ν•­λͺ©λ“€μ΄ νš¨κ³Όμ μœΌλ‘œ ν‘œμ‹œλ˜μ§€ μ•ŠμœΌλ©΄ 
μ‚¬μš©μžκ°€ κ°œλ°œμžμ˜ μž‘업을 μ œλŒ€λ‘œ νŒŒμ•…ν•˜λŠ” λ° μ–΄λ €μ›€μ„ κ²ͺ을 μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. 
μ΄λŠ” μ‚¬μš©μžμ˜ κ΄€μ‹¬μ„ λŒμ§€ λͺ»ν•˜κ³ , ν”„λ‘œμ νŠΈμ˜ κ°€μΉ˜λ₯Ό 
μΆ©λΆ„νžˆ μ „λ‹¬ν•˜μ§€ λͺ»ν•˜λŠ” κ²°κ³Όλ₯Ό 낳을 수 μžˆμŠ΅λ‹ˆλ‹€.

 

ν•΄κ²°: SwiperJS λΌμ΄λΈŒλŸ¬λ¦¬ μ‚¬μš©.

 


html
Copy code
<div class="portfolio__container container swiper-container">
    <!-- ν¬νŠΈν΄λ¦¬μ˜€ ν•­λͺ©λ“€ -->
</div>
javascript
Copy code
let swiperPortfolio = new Swiper('.portfolio__container', {
    // Swiper μ„€μ •
});


5. λ‹€ν¬ λͺ¨λ“œ ν† κΈ€ κΈ°λŠ₯

문제: μ‚¬μš©μž μ„ ν˜Έμ— λ”°λ₯Έ ν…Œλ§ˆ λ³€κ²½ κΈ°λŠ₯ ν•„μš”.

 

닀크 λͺ¨λ“œ ν† κΈ€ κΈ°λŠ₯ λΆ€μž¬

μ•…μ˜ν–₯: μ‚¬μš©μžκ°€ μ„ ν˜Έν•˜λŠ” ν…Œλ§ˆ(라이트/닀크)λ₯Ό μ„ νƒν•  μˆ˜ μ—†λ‹€λ©΄, 
특히 μ–΄λ‘μš΄ ν™˜κ²½μ—μ„œ μ›Ήμ‚¬μ΄νŠΈλ₯Ό μ΄μš©ν•˜λŠ” μ‚¬μš©μžμ—κ²Œ λˆˆμ˜ ν”Όλ‘œλ₯Ό μœ λ°œν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. 
μ΄λŠ” μ‚¬μš©μžμ˜ μž₯μ‹œκ°„ μ΄μš©μ„ λ°©ν•΄ν•˜κ³  νŽΈμ•ˆν•œ μ‚¬μš© κ²½ν—˜μ„ μ œκ³΅ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

좔가적인 μ‚¬μš©μž κ²½ν—˜ μ•…μ˜ν–₯

 


ν•΄κ²°: λ‘œμ»¬ μŠ€ν† λ¦¬μ§€μ™€ μžλ°”μŠ€ν¬λ¦½νŠΈ μ‚¬μš©.

javascript
Copy code
const themeButton = document.getElementById('theme-button');

themeButton.addEventListener('click', () => {
    document.body.classList.toggle('dark-theme');
    // 둜컬 μŠ€ν† λ¦¬μ§€μ— ν…Œλ§ˆ μ €μž₯});

 


+

μœ μ˜ν• μ 

μ ‘κ·Όμ„± λ―Έν‘: μ›Ήμ‚¬μ΄νŠΈκ°€ λ‹€μ–‘ν•œ μ‚¬μš©μž(μž₯μ• κ°€ μžˆλŠ” μ‚¬μš©μž ν¬ν•¨)μ—κ²Œ 

μ ‘κ·Όν•  μˆ˜ μžˆλ„둝 μ„€κ³„λ˜μ§€ μ•ŠμœΌλ©΄, μ΄λ“€μ΄ μ •λ³΄μ— μ ‘κ·Όν•˜κ±°λ‚˜ μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜λŠ” λ° ν° μ–΄λ €μ›€μ„ κ²ͺ게 λ©λ‹ˆλ‹€.


μ½”λ“œ μ΅œμ ν™” λΆ€μ‘±: μ›Ήμ‚¬μ΄νŠΈκ°€ λŠλ¦¬κ²Œ λ‘œλ”©λ˜κ±°λ‚˜ λ°˜μ‘ν•˜μ§€ μ•ŠμœΌλ©΄ 

μ‚¬μš©μžμ˜ μΈλ‚΄μ‹¬μ„ μ‹œν—˜ν•˜κ³ , κ²°κ³Όμ μœΌλ‘œ μ›Ήμ‚¬μ΄νŠΈμ˜ μ‹ λ’°μ„±κ³Ό μ „문성을 μ˜μ‹¬ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€.


μ΄λŸ¬ν•œ λ¬Έμ œλ“€μ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” κ°œλ°œ κ³Όμ •μ—μ„œμ˜ μ² μ €ν•œ ν…ŒμŠ€νŒ…, 

μ‚¬μš©μž ν”Όλ“œλ°± μˆ˜μ§‘ λ° λ°˜μ˜, κ·Έλ¦¬κ³  μ§€μ†μ μΈ μ‚¬μ΄νŠΈ κ°œμ„  μž‘업이 ν•„μš”ν•©λ‹ˆλ‹€.

 

+κ°œμ„ ν•œμ 
μ ‘κ·Όμ„± κ³ λ €: alt νƒœκ·Έ μ‚¬μš©, ν‚€λ³΄λ“œ μ ‘κ·Όμ„± λ“±μ„ κ³ λ €.
μ½”λ“œ λ¦¬νŒ©ν† λ§: ν”„λ‘œμ νŠΈ μ§„ν–‰ μ€‘ λ°œμƒν•œ μ€‘볡 μ½”λ“œ μ •λ¦¬.
퍼포먼슀 μ΅œμ ν™”: μ΄λ―Έμ§€ μ΅œμ ν™”, μŠ€ν¬λ¦½νŠΈ λΉ„동기 λ‘œλ”©.

 

 

μ €μ˜ μ‚½μ§ˆμ€ μ•žμœΌλ‘œλ„ κ³„μ†λ©λ‹ˆλ‹€

κΈ°λŒ€ν•΄μ£Όμ„Έμš”^-^