UNPKG

mycsslab

Version:

MyCSSLab Quantum v3.0 - Revolutionary CSS framework with AI-powered intelligence, holographic UI, neural networks, and quantum effects

559 lines (470 loc) 15.3 kB
/** * MyCSSLab Fluid Typography System * Typography that flows and adapts dynamically to content and context * Version: 3.0.2 */ /* ======================================== FLUID TYPOGRAPHY CORE VARIABLES ======================================== */ :root { /* Fluid scaling variables */ --fluid-min-width: 320px; --fluid-max-width: 1200px; --fluid-min-scale: 1; --fluid-max-scale: 1.2; /* Fluid typography scales */ --fluid-text-xs: clamp(0.75rem, 0.5vw + 0.5rem, 0.875rem); --fluid-text-sm: clamp(0.875rem, 0.75vw + 0.625rem, 1rem); --fluid-text-base: clamp(1rem, 1vw + 0.75rem, 1.125rem); --fluid-text-lg: clamp(1.125rem, 1.25vw + 0.875rem, 1.25rem); --fluid-text-xl: clamp(1.25rem, 1.5vw + 1rem, 1.5rem); --fluid-text-2xl: clamp(1.5rem, 2vw + 1.25rem, 2rem); --fluid-text-3xl: clamp(1.875rem, 2.5vw + 1.5rem, 2.5rem); --fluid-text-4xl: clamp(2.25rem, 3vw + 1.75rem, 3rem); --fluid-text-5xl: clamp(3rem, 4vw + 2.25rem, 4rem); --fluid-text-6xl: clamp(3.75rem, 5vw + 2.75rem, 5rem); --fluid-text-7xl: clamp(4.5rem, 6vw + 3.25rem, 6rem); --fluid-text-8xl: clamp(6rem, 8vw + 4.25rem, 8rem); --fluid-text-9xl: clamp(8rem, 10vw + 5.25rem, 10rem); /* Fluid line heights */ --fluid-leading-none: 1; --fluid-leading-tight: 1.25; --fluid-leading-snug: 1.375; --fluid-leading-normal: 1.5; --fluid-leading-relaxed: 1.625; --fluid-leading-loose: 2; /* Fluid letter spacing */ --fluid-tracking-tighter: -0.05em; --fluid-tracking-tight: -0.025em; --fluid-tracking-normal: 0em; --fluid-tracking-wide: 0.025em; --fluid-tracking-wider: 0.05em; --fluid-tracking-widest: 0.1em; /* Fluid font weights */ --fluid-weight-thin: 100; --fluid-weight-extralight: 200; --fluid-weight-light: 300; --fluid-weight-normal: 400; --fluid-weight-medium: 500; --fluid-weight-semibold: 600; --fluid-weight-bold: 700; --fluid-weight-extrabold: 800; --fluid-weight-black: 900; } /* ======================================== FLUID TEXT SIZES ======================================== */ .my-fluid-text-xs { font-size: var(--fluid-text-xs); } .my-fluid-text-sm { font-size: var(--fluid-text-sm); } .my-fluid-text-base { font-size: var(--fluid-text-base); } .my-fluid-text-lg { font-size: var(--fluid-text-lg); } .my-fluid-text-xl { font-size: var(--fluid-text-xl); } .my-fluid-text-2xl { font-size: var(--fluid-text-2xl); } .my-fluid-text-3xl { font-size: var(--fluid-text-3xl); } .my-fluid-text-4xl { font-size: var(--fluid-text-4xl); } .my-fluid-text-5xl { font-size: var(--fluid-text-5xl); } .my-fluid-text-6xl { font-size: var(--fluid-text-6xl); } .my-fluid-text-7xl { font-size: var(--fluid-text-7xl); } .my-fluid-text-8xl { font-size: var(--fluid-text-8xl); } .my-fluid-text-9xl { font-size: var(--fluid-text-9xl); } /* ======================================== FLUID LINE HEIGHTS ======================================== */ .my-fluid-leading-none { line-height: var(--fluid-leading-none); } .my-fluid-leading-tight { line-height: var(--fluid-leading-tight); } .my-fluid-leading-snug { line-height: var(--fluid-leading-snug); } .my-fluid-leading-normal { line-height: var(--fluid-leading-normal); } .my-fluid-leading-relaxed { line-height: var(--fluid-leading-relaxed); } .my-fluid-leading-loose { line-height: var(--fluid-leading-loose); } /* ======================================== FLUID LETTER SPACING ======================================== */ .my-fluid-tracking-tighter { letter-spacing: var(--fluid-tracking-tighter); } .my-fluid-tracking-tight { letter-spacing: var(--fluid-tracking-tight); } .my-fluid-tracking-normal { letter-spacing: var(--fluid-tracking-normal); } .my-fluid-tracking-wide { letter-spacing: var(--fluid-tracking-wide); } .my-fluid-tracking-wider { letter-spacing: var(--fluid-tracking-wider); } .my-fluid-tracking-widest { letter-spacing: var(--fluid-tracking-widest); } /* ======================================== FLUID FONT WEIGHTS ======================================== */ .my-fluid-weight-thin { font-weight: var(--fluid-weight-thin); } .my-fluid-weight-extralight { font-weight: var(--fluid-weight-extralight); } .my-fluid-weight-light { font-weight: var(--fluid-weight-light); } .my-fluid-weight-normal { font-weight: var(--fluid-weight-normal); } .my-fluid-weight-medium { font-weight: var(--fluid-weight-medium); } .my-fluid-weight-semibold { font-weight: var(--fluid-weight-semibold); } .my-fluid-weight-bold { font-weight: var(--fluid-weight-bold); } .my-fluid-weight-extrabold { font-weight: var(--fluid-weight-extrabold); } .my-fluid-weight-black { font-weight: var(--fluid-weight-black); } /* ======================================== FLUID GRADIENT TEXT ======================================== */ .my-fluid-gradient-text { background: linear-gradient(45deg, #667eea, #764ba2, #f093fb); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; background-size: 200% 200%; animation: fluid-gradient-flow 3s ease-in-out infinite; } @keyframes fluid-gradient-flow { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .my-fluid-gradient-text-rainbow { background: linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #feca57, #ff9ff3, #54a0ff); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; background-size: 400% 400%; animation: fluid-rainbow-flow 4s ease-in-out infinite; } @keyframes fluid-rainbow-flow { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } /* ======================================== FLUID TEXT ANIMATIONS ======================================== */ .my-fluid-text-flow { animation: fluid-text-flow 2s ease-in-out infinite; } @keyframes fluid-text-flow { 0%, 100% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(-5px); opacity: 0.8; } } .my-fluid-text-bounce { animation: fluid-text-bounce 1s ease-in-out infinite; } @keyframes fluid-text-bounce { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } .my-fluid-text-pulse { animation: fluid-text-pulse 2s ease-in-out infinite; } @keyframes fluid-text-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } .my-fluid-text-wiggle { animation: fluid-text-wiggle 1s ease-in-out infinite; } @keyframes fluid-text-wiggle { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 75% { transform: rotate(-5deg); } } /* ======================================== FLUID RESPONSIVE TYPOGRAPHY ======================================== */ .my-fluid-responsive { font-size: clamp(1rem, 2.5vw + 0.5rem, 3rem); line-height: clamp(1.2, 1.5vw + 1, 1.5); letter-spacing: clamp(0em, 0.1vw, 0.1em); transition: all 0.3s ease; } .my-fluid-responsive:hover { font-size: clamp(1.1rem, 2.7vw + 0.6rem, 3.2rem); letter-spacing: clamp(0.05em, 0.15vw, 0.15em); text-shadow: 0 0 20px rgba(102, 126, 234, 0.5); } /* ======================================== FLUID HEADING SYSTEM ======================================== */ .my-fluid-h1 { font-size: var(--fluid-text-5xl); line-height: var(--fluid-leading-tight); font-weight: var(--fluid-weight-bold); letter-spacing: var(--fluid-tracking-tight); } .my-fluid-h2 { font-size: var(--fluid-text-4xl); line-height: var(--fluid-leading-tight); font-weight: var(--fluid-weight-bold); letter-spacing: var(--fluid-tracking-tight); } .my-fluid-h3 { font-size: var(--fluid-text-3xl); line-height: var(--fluid-leading-snug); font-weight: var(--fluid-weight-semibold); letter-spacing: var(--fluid-tracking-normal); } .my-fluid-h4 { font-size: var(--fluid-text-2xl); line-height: var(--fluid-leading-snug); font-weight: var(--fluid-weight-semibold); letter-spacing: var(--fluid-tracking-normal); } .my-fluid-h5 { font-size: var(--fluid-text-xl); line-height: var(--fluid-leading-normal); font-weight: var(--fluid-weight-medium); letter-spacing: var(--fluid-tracking-normal); } .my-fluid-h6 { font-size: var(--fluid-text-lg); line-height: var(--fluid-leading-normal); font-weight: var(--fluid-weight-medium); letter-spacing: var(--fluid-tracking-normal); } /* ======================================== FLUID BODY TEXT ======================================== */ .my-fluid-body { font-size: var(--fluid-text-base); line-height: var(--fluid-leading-relaxed); font-weight: var(--fluid-weight-normal); letter-spacing: var(--fluid-tracking-normal); } .my-fluid-body-large { font-size: var(--fluid-text-lg); line-height: var(--fluid-leading-relaxed); font-weight: var(--fluid-weight-normal); letter-spacing: var(--fluid-tracking-normal); } .my-fluid-body-small { font-size: var(--fluid-text-sm); line-height: var(--fluid-leading-normal); font-weight: var(--fluid-weight-normal); letter-spacing: var(--fluid-tracking-normal); } /* ======================================== FLUID CAPTION TEXT ======================================== */ .my-fluid-caption { font-size: var(--fluid-text-xs); line-height: var(--fluid-leading-normal); font-weight: var(--fluid-weight-normal); letter-spacing: var(--fluid-tracking-wide); opacity: 0.7; } .my-fluid-caption-large { font-size: var(--fluid-text-sm); line-height: var(--fluid-leading-normal); font-weight: var(--fluid-weight-normal); letter-spacing: var(--fluid-tracking-wide); opacity: 0.7; } /* ======================================== FLUID QUOTE TEXT ======================================== */ .my-fluid-quote { font-size: var(--fluid-text-xl); line-height: var(--fluid-leading-relaxed); font-weight: var(--fluid-weight-light); letter-spacing: var(--fluid-tracking-normal); font-style: italic; position: relative; padding-left: 2rem; } .my-fluid-quote::before { content: '"'; position: absolute; left: 0; top: -0.5rem; font-size: 4rem; color: #667eea; opacity: 0.3; } .my-fluid-quote-large { font-size: var(--fluid-text-2xl); line-height: var(--fluid-leading-loose); font-weight: var(--fluid-weight-light); letter-spacing: var(--fluid-tracking-normal); font-style: italic; } /* ======================================== FLUID CODE TEXT ======================================== */ .my-fluid-code { font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; font-size: var(--fluid-text-sm); line-height: var(--fluid-leading-normal); font-weight: var(--fluid-weight-normal); letter-spacing: var(--fluid-tracking-normal); background: #f7fafc; padding: 0.25rem 0.5rem; border-radius: 4px; border: 1px solid #e2e8f0; } .my-fluid-code-large { font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; font-size: var(--fluid-text-base); line-height: var(--fluid-leading-relaxed); font-weight: var(--fluid-weight-normal); letter-spacing: var(--fluid-tracking-normal); background: #f7fafc; padding: 1rem; border-radius: 8px; border: 1px solid #e2e8f0; display: block; overflow-x: auto; } /* ======================================== FLUID TEXT EFFECTS ======================================== */ .my-fluid-text-shadow { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .my-fluid-text-shadow-lg { text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .my-fluid-text-glow { text-shadow: 0 0 10px rgba(102, 126, 234, 0.5); } .my-fluid-text-glow-lg { text-shadow: 0 0 20px rgba(102, 126, 234, 0.7); } .my-fluid-text-outline { -webkit-text-stroke: 1px #667eea; -webkit-text-fill-color: transparent; } .my-fluid-text-outline-lg { -webkit-text-stroke: 2px #667eea; -webkit-text-fill-color: transparent; } /* ======================================== FLUID TEXT TRANSFORMS ======================================== */ .my-fluid-text-uppercase { text-transform: uppercase; letter-spacing: var(--fluid-tracking-wide); } .my-fluid-text-lowercase { text-transform: lowercase; } .my-fluid-text-capitalize { text-transform: capitalize; } .my-fluid-text-italic { font-style: italic; } .my-fluid-text-underline { text-decoration: underline; } .my-fluid-text-overline { text-decoration: overline; } .my-fluid-text-line-through { text-decoration: line-through; } /* ======================================== FLUID TEXT ALIGNMENT ======================================== */ .my-fluid-text-left { text-align: left; } .my-fluid-text-center { text-align: center; } .my-fluid-text-right { text-align: right; } .my-fluid-text-justify { text-align: justify; } /* ======================================== FLUID TEXT OVERFLOW ======================================== */ .my-fluid-text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .my-fluid-text-break { word-break: break-word; overflow-wrap: break-word; } .my-fluid-text-nowrap { white-space: nowrap; } /* ======================================== FLUID TEXT SELECTION ======================================== */ .my-fluid-text-select-none { user-select: none; } .my-fluid-text-select-all { user-select: all; } .my-fluid-text-select-auto { user-select: auto; } /* ======================================== FLUID TEXT RESPONSIVE BREAKPOINTS ======================================== */ @media (max-width: 640px) { .my-fluid-responsive-mobile { font-size: clamp(0.875rem, 2vw + 0.5rem, 1.5rem); line-height: clamp(1.2, 1.5vw + 1, 1.4); } } @media (min-width: 1024px) { .my-fluid-responsive-desktop { font-size: clamp(1.125rem, 1.5vw + 0.75rem, 2rem); line-height: clamp(1.3, 1.2vw + 1.1, 1.6); } } /* ======================================== FLUID TEXT ACCESSIBILITY ======================================== */ @media (prefers-reduced-motion: reduce) { .my-fluid-text-flow, .my-fluid-text-bounce, .my-fluid-text-pulse, .my-fluid-text-wiggle, .my-fluid-gradient-text, .my-fluid-gradient-text-rainbow { animation: none; } } .my-fluid-text-high-contrast { color: #000; background: #fff; text-shadow: none; } @media (prefers-contrast: high) { .my-fluid-text-high-contrast { color: #000; background: #fff; text-shadow: none; } } /* ======================================== FLUID TEXT UTILITY CLASSES ======================================== */ .my-fluid-text-auto { font-size: var(--fluid-text-base); line-height: var(--fluid-leading-normal); font-weight: var(--fluid-weight-normal); letter-spacing: var(--fluid-tracking-normal); } .my-fluid-text-smooth { transition: all 0.3s ease; } .my-fluid-text-smooth:hover { transform: scale(1.02); }