UNPKG

bismillahcss

Version:

The next-gen utility-first CSS framework for modern, futuristic web development.

449 lines (387 loc) 10.3 kB
/* ========================================================================== BISMILLAHCSS-UI /FUTURISTIC/ "Motion, Depth, and Interaction as Default Primitives." ========================================================================== */ :root { --f-primary: #00f2ff; --f-secondary: #7000ff; --f-accent: #ff007a; --f-surface: rgba(10, 10, 12, 0.7); --f-border: rgba(255, 255, 255, 0.1); } /* --- 3D & Depth --- */ .f-perspective { perspective: 1000px; } .f-3d-card { transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1); transform-style: preserve-3d; } .f-3d-card:hover { transform: rotateY(10deg) rotateX(10deg) translateZ(20px); } /* --- Spotlight Effect --- */ .f-spotlight { position: relative; overflow: hidden; } .f-spotlight::before { content: ''; position: absolute; inset: 0; background: radial-gradient(600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255, 255, 255, 0.06), transparent 40%); z-index: 1; pointer-events: none; } /* --- Moving Border --- */ .f-moving-border { position: relative; padding: 1px; border-radius: 16px; background: var(--f-border); overflow: hidden; z-index: 0; } .f-moving-border::before { content: ''; position: absolute; width: 150%; height: 150%; background: conic-gradient(from 0deg, transparent 0%, var(--f-primary) 25%, var(--f-secondary) 50%, transparent 75%); animation: f-rotate 4s linear infinite; top: -25%; left: -25%; z-index: -1; } .f-moving-border-content { background: var(--f-surface); border-radius: 15px; height: 100%; width: 100%; } @keyframes f-rotate { to { transform: rotate(360deg); } } /* --- Floating Navbar --- */ .f-navbar-floating { position: fixed; top: 24px; left: 50%; transform: translateX(-50%); background: rgba(10, 10, 12, 0.8); backdrop-filter: blur(16px); border: 1px solid var(--f-border); border-radius: 99px; padding: 8px 24px; display: flex; gap: 24px; z-index: 9999; transition: all 0.3s; } .f-navbar-floating.scrolled { top: 12px; padding: 6px 20px; background: rgba(0, 0, 0, 0.9); } /* --- Text Intelligence --- */ .f-text-reveal { overflow: hidden; } .f-text-reveal span { display: inline-block; transform: translateY(100%); transition: transform 0.8s var(--f-delay, 0s) cubic-bezier(0.19, 1, 0.22, 1); } .f-text-reveal.active span { transform: translateY(0); } /* --- Animated Background Particles (CSS only foundation) --- */ .f-particles-bg { position: fixed; inset: 0; z-index: -1; background: radial-gradient(circle at 50% 50%, #1a1a1a, #000); } .f-particles-bg::after { content: ''; position: absolute; inset: 0; background-image: radial-gradient(white, rgba(255, 255, 255, 0) 2px), radial-gradient(white, rgba(255, 255, 255, 0) 1px); background-size: 100px 100px, 200px 200px; background-position: 0 0, 50px 50px; opacity: 0.1; animation: f-drift 20s linear infinite; } @keyframes f-drift { from { background-position: 0 0, 50px 50px; } to { background-position: 100px 100px, 150px 150px; } } /* --- Bento Grids --- */ .f-bento-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(100px, auto); gap: 24px; } .f-bento-card { grid-column: span 12; background: var(--f-surface); border: 1px solid var(--f-border); border-radius: 24px; padding: 32px; } @media (min-width: 768px) { .f-bento-span-4 { grid-column: span 4; } .f-bento-span-8 { grid-column: span 8; } .f-bento-span-6 { grid-column: span 6; } } /* --- Glare & Glow --- */ .f-glare-card { position: relative; overflow: hidden; background: #0a0a0c; border-radius: 20px; border: 1px solid var(--f-border); } .f-glare { position: absolute; inset: 0; background: radial-gradient(circle at var(--glare-x, 0%) var(--glare-y, 0%), rgba(255, 255, 255, 0.15) 0%, transparent 50%); pointer-events: none; mix-blend-mode: soft-light; opacity: 0; transition: opacity 0.3s; } .f-glare-card:hover .f-glare { opacity: 1; } .f-glowing-effect { position: relative; } .f-glowing-effect::after { content: ''; position: absolute; inset: -20px; background: radial-gradient(circle, var(--f-primary) 0%, transparent 60%); opacity: 0.15; filter: blur(40px); z-index: -1; } /* --- Animated Testimonials --- */ .f-testimonial-card { border-radius: 24px; background: rgba(255, 255, 255, 0.02); border: 1px solid var(--f-border); padding: 40px; } /* --- Keyboard (KBD) --- */ .f-kbd { display: inline-flex; align-items: center; padding: 4px 8px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-bottom: 3px solid rgba(255, 255, 255, 0.2); border-radius: 6px; font-family: inherit; font-size: 0.75rem; font-weight: 700; color: rgba(255, 255, 255, 0.8); } /* --- Text Reveal Card --- */ .f-text-reveal-card { position: relative; overflow: hidden; cursor: pointer; } .f-text-reveal-mask { position: absolute; inset: 0; background: #000; clip-path: circle(0% at var(--reveal-x, 50%) var(--reveal-y, 50%)); transition: clip-path 0.4s ease; display: flex; align-items: center; justify-content: center; color: var(--f-primary); } .f-text-reveal-card:hover .f-text-reveal-mask { clip-path: circle(100% at var(--reveal-x, 50%) var(--reveal-y, 50%)); } /* --- Globe & Canvas --- */ .f-globe-container { width: 100%; aspect-ratio: 1; max-width: 600px; margin: 0 auto; background: radial-gradient(circle, #1a1a1a 0%, #000 100%); border-radius: 50%; position: relative; box-shadow: 0 0 100px rgba(0, 242, 255, 0.1); } .f-canvas-card { position: relative; background: #000; border-radius: 24px; overflow: hidden; } /* --- Signature Backgrounds --- */ .f-aurora-bg { position: relative; overflow: hidden; background: #000; } .f-aurora-bg::after { content: ''; position: absolute; inset: -100px; background: radial-gradient(circle at 20% 30%, var(--f-primary) 0%, transparent 40%), radial-gradient(circle at 80% 70%, var(--f-secondary) 0%, transparent 40%), radial-gradient(circle at 50% 50%, var(--f-accent) 0%, transparent 50%); opacity: 0.3; filter: blur(80px); animation: f-aurora 20s infinite alternate; } @keyframes f-aurora { 0% { transform: scale(1) rotate(0deg); } 100% { transform: scale(1.2) rotate(10deg); } } .f-meteors { position: absolute; top: -50px; left: 50%; width: 2px; height: 100px; background: linear-gradient(to top, var(--f-primary), transparent); animation: f-meteor 3s linear infinite; transform: rotate(215deg); opacity: 0; } @keyframes f-meteor { 0% { transform: rotate(215deg) translateX(0); opacity: 1; } 70% { opacity: 1; } 100% { transform: rotate(215deg) translateX(-1000px); opacity: 0; } } /* --- Interaction Cards --- */ .f-evervault-card { position: relative; background: #000; border-radius: 20px; border: 1px solid var(--f-border); overflow: hidden; } .f-evervault-mask { position: absolute; inset: 0; background: radial-gradient(300px circle at var(--mouse-x) var(--mouse-y), rgba(255, 255, 255, 0.05), transparent 80%); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); opacity: 0.2; } /* --- Terminal Component --- */ .f-terminal { background: #0a0a0c; border: 1px solid var(--f-border); border-radius: 12px; font-family: 'Fira Code', monospace; overflow: hidden; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4); } .f-terminal-header { background: rgba(255, 255, 255, 0.03); padding: 12px 16px; border-bottom: 1px solid var(--f-border); display: flex; gap: 8px; } .f-terminal-dot { width: 12px; height: 12px; border-radius: 50%; } .f-dot-red { background: #ff5f56; } .f-dot-yellow { background: #ffbd2e; } .f-dot-green { background: #27c93f; } .f-terminal-content { padding: 20px; color: #fff; } /* --- Wavy Background --- */ .f-wavy-bg { background: linear-gradient(to bottom, #000, #050507); mask-image: radial-gradient(circle at 100% 100%, black, transparent); background-size: 100% 100%; position: relative; overflow: hidden; } .f-wavy-layer { position: absolute; inset: 0; background: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(255, 255, 255, 0.01) 20px, rgba(255, 255, 255, 0.01) 40px); animation: f-wave 10s linear infinite; } @keyframes f-wave { from { background-position: 0 0; } to { background-position: 100% 100%; } } /* --- Google Gemini Effect --- */ .f-gemini-mesh { background: linear-gradient(-45deg, #00b4d8, #7000ff, #0a0a0c, #00f2ff); background-size: 400% 400%; animation: f-gradient-mesh 15s ease infinite; } @keyframes f-gradient-mesh { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }