UNPKG

mycsslab

Version:

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

501 lines (417 loc) 11.2 kB
/** * MyCSSLab Morphing Components * Components that transform and adapt based on content, context, and user interaction * Version: 3.0.2 */ /* ======================================== MORPHING COMPONENTS CORE VARIABLES ======================================== */ :root { /* Morphing transition settings */ --morph-duration: 0.4s; --morph-easing: cubic-bezier(0.4, 0, 0.2, 1); --morph-slow-easing: cubic-bezier(0.25, 0.46, 0.45, 0.94); --morph-fast-easing: cubic-bezier(0.68, -0.55, 0.265, 1.55); /* Morphing transform variables */ --morph-scale: 1; --morph-rotate: 0deg; --morph-translate-x: 0; --morph-translate-y: 0; --morph-skew-x: 0deg; --morph-skew-y: 0deg; /* Morphing content variables */ --morph-content-density: 1; --morph-content-complexity: 1; --morph-content-type: 'text'; /* Morphing context variables */ --morph-context-size: 'medium'; --morph-context-importance: 'normal'; --morph-context-state: 'idle'; } /* ======================================== MORPHING CARD SYSTEM ======================================== */ .my-morph-card { position: relative; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 12px; padding: 1.5rem; transition: all var(--morph-duration) var(--morph-easing); transform: perspective(1000px) rotateX(0deg) rotateY(0deg); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); overflow: hidden; } .my-morph-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.1) 50%, transparent 70%); transform: translateX(-100%); transition: transform 0.6s ease; } .my-morph-card:hover { transform: perspective(1000px) rotateX(5deg) rotateY(5deg) scale(1.02); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15); --morph-scale: 1.02; --morph-rotate: 2deg; } .my-morph-card:hover::before { transform: translateX(100%); } .my-morph-card[data-content-density="high"] { padding: 1rem; border-radius: 8px; } .my-morph-card[data-content-density="low"] { padding: 2rem; border-radius: 16px; } .my-morph-card[data-content-type="image"] { aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; } .my-morph-card[data-content-type="text"] { min-height: 120px; } .my-morph-card[data-content-type="mixed"] { display: grid; grid-template-columns: 1fr 2fr; gap: 1rem; } /* ======================================== MORPHING BUTTON SYSTEM ======================================== */ .my-morph-button { position: relative; background: linear-gradient(45deg, #ff6b6b, #4ecdc4); color: white; border: none; padding: 0.75rem 1.5rem; border-radius: 8px; font-weight: 600; cursor: pointer; transition: all var(--morph-duration) var(--morph-easing); overflow: hidden; } .my-morph-button::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: rgba(255, 255, 255, 0.2); border-radius: 50%; transform: translate(-50%, -50%); transition: all 0.6s ease; } .my-morph-button:hover { transform: translateY(-2px) scale(1.05); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2); } .my-morph-button:hover::before { width: 300px; height: 300px; } .my-morph-button:active { transform: translateY(0) scale(0.98); } .my-morph-button[data-size="small"] { padding: 0.5rem 1rem; font-size: 0.875rem; } .my-morph-button[data-size="large"] { padding: 1rem 2rem; font-size: 1.125rem; } .my-morph-button[data-variant="outline"] { background: transparent; border: 2px solid #ff6b6b; color: #ff6b6b; } .my-morph-button[data-variant="outline"]:hover { background: #ff6b6b; color: white; } /* ======================================== MORPHING GRID SYSTEM ======================================== */ .my-morph-grid { display: grid; gap: 1rem; transition: all var(--morph-duration) var(--morph-easing); } .my-morph-grid[data-layout="auto"] { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); } .my-morph-grid[data-layout="fixed"] { grid-template-columns: repeat(3, 1fr); } .my-morph-grid[data-layout="masonry"] { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); grid-auto-rows: masonry; } .my-morph-grid:hover { gap: 1.5rem; --morph-content-density: 0.8; } .my-morph-grid[data-content-density="high"] { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.75rem; } .my-morph-grid[data-content-density="low"] { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; } /* ======================================== MORPHING TEXT SYSTEM ======================================== */ .my-morph-text { font-size: clamp(1rem, 2.5vw + 0.5rem, 3rem); line-height: 1.2; transition: all var(--morph-duration) var(--morph-easing); background: linear-gradient(45deg, #667eea, #764ba2); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .my-morph-text:hover { font-size: clamp(1.1rem, 2.7vw + 0.6rem, 3.2rem); letter-spacing: 0.05em; text-shadow: 0 0 20px rgba(102, 126, 234, 0.5); --morph-scale: 1.05; } .my-morph-text[data-size="small"] { font-size: clamp(0.875rem, 1.5vw + 0.5rem, 1.5rem); } .my-morph-text[data-size="large"] { font-size: clamp(1.5rem, 3.5vw + 0.5rem, 4rem); } .my-morph-text[data-weight="light"] { font-weight: 300; } .my-morph-text[data-weight="bold"] { font-weight: 700; } /* ======================================== MORPHING NAVIGATION SYSTEM ======================================== */ .my-morph-nav { display: flex; align-items: center; gap: 1rem; padding: 1rem; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 12px; transition: all var(--morph-duration) var(--morph-easing); } .my-morph-nav:hover { background: rgba(255, 255, 255, 0.2); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); } .my-morph-nav-item { padding: 0.5rem 1rem; border-radius: 6px; transition: all var(--morph-duration) var(--morph-easing); position: relative; overflow: hidden; } .my-morph-nav-item::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s ease; } .my-morph-nav-item:hover { background: rgba(255, 255, 255, 0.1); transform: scale(1.05); } .my-morph-nav-item:hover::before { left: 100%; } .my-morph-nav-item[data-active="true"] { background: linear-gradient(45deg, #ff6b6b, #4ecdc4); color: white; } /* ======================================== MORPHING MODAL SYSTEM ======================================== */ .my-morph-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: all var(--morph-duration) var(--morph-easing); z-index: 1000; } .my-morph-modal[data-open="true"] { opacity: 1; visibility: visible; } .my-morph-modal-content { background: white; border-radius: 12px; padding: 2rem; max-width: 500px; width: 90%; transform: scale(0.8) translateY(20px); transition: all var(--morph-duration) var(--morph-easing); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); } .my-morph-modal[data-open="true"] .my-morph-modal-content { transform: scale(1) translateY(0); } .my-morph-modal[data-size="small"] .my-morph-modal-content { max-width: 300px; padding: 1.5rem; } .my-morph-modal[data-size="large"] .my-morph-modal-content { max-width: 800px; padding: 3rem; } /* ======================================== MORPHING FORM SYSTEM ======================================== */ .my-morph-form { display: flex; flex-direction: column; gap: 1rem; transition: all var(--morph-duration) var(--morph-easing); } .my-morph-form:hover { gap: 1.25rem; } .my-morph-input { padding: 0.75rem 1rem; border: 2px solid #e2e8f0; border-radius: 8px; font-size: 1rem; transition: all var(--morph-duration) var(--morph-easing); background: white; } .my-morph-input:focus { outline: none; border-color: #667eea; box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); transform: scale(1.02); } .my-morph-input:hover { border-color: #cbd5e0; transform: translateY(-1px); } .my-morph-input[data-state="error"] { border-color: #e53e3e; background: #fed7d7; } .my-morph-input[data-state="success"] { border-color: #38a169; background: #c6f6d5; } /* ======================================== MORPHING ANIMATIONS ======================================== */ @keyframes morph-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.05); opacity: 0.8; } } @keyframes morph-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } @keyframes morph-glow { 0%, 100% { box-shadow: 0 0 20px rgba(102, 126, 234, 0.3); } 50% { box-shadow: 0 0 40px rgba(102, 126, 234, 0.6); } } .my-morph-pulse { animation: morph-pulse 2s ease-in-out infinite; } .my-morph-float { animation: morph-float 3s ease-in-out infinite; } .my-morph-glow { animation: morph-glow 2s ease-in-out infinite; } /* ======================================== RESPONSIVE MORPHING ======================================== */ @media (max-width: 768px) { .my-morph-grid[data-layout="auto"] { grid-template-columns: 1fr; } .my-morph-card[data-content-type="mixed"] { grid-template-columns: 1fr; } .my-morph-nav { flex-direction: column; gap: 0.5rem; } } @media (prefers-reduced-motion: reduce) { .my-morph-card, .my-morph-button, .my-morph-text, .my-morph-nav, .my-morph-modal, .my-morph-form { transition: none; } .my-morph-pulse, .my-morph-float, .my-morph-glow { animation: none; } } /* ======================================== MORPHING UTILITY CLASSES ======================================== */ .my-morph-auto { transition: all var(--morph-duration) var(--morph-easing); } .my-morph-auto:hover { transform: scale(1.02); } .my-morph-slow { transition: all calc(var(--morph-duration) * 2) var(--morph-slow-easing); } .my-morph-fast { transition: all calc(var(--morph-duration) * 0.5) var(--morph-fast-easing); } .my-morph-3d { transform-style: preserve-3d; perspective: 1000px; } .my-morph-3d:hover { transform: rotateX(5deg) rotateY(5deg); }