Skip to content

Latest commit

ย 

History

History
624 lines (528 loc) ยท 17.3 KB

README.md

File metadata and controls

624 lines (528 loc) ยท 17.3 KB


The House of Tomorrow

Online lifestyle shop made with SASS

template version



๐Ÿ“ธ screenshots



โ— Status


1. Login & Logout Status: ๋กœ๊ทธ์ธ ํ–ˆ์„ ๋•Œ & ๋กœ๊ทธ์ธ ์•ˆ ํ–ˆ์„ ๋•Œ


1-1. GNB

  • ๋กœ๊ทธ์ธ ์•ˆ ํ–ˆ์„ ๋•Œ
<div class="button-group">
  <button
    class="gnb-icon-button is-search lg-hidden"
    type="button"
    aria-label="๊ฒ€์ƒ‰๏ฟฝ ์—ด๊ธฐ ๋ฒ„ํŠผ๏ฟฝ"
  >
    <i class="ic-search"></i>
  </button>
  <a
    class="gnb-icon-button is-cart"
    href="/"
    aria-label="์žฅ๋ฐ”๊ตฌ๋‹ˆ๋กœ ํŽ˜์ด์ง€๋กœ ์ด๋™"
  >
    <i class="ic-cart"></i>
  </a>
  <div class="gnb-auth sm-hidden">
    <a href="/">๋กœ๊ทธ์ธ</a>
    <a href="/">ํšŒ์›๊ฐ€์ž…</a>
  </div>
</div>

  • ๋กœ๊ทธ์ธ ํ–ˆ์„ ๋•Œ
<div class="button-group">
  <button
    class="gnb-icon-button is-search lg-hidden"
    type="button"
    aria-label="๊ฒ€์ƒ‰๏ฟฝ ์—ด๊ธฐ ๋ฒ„ํŠผ๏ฟฝ"
  >
    <i class="ic-search"></i>
  </button>

  <a
    class="gnb-icon-button sm-hidden"
    href="/"
    aria-label="์Šคํฌ๋žฉ๋ถ ํŽ˜์ด์ง€๋กœ ์ด๋™"
  >
    <i class="ic-bookmark"></i>
  </a>

  <a
    class="gnb-icon-button sm-hidden"
    href="/"
    aria-label="๋‚ด ์†Œ์‹๏ฟฝ ํŽ˜์ด์ง€๋กœ ์ด๋™"
  >
    <i class="ic-bell"></i>
  </a>

  <a
    class="gnb-icon-button is-cart"
    href="/"
    aria-label="์žฅ๋ฐ”๊ตฌ๋‹ˆ๋กœ ํŽ˜์ด์ง€๋กœ ์ด๋™"
  >
    <i class="ic-cart"></i>
    <strong class="badge" aria-label="์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ƒํ’ˆ์ด 5๊ฐœ ๋‹ด๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค"
      >5</strong
    >
  </a>

  <button
    class="gnb-avatar-button sm-hidden"
    type="button"
    aria-label="๋งˆ์ด ๋ฉ”๋‰ด ์—ด๊ธฐ ๋ฒ„ํŠผ"
  >
    <div class="avatar-32">
      <img
        src="https://static.wikia.nocookie.net/characters/images/1/19/Sally_Fantasia.jpg"
        alt="User image"
      />
    </div>
  </button>
</div>


1-2. Sidebar

1-2-1. User avatar & user name

  • ๋กœ๊ทธ์ธ ํ–ˆ์„ ๋•Œ
<div class="sidebar-user">
  <a href="/">
    <div class="avatar-24">
      <img src="./assets/images/img-user-01.jpg" alt="User image" />
    </div>
    <strong class="user-name">
      ์กฐ์ง€ ๊ฑฐ์Šˆ์œˆ๏ฟฝ ์กฐ์ง€ ๊ฑฐ์Šˆ์œˆ๏ฟฝ ์กฐ์ง€ ๊ฑฐ์Šˆ์œˆ๏ฟฝ ์กฐ์ง€ ๊ฑฐ์Šˆ์œˆ๏ฟฝ ์กฐ์ง€ ๊ฑฐ์Šˆ์œˆ๏ฟฝ ์กฐ์ง€ ๊ฑฐ์Šˆ์œˆ๏ฟฝ
    </strong></a
  >
</div>
  • ๋กœ๊ทธ์ธ ์•ˆ ํ–ˆ์„ ๋•Œ
