/** Focus Ring ---------------------------------------------------------*/ .focus { position: absolute; width: 10rem; height: 10rem; margin-top: -5rem; margin-left: -5rem; pointer-events: none; opacity: 0; transform-origin: 50% 50%; transform: rotate(0deg) scale(1); transition: transform 0.2s ease-in; text-shadow: 0 0 1px rgba(0, 0, 0, 0.2); color: #fff; } /** * [mode=fixed] * [mode=none] */ .focus[mode="fixed"], .focus[mode="none"] { opacity: 0; } /** * [state=focusing] * [state=focused] * [state=fail] */ .focus[state="focusing"], .focus[state="focused"], .focus[state="fail"] { opacity: 0.8; } /** * [state=focusing] */ .focus[state="focusing"] { animation: 0.1s ring-animation 1 ease-in forwards; } /** * [state=focused] */ .focus[state="focused"] { color: #afff3d; transition: transform 0.1s ease-in; animation: 0.15s focuslocked ease-in forwards; } /** * [state=fail] */ .focus[state="fail"] { color: #ff0000; transform: rotate(45deg); transition: transform 0.1s ease-in; } /** Icon Wrappers ---------------------------------------------------------*/ .focus_locking, .focus_locked { position: absolute; top: 0; left: 0; width: 100%; text-align: center; } /** Icons ---------------------------------------------------------*/ .focus_locking:before, .focus_locked:before { font-size: 10rem; line-height: 1; } /** Locking ---------------------------------------------------------*/ /** * [state=focusing] */ .focus[state="focusing"] .focus_locking { opacity: 1; } /** * [state=focused] */ .focus[state="focused"] .focus_locking { opacity: 0; } /** * [state=fail] */ .focus[state="fail"] .focus_locking { opacity: 0; } /** Locked ---------------------------------------------------------*/ /** * [state=focusing] */ .focus[state="focusing"] .focus_locked { opacity: 0; } /** * [state=focused] */ .focus[state="focused"] .focus_locked { opacity: 1; } /** * [state=fail] */ .focus[state="fail"] .focus_locked { opacity: 1; } /** Animation ---------------------------------------------------------*/ @keyframes ring-animation { 0% { transform: rotate(0deg) scale(1); } 100% { transform: rotate(45deg) scale(1); } } @keyframes focuslocked { 0% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(45deg) scale(0.8478); } 100% { transform: rotate(45deg) scale(0.95); } }