mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
200 lines
4.4 KiB
CSS
200 lines
4.4 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@layer base {
|
|
body {
|
|
@apply bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-gray-100 antialiased;
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
.btn-primary {
|
|
@apply inline-flex items-center justify-center gap-2 px-6 py-3 bg-[rgb(20_113_76)] text-white font-semibold rounded-xl transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed shadow-lg hover:shadow-xl transform hover:-translate-y-0.5;
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
@apply bg-[rgb(16_89_60)];
|
|
}
|
|
|
|
.btn-secondary {
|
|
@apply bg-white dark:bg-gray-800 text-gray-800 dark:text-gray-200 font-semibold py-3 px-6 rounded-xl transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed border-2 border-gray-200 dark:border-gray-700 shadow-md hover:shadow-lg;
|
|
}
|
|
|
|
.btn-secondary:hover {
|
|
@apply bg-gray-50 dark:bg-gray-700 border-[rgb(20_113_76)] dark:border-[rgb(20_113_76)];
|
|
}
|
|
|
|
.btn-ghost {
|
|
@apply text-[rgb(20_113_76)] font-medium py-2 px-4 rounded-lg transition-colors;
|
|
}
|
|
|
|
.btn-ghost:hover {
|
|
background-color: rgba(20, 113, 76, 0.1);
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
.btn-ghost:hover {
|
|
background-color: rgba(20, 113, 76, 0.2);
|
|
}
|
|
}
|
|
|
|
.input-field {
|
|
@apply w-full px-4 py-3 border-2 border-gray-200 dark:border-gray-700 rounded-xl focus:outline-none focus:ring-2 focus:ring-[rgb(20_113_76)] focus:border-transparent disabled:bg-gray-50 dark:disabled:bg-gray-800 disabled:cursor-not-allowed transition-all duration-200 text-base bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100;
|
|
}
|
|
|
|
.card {
|
|
@apply bg-white dark:bg-gray-800 rounded-2xl shadow-sm p-6 border border-gray-100 dark:border-gray-700;
|
|
}
|
|
|
|
.card:hover {
|
|
@apply shadow-md;
|
|
}
|
|
|
|
.card-interactive {
|
|
@apply bg-white dark:bg-gray-800 rounded-2xl shadow-sm p-6 border-2 border-gray-100 dark:border-gray-700 cursor-pointer transition-all duration-200;
|
|
}
|
|
|
|
.card-interactive:hover {
|
|
@apply border-[rgb(20_113_76)] shadow-lg;
|
|
}
|
|
|
|
.badge {
|
|
@apply inline-flex items-center px-3 py-1 rounded-full text-xs font-medium;
|
|
}
|
|
|
|
.badge-success {
|
|
@apply bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-300;
|
|
}
|
|
|
|
.badge-warning {
|
|
@apply bg-yellow-100 dark:bg-yellow-900/30 text-yellow-800 dark:text-yellow-300;
|
|
}
|
|
|
|
.badge-info {
|
|
@apply bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-300;
|
|
}
|
|
|
|
.section-title {
|
|
@apply text-2xl md:text-3xl font-bold text-gray-900 dark:text-gray-100 mb-2;
|
|
}
|
|
|
|
.section-subtitle {
|
|
@apply text-base md:text-lg text-gray-600 dark:text-gray-400;
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
.text-balance {
|
|
text-wrap: balance;
|
|
}
|
|
|
|
@keyframes bounce-in {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(20px) scale(0.9);
|
|
}
|
|
50% {
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0) scale(1);
|
|
}
|
|
}
|
|
|
|
@keyframes float {
|
|
0%, 100% {
|
|
transform: translateY(0px);
|
|
}
|
|
50% {
|
|
transform: translateY(-20px);
|
|
}
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
0% {
|
|
opacity: 1;
|
|
}
|
|
50% {
|
|
opacity: 0.5;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes progressBar {
|
|
0% { width: 0%; }
|
|
50% { width: 60%; }
|
|
100% { width: 90%; }
|
|
}
|
|
|
|
@keyframes slide-in-left {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateX(-20px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
@keyframes slide-in-right {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateX(20px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
@keyframes slide-up {
|
|
from {
|
|
transform: translateY(100%);
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
transform: translateY(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.animate-bounce-in {
|
|
animation: bounce-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
}
|
|
|
|
.animate-float {
|
|
animation: float 6s ease-in-out infinite;
|
|
}
|
|
|
|
.animate-shimmer {
|
|
background-size: 1000px 100%;
|
|
animation: shimmer 2s infinite;
|
|
}
|
|
|
|
.animate-slide-in-left {
|
|
animation: slide-in-left 0.5s ease-out;
|
|
}
|
|
|
|
.animate-slide-in-right {
|
|
animation: slide-in-right 0.5s ease-out;
|
|
}
|
|
|
|
.animate-slide-up {
|
|
animation: slide-up 0.25s cubic-bezier(0.32, 0.72, 0, 1);
|
|
}
|
|
|
|
.scrollbar-hide {
|
|
-ms-overflow-style: none;
|
|
scrollbar-width: none;
|
|
}
|
|
|
|
.scrollbar-hide::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
}
|