@tailwind base; @tailwind components; @tailwind utilities; @layer base { html { @apply scroll-smooth; } @font-face { font-family: 'Roboto'; src: url('./fonts/Roboto/Roboto-Regular.ttf') format('truetype'); } @font-face { font-family: 'PTSans'; src: url('./fonts/PTSans/PTSans-Regular.ttf') format('truetype'); } } @layer utilities { .no-scrollbar::-webkit-scrollbar { display: none; } .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; } } .display-none { @apply hidden; } h1 { @apply text-5xl md:text-6xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-blue-600 to-blue-700 dark:from-blue-400 dark:to-blue-500; } h2 { @apply text-3xl font-semibold text-gray-800 dark:text-gray-200; } h3 { @apply text-2xl font-semibold text-gray-700 dark:text-gray-300; } h4 { @apply text-xl font-semibold italic text-gray-600 dark:text-gray-400; } p { @apply text-base text-gray-600 dark:text-gray-300 break-words; } ul { @apply list-disc ml-0; } li { @apply list-disc ml-5; } ol { @apply list-decimal ml-5; } :root { --color-primary: #0e8ef0; --color-primary-light: #3dabff; --color-secondary: #0fd974; --color-accent: #f0700e; --color-light-text-panel: #ffffff; --color-dark-text-panel: #ffffff; --color-bg-light-panel: #7cb5ec; --color-bg-light: #e2edff; --color-bg-light-tone: #b9d2f7; --color-bg-light-code-block: #cad7ed; --color-bg-light-tone-panel: #8fb5ef; --color-bg-light-discussion: #c5d8f8; --color-bg-light-discussion-odd: #d6e7ff; --color-bg-dark: #132e59; --color-bg-dark-tone: #25477d; --color-bg-dark-tone-panel: #4367a3; --color-bg-dark-code-block: #2254a7; --color-bg-dark-discussion: #435E8A; --color-bg-dark-discussion-odd: #284471; } /* For both textarea and input elements */ textarea, input, select { @apply bg-gray-100 dark:bg-gray-800; } .background-color { @apply bg-gradient-to-br from-blue-100 to-blue-200 dark:from-blue-900 dark:to-blue-900 min-h-screen; } .toolbar-color { @apply text-gray-700 dark:text-gray-50 bg-gradient-to-r from-blue-200 to-purple-200 dark:from-blue-800 dark:to-purple-800 rounded-full shadow-lg } .panels-color { @apply text-gray-700 dark:text-gray-50 bg-gradient-to-r from-blue-100 to-blue-200 dark:from-blue-800 dark:to-blue-900 rounded shadow-lg; } .unicolor-panels-color { @apply bg-blue-200 dark:bg-blue-800 } .chatbox-color { @apply bg-gradient-to-br from-blue-200 to-blue-300 dark:from-blue-800 dark:to-blue-900 } .message { @apply relative w-full rounded-lg m-2 shadow-lg border-2 border-transparent flex flex-col flex-grow flex-wrap overflow-visible p-4 pb-2; } .message:hover { @apply border-primary border-solid; } /* Light theme */ .message:nth-child(even) { @apply bg-gradient-to-br from-blue-200 to-blue-300 dark:from-blue-800 dark:to-blue-800; } .message:nth-child(odd) { @apply bg-gradient-to-br from-blue-300 to-blue-400 dark:from-blue-800 dark:to-blue-900; } .discussion{ @apply mr-2 bg-gradient-to-r from-blue-300 to-blue-400 dark:from-blue-800 dark:to-blue-900 hover:from-blue-100 hover:to-purple-100 hover:dark:from-blue-700 hover:dark:to-purple-700 } .discussion-hilighted{ @apply bg-gradient-to-r from-blue-200 to-purple-300 dark:from-blue-800 dark:to-purple-900 hover:from-blue-100 hover:to-purple-100 hover:dark:from-blue-700 hover:dark:to-purple-700 } body { @apply bg-gradient-to-br from-blue-100 to-purple-100 dark:from-blue-900 dark:to-purple-900 min-h-screen; } .bg-gradient-welcome { @apply bg-gradient-to-br from-blue-100 to-purple-100 dark:from-blue-900 dark:to-purple-900; } .bg-gradient-progress { @apply bg-gradient-to-r from-blue-200 to-purple-200 dark:from-blue-800 dark:to-purple-800; } .text-gradient-title { @apply text-transparent bg-clip-text bg-gradient-to-r from-blue-600 to-purple-600 dark:from-blue-400 dark:to-purple-400; } .text-subtitle { @apply text-gray-600 dark:text-gray-300; } .text-author { @apply text-gray-500 dark:text-gray-400; } .text-loading { @apply text-gray-700 dark:text-gray-300; } .text-progress { @apply text-blue-600 dark:text-blue-400; } .btn-primary { @apply bg-blue-500 hover:bg-blue-600 text-white font-bold py-2 px-4 rounded; } .btn-secondary { @apply bg-purple-500 hover:bg-purple-600 text-white font-bold py-2 px-4 rounded; } .card { @apply bg-white dark:bg-gray-800 rounded-lg shadow-md p-6; } .input { @apply bg-gray-100 dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-md px-4 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:focus:ring-blue-400; } .label { @apply block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1; } .link { @apply text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300; } .navbar-container { @apply text-gray-700 dark:text-gray-50 bg-gradient-to-r from-blue-200 to-blue-300 dark:from-blue-800 dark:to-blue-900 rounded shadow-lg } .game-menu { @apply flex justify-center items-center relative; } .text-shadow-custom { text-shadow: 1px 1px 0px white, -1px -1px 0px white, 1px -1px 0px white, -1px 1px 0px white; } .menu-item { @apply mb-2 px-4 py-2 text-red-600 dark:text-red-300 font-bold text-lg transition-all duration-300 ease-in-out; @apply hover:text-gray-500 hover:dark:text-gray-50 hover:transform hover:-translate-y-1; } .menu-item.active-link { @apply rounded-t-md border-red-500 text-shadow-custom text-red-600 font-bold text-lg transition-all duration-300 ease-in-out scale-105; @apply hover:text-red-600 hover:dark:text-gray-50 hover:transform hover:-translate-y-1; /* Glow effect on text */ text-shadow: 0 0 10px rgba(255, 255, 255, 0.5); } .menu-item.active-link::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 100%; height: 5px; /* Lightsaber colors */ z-index: 10000; background: linear-gradient(to right, #00ff00, #00ff00, #00ff00); /* Normal mode */ border-radius: 10px; animation: lightsaber 2s infinite; } .dark .menu-item.active-link::after { background: linear-gradient(to right, #ff0000, #ff0000, #ff0000); /* Dark mode */ } @keyframes lightsaber { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } } .app-card { @apply transition-all duration-300 ease-in-out bg-gradient-to-br from-blue-200 to-blue-300 dark:from-blue-800 dark:to-blue-900 text-gray-800 dark:text-gray-100 shadow-md hover:shadow-lg; } .app-card:hover { @apply transform -translate-y-1; } button { @apply transition-all duration-300 ease-in-out; } button:hover { @apply transform -translate-y-0.5; } .scrollbar-thin { scrollbar-width: thin; scrollbar-color: theme('colors.blue.300') theme('colors.blue.100'); } .dark .scrollbar-thin { scrollbar-color: theme('colors.blue.700') theme('colors.blue.900'); } .scrollbar-thin::-webkit-scrollbar { @apply w-2; } .scrollbar-thin::-webkit-scrollbar-track { @apply bg-blue-100 dark:bg-blue-900 rounded-full; } .scrollbar-thin::-webkit-scrollbar-thumb { @apply bg-blue-300 dark:bg-blue-700 rounded-full; } .scrollbar-thin::-webkit-scrollbar-thumb:hover { @apply bg-blue-400 dark:bg-blue-600; } .btn { @apply font-semibold py-2 px-4 rounded-lg transition-all duration-300 ease-in-out shadow-md flex items-center; } .btn-primary { @apply bg-blue-500 text-white hover:bg-blue-600 focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-800; } .btn-secondary { @apply bg-blue-200 text-gray-700 hover:bg-blue-300 focus:ring-4 focus:ring-blue-200 dark:bg-blue-700 dark:text-gray-200 dark:hover:bg-blue-600 dark:focus:ring-blue-600; } .search-input { @apply w-full border-b-2 border-blue-200 dark:border-blue-700 py-2 px-4 pl-10 transition-colors duration-300 ease-in-out focus:outline-none focus:border-blue-500 dark:focus:border-blue-400 bg-transparent text-gray-800 dark:text-gray-100; } .scrollbar { @apply scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary } .card-title { @apply text-xl font-bold text-gray-900 dark:text-white mb-2; } .card-content { @apply text-gray-700 dark:text-gray-300; } .card-footer { @apply mt-4 flex justify-between items-center; } .card-footer-button { @apply bg-blue-500 hover:bg-blue-600 text-white font-bold py-2 px-4 rounded; } /* Subcard styles */ .subcard { @apply bg-gray-100 dark:bg-gray-700 rounded-lg shadow-md p-4; } .subcard-title { @apply text-lg font-bold text-gray-900 dark:text-white mb-2; } .subcard-content { @apply text-gray-700 dark:text-gray-300; } .subcard-footer { @apply mt-4 flex justify-between items-center; } .subcard-footer-button { @apply bg-blue-500 hover:bg-blue-600 text-white font-bold py-2 px-4 rounded; }