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
CSS
/**
* 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);
}