<div class="sidebar-auth">
  <a href="/" class="btn-outlined btn-40">๋กœ๊ทธ์ธ</a>
  <a href="/" class="btn-fill-primary btn-40">ํšŒ์›๊ฐ€์ž…</a>
</div>

1-2-2. My menu

  • ๋กœ๊ทธ์ธ ํ–ˆ์„ ๋•Œ
<div class="sidebar-menu-my">
  <ul class="sidebar-menu-my-list">
    <li class="sidebar-menu-my-list-item">
      <a href="/">๋งˆ์ดํŽ˜์ด์ง€</a>
    </li>
    <li class="sidebar-menu-my-list-item">
      <a href="/">๋‚˜์˜ ์‡ผํ•‘</a>
    </li>
    <li class="sidebar-menu-my-list-item">
      <a href="/">์Šคํฌ๋žฉ๋ถ</a>
    </li>
    <li class="sidebar-menu-my-list-item">
      <a href="/">์•Œ๋ฆผ</a>
    </li>
    <li class="sidebar-menu-my-list-item">
      <a href="/">์ด๋ฒคํŠธ </a>
    </li>
  </ul>
</div>
  • ๋กœ๊ทธ์ธ ์•ˆ ํ–ˆ์„ ๋•Œ: none



2. Review

  • Review ์—†์„ ๋•Œ
<section
  class="product-section product-review"
  id="product-review"
  role="tabpanel"
>
  <header class="product-section-header">
    <h1 class="title">๋ฆฌ๋ทฐ</h1>
    <strong class="badge" aria-label="0๊ฐœ">0</strong>
    <a class="text-button" href="/">๋ฆฌ๋ทฐ์“ฐ๊ธฐ</a>
  </header>

  <div class="product-section-content">
    <p class="review-empty">
      ์ฒซ ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”! <br />
      ์ตœ๋Œ€ <strong>500P</strong>๋ฅผ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
    </p>
  </div>
</section>
  • Review ์žˆ์„ ๋•Œ
<section
  class="product-section product-review"
  id="product-review"
  role="tabpanel"
>
  <header class="product-section-header">
    <h1 class="title">๋ฆฌ๋ทฐ</h1>
    <strong class="badge" aria-label="566๊ฐœ">566</strong>
    <a class="text-button" href="/">๋ฆฌ๋ทฐ์“ฐ๊ธฐ</a>
  </header>

  <div class="product-section-content">
    <div class="review-scoreboard">
      <div class="score-summary">
        <strong class="average-score" aria-label="ํ‰์  4.8">4.8</strong>
        <div class="star-rating">
          <i class="ic-star is-active"></i>
          <i class="ic-star is-active"></i>
          <i class="ic-star is-active"></i>
          <i class="ic-star is-active"></i>
          <i class="ic-star is-active"></i>
        </div>
      </div>

      <div class="score-detail">
        <dl class="score-stats-list">
          <div class="score-stats-item is-active">
            <dt>5์ </dt>

            <dd>
              <div class="bar-graph" aria-hidden="true">
                <div class="active-bar"></div>
              </div>
              <strong class="count" aria-label="467๋ช…">467</strong>
            </dd>
          </div>

          <div class="score-stats-item">
            <dt>4์ </dt>

            <dd>
              <div class="bar-graph" aria-hidden="true">
                <div class="active-bar"></div>
              </div>
              <strong class="count" aria-label="87๋ช…">87</strong>
            </dd>
          </div>

          <div class="score-stats-item">
            <dt>3์ </dt>

            <dd>
              <div class="bar-graph" aria-hidden="true">
                <div class="active-bar"></div>
              </div>
              <strong class="count" aria-label="13๋ช…">13</strong>
            </dd>
          </div>

          <div class="score-stats-item">
            <dt>2์ </dt>
            <dd>
              <div class="bar-graph" aria-hidden="true">
                <div class="active-bar"></div>
              </div>
              <strong class="count" aria-label="0๋ช…">0</strong>
            </dd>
          </div>

          <div class="score-stats-item">
            <dt>1์ </dt>

            <dd>
              <div class="bar-graph" aria-hidden="true">
                <div class="active-bar"></div>
              </div>
              <strong class="count" aria-label="0๋ช…">0</strong>
            </dd>
          </div>
        </dl>
      </div>
    </div>

    <ol class="review-list">
      <li class="review-item">
        <article class="review-card">
          <header class="review-card-header">
            <h3 class="visually-hidden">๋งฅ๋ชจ๋‹๋ถˆ์—ฌ์ผ๊ฒฌ ๋‹˜์ด ์ž‘์„ฑํ•œ ๋ฆฌ๋ทฐ</h3>

            <a class="avatar-24" href="/">
              <img
                src="./assets/images/img-user-04.jpeg"
                alt="๋งฅ๋ชจ๋‹๋ถˆ์—ฌ์ผ๊ฒฌ ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€"
              />
            </a>

            <div class="info">
              <a class="username" href="/"><strong>๋งฅ๋ชจ๋‹๋ถˆ์—ฌ์ผ๊ฒฌ</strong></a>

              <div class="detail">
                <div class="star-rating-13" aria-label="5.0์  ์ค‘์— 5.0์ ">
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                </div>

                <div class="misc">
                  <time>2021.01.01</time>
                  <span>์˜ค๋Š˜์˜์ง‘ ๊ตฌ๋งค</span>
                </div>
              </div>
            </div>
          </header>

          <div class="review-card-body">
            <p>
              ์ง‘ ์ „์ฒด๋ฅผ ๋ฐ์šด๋‹ค๊ธฐ๋ณด๋‹ค๋Š” ํ‹€์–ด๋†“๊ณ  ์•ž์— ์•‰์•„์žˆ์œผ๋ฉด ๋”ฐ๋•ƒํ•ด์ง€๋Š”
              ์ •๋„์˜ˆ์š”. ๋ถˆ ๊บผ๋†“๊ณ  ๋‚œ๋กœ ์ผœ๊ณ  ๋‹ด์š” ๋ฎ์€ ์ฑ„๋กœ ์ปคํ”ผ ๋งˆ์‹œ๋ฉด ์•„์ฃผ
              ์ข‹์•„์š”. ๊ณ ์–‘์ด๋„ ์ข‹์•„ํ•ด์š”
            </p>
          </div>

          <footer class="review-card-footer">
            <button class="btn-outlined btn-32" type="button">
              ๋„์›€์ด ๋ผ์š”
            </button>

            <p>
              <strong><span>7</span>๋ช…</strong>์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
            </p>
          </footer>
        </article>
      </li>

      <!-- NOTE: Review Image โŒ -->
      <li class="review-item">
        <article class="review-card">
          <header class="review-card-header">
            <h3 class="visually-hidden">
              ์Šˆํฌ๋ฆผ ๋„์–ด๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค ๋‹˜์ด ์ž‘์„ฑํ•œ ๋ฆฌ๋ทฐ
            </h3>

            <a
              class="avatar-24"
              href="/"
              aria-label="์Šˆํฌ๋ฆผ ๋„์–ด๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค ๋‹˜์˜ ํ”„๋กœํ•„๋กœ ์ด๋™"
            >
            </a>

            <div class="info">
              <a class="username" href="/"
                ><strong>์Šˆํฌ๋ฆผ ๋„์–ด๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค</strong></a
              >

              <div class="detail">
                <div class="star-rating-13" aria-label="5.0์  ์ค‘์— 5.0์ ">
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star"></i>
                </div>

                <div class="misc">
                  <time>2021.01.01</time>
                  <span>์˜ค๋Š˜์˜์ง‘ ๊ตฌ๋งค</span>
                </div>
              </div>
            </div>
          </header>

          <div class="review-card-body">
            <p>
              ์˜จ๋„ ์กฐ์ ˆ๊ณผ ํƒ€์ด๋จธ๊ฐ€ ์•ˆ ๋œ๋‹ค๋Š” ๊ฑธ ๋’ค๋Šฆ๊ฒŒ ์•Œ์•˜์ง€๋งŒ ์ด์˜๋‹ˆ๊นŒ ๋Œ€๋งŒ์กฑ!
              ๊ฐ€๊ฒฉ๋„ ๋Œ€๋งŒ์กฑ!
            </p>
          </div>

          <footer class="review-card-footer">
            <button class="btn-outlined btn-32" type="button">
              ๋„์›€์ด ๋ผ์š”
            </button>

            <p>
              <strong><span>7</span>๋ช…</strong>์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
            </p>
          </footer>
        </article>
      </li>

      <!-- NOTE: Review Image โญ•๏ธ -->
      <li class="review-item">
        <article class="review-card">
          <header class="review-card-header">
            <h3 class="visually-hidden">ํ• ๋ถ€๋กœ ์• ํ‹‹ํ•˜๊ฒŒ ๋‹˜์ด ์ž‘์„ฑํ•œ ๋ฆฌ๋ทฐ</h3>

            <a class="avatar-24" href="/">
              <img
                src="./assets/images/img-user-02.jpeg"
                alt="ํ• ๋ถ€๋กœ ์• ํ‹‹ํ•˜๊ฒŒ ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€"
              />
            </a>

            <div class="info">
              <a class="username" href="/"><strong>ํ• ๋ถ€๋กœ ์• ํ‹‹ํ•˜๊ฒŒ</strong></a>

              <div class="detail">
                <div class="star-rating-13" aria-label="5.0์  ์ค‘์— 5.0์ ">
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                </div>

                <div class="misc">
                  <time>2021.01.01</time>
                  <span>์˜ค๋Š˜์˜์ง‘ ๊ตฌ๋งค</span>
                </div>
              </div>
            </div>
          </header>

          <div class="review-card-body">
            <div class="review-image">
              <img
                src="./assets/images/img-review-01.jpg"
                alt="ํ• ๋ถ€๋กœ ์• ํ‹‹ํ•˜๊ฒŒ ๋‹˜์˜ ๋ฆฌ๋ทฐ ์‚ฌ์ง„"
              />
            </div>
            <p>
              ์ž‘์—…์‹ค์—์„œ ์†์ด ์‹œ๋ ค์›Œ์„œ ์ฑ…์ƒ ์œ„์— ์˜ฌ๋ ค์„œ ์“ธ๊ฑธ๋กœ ๊ณจ๋ž์Šต๋‹ˆ๋‹ค!
              ์•„์ฃผ์•„์ฃผ ๋œจ๋“ฏํ•˜๊ณ  ํฌ๊ธฐ๋„ ์ ๋‹นํ•˜๊ณ  ๋ฏผํŠธ ์‚ฌ๊ณ ์‹ถ์—‡์ง€๋งŒ ํ’ˆ์ ˆ ใ… ใ… 
            </p>
          </div>

          <footer class="review-card-footer">
            <button class="btn-outlined btn-32" type="button">
              ๋„์›€์ด ๋ผ์š”
            </button>

            <p>
              <strong><span>7</span>๋ช…</strong>์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
            </p>
          </footer>
        </article>
      </li>

      <!-- NOTE: Button Pressed: True, Helped number โ‰ฅ 1 -->
      <li class="review-item">
        <article class="review-card">
          <header class="review-card-header">
            <h3 class="visually-hidden">ํƒœ์ •ํƒœ์„ธ๋น„์š˜์„ธ ๋‹˜์ด ์ž‘์„ฑํ•œ ๋ฆฌ๋ทฐ</h3>

            <a class="avatar-24" href="/">
              <img
                src="./assets/images/img-user-05.jpeg"
                alt="ํƒœ์ •ํƒœ์„ธ๋น„์š˜์„ธ ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€"
              />
            </a>

            <div class="info">
              <a class="username" href="/"><strong>ํƒœ์ •ํƒœ์„ธ๋น„์š˜์„ธ</strong></a>

              <div class="detail">
                <div class="star-rating-13" aria-label="5.0์  ์ค‘์— 5.0์ ">
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                </div>

                <div class="misc">
                  <time>2021.01.01</time>
                  <span>์˜ค๋Š˜์˜์ง‘ ๊ตฌ๋งค</span>
                </div>
              </div>
            </div>
          </header>

          <div class="review-card-body">
            <p>
              ์˜ค๋ž˜๋œ ์•„ํŒŒํŠธ ํ™•์žฅ๋œ ๋ฐฉ์ด๋ผ ์™ธํ’์ด ๋„ˆ๋ฌด ์‹ฌํ•ด ๊ธ‰ํ•˜๊ฒŒ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค!
              ์˜ˆ์•ฝ๋ฐฐ์†ก์ด๋ผ 10์ผ ๊ฐ€๊นŒ์ด ๊ธฐ๋‹ค๋ ธ๋Š”๋ฐ ๋„ˆ๋ฌด๋„ˆ๋ฌด ๋งŒ์กฑ์Šค๋Ÿฌ์›Œ์š”~ :) ๋ฐฉ์ด
              ํฐ ํŽธ์ด๋ผ ์ „์ฒด๊ฐ€ ๋‹ค ๋”ฐ๋œปํ•ด์ง€๊ธธ ๋ฐ”๋ผ์ง€๋„ ์•Š์•˜๊ณ , ํ›„๊ธฐ๋ฅผ ๋จผ์ €
              ๋ดค๋˜ํ„ฐ๋ผ ํฌ๊ฒŒ ๊ธฐ๋Œ€๋ฅผ ์•ˆํ–‡์—ˆ๋Š”๋ฐ ๊ธฐ๋Œ€ ์ด์ƒ์ž…๋‹ˆ๋‹ค. ํ‹€์–ด๋†“์œผ๋ฉด ํ™•์‹คํžˆ
              ๋ฐฉ ๊ณต๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ ธ์š”! ํ›„๋ˆ!!! ๊นŒ์ง„ ์•„๋‹ˆ์–ด๋„ ์ฐจ๊ฐ€์šด ๊ณต๊ธฐ๊ฐ€
              ๋”ฐ๋œปํ•ด์ง‘๋‹ˆ๋‹ค~ ๋งŒ์กฑ์Šค๋Ÿฌ์›Œ์š”!!! ์˜ฌ ๊ฒจ์šธ ๋•๋ถ„์— ๋–จ์ง€ ์•Š๊ณ  ๋ณด๋‚ผ ์ˆ˜
              ์žˆ์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹น
            </p>
          </div>

          <footer class="review-card-footer">
            <button class="btn-fill-primary btn-32" type="button">
              <i class="ic-check" aria-hidden></i>
              ๋„์›€๋จ
            </button>

            <p>
              <strong><span>2</span>๋ช…</strong>์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
            </p>
          </footer>
        </article>
      </li>

      <!-- NOTE: Button Pressed: False, Helped number = 0 -->
      <li class="review-item">
        <article class="review-card">
          <header class="review-card-header">
            <h3 class="visually-hidden">์ธํˆฌ๋””์–ผ์€๋…ผ ๋‹˜์ด ์ž‘์„ฑํ•œ ๋ฆฌ๋ทฐ</h3>

            <a class="avatar-24" href="/">
              <img
                src="./assets/images/img-user-06.jpeg"
                alt="์ธํˆฌ๋””์–ผ์€๋…ผ ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€"
              />
            </a>

            <div class="info">
              <a class="username" href="/"><strong>์ธํˆฌ๋””์–ผ์€๋…ผ</strong></a>

              <div class="detail">
                <div class="star-rating-13" aria-label="5.0์  ์ค‘์— 5.0์ ">
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star is-active"></i>
                  <i class="ic-star"></i>
                  <i class="ic-star"></i>
                </div>

                <div class="misc">
                  <time>2021.01.01</time>
                  <span>์˜ค๋Š˜์˜์ง‘ ๊ตฌ๋งค</span>
                </div>
              </div>
            </div>
          </header>

          <div class="review-card-body">
            <p>๊ฐ€๊ฒฉ ๋Œ€๋น„ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.</p>
          </div>

          <footer class="review-card-footer">
            <button class="btn-outlined btn-32" type="button">
              ๋„์›€์ด ๋ผ์š”
            </button>
          </footer>
        </article>
      </li>
    </ol>

    <div class="pagination">
      <!-- <button class="page-control page-prev">
                  <i class="ic-chevron"></i>
                </button> -->
      <ol class="page-list">
        <li class="page-item is-active">
          <a href="/">1</a>
        </li>
        <li class="page-item">
          <a href="/">2</a>
        </li>
        <li class="page-item">
          <a href="/">3</a>
        </li>
        <li class="page-item">
          <a href="/">4</a>
        </li>
        <li class="page-item">
          <a href="/">5</a>
        </li>
      </ol>
      <button class="page-control page-next">
        <i class="ic-chevron"></i>
      </button>
    </div>
  </div>
</section>


๐Ÿ‘€ Todo list

  • Base
    • Reset & Normalise CSS
    • Prepare assets
  • Variables
  • Mixins
  • Modules
  • Components
    • GNB
    • Sidebar
    • Search Modal
    • Search History
    • LNG
    • Global Footer
    • Breadcrumb & Product Carousel
    • Product Info & Order Form
    • Page Structure & Shared Components
    • ๐Ÿšง Product Section
    • Order Forms
    • Dialogs
  • Javascript