:root { --transparent: rgba(0, 0, 0, 0); --without-padding: calc(100% - 4rem); --border-15: 0.15rem solid var(--accent); --border-10: 0.1rem solid var(--accent); --inset-focus: 0 0 0 0.1rem var(--accent) inset; --inset-focus-inv: 0 0 0 0.15rem var(--background) inset; --font-mono: 'Noto Sans Mono', 'Consolas', 'SF Mono', monospace; --padding-1: 0.75rem; --line-height: 1.65rem; --red: rgb(249, 47, 96); --gap: 0.5rem; --gap-no-icon: 0.6rem; } @media (prefers-color-scheme: dark) { :root { --accent: rgb(225, 225, 225); --accent-highlight: rgb(225, 225, 225, 4%); --accent-subtext: rgb(110, 110, 110); --accent-hover: rgb(30, 30, 30); --accent-hover-elevated: rgb(48, 48, 48); --accent-hover-transparent: rgba(48, 48, 48, 0.5); --accent-button: rgb(25, 25, 25); --accent-button-elevated: rgb(42, 42, 42); --glass: rgba(25, 25, 25, 0.85); --glass-lite: rgba(25, 25, 25, 0.98); --subbackground: rgb(10, 10, 10); --background: rgb(0, 0, 0); --background-backdrop: rgba(0, 0, 0, 0.5); } } @media (prefers-color-scheme: light) { :root { --accent: rgb(25, 25, 25); --accent-highlight: rgb(25, 25, 25, 4%); --accent-subtext: rgb(110, 110, 110); --accent-hover: rgb(230, 230, 230); --accent-hover-elevated: rgb(215, 215, 215); --accent-hover-transparent: rgba(215, 215, 215, 0.5); --accent-button: rgb(225, 225, 225); --accent-button-elevated: rgb(210, 210, 210); --glass: rgba(230, 230, 230, 0.85); --glass-lite: rgba(230, 230, 230, 0.98); --subbackground: rgb(240, 240, 240); --background: rgb(255, 255, 255); --background-backdrop: rgba(255, 255, 255, 0.5); } } [data-theme="dark"] { --accent: rgb(225, 225, 225); --accent-highlight: rgb(225, 225, 225, 4%); --accent-subtext: rgb(110, 110, 110); --accent-hover: rgb(30, 30, 30); --accent-hover-elevated: rgb(48, 48, 48); --accent-hover-transparent: rgba(48, 48, 48, 0.5); --accent-button: rgb(25, 25, 25); --accent-button-elevated: rgb(42, 42, 42); --glass: rgba(25, 25, 25, 0.85); --glass-lite: rgba(25, 25, 25, 0.98); --subbackground: rgb(10, 10, 10); --background: rgb(0, 0, 0); --background-backdrop: rgba(0, 0, 0, 0.5); } [data-theme="light"] { --accent: rgb(25, 25, 25); --accent-highlight: rgb(25, 25, 25, 4%); --accent-subtext: rgb(110, 110, 110); --accent-hover: rgb(230, 230, 230); --accent-hover-elevated: rgb(215, 215, 215); --accent-hover-transparent: rgba(219, 219, 219, 0.5); --accent-button: rgb(225, 225, 225); --accent-button-elevated: rgb(210, 210, 210); --glass: rgba(230, 230, 230, 0.85); --glass-lite: rgba(230, 230, 230, 0.98); --subbackground: rgb(240, 240, 240); --background: rgb(255, 255, 255); --background-backdrop: rgba(255, 255, 255, 0.5); } html, body { margin: 0; background: var(--background); color: var(--accent); -webkit-tap-highlight-color: var(--transparent); font-family: var(--font-mono); user-select: none; -webkit-user-select: none; overflow: hidden; -ms-overflow-style: none; scrollbar-width: none; height: calc(100% + env(safe-area-inset-top)/2); } #home { position: fixed; width: 100%; height: 100%; } a { color: var(--accent); text-decoration: none; user-select: none; -webkit-user-select: none; } ::placeholder, ::moz-placeholder { color: var(--accent-subtext); } .switches::-webkit-scrollbar, #popup-content::-webkit-scrollbar { display: none; } :focus-visible { outline: var(--border-15); } .checkbox { display: inline-flex; align-items: center; flex-direction: row; flex-wrap: nowrap; padding: calc(var(--gap) - 0.1rem) calc(var(--gap)*2 - 0.2rem) calc(var(--gap) - 0.1rem) var(--gap); width: auto; margin-right: var(--padding-1); margin-bottom: var(--padding-1); background: var(--accent-button); } .checkbox-label { line-height: 1.3rem; } [type="checkbox"] { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; z-index: 0; margin-right: var(--padding-1); border: 0.15rem solid var(--accent); } [type="checkbox"]::before { content: ""; display: none; position: relative; width: 6px; height: 12px; z-index: 5; transform: scaleX(0.9)rotate(45deg); left: 6px; top: 1px; border-bottom: 0.18rem solid var(--background); border-right: 0.18rem solid var(--background); } [type="checkbox"]:checked::before { display: block; } [type="checkbox"]:checked { background-color: var(--accent); border: 0; } input[type="checkbox"] { cursor: pointer; } button { background: none; border: none; font-family: var(--font-mono); color: var(--accent); font-size: 0.9rem; } input, input[type="text"], [type="text"] { border-radius: 0; } .glass-bkg { background: var(--glass); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); } .glass-bkg.alone { z-index: -1; top: 0; left: 0; bottom: 0; right: 0; position: absolute; } .glass-bkg.small { top: 0; left: 0; bottom: 0; right: 0; z-index: -1; position: absolute; border: var(--accent-highlight) solid 0.15rem; border-radius: 8px/9px; } .desktop button:hover, .desktop .switch:hover, .desktop .checkbox:hover, .desktop .text-to-copy:hover, .desktop .collapse-header:hover { background: var(--accent-hover); box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset; cursor: pointer; } button:active, .switch:active, .checkbox:active, .text-to-copy:active { box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset; cursor: pointer; transform: scale(0.95); } .collapse-header:active { box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset; } .popup.small .switch { background: var(--accent-button-elevated); } .desktop .popup.small .switch:hover { background: var(--accent-hover-elevated); } .switch.text-backdrop, .switch.text-backdrop:hover, .switch.text-backdrop:active, .text-to-copy.text-backdrop, .text-to-copy.text-backdrop:hover, .text-to-copy.text-backdrop:active, .popup.small .switch.text-backdrop, .popup.small .switch.text-backdrop:hover, .popup.small .switch.text-backdrop:active { background: var(--accent); color: var(--background); box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset; } .picker-image:active { cursor: pointer; transform: scale(0.95); } .button { background: none; border: var(--border-15); color: var(--accent); padding: 0.3rem 0.75rem 0.5rem; font-size: 1rem; } .mono { font-family: var(--font-mono); } .center { top: 50%; left: 50%; transform: translate(-50%, -50%); } #cobalt-main-box { position: fixed; width: 60%; height: auto; display: flex; flex-direction: row; } #logo { text-align: left; font-size: 1rem; white-space: nowrap; width: 7rem; height: 2.5rem; align-items: center; display: flex; } #download-area { display: flex; flex-direction: column; width: 100%; } #cobalt-main-box #top { display: inline-flex; height: 2.5rem; flex-direction: row; } #cobalt-main-box #bottom { padding-top: 1rem; display: flex; flex-direction: row; justify-content: space-between; } .box { background: var(--background); color: var(--accent); } #url-input-area { background: none; padding: 0 1rem; width: 100%; color: var(--accent); border: 0; float: right; border-bottom: 0.1rem solid var(--accent-subtext); outline: none; font-size: 0.8rem; } #url-clear { height: 100%; background: none; padding: 0 1rem 0.2rem; transform: none; font-size: 1rem; box-shadow: none!important; } #url-input-area:focus { outline: none; border-bottom: var(--border-10); } #download-button { height: 2.5rem; color: var(--accent); background: none; border: none; font-size: 1.8rem; cursor: pointer; padding: 0; letter-spacing: -0.35rem; font-weight: normal!important; } #download-button:disabled { color: var(--accent-subtext); cursor: not-allowed; } #footer { bottom: 0; width: 100%; position: absolute; display: flex; justify-content: center; padding-bottom: calc(env(safe-area-inset-bottom)/2 + 2rem); font-size: 0.9rem; text-align: center; } #cobalt-main-box #bottom, #footer-buttons, #footer-buttons, .footer-pair { gap: var(--gap); } #footer-buttons, .footer-pair { display: flex; flex-direction: row; align-items: center; } .footer-button { width: auto!important; color: var(--accent-subtext); padding: var(--gap) 1.2rem!important; align-content: center; } .notification-dot { width: 8px; height: 8px; background: var(--red); margin-right: 0.4rem; border-radius: 99rem; } .text-backdrop { background: var(--accent); color: var(--background); padding: 0 0.3rem; } .text-backdrop.link { text-decoration: underline; } .cobalt-support-link { display: flex; flex-direction: row; justify-content: flex-start; gap: 0.3rem; margin-top: 0.5rem; user-select: none; -webkit-user-select: none; } ::-moz-selection { background-color: var(--accent); color: var(--background); } ::selection { background-color: var(--accent); color: var(--background); } .popup { visibility: hidden; position: fixed; height: auto; width: 36%; z-index: 999; font-size: 0.9rem; max-height: 95%; opacity: 0; transform: translate(-50%,-48%)scale(.95); box-shadow: 0 0 0 0.2rem var(--glass) inset, 0 0 20px 0 var(--accent-hover-transparent); } .popup.visible { visibility: visible; opacity: 1; transform: translate(-50%, -50%); transition: transform 100ms ease-out, opacity 100ms ease-in-out; } #popup-backdrop { visibility: hidden; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 998; opacity: 0; background: var(--background-backdrop); } #popup-backdrop.visible { visibility: visible; opacity: 1; transition: opacity .13s ease-in-out; backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); } .popup.small { width: 20%; box-shadow: 0px 0px 60px 0px var(--accent-hover); padding: 1.7rem; transform: translate(-50%,-50%)scale(.95); pointer-events: all; } .popup.small.visible { transform: translate(-50%, -50%); } .popup.small #popup-header-contents, .popup.small .popup-content-inner, .popup.small #popup-header { padding: 0; } .popup.small #popup-header { position: relative; border: none; } .popup.small #popup-title { margin-bottom: 0.6rem; } .popup.small .explanation { margin-bottom: 0.9rem; } #close-error { background: var(--accent); color: var(--background); } .popup.scrollable { height: 95%; } .scrollable .bottom-link { padding-bottom: 2rem; } .changelog-subtitle { font-size: 1.3rem; padding-bottom: var(--gap-no-icon); } .changelog-banner { position: relative; width: 100%; max-height: 300px; min-height: 210px; margin-bottom: 0.7rem; float: left; background: var(--accent-hover); display: flex; } .changelog-img { object-fit: cover; width: inherit; height: inherit; max-height: inherit; } .changelog-tags { display: inline-flex; align-items: center; gap: 0.7rem; padding-bottom: 0.7rem; flex-wrap: wrap; } .changelog-tag-version { font-size: 1rem; padding: 0.15rem 0.7rem; } .changelog-tag-date { color: var(--accent-subtext); font-size: 0.8rem; } .nowrap { white-space: nowrap; } .no-top-padding { padding-top: 0!important; } .desc-padding { padding-bottom: 0.7rem; } #popup-subtitle { font-size: 1.1rem; padding-bottom: var(--padding-1); } #popup-desc, .desc-error, #popup-info-desc { width: 100%; text-align: left; float: left; line-height: var(--line-height); user-select: text; -webkit-user-select: text; } .desc-error { padding-bottom: 1.5rem; } #popup-title { font-size: 1.5rem; line-height: 1.2em; display: flex; align-items: center; margin-bottom: 0.4rem; margin-top: 0.4rem; } #popup-above-title { color: var(--accent-subtext); font-size: 0.8rem; } #popup-content { overflow-x: scroll; overflow-y: auto; height: 100%; scrollbar-width: none; } .popup-content-inner, .tab-content-settings, #picker-holder { padding-top: calc(env(safe-area-inset-top)/2 + 4.7rem); padding-bottom: calc(env(safe-area-inset-bottom)/2 + 4.8rem); } .tab-content-settings, #tab-about-about .popup-content-inner { padding-top: calc(env(safe-area-inset-top)/2 + 6rem);; } .bullpadding { padding-left: 0.58rem; } #popup-header { position: absolute; z-index: 999; padding-top: calc(env(safe-area-inset-top)/2 + 1.7rem); width: 100%; } .settings-category { padding-bottom: 0.7rem; } .separator { float: left; } .separator, .category-title { width: 100%; color: var(--accent-subtext); border-bottom: 0.05rem solid var(--accent-subtext); padding-bottom: 0.25rem; margin-bottom: calc(var(--gap-no-icon)*1.5); } .category-title { text-align: left; line-height: var(--line-height); } .bottom-margin { margin-bottom: var(--padding-1)!important; } .top-margin { margin-top: var(--padding-1)!important; } .top-margin-only { margin-top: var(--padding-1)!important; margin-bottom: 0!important; } .no-margin { margin: 0!important; } .switch-container { width: 100%; } .subtitle { width: 100%; text-align: left; line-height: var(--line-height); padding-bottom: 0.4rem; color: var(--accent); } .small-padding .subtitle { margin-top: 0.5rem; } .explanation { margin-top: 0.8rem; width: 100%; font-size: 0.8rem; text-align: left; line-height: 1.3rem!important; color: var(--accent-subtext); } .explanation.embedded { margin-top: 0.825rem; margin-bottom: 0.825rem; } .subtext { color: var(--accent-subtext); } .switch { padding: var(--gap-no-icon); width: 100%; text-align: left; color: var(--accent); background: var(--accent-button); display: flex; justify-content: center; align-items: center; cursor: pointer; } .switch.space-right { margin-right: var(--padding-1); } .switch:focus { box-shadow: var(--inset-focus) inset; } #popup-tabs .switch { background: none; } .desktop #popup-tabs .switch:hover, #popup-tabs .switch:active { background: var(--accent-hover-transparent); box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset; } .switch[data-enabled="true"], #popup-tabs .switch[data-enabled="true"] { color: var(--background); background: var(--accent)!important; cursor: default; } .switch[data-enabled="true"]:hover { background: var(--accent); } .switch[data-enabled="true"]:focus { box-shadow: var(--inset-focus-inv) inset; } .switches { display: flex; width: auto; flex-direction: row; flex-wrap: nowrap; scrollbar-width: none; } .switches .switch { padding-left: calc(var(--gap-no-icon) + 0.1rem); padding-right: calc(var(--gap-no-icon) + 0.1rem); } #popup-settings .switches .switch { text-align: center; } .autowidth { width: auto; } .bottom-space { margin-bottom: 2rem; } .text-to-copy { user-select: text; -webkit-user-select: text; background: var(--accent-button); padding: var(--gap-no-icon); overflow: clip; } #back-button { padding: 0; background: none; max-width: 4rem; font-size: 1rem; } #back-button svg path, .collapse-indicator svg path { fill: var(--accent); } .popup-tab-content[data-enabled="false"] { display: none; } #popup-tabs { z-index: 999; bottom: 0; position: absolute; width: 100%; padding-top: 0.2rem; padding-bottom: 1.7rem; } .popup-tabs-child { width: 100%; padding: 0 0.2rem; } .emoji, svg { user-select: none; -webkit-user-select: none; pointer-events: none; } .emoji { margin-right: 0.4rem; } .picker-image { object-fit: cover; width: 100%; height: 100%; cursor: pointer; user-select: all; -webkit-user-select: all; } .picker-image-container { width: calc(100% / 3); height: 12rem; background-color: var(--accent-button); cursor: pointer; position: relative; } #picker-holder { display: flex; justify-content: space-between; flex-wrap: wrap; align-content: space-around; padding-top: calc(env(safe-area-inset-top)/2 + 7.6rem); padding-bottom: calc(env(safe-area-inset-bottom)/2 + 4.8rem); } .imageBlock { width: 100%; height: 100%; position: absolute; z-index: 99; } .picker-element-name { position: absolute; background: var(--background); color: var(--accent); padding: 0.3rem var(--gap); font-size: 0.8rem; opacity: 0.7; margin: 0.4rem; } #popup-picker .explanation { margin-top: 0!important; margin-bottom: var(--padding-1); } #cobalt-main-box #bottom button { width: auto; padding: var(--gap) 1.2rem; } .collapse-list { background: var(--subbackground); user-select: none; -webkit-user-select: none; } .collapse-header { padding: 0.5rem var(--padding-1); font-size: 0.95rem; display: flex; flex-direction: row; align-items: center; cursor: pointer; background: var(--accent-button); } .collapse-header .emoji { margin-right: var(--padding-1); } .collapse-indicator { display: flex; justify-content: center; align-items: center; cursor: pointer; transform: none; } .collapse-list.expanded .collapse-indicator { transform: rotate(180deg); } .collapse-title { width: 100%; display: flex; flex-direction: row; align-items: center; } .collapse-body { display: none; padding: var(--padding-1); user-select: text; -webkit-user-select: text; } .expanded .collapse-body { display: block; } #download-switcher .switches { gap: var(--gap); } #pd-share { display: none; } #about-donate-footer { box-shadow: 0 0 0 0.1rem var(--red) inset, 0 0 0.6rem 0 var(--red); z-index: 1; } .popup-content-inner, .tab-content-settings, #popup-header-contents { padding-left: 1rem; padding-right: 1rem; } .urgent-notice { width: 100%; text-align: center; position: absolute; display: flex; justify-content: center; align-items: center; padding-top: calc(env(safe-area-inset-top) + 1rem); } .urgent-text { display: flex; align-items: center; cursor: pointer; } .no-transparency .glass-bkg, .no-transparency #popup-backdrop { backdrop-filter: none; -webkit-backdrop-filter: none; } .no-transparency .glass-bkg { background: var(--glass-lite); } .no-animation .popup, .no-animation #popup-backdrop { transition: none; } .popup-from-bottom { position: fixed; width: 100%; height: 100%; bottom: 0; z-index: 999; visibility: hidden; pointer-events: none; } .popup-from-bottom.visible { visibility: visible; } #keyboard-collapse { display: none; } .desktop #keyboard-collapse { display: block; } .text-backdrop.key { color: var(--accent-hover-elevated); } #keyboard-shortcuts { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; align-items: flex-start; gap: 1.5rem; user-select: none; color: var(--accent); } .loader { text-align: center; } #picker-download { visibility: hidden; } #picker-download.visible { visibility: visible; } #home { opacity: 0; } #home.visible { opacity: 1; transition: opacity 0.2s ease-out; } /* rounded corners */ #bottom #paste, #footer .switch, #audioMode, #popup-content .switches, .checkbox, .changelog-img, .changelog-banner, #close-error, .changelog-tag-version, #download-switcher .switch, #popup-about .switch, #popup-tabs .switch, .text-to-copy, .text-to-copy.text-backdrop { border-radius: 5px / 6px; } [type=checkbox] { border-radius: 3px / 4px; } .popup, .scrollable #popup-content { border-radius: 8px / 9px; } #popup-header .glass-bkg { border-top-left-radius: 8px 9px; border-top-right-radius: 8px 9px; border-bottom: var(--accent-highlight) solid 0.1rem; top: -1px; } #popup-tabs .glass-bkg { border-bottom-left-radius: 8px 9px; border-bottom-right-radius: 8px 9px; border-top: var(--accent-highlight) solid 0.1rem; bottom: -1px; } .switches .first { border-top-left-radius: 5px 6px; border-bottom-left-radius: 5px 6px; } .switches .last { border-top-right-radius: 5px 6px; border-bottom-right-radius: 5px 6px; } .text-backdrop { border-radius: 3px / 4px; } .collapse-list.first, .collapse-list.first .collapse-header { border-top-left-radius: 6px 7px; border-top-right-radius: 6px 7px; } .collapse-list.last, .collapse-list.last .collapse-header { border-bottom-left-radius: 6px 7px; border-bottom-right-radius: 6px 7px; } .collapse-list.last.expanded .collapse-header { border-radius: 0; } .sponsored-by-text { text-align: center!important; font-size: .85rem; color: var(--accent-subtext); user-select: none; } #sponsored-logos { width: 100%; display: flex; justify-content: center; flex-wrap: wrap; gap: 0.2rem 1rem; margin-bottom: 1rem; } .sponsored-logo svg { height: inherit; width: inherit; } .sponsored-logo svg path { fill: var(--accent-subtext); } /* prevent resizing fliecker on ios if web app is installed as standalone */ @media all and (display-mode: standalone) { #home.visible { transition-delay: 0.1s; } } /* adapt the page according to screen size */ @media screen and (max-width: 1550px) { .popup.small { width: 25% } .popup { width: 40%; } } @media screen and (max-width: 1440px) { #cobalt-main-box { width: 65%; } .popup.small { width: 30% } .popup { width: 45%; } } @media screen and (max-width: 1300px) { .popup { width: 50%; } } @media screen and (max-width: 1200px) { #cobalt-main-box { width: 70%; } .popup.small { width: 35% } .popup { width: 55%; } } @media screen and (max-width: 1025px) { #cobalt-main-box { width: 75%; } .popup.small { width: 40% } .popup { width: 60%; } } @media screen and (max-width: 850px) { .popup { width: 75%; } } /* mobile page */ @media screen and (max-width: 499px) { .tab { font-size: 0!important; } .tab .emoji { margin-right: 0; } .checkbox { width: calc(100% - 1.3rem); } } @media screen and (max-width: 720px) { #cobalt-main-box { width: calc(100% - (0.7rem * 2)); } #cobalt-main-box #bottom { flex-direction: column-reverse; } #cobalt-main-box #bottom button { width: 100%; } #footer { padding-bottom: calc(env(safe-area-inset-bottom)/2 + 1.5rem); } #footer-buttons { flex-direction: column; align-items: stretch; width: 100%; padding: 0 0.7rem; } .footer-pair .footer-button { width: 100%!important; } #logo { width: 100%; height: auto; justify-content: center; } #cobalt-main-box { display: flex; border: none; padding: 0; flex-direction: column; gap: var(--gap); } .urgent-notice { padding-top: calc(env(safe-area-inset-bottom)/2 + 1rem); } .popup, #popup-header .glass-bkg, #popup-tabs .glass-bkg, .glass-bkg.small { border-radius: 0; } #popup-tabs .glass-bkg { bottom: 0; } .switches { overflow-x: scroll; } .checkbox { margin-right: 0; } .popup.center { top: unset; left: unset; transform: unset; } .popup.small { width: calc(100% - 1.7rem * 2); height: auto; top: unset; bottom: 0; left: 0; transform: none; position: absolute; padding-bottom: calc(env(safe-area-inset-bottom)/2 + 1.7rem); transform: translateY(30rem); } .glass-bkg.small { border: none; border-top: var(--accent-highlight) solid 0.15rem; } .popup.small.visible { transform: none; transition: transform 210ms cubic-bezier(0.062, 0.82, 0.165, 1), opacity 130ms ease-in-out; } .popup.small #popup-header { background: none; } .no-animation .popup.small { transition: none; } #close-error { bottom: 3rem; } #picker-holder::-webkit-scrollbar { display: none; } #picker-holder.various { flex-wrap: wrap; gap: 0; overflow-x: hidden; overflow-y: scroll; } .popup, .popup.scrollable { border: none; width: 100%; height: 100%; max-height: 100%; box-shadow: none; } #popup-tabs { padding-bottom: calc(env(safe-area-inset-bottom)/2 + 1.5rem); } .bottom-link { padding-bottom: 2rem; } .popup-content-inner, .tab-content-settings, .popup-tabs-child, #popup-header-contents { padding-left: 0.7rem; padding-right: 0.7rem; } } @media screen and (max-width: 400px) { .popup-title { line-height: inherit; } }