@entro314labs/at3-toolkit
Version:
Advanced development toolkit for AT3 Stack projects
314 lines (264 loc) • 7.09 kB
CSS
@import "tailwindcss";
/* AIT3E Stack Global Styles */
@theme {
/* Color System - AIT3E optimized */
--color-background: hsl(0 0% 100%);
--color-foreground: hsl(240 10% 3.9%);
--color-primary: hsl(222.2 47.4% 11.2%);
--color-primary-foreground: hsl(210 40% 98%);
--color-secondary: hsl(210 40% 96%);
--color-secondary-foreground: hsl(222.2 84% 4.9%);
--color-accent: hsl(210 40% 96%);
--color-accent-foreground: hsl(222.2 84% 4.9%);
--color-muted: hsl(210 40% 96%);
--color-muted-foreground: hsl(215.4 16.3% 46.9%);
--color-border: hsl(214.3 31.8% 91.4%);
--color-input: hsl(214.3 31.8% 91.4%);
/* AI-specific colors */
--color-ai-primary: hsl(142 76% 36%);
--color-ai-secondary: hsl(215 25% 27%);
--color-ai-accent: hsl(263 70% 50%);
--color-success: hsl(142 76% 36%);
--color-warning: hsl(45 93% 47%);
--color-error: hsl(0 72% 51%);
/* Dark mode colors */
&:is(.dark *) {
--color-background: hsl(240 10% 3.9%);
--color-foreground: hsl(0 0% 98%);
--color-primary: hsl(210 40% 98%);
--color-primary-foreground: hsl(222.2 84% 4.9%);
--color-secondary: hsl(217.2 32.6% 17.5%);
--color-secondary-foreground: hsl(210 40% 98%);
--color-accent: hsl(217.2 32.6% 17.5%);
--color-accent-foreground: hsl(210 40% 98%);
--color-muted: hsl(217.2 32.6% 17.5%);
--color-muted-foreground: hsl(215 20.2% 65.1%);
--color-border: hsl(217.2 32.6% 17.5%);
--color-input: hsl(217.2 32.6% 17.5%);
/* AI colors in dark mode */
--color-ai-primary: hsl(142 76% 36%);
--color-ai-secondary: hsl(215 25% 67%);
--color-ai-accent: hsl(263 70% 65%);
}
/* Typography - AIT3E optimized */
--font-family-sans: "Inter", system-ui, sans-serif;
--font-family-mono: "JetBrains Mono", "Fira Code", monospace;
--font-family-heading: "Inter", system-ui, sans-serif;
/* Spacing scale */
--spacing-0: 0;
--spacing-1: 0.25rem;
--spacing-2: 0.5rem;
--spacing-3: 0.75rem;
--spacing-4: 1rem;
--spacing-5: 1.25rem;
--spacing-6: 1.5rem;
--spacing-8: 2rem;
--spacing-10: 2.5rem;
--spacing-12: 3rem;
--spacing-16: 4rem;
--spacing-20: 5rem;
--spacing-24: 6rem;
--spacing-32: 8rem;
/* Breakpoints for responsive design */
--breakpoint-sm: 640px;
--breakpoint-md: 768px;
--breakpoint-lg: 1024px;
--breakpoint-xl: 1280px;
--breakpoint-2xl: 1536px;
/* Border radius */
--radius-none: 0;
--radius-sm: 0.125rem;
--radius-base: 0.25rem;
--radius-md: 0.375rem;
--radius-lg: 0.5rem;
--radius-xl: 0.75rem;
--radius-2xl: 1rem;
--radius-full: 9999px;
/* Shadows */
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
/* Animation durations */
--duration-75: 75ms;
--duration-100: 100ms;
--duration-150: 150ms;
--duration-200: 200ms;
--duration-300: 300ms;
--duration-500: 500ms;
--duration-700: 700ms;
--duration-1000: 1000ms;
/* Transitions */
--transition-all: all var(--duration-150) ease-in-out;
--transition-colors:
color var(--duration-150) ease-in-out, background-color var(--duration-150) ease-in-out,
border-color var(--duration-150) ease-in-out;
--transition-opacity: opacity var(--duration-150) ease-in-out;
--transition-transform: transform var(--duration-150) ease-in-out;
}
@layer base {
* {
@apply border-border;
}
html {
@apply scroll-smooth;
}
body {
@apply bg-background text-foreground antialiased;
font-feature-settings:
"rlig" 1,
"calt" 1;
}
/* Focus styles for accessibility */
:focus-visible {
@apply outline-none ring-2 ring-primary ring-offset-2 ring-offset-background;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
@apply bg-muted;
}
::-webkit-scrollbar-thumb {
@apply bg-border rounded-full;
}
::-webkit-scrollbar-thumb:hover {
@apply bg-muted-foreground;
}
}
@layer components {
/* AI-specific component styles */
.ai-message {
@apply rounded-lg p-4 mb-4;
}
.ai-message--user {
@apply bg-primary text-primary-foreground ml-8;
}
.ai-message--assistant {
@apply bg-muted mr-8;
}
.ai-thinking {
@apply animate-pulse bg-muted rounded-lg p-4 mb-4 mr-8;
}
/* Loading animations for AI responses */
.ai-loading {
@apply inline-flex items-center space-x-1;
}
.ai-loading-dot {
@apply w-2 h-2 bg-current rounded-full animate-bounce;
animation-delay: 0ms;
}
.ai-loading-dot:nth-child(2) {
animation-delay: 150ms;
}
.ai-loading-dot:nth-child(3) {
animation-delay: 300ms;
}
/* Syntax highlighting for code blocks */
.code-block {
@apply bg-muted rounded-lg p-4 overflow-x-auto;
}
.code-block pre {
@apply text-sm font-mono;
}
/* Gradient backgrounds for AI features */
.ai-gradient {
background: linear-gradient(
135deg,
hsl(var(--color-ai-primary)) 0%,
hsl(var(--color-ai-accent)) 100%
);
}
.ai-gradient-text {
background: linear-gradient(
135deg,
hsl(var(--color-ai-primary)) 0%,
hsl(var(--color-ai-accent)) 100%
);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
}
@layer utilities {
/* Custom utilities for AIT3E stack */
.text-balance {
text-wrap: balance;
}
.text-pretty {
text-wrap: pretty;
}
/* Animation utilities */
@keyframes fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes slide-up {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slide-down {
from {
opacity: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-fade-in {
animation: fade-in var(--duration-300) ease-out;
}
.animate-slide-up {
animation: slide-up var(--duration-300) ease-out;
}
.animate-slide-down {
animation: slide-down var(--duration-300) ease-out;
}
/* Responsive text utilities */
.text-responsive-sm {
font-size: clamp(0.875rem, 2.5vw, 1rem);
}
.text-responsive-base {
font-size: clamp(1rem, 3vw, 1.125rem);
}
.text-responsive-lg {
font-size: clamp(1.125rem, 4vw, 1.25rem);
}
.text-responsive-xl {
font-size: clamp(1.25rem, 5vw, 1.5rem);
}
.text-responsive-2xl {
font-size: clamp(1.5rem, 6vw, 2rem);
}
.text-responsive-3xl {
font-size: clamp(2rem, 8vw, 3rem);
}
}
/* Print styles */
@media print {
.no-print {
display: none ;
}
body {
@apply text-black bg-white;
}
.ai-message,
.code-block {
@apply border border-gray-300;
}
}