본문 바로가기
명함 만들기 캐릭터 모음 16가지 디자인 · PNG / SVG / PDF

분할 버튼

열 사람 중 아홉이 같은 것을 누르고, 나머지 한 사람에게도 길을 열어 줘야 할 때 쓰는 조각.

버튼 · 액션

실제 미리보기

출처

<div class="dc-split">
  <button type="button" class="dc-split__main">저장</button>
  <details class="dc-split__more">
    <summary class="dc-split__toggle">
      <svg class="dc-split__caret" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 9l6 6 6-6"></path></svg>
      <span class="dc-sr">저장 옵션 더 보기</span>
    </summary>
    <ul class="dc-split__list">
      <li><button type="button" class="dc-split__item">다른 이름으로 저장</button></li>
      <li><button type="button" class="dc-split__item">사본 만들기</button></li>
      <li><button type="button" class="dc-split__item">서식만 저장</button></li>
    </ul>
  </details>
</div>
.dc-split { display: inline-flex; }
.dc-split__main {
  min-height: 44px; padding: 0 var(--dc-5);
  border: 1px solid var(--dc-brand); border-radius: var(--dc-r-sm) 0 0 var(--dc-r-sm);
  background: var(--dc-brand); color: var(--dc-text-on);
  font-family: var(--dc-font); font-size: 15px; font-weight: 600; line-height: 1;
  white-space: nowrap;
  transition: background var(--dc-fast);
}
.dc-split__main:hover { background: var(--dc-brand-hi); }
.dc-split__more { position: relative; }
.dc-split__toggle {
  display: flex; align-items: center; justify-content: center;
  width: 44px; min-height: 44px;
  border: 1px solid var(--dc-brand);
  border-left-color: color-mix(in srgb, var(--dc-text-on) 35%, var(--dc-brand));
  border-radius: 0 var(--dc-r-sm) var(--dc-r-sm) 0;
  background: var(--dc-brand); color: var(--dc-text-on);
  cursor: pointer; list-style: none;
  transition: background var(--dc-fast);
}
.dc-split__toggle::-webkit-details-marker { display: none; }
.dc-split__toggle:hover { background: var(--dc-brand-hi); }
.dc-split__caret { width: 18px; height: 18px; transition: transform var(--dc-fast); }
.dc-split__more[open] .dc-split__caret { transform: rotate(180deg); }
.dc-split__list {
  position: absolute; top: calc(100% + var(--dc-1)); right: 0; z-index: 2;
  min-width: 210px; padding: var(--dc-1);
  border: 1px solid var(--dc-line); border-radius: var(--dc-r-md);
  background: var(--dc-surface); box-shadow: var(--dc-sh-2);
}
.dc-split__item {
  display: block; width: 100%; min-height: 44px; padding: 0 var(--dc-3);
  border: 0; border-radius: var(--dc-r-xs);
  background: transparent; color: var(--dc-text);
  font-family: var(--dc-font); font-size: 14px; text-align: left;
}
.dc-split__item:hover { background: var(--dc-sunken); }

이렇게 씁니다

  • 가장 많이 쓰는 동작을 왼쪽 본체에 두고, 나머지를 화살표 뒤에 숨긴다
  • 메뉴에는 본체와 같은 종류의 변형만 넣는다 (저장 / 다른 이름으로 저장)
  • 숨길 항목이 하나뿐이면 버튼 두 개로 나누는 편이 낫다

주의할 점

  • 화살표에도 이름을 붙여라 — dc-sr 로 '저장 옵션 더 보기'
  • 오른쪽 끝에서는 메뉴가 화면을 넘어간다. 그 자리에서는 펼침 방향을 바꿔라
  • details 로 만들어 두면 스크립트가 없어도 열린다

다음에 볼 것