시그마에서 BHL 사이드바 토글
Toggle Sidebar BHL, created by Woedenaz
- iOS 기기에서 #링크로 이어짐. (의도되지 않음)
- iOS 기기에서 버튼이 사라지지 않음. (의도되지 않음)
:root { --sidebar-width-on-desktop: 17em; --sidebar-transition-timing: .5s ease-in-out .1s; --sidebar-links-text: 12, 12, 12; --swatch-menubg-color: 252, 252, 252; --swatch-border-color: 12, 12, 12; } @media only screen and (max-width: 767px) { .open-menu { display: none; } #side-bar { padding: 0; background-color: white; } } /* .close-menu가 두 개인 한위키용 임시 방편 */ #side-bar .close-menu:nth-last-of-type(1) { display: none; } @supports((display: -ms-grid) or (display: grid)) { @media only screen and (max-width: 767px) { #side-bar .close-menu { display: block; position: fixed; bottom: 0.5rem; left: 0.5rem; width: 3rem; opacity: 1; pointer-events: all; } #side-bar .close-menu::before, #side-bar .close-menu::after { content: ""; box-sizing: border-box; position: fixed; display: block; bottom: 0.5rem; left: 0.5rem; width: 3rem; height: 3rem; padding: 0; margin: 0; text-align: center; pointer-events: all; cursor: pointer; -webkit-transition: opacity var(--sidebar-transition-timing); -o-transition: opacity var(--sidebar-transition-timing); -moz-transition: opacity var(--sidebar-transition-timing); transition: opacity var(--sidebar-transition-timing); } #side-bar .close-menu::before { --mask: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3C!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3E%3Csvg height='32px' id='Layer_1' style='enable-background:new 0 0 32 32;' version='1.1' viewBox='0 0 32 32' width='32px' xml:space='preserve' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cpath d='M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z'/%3E%3C/svg%3E"); z-index: -1; background-color: var(--toggle-icon-color, rgb(var(--sidebar-links-text))) !important; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: 50% 50%; mask-position: 50% 50%; -webkit-mask-size: 60%; mask-size: 60%; } #side-bar .close-menu::after { z-index: -2; background-color: var(--toggle-button-bg, rgb(var(--swatch-menubg-color))) !important; -webkit-border-radius: var(--toggle-roundness, 50%); -moz-border-radius: var(--toggle-roundness, 50%); border-radius: var(--toggle-roundness, 50%); border: var(--toggle-border-color, rgb(var(--swatch-border-color))) var(--toggle-border-width, 0.25rem) solid; } #side-bar:focus-within .close-menu::before, #side-bar:focus-within .close-menu::after { opacity: 0; } #side-bar { display: block; position: fixed; top: 0; left: -webkit-calc(var(--sidebar-width-on-desktop)*-1); left: -moz-calc(var(--sidebar-width-on-desktop)*-1); left: calc(var(--sidebar-width-on-desktop)*-1); z-index: 10; -webkit-transition: left var(--sidebar-transition-timing); -o-transition: left var(--sidebar-transition-timing); -moz-transition: left var(--sidebar-transition-timing); transition: left var(--sidebar-transition-timing); height: 100%; overflow-y: auto; overflow-x: hidden; margin-top: 0; } #side-bar:focus-within { left: 0; } #side-bar .side-block { margin-top: 1rem; background-color: rgb(0, 0, 0, 0); -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; border-left-width: 0px; border-right-width: 0px; } #main-content::before { content: ""; display: block; position: fixed; top: 0; right: 0; z-index: -1; opacity: 0; -webkit-transition: opacity var(--sidebar-transition-timing), width var(--sidebar-transition-timing); -o-transition: opacity var(--sidebar-transition-timing), width var(--sidebar-transition-timing); -moz-transition: opacity var(--sidebar-transition-timing), width var(--sidebar-transition-timing); transition: opacity var(--sidebar-transition-timing), width var(--sidebar-transition-timing); margin-left: var(--sidebar-width-on-desktop); background: rgba(var(--swatch-menubg-black-color), .3) 1px 1px repeat; padding-right: 0; width: 100%; height: 100vh; pointer-events: none; z-index: 99; } #side-bar:focus-within~#main-content::before { width: -webkit-calc(100% - var(--sidebar-width-on-desktop)); width: -moz-calc(100% - var(--sidebar-width-on-desktop)); width: calc(100% - var(--sidebar-width-on-desktop)); opacity: 1; pointer-events: all; } #content-wrap { display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -moz-box-orient: horizontal; -moz-box-direction: normal; -ms-flex-direction: row; flex-direction: row; width: -webkit-calc(100vw - (100vw - 100%)); width: -moz-calc(100vw - (100vw - 100%)); width: calc(100vw - (100vw - 100%)); min-height: -webkit-calc(100vh - -webkit-calc(var(--final-header-height-on-desktop, 10.125rem))); min-height: -moz-calc(100vh - -moz-calc(var(--final-header-height-on-desktop, 10.125rem))); min-height: calc(100vh - calc(var(--final-header-height-on-desktop, 10.125rem))); -webkit-box-flex: 2; -webkit-flex-grow: 2; -moz-box-flex: 2; -ms-flex-positive: 2; flex-grow: 2; height: auto; position: relative; margin: 0 auto; max-width: inherit; } #main-content { width: 100%; position: initial; max-height: 100%; padding: 2rem 1rem; width: 45.8rem; /* 모바일 전용으로 변환하며 안 맞게 됨 max-width: 45.8rem; */ margin: 0 auto; } @media not all and (min-resolution:.001dpcm) { @supports (-webkit-appearance:none) { #side-bar { -webkit-transition: left var(--sidebar-transition-timing), padding-right var(--sidebar-transition-timing), background-color var(--sidebar-transition-timing); -o-transition: left var(--sidebar-transition-timing), padding-right var(--sidebar-transition-timing), background-color var(--sidebar-transition-timing); -moz-transition: left var(--sidebar-transition-timing), padding-right var(--sidebar-transition-timing), background-color var(--sidebar-transition-timing); transition: left var(--sidebar-transition-timing), padding-right var(--sidebar-transition-timing), background-color var(--sidebar-transition-timing); padding-right: 0; background-color: rgb(0, 0, 0, 0); pointer-events: all; overflow-x: visible; overflow-y: visible; z-index: 999; } #side-bar::-webkit-scrollbar { opacity: 0; -webkit-transition: opacity var(--sidebar-transition-timing); transition: opacity var(--sidebar-transition-timing); } #side-bar .close-menu::before { z-index: 999; } #side-bar .close-menu::after { z-index: 998; } #side-bar:hover .close-menu::before { opacity: 0; } #side-bar:hover { left: 0; background-color: rgba(var(--swatch-menubg-color), 1); padding-right: 0; } #side-bar:hover::-webkit-scrollbar { opacity: 1; } #side-bar:hover~#main-content::before { width: -webkit-calc(100% - var(--sidebar-width-on-desktop)); width: -moz-calc(100% - var(--sidebar-width-on-desktop)); width: calc(100% - var(--sidebar-width-on-desktop)); opacity: 1; pointer-events: all; } } } } }
페이지 내역: 17, 마지막 수정: 08 Jun 2021 01:45