UNPKG

altcha

Version:

GDPR compliant, self-hosted CAPTCHA alternative.

140 lines (117 loc) 2.59 kB
.altcha { background: var(--altcha-color-base, transparent); border: var(--altcha-border-width, 1px) solid var(--altcha-color-border, #a0a0a0); border-radius: var(--altcha-border-radius, 3px); color: var(--altcha-color-text, currentColor); display: flex; flex-direction: column; max-width: var(--altcha-max-width, 260px); position: relative; text-align: left; } .altcha:focus-within { border-color: var(--altcha-color-border-focus, currentColor); } .altcha[data-floating] { background: var(--altcha-color-base, white); display: none; filter: drop-shadow(3px 3px 6px rgba(0,0,0,0.2)); left: -100%; position: fixed; top: -100%; width: var(--altcha-max-width, 260px); z-index: 999999; } .altcha[data-floating="top"] .altcha-anchor-arrow { border-bottom-color: transparent; border-top-color: var(--altcha-color-border, #a0a0a0); bottom: -12px; top: auto; } .altcha[data-floating="bottom"]:focus-within::after { border-bottom-color: var(--altcha-color-border-focus, currentColor); } .altcha[data-floating="top"]:focus-within::after { border-top-color: var(--altcha-color-border-focus, currentColor); } .altcha[data-floating]:not([data-state="unverified"]) { display: block; } .altcha-anchor-arrow { border: 6px solid transparent; border-bottom-color: var(--altcha-color-border, #a0a0a0); content: ''; height: 0; left: 12px; position: absolute; top: -12px; width: 0; } .altcha-main { align-items: center; display: flex; gap: 0.4rem; padding: 0.7rem; } .altcha-label { flex-grow: 1; } .altcha-label label { cursor: pointer; } .altcha-logo { color: currentColor; opacity: 0.3; } .altcha-logo:hover { opacity: 1; } .altcha-error { color: var(--altcha-color-error-text, #f23939); display: flex; font-size: 0.85rem; gap: 0.3rem; padding: 0 0.7rem 0.7rem; } .altcha-footer { align-items: center; background-color: var(--altcha-color-footer-bg, transparent); display: flex; font-size: 0.75rem; opacity: 0.4; padding: 0.2rem 0.7rem; text-align: right; } .altcha-footer:hover { opacity: 1; } .altcha-footer > *:first-child { flex-grow: 1; } .altcha-footer :global(a) { color: currentColor; } .altcha-checkbox { display: flex; align-items: center; height: 24px; width: 24px; } .altcha-checkbox input { width: 18px; height: 18px; margin: 0; } .altcha-hidden { display: none; } .altcha-spinner { animation: altcha-spinner 0.75s infinite linear; transform-origin: center; } @keyframes altcha-spinner { 100% { transform: rotate(360deg); } }