/* size */ :root { --hex-width: 2rem; --hex-height: 1.732rem; --hex-ratio: 2000/1732; --hex-border-ratio: 0.92; } /* color */ :root { --theme-color1: #006956; --theme-color2: #ffffff; --font-color: #777; --hex-border-color: #f2f2f2; --btn-color1: #61b0e2; --btn-color2: #999; --hex-color1-1: #ffffff; --hex-color1-1: #ffffff; --hex-color1-2: #cccccc; --hex-color1-3: #999999; --hex-color1-4: #4d4d4d; --hex-color1-5: #1a1a1a; --hex-color2-1: #f0849f; --hex-color2-2: #f47371; --hex-color2-3: #cc4848; --hex-color2-4: #8c1818; --hex-color2-5: #630007; --hex-color3-1: #ffbe00; --hex-color3-2: #ffa035; --hex-color3-3: #cc864b; --hex-color3-4: #826c4a; --hex-color3-5: #5b4a28; --hex-color4-1: #94d2a1; --hex-color4-2: #49bb57; --hex-color4-3: #21ab9b; --hex-color4-4: #34703c; --hex-color4-5: #1d300b; --hex-color5-1: #29abe2; --hex-color5-2: #0086d1; --hex-color5-3: #3984aa; --hex-color5-4: #3d4c6b; --hex-color5-5: #0f2a3b; --hex-color6-1: #beb9fb; --hex-color6-2: #8476c2; --hex-color6-3: #534b96; --hex-color6-4: #422d82; --hex-color6-5: #392969; } /* other */ :root { --transition: 0.5s; } * { box-sizing: border-box; } html { background: var(--hex-border-color); height: 100%; overflow-x: hidden; scroll-behavior: smooth; font-size: 50px; overflow: scroll; } body { font-size: 16px; line-height: 1.6; color: var(--font-color); font-family: "Noto Sans JP", sans-serif; } img { max-width: 100%; width: 100%; height: auto; } a { transition: var(--transition); } a:hover { /* opacity: 0.6; */ } input[type="text"], textarea { border: solid 1px #ccc; background: #fff; line-height: 1; border-radius: 2px; font-size: 15px; padding: 5px 8px; } input[type="text"]:focus-visible, textarea:focus-visible { outline: none; } textarea:read-only { background: transparent; pointer-events: none; } button { position: relative; display: inline-block; height: 35px; line-height: 1; padding: 0 10px; color: #fff; background: var(--btn-color1); border-radius: 5px; transition: var(--transition); } button:hover { opacity: 0.7; } button.btn2 { background: var(--btn-color2); } button.disabled { pointer-events: none; background: var(--btn-color2); cursor: auto; } button#undo, button#redo { width: 35px; position: fixed; top: 10px; } button#undo { left: 20px; } button#redo { left: 75px; } button#undo::before, button#redo::before { content: ""; display: inline-block; width: 15px; height: 15px; position: absolute; top: 10px; left: 10px; background: #fff; } button#redo::before { -webkit-mask: url(../img/undo.svg); mask: url(../img/undo.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; transform: rotateY(180deg); } button#undo::before { -webkit-mask: url(../img/undo.svg); mask: url(../img/undo.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; } button#screenshot, button#view { width: 35px; } button#screenshot::before, button#view::before { content: ""; display: inline-block; width: 20px; height: 20px; position: absolute; top: 8px; left: 8px; -webkit-mask: url(../img/eye.svg); mask: url(../img/eye.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; background: #fff; } button#view.off { } button#view.on { } button#view.on::before { -webkit-mask: url(../img/eye-slash.svg); mask: url(../img/eye-slash.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; background: #fff; } button#screenshot::before { -webkit-mask: url(../img/screenshot.svg); mask: url(../img/screenshot.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; width: 25px; height: 25px; top: 6px; left: 6px; } button#save, button#load, button#hintBtn { display: flex; align-items: center; padding-left: 35px; } button#save::before, button#load::before, button#hintBtn::before { content: ""; display: inline-block; position: absolute; left: 8px; width: 20px; height: 20px; background: #fff; } button#save::before { -webkit-mask: url(../img/download.svg); mask: url(../img/download.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; } button#load::before { -webkit-mask: url(../img/upload.svg); mask: url(../img/upload.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; } button#hintBtn{ background: linear-gradient(339deg, #00c6ff, #0072ff, #00d4ff); } button#hintBtn::before { -webkit-mask: url(../img/hint.svg); mask: url(../img/hint.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; } /* header ============================================================================================================ */ header { position: fixed; display: flex; justify-content: center; align-items: center; top: 0; left: 0; right: 0; height: 60px; margin-bottom: -60px; z-index: 1000; /* backdrop-filter: blur(5px); */ /* background: #ffffff90; */ gap: 20px; padding: 0 80px; pointer-events: none; } header img#logo { position: absolute; right: 10px; top: 10px; width: auto; height: 35px; transition: var(--transition); pointer-events: auto; } header .menu input { display: none; } header .menu input:checked ~ label.btn img { z-index: 11; transform: rotateY(180deg); } header .menu label.btn::before { content: ""; display: inline-block; width: 14px; height: 14px; position: absolute; right: 23px; top: 20px; -webkit-mask: url(../img/bars.svg); mask: url(../img/bars.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; background: #fff; z-index: 13; transition: var(--transition); } header .menu input:checked ~ label.btn::before { transform: rotateY(180deg); -webkit-mask: url(../img/x.svg); mask: url(../img/x.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; } header .menu label.bg { display: none; position: fixed; pointer-events: none; cursor: auto; top: 0; bottom: 0; left: 0; right: 0; } header .menu input:checked ~ label.bg { display: block; pointer-events: auto; background: rgb(0 0 0 / 30%); } header .menu input:checked ~ nav { opacity: 1; pointer-events: auto; right: 0; } header .menu nav { position: fixed; opacity: 0; width: auto; height: calc(100% - 60px); top: 0; font-size: 12px; width: 210px; right: -210px; height: auto; padding: 55px 20px 20px; transition: var(--transition); background: #fff; text-align: center; pointer-events: none; z-index: 10; display: flex; flex-flow: column; gap: 10px; } header .menu nav::before { content: ""; position: absolute; top: 10px; left: 10px; background-image: url(../img/logo.png); width: 140px; height: 40px; background-size: contain; background-repeat: no-repeat; } header .menu nav p { font-size: 10px; color: #999; } header a#request button { background: #e36161; } /* memoAndColor ============================================================================================================ */ section#memoAndColor { position: fixed; right: -200px; bottom: 50%; padding: 10px; display: flex; flex-flow: column; justify-content: center; gap: 10px; background: #eee; z-index: 99; transition: 0.2s; } section#memoAndColor.on { right: 0; } section#memoAndColor textarea { height: 90px; width: 150px; resize: none; padding: 0 4px; line-height: 1.5; font-size: 12px; } section#memoAndColor textarea::placeholder { color: #ddd; } section#memoAndColor div { display: flex; align-items: center; } section#memoAndColor div.memo { } section#memoAndColor div.color { display: flex; justify-content: center; align-items: center; /* gap: 5px 10px; */ padding: 0; flex-wrap: wrap; } section#memoAndColor div.color div { display: flex; flex-flow: column; /* gap: 5px; */ } section#memoAndColor div.color input[type="radio"] { position: relative; width: 25px; height: 20px; /* border-radius: 10%; */ background: #ccc; cursor: pointer; transition: var(--transition); } section#memoAndColor div.color input[type="radio"]:checked + i::before { content: ""; display: inline-block; width: 12px; height: 12px; position: absolute; top: 4px; left: 6px; -webkit-mask: url(../img/check.svg); mask: url(../img/check.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; background: #fff; } section#memoAndColor div.color div:nth-of-type(1) span:nth-of-type(1) input[type="radio"]:checked + i::before { background: var(--font-color); } section#memoAndColor div.color div span { position: relative; display: flex; } section#memoAndColor div.color div:nth-of-type(1) span:nth-of-type(1) input[type="radio"] { background: var(--hex-color1-1); } section#memoAndColor div.color div:nth-of-type(1) span:nth-of-type(2) input[type="radio"] { background: var(--hex-color1-2); } section#memoAndColor div.color div:nth-of-type(1) span:nth-of-type(3) input[type="radio"] { background: var(--hex-color1-3); } section#memoAndColor div.color div:nth-of-type(1) span:nth-of-type(4) input[type="radio"] { background: var(--hex-color1-4); } section#memoAndColor div.color div:nth-of-type(1) span:nth-of-type(5) input[type="radio"] { background: var(--hex-color1-5); } section#memoAndColor div.color div:nth-of-type(2) span:nth-of-type(1) input[type="radio"] { background: var(--hex-color2-1); } section#memoAndColor div.color div:nth-of-type(2) span:nth-of-type(2) input[type="radio"] { background: var(--hex-color2-2); } section#memoAndColor div.color div:nth-of-type(2) span:nth-of-type(3) input[type="radio"] { background: var(--hex-color2-3); } section#memoAndColor div.color div:nth-of-type(2) span:nth-of-type(4) input[type="radio"] { background: var(--hex-color2-4); } section#memoAndColor div.color div:nth-of-type(2) span:nth-of-type(5) input[type="radio"] { background: var(--hex-color2-5); } section#memoAndColor div.color div:nth-of-type(3) span:nth-of-type(1) input[type="radio"] { background: var(--hex-color3-1); } section#memoAndColor div.color div:nth-of-type(3) span:nth-of-type(2) input[type="radio"] { background: var(--hex-color3-2); } section#memoAndColor div.color div:nth-of-type(3) span:nth-of-type(3) input[type="radio"] { background: var(--hex-color3-3); } section#memoAndColor div.color div:nth-of-type(3) span:nth-of-type(4) input[type="radio"] { background: var(--hex-color3-4); } section#memoAndColor div.color div:nth-of-type(3) span:nth-of-type(5) input[type="radio"] { background: var(--hex-color3-5); } section#memoAndColor div.color div:nth-of-type(4) span:nth-of-type(1) input[type="radio"] { background: var(--hex-color4-1); } section#memoAndColor div.color div:nth-of-type(4) span:nth-of-type(2) input[type="radio"] { background: var(--hex-color4-2); } section#memoAndColor div.color div:nth-of-type(4) span:nth-of-type(3) input[type="radio"] { background: var(--hex-color4-3); } section#memoAndColor div.color div:nth-of-type(4) span:nth-of-type(4) input[type="radio"] { background: var(--hex-color4-4); } section#memoAndColor div.color div:nth-of-type(4) span:nth-of-type(5) input[type="radio"] { background: var(--hex-color4-5); } section#memoAndColor div.color div:nth-of-type(5) span:nth-of-type(1) input[type="radio"] { background: var(--hex-color5-1); } section#memoAndColor div.color div:nth-of-type(5) span:nth-of-type(2) input[type="radio"] { background: var(--hex-color5-2); } section#memoAndColor div.color div:nth-of-type(5) span:nth-of-type(3) input[type="radio"] { background: var(--hex-color5-3); } section#memoAndColor div.color div:nth-of-type(5) span:nth-of-type(4) input[type="radio"] { background: var(--hex-color5-4); } section#memoAndColor div.color div:nth-of-type(5) span:nth-of-type(5) input[type="radio"] { background: var(--hex-color5-5); } section#memoAndColor div.color div:nth-of-type(6) span:nth-of-type(1) input[type="radio"] { background: var(--hex-color6-1); } section#memoAndColor div.color div:nth-of-type(6) span:nth-of-type(2) input[type="radio"] { background: var(--hex-color6-2); } section#memoAndColor div.color div:nth-of-type(6) span:nth-of-type(3) input[type="radio"] { background: var(--hex-color6-3); } section#memoAndColor div.color div:nth-of-type(6) span:nth-of-type(4) input[type="radio"] { background: var(--hex-color6-4); } section#memoAndColor div.color div:nth-of-type(6) span:nth-of-type(5) input[type="radio"] { background: var(--hex-color6-5); } /* footer ============================================================================================================ */ footer { position: fixed; display: flex; justify-content: flex-start; align-items: center; height: 60px; z-index: 1000; /* background: #ffffff90; */ gap: 20px; padding: 0 20px; z-index: 100; bottom: 0; left: 0; right: 0; } footer p { font-size: 12px; color: #efefef; padding: 12px; } footer .counter { margin-left: auto; height: 40px; display: flex; justify-content: center; align-items: center; aspect-ratio: var(--hex-ratio); background: var(--hex-border-color); clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); transition: var(--transition); /* display: none; */ } footer .counter #counter { height: calc(40px * var(--hex-border-ratio)); margin: auto; display: flex; justify-content: center; align-items: center; aspect-ratio: var(--hex-ratio); background: #fff; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); font-size: 12px; } /* wordList ============================================================================================================ */ #wordList { position: fixed; display: flex; flex-flow: column; align-items: center; z-index: 80; top: 60px; left: 0; right: 0; bottom: 0; backdrop-filter: blur(5px); background: #ffffff90; height: 0; overflow: hidden; transition: var(--transition); } #wordList.on { height: auto; } #wordList div h2 { padding: 10px; } #wordList div ul { display: flex; gap: 20px; max-width: 800px; flex-wrap: wrap; pointer-events: none; } #wordList div ul li { padding: 5px 20px; border-radius: 5px; background: #ccc; cursor: pointer; pointer-events: auto; } /* addMenu,editMenu ============================================================================================================ */ section.menu { display: none; position: absolute; bottom: 25px; z-index: 20; } section.menu.on { display: flex; } section.menu .text { display: flex; justify-content: center; gap: 5px; } section.menu .text input { width: 140px; text-align: center; } section.menu .text button { font-size: 10px; color: var(--btn-color1); border: solid 2px var(--btn-color1); background: #fff; font-weight: bold; padding: 0 4px; } section.menu div .btn { display: flex; gap: 20px; } section.menu#viewMenu { background: #ffb9b9; left: 85%; bottom: 85%; border-radius: 8px 8px 8px 0px; } section.menu#viewMenu:before { content: ""; position: absolute; top: 100%; left: 0; margin-top: -15px; border: 15px solid transparent; border-left: 15px solid #ffb9b9; transform: rotateZ(15deg); } section.menu#viewMenu div { width: 170px; max-height: 110px; padding: 10px; font-size: 12px; color: var(--font-color); white-space: pre-wrap; overflow: auto; max-height: 90px; } button#closeWordList { position: absolute; width: 40px; height: 40px; margin-left: 400px; background: none; } button#closeWordList::before, button#closeWordList::after { /* 共通設定 */ content: ""; position: absolute; top: 50%; left: 50%; width: 3px; /* 棒の幅(太さ) */ height: 30px; /* 棒の高さ */ background: var(--font-color); border-radius: 2.5px; /* 棒の四隅の丸み*/ } button#closeWordList::before { transform: translate(-50%, -50%) rotate(45deg); } button#closeWordList::after { transform: translate(-50%, -50%) rotate(-45deg); } /* contents ============================================================================================================ */ section#contents { position: relative; background: var(--hex-border-color); min-width: calc(100svw - 20px); min-height: calc(100svh - 15px); overflow: visible; overflow: hidden; display: flex; justify-content: center; align-items: center; } /* section#contents #bg { background-image: url(img/hex.svg); background-repeat: repeat; overflow: visible; background-size: 2.925rem; width: 3000px; height: 3000px; position: absolute; background-position-x: center; background-position-y: center; position: absolute; top: 50%; left: 50%; transform: translateY(-50%) translateX(-50%); -webkit-transform: translateY(-50%) translateX(-50%); } */ section#contents #hex, section#contents #bg { position: relative; width: var(--hex-width); height: var(--hex-height); flex-shrink: 0; /* position: absolute; top: 50%; left: 45%; transform: translate(-50%,-50%); */ } section#contents #hex span.group > div { cursor: pointer; position: absolute; width: var(--hex-width); height: var(--hex-height); top: 0; bottom: 0; right: 0; left: 0; margin: auto; display: flex; justify-content: center; align-items: center; aspect-ratio: var(--hex-ratio); background: var(--hex-border-color); clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); } section#contents #hex span.group > div.blank { background: var(--hex-border-color); color: #eaeaea; } section#contents #hex span.group > div.zero { background: #ccc; color: #ccc; } section#contents #hex span.group div span { pointer-events: none; display: flex; justify-content: center; align-items: center; height: calc(var(--hex-height) * var(--hex-border-ratio)); aspect-ratio: var(--hex-ratio); background: #f7f7f7; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); user-select: none; -webkit-user-select: none; } section#contents #hex span.group div span p { display: inline-flex; justify-content: center; align-items: center; font-size: 0.25rem; width: calc(var(--hex-width) - 0.8rem); height: calc(var(--hex-height) - 1rem); line-height: 1.2; word-break: break-all; letter-spacing: -0.05em; } section#contents #hex span.group div.set { z-index: 10; } section#contents #hex div.set span { background: #c10302; color: #fff; } section#contents #hex span.group div.set.color1-1 span { background: var(--hex-color1-1); color: var(--font-color); } section#contents #hex span.group div.set.color1-2 span { background: var(--hex-color1-2); color: var(--font-color); } section#contents #hex span.group div.set.color1-3 span { background: var(--hex-color1-3); } section#contents #hex span.group div.set.color1-4 span { background: var(--hex-color1-4); } section#contents #hex span.group div.set.color1-5 span { background: var(--hex-color1-5); } section#contents #hex span.group div.set.color2-1 span { background: var(--hex-color2-1); } section#contents #hex span.group div.set.color2-2 span { background: var(--hex-color2-2); } section#contents #hex span.group div.set.color2-3 span { background: var(--hex-color2-3); } section#contents #hex span.group div.set.color2-4 span { background: var(--hex-color2-4); } section#contents #hex span.group div.set.color2-5 span { background: var(--hex-color2-5); } section#contents #hex span.group div.set.color3-1 span { background: var(--hex-color3-1); } section#contents #hex span.group div.set.color3-2 span { background: var(--hex-color3-2); } section#contents #hex span.group div.set.color3-3 span { background: var(--hex-color3-3); } section#contents #hex span.group div.set.color3-4 span { background: var(--hex-color3-4); } section#contents #hex span.group div.set.color3-5 span { background: var(--hex-color3-5); } section#contents #hex span.group div.set.color4-1 span { background: var(--hex-color4-1); } section#contents #hex span.group div.set.color4-2 span { background: var(--hex-color4-2); } section#contents #hex span.group div.set.color4-3 span { background: var(--hex-color4-3); } section#contents #hex span.group div.set.color4-4 span { background: var(--hex-color4-4); } section#contents #hex span.group div.set.color4-5 span { background: var(--hex-color4-5); } section#contents #hex span.group div.set.color5-1 span { background: var(--hex-color5-1); } section#contents #hex span.group div.set.color5-2 span { background: var(--hex-color5-2); } section#contents #hex span.group div.set.color5-3 span { background: var(--hex-color5-3); } section#contents #hex span.group div.set.color5-4 span { background: var(--hex-color5-4); } section#contents #hex span.group div.set.color5-5 span { background: var(--hex-color5-5); } section#contents #hex span.group div.set.color6-1 span { background: var(--hex-color6-1); } section#contents #hex span.group div.set.color6-2 span { background: var(--hex-color6-2); } section#contents #hex span.group div.set.color6-3 span { background: var(--hex-color6-3); } section#contents #hex span.group div.set.color6-4 span { background: var(--hex-color6-4); } section#contents #hex span.group div.set.color6-5 span { background: var(--hex-color6-5); } section#contents #hex span.group div.set:hover div.deleteBtn { display: block; } section#contents #hex span.group div.set div.deleteBtn { display: none; transition: var(--transition); position: absolute; top: 6px; right: 27px; width: 16px; height: 16px; } section#contents #hex span.group div.set div.deleteBtn:hover { opacity: 0.7; } section#contents #hex span.group div.set div.deleteBtn::before { content: ""; width: 16px; height: 16px; border: none; display: inline-block; position: absolute; margin: auto 0; -webkit-mask: url(../img/xmark.svg); mask: url(../img/xmark.svg); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; background: #fff; } section#contents #hex span.group div.set.color1-1 div.deleteBtn::before { background: var(--font-color); } section#contents #hex span.group div#object, section#contents #hex span.group div#dragHex, section#contents #hex span.group div.dropTarget { z-index: 15; background: var(--hex-border-color); animation-name: tenmetsu; animation-duration: 0.3s; animation-direction: alternate; animation-iteration-count: infinite; } @keyframes tenmetsu { 0% { background: var(--hex-border-color); } 100% { background: #afafaf; } } /* loading */ html#loading { overflow: hidden; } html #animation { display: none; } html#loading #animation { position: fixed; top: 0; bottom: 0; left: 0; right: 0; background: #00000080; z-index: 10000; display: flex; flex-flow: column; justify-content: center; align-items: center; } html#loading #animation::before { content: "loading"; color: #fff; font-size: 18px; margin-bottom: 10px; } html#loading #animation::after { content: ""; width: calc(200px / 3); height: calc(173px / 3); background: #fff; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); animation: rotate 2s infinite linear; } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }