@import url("https://fonts.googleapis.com/css2?family=Karla:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,200;1,300;1,400;1,500;1,600;1,700;1,800&family=Outfit:wght@100;200;300;400;500;600;700;800;900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap"); @tailwind base; @tailwind components; @tailwind utilities; html { min-height: calc(100% + env(safe-area-inset-top)); padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); } * { -webkit-tap-highlight-color: transparent; } body { @apply bg-primary scrollbar-hide text-txt; } @layer components { .flex-center { @apply flex justify-center items-center; } } /* disqus style */ #disqus_thread { @apply bg-primary; } a { -webkit-tap-highlight-color: transparent; } button { -webkit-tap-highlight-color: transparent; } .tooltip { @apply hidden md:block opacity-0 absolute pointer-events-none whitespace-nowrap font-karla text-sm -translate-y-5 transition-all duration-100 bg-white text-black px-3 py-[0.5px] rounded z-50 shadow-xl; } .tooltip-container:hover .tooltip { @apply opacity-100 -translate-y-6 transition-all duration-300; } .nav-hidden { top: -100%; } .cust-scroll { @apply scrollbar-thin scrollbar-thumb-white/10 scrollbar-thumb-rounded; /* scrollbar-gutter: stable; */ } .chapter-button { @apply h-auto w-20 scale-100 rounded-full border-[1px] text-center md:w-40 md:scale-90 md:rounded-3xl md:border-2 md:p-3 md:text-2xl; } .search-box { position: absolute; display: flex; top: 50%; left: 50%; transform: translate(-100%, 0%); background: #2f3640; height: 40px; border-radius: 40px; @apply h-12; } .search-box:hover > .search-text { width: 240px; padding: 0 19px; @apply py-2; } .search-box:hover > .search-btn { background: white; color: black; } .search-btn { color: #e84118; float: right; width: 40px; height: 40px; border-radius: 50%; background: #2f3640; display: flex; justify-content: center; align-items: center; transition: 0.4s; cursor: pointer; text-decoration: none; @apply h-12 w-12; } .search-btn > i { fontsize: 30px; } .search-text { border: none; background: none; outline: none; float: left; padding: 0; color: white; font-size: 16px; font-weight: normal; transition: 0.4s; line-height: 30px; width: 0px; /* width: 250px; */ } .title-overflow { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; white-space: normal; } .banner { transform: translateY(-50%); position: absolute; top: 50%; left: 0; width: 100%; height: 100%; z-index: -1; } .longPanel { padding-left: 0; padding-right: 0; } @media (min-width: 1024px) { /* This is a common breakpoint for laptops. */ .longPanel { padding-left: var(--dynamic-padding); padding-right: var(--dynamic-padding); } } .dot { height: 8px; width: 8px; border-radius: 50%; display: inline-block; } .dots { height: 10px; width: 10px; border-radius: 50%; display: inline-block; margin-right: 5px; margin-left: 2px; margin-bottom: 1px; } .skip-button { @apply bg-white xs:w-28 xs:h-9 w-24 h-7 -top-12 right-[2%] rounded-md font-karla shadow-xl hover:bg-[#f1f1f1] text-black absolute xs:text-[15px] text-xs md:text-sm; } input:checked { @apply bg-secondary; /* bg-green-500 */ } input:checked ~ span:last-child { --tw-translate-x: 2.15rem; /* translate-x-7 */ } .lds-ellipsis { display: inline-block; position: relative; width: 80px; height: 80px; } .lds-ellipsis div { position: absolute; top: 33px; width: 13px; height: 13px; border-radius: 50%; background: #27272e; animation-timing-function: cubic-bezier(0, 1, 1, 0); } .lds-ellipsis span { position: absolute; top: 33px; width: 13px; height: 13px; border-radius: 50%; animation-timing-function: cubic-bezier(0, 1, 1, 0); @apply bg-txt; } .lds-ellipsis div:nth-child(1) { left: 8px; animation: lds-ellipsis1 0.6s infinite; } .lds-ellipsis div:nth-child(2) { left: 8px; animation: lds-ellipsis2 0.6s infinite; } .lds-ellipsis div:nth-child(3) { left: 32px; animation: lds-ellipsis2 0.6s infinite; } .lds-ellipsis div:nth-child(4) { left: 56px; animation: lds-ellipsis3 0.6s infinite; } .lds-ellipsis span:nth-child(1) { left: 8px; animation: lds-ellipsis1 0.6s infinite; } .lds-ellipsis span:nth-child(2) { left: 8px; animation: lds-ellipsis2 0.6s infinite; } .lds-ellipsis span:nth-child(3) { left: 32px; animation: lds-ellipsis2 0.6s infinite; } .lds-ellipsis span:nth-child(4) { left: 56px; animation: lds-ellipsis3 0.6s infinite; } @keyframes lds-ellipsis1 { 0% { transform: scale(0); } 100% { transform: scale(1); } } @keyframes lds-ellipsis3 { 0% { transform: scale(1); } 100% { transform: scale(0); } } @keyframes lds-ellipsis2 { 0% { transform: translate(0, 0); } 100% { transform: translate(24px, 0); } } /* Add this CSS to your global styles or a component-specific CSS file */ pre { color: #f8f8f2; font-family: "Fira Code", monospace; font-size: 14px; line-height: 1.5; padding: 1rem; margin: 1rem 0; @apply bg-[#191c24]; white-space: pre-wrap; word-wrap: break-word; } pre code { display: block; } .language-javascript { color: #f8f8f2; } .language-html { color: #e6db74; } .language-bash { color: #89b482; } .slide-in-blurred-right { -webkit-animation: slide-in-blurred-right 0.6s cubic-bezier(0.23, 1, 0.32, 1) both; animation: slide-in-blurred-right 0.6s cubic-bezier(0.23, 1, 0.32, 1) both; } .slide-out-blurred-right { -webkit-animation: slide-out-blurred-right 0.45s cubic-bezier(0.755, 0.05, 0.855, 0.06) both; animation: slide-out-blurred-right 0.45s cubic-bezier(0.755, 0.05, 0.855, 0.06) both; } /* ---------------------------------------------- * Generated by Animista on 2023-7-3 16:11:42 * Licensed under FreeBSD License. * See http://animista.net/license for more info. * w: http://animista.net, t: @cssanimista * ---------------------------------------------- */ /** * ---------------------------------------- * animation slide-in-blurred-right * ---------------------------------------- */ @-webkit-keyframes slide-in-blurred-right { 0% { -webkit-transform: translateX(1000px) scaleX(2.5) scaleY(0.2); transform: translateX(1000px) scaleX(2.5) scaleY(0.2); -webkit-transform-origin: 0% 50%; transform-origin: 0% 50%; -webkit-filter: blur(40px); filter: blur(40px); opacity: 0; } 100% { -webkit-transform: translateX(0) scaleY(1) scaleX(1); transform: translateX(0) scaleY(1) scaleX(1); -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; -webkit-filter: blur(0); filter: blur(0); opacity: 1; } } @keyframes slide-in-blurred-right { 0% { -webkit-transform: translateX(1000px) scaleX(2.5) scaleY(0.2); transform: translateX(1000px) scaleX(2.5) scaleY(0.2); -webkit-transform-origin: 0% 50%; transform-origin: 0% 50%; -webkit-filter: blur(40px); filter: blur(40px); opacity: 0; } 100% { -webkit-transform: translateX(0) scaleY(1) scaleX(1); transform: translateX(0) scaleY(1) scaleX(1); -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; -webkit-filter: blur(0); filter: blur(0); opacity: 1; } } @-webkit-keyframes slide-out-blurred-right { 0% { -webkit-transform: translateX(0) scaleY(1) scaleX(1); transform: translateX(0) scaleY(1) scaleX(1); -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; -webkit-filter: blur(0); filter: blur(0); opacity: 1; } 100% { -webkit-transform: translateX(1000px) scaleX(2) scaleY(0.2); transform: translateX(1000px) scaleX(2) scaleY(0.2); -webkit-transform-origin: 0% 50%; transform-origin: 0% 50%; -webkit-filter: blur(40px); filter: blur(40px); opacity: 0; } } @keyframes slide-out-blurred-right { 0% { -webkit-transform: translateX(0) scaleY(1) scaleX(1); transform: translateX(0) scaleY(1) scaleX(1); -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; -webkit-filter: blur(0); filter: blur(0); opacity: 1; } 100% { -webkit-transform: translateX(1000px) scaleX(2) scaleY(0.2); transform: translateX(1000px) scaleX(2) scaleY(0.2); -webkit-transform-origin: 0% 50%; transform-origin: 0% 50%; -webkit-filter: blur(40px); filter: blur(40px); opacity: 0; } } /* .skip-button { @apply bg-white xs:w-28 xs:h-9 w-24 h-7 -top-12 right-[2%] rounded-md font-karla shadow-xl hover:bg-[#f1f1f1] text-black absolute xs:text-[15px] text-xs md:text-sm; } */ .vid-con { @apply h-full absolute -top-12 right-[2%]; } .next-button { position: relative; @apply xs:w-28 xs:h-9 w-24 h-7 rounded-md font-karla shadow-xl text-black xs:text-[15px] text-xs md:text-sm flex-center hover:bg-[#b9b9b9]; background: #ffffff; border-radius: 6px; cursor: pointer; box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); overflow: hidden; } .next-button::before { content: ""; position: absolute; top: 0; left: -100%; height: 100%; width: 100%; background: rgba(0, 0, 0, 0.2); border-radius: 6px; } .next-button.progress::before { animation: progress 7s ease forwards; } @keyframes progress { 0% { left: -100%; } 100% { left: 0%; } } /* Hide the default checkbox */ .containers input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } .containers { display: block; position: relative; cursor: pointer; font-size: 20px; user-select: none; } /* Create a custom checkbox */ .checkmark { position: relative; top: 0; left: 0; height: 1em; width: 1em; background-color: #ccc; transition: all 0.3s; border-radius: 5px; } /* When the checkbox is checked, add a blue background */ .containers input:checked ~ .checkmark { background-color: #47da99; animation: pop 0.5s; animation-direction: alternate; } /* Create the checkmark/indicator (hidden when not checked) */ .checkmark:after { content: ""; position: absolute; display: none; } /* Show the checkmark when checked */ .containers input:checked ~ .checkmark:after { display: block; } /* Style the checkmark/indicator */ .containers .checkmark:after { left: 0.35em; top: 0.2em; width: 0.25em; height: 0.5em; border: solid white; border-width: 0 0.15em 0.15em 0; transform: rotate(45deg); } @keyframes pop { 0% { transform: scale(1); } 50% { transform: scale(0.9); } 100% { transform: scale(1); } } .loader { display: block; --height-of-loader: 12px; --loader-color: #3b3b46; width: 240px; height: var(--height-of-loader); border-radius: 30px; background-color: rgba(0, 0, 0, 0.2); position: relative; } .loader::before { content: ""; position: absolute; background: var(--loader-color); top: 0; left: 0; width: 0%; height: 100%; border-radius: 30px; animation: moving 1s ease-in-out infinite; } @keyframes moving { 50% { width: 100%; } 100% { width: 0; right: 0; left: unset; } }