leumas-private-shared
Version:
Private React JSX Package For Leumas Shared Components, Headers, Footers, Asides, Login Pages, API Key Manager and much more. Styles and everything reusable to avoid DRY code across all of our subdomains
96 lines (89 loc) • 8.4 kB
JSX
import React from 'react';
import { styled, keyframes } from '@mui/system';
const screen = keyframes`
from {
opacity: 0;
}
25% {
opacity: 0.3;
transform: scale3d(3, 3, 4);
}
50% {
opacity: 0.75;
}
75% {
opacity: 1;
}
to {
opacity: 0;
}
`;
const Bubble = styled('i')`
position: absolute;
width: 120px;
height: 120px;
border-radius: 50%;
animation: ${screen} infinite;
`;
const bubblesStyles = [
{ top: '20px', left: '30px', background: 'radial-gradient(circle, rgba(2,226,252,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #02e2fc', animationDuration: '5s' },
{ top: '420px', left: '30px', background: 'radial-gradient(circle, rgba(250,160,2,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #faa002', animationDuration: '21s' },
{ top: '550px', left: '880px', background: 'radial-gradient(circle, rgba(20,252,2,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #14fc02', animationDuration: '5s' },
{ top: '5px', left: '1030px', background: 'radial-gradient(circle, rgba(252,2,196,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #fc02c4', animationDuration: '4s' },
{ top: '280px', left: '12px', background: 'radial-gradient(circle, rgba(139,44,148,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #8b2c94', animationDuration: '5s' },
{ top: '550px', left: '30px', background: 'radial-gradient(circle, rgba(251,184,41,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FBB829', animationDuration: '6s' },
{ top: '650px', left: '50px', background: 'radial-gradient(circle, rgba(195,255,104,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #C3FF68', animationDuration: '15s' },
{ top: '20px', left: '860px', background: 'radial-gradient(circle, rgba(255,0,102,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FF0066', animationDuration: '5s' },
{ top: '896px', left: '132px', background: 'radial-gradient(circle, rgba(255,255,0,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FFFF00', animationDuration: '13s' },
{ top: '578px', left: '357px', background: 'radial-gradient(circle, rgba(127,175,27,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #7FAF1B', animationDuration: '4s' },
{ top: '380px', left: '230px', background: 'radial-gradient(circle, rgba(1,210,255,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #01D2FF', animationDuration: '5s' },
{ top: '570px', left: '1100px', background: 'radial-gradient(circle, rgba(237,247,255,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #EDF7FF', animationDuration: '6s' },
{ top: '600px', left: '600px', background: 'radial-gradient(circle, rgba(0,255,255,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #00FFFF', animationDuration: '7s' },
{ top: '200px', left: '520px', background: 'radial-gradient(circle, rgba(0,0,255,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #0000FF', animationDuration: '14s' },
{ top: '370px', left: '500px', background: 'radial-gradient(circle, rgba(16,225,228,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #10e1e4', animationDuration: '9s' },
{ top: '620px', left: '730px', background: 'radial-gradient(circle, rgba(255,51,0,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FF3300', animationDuration: '3s' },
{ top: '62px', left: '330px', background: 'radial-gradient(circle, rgba(255,234,232,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FFEAE8', animationDuration: '4s' },
{ top: '0px', left: '250px', background: 'radial-gradient(circle, rgba(255,229,0,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FFE500', animationDuration: '5s' },
{ top: '600px', left: '180px', background: 'radial-gradient(circle, rgba(255,102,153,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FF6699', animationDuration: '6s' },
{ top: '987px', left: '13px', background: 'radial-gradient(circle, rgba(84,156,204,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #549CCC', animationDuration: '7s' },
{ top: '120px', left: '930px', background: 'radial-gradient(circle, rgba(184,175,3,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #B8AF03', animationDuration: '8s' },
{ top: '80px', left: '700px', background: 'radial-gradient(circle, rgba(171,250,249,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #ABFAF9', animationDuration: '5s' },
{ top: '350px', left: '720px', background: 'radial-gradient(circle, rgba(127,15,255,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #7F0FFF', animationDuration: '2s' },
{ top: '997px', left: '678px', background: 'radial-gradient(circle, rgba(48,128,0,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #308000', animationDuration: '3s' },
{ top: '714px', left: '246px', background: 'radial-gradient(circle, rgba(255,38,38,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FF2626', animationDuration: '4s' },
{ top: '0px', left: '480px', background: 'radial-gradient(circle, rgba(15,29,215,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #0F1DD7', animationDuration: '5s' },
{ top: '456px', left: '1000px', background: 'radial-gradient(circle, rgba(51,102,153,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #336699', animationDuration: '6s' },
{ top: '350px', left: '865px', background: 'radial-gradient(circle, rgba(70,172,255,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #46ACFF', animationDuration: '7s' },
{ top: '100px', left: '100px', background: 'radial-gradient(circle, rgba(222,4,5,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #DE0405', animationDuration: '8s' },
{ top: '1087px', left: '722px', background: 'radial-gradient(circle, rgba(77,254,21,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #4DFE15', animationDuration: '9s' },
{ width: '200px', height: '200px', top: '795px', left: '605px', background: 'radial-gradient(circle, rgba(243,10,70,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #F30A46', animationDuration: '1s' },
{ top: '234px', left: '678px', background: 'radial-gradient(circle, rgba(245,253,45,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #F5FD2D', animationDuration: '2s' },
{ top: '270px', left: '1230px', background: 'radial-gradient(circle, rgba(178,0,255,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #B200FF', animationDuration: '3s' },
{ width: '200px', height: '200px', top: '1126px', left: '332px', background: 'radial-gradient(circle, rgba(102,204,255,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #66CCFF', animationDuration: '4s' },
{ top: '407px', left: '83px', background: 'radial-gradient(circle, rgba(20,243,175,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #14F3AF', animationDuration: '5s' },
{ width: '200px', height: '200px', top: '176px', left: '297px', background: 'radial-gradient(circle, rgba(100,245,102,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #64F566', animationDuration: '6s' },
{ width: '300px', height: '300px', top: '820px', right: '10px', background: 'radial-gradient(circle, rgba(236,218,65,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #ECDA41', animationDuration: '7s' },
{ top: '500px', left: '500px', background: 'radial-gradient(circle, rgba(255,61,45,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FF3D2D', animationDuration: '8s' },
{ top: '20px', right: '26px', background: 'radial-gradient(circle, rgba(74,73,235,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #4A49EB', animationDuration: '9s' },
{ width: '200px', height: '200px', top: '251px', left: '1053px', background: 'radial-gradient(circle, rgba(255,72,0,0.65) 0%, rgba(0,0,0,0) 100%)', boxShadow: '0px 0px 5px 0px #FF4800', animationDuration: '10s' },
];
const Wrapper = styled('div')`
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #000;
overflow: hidden;
`;
const BubblesBackground = ({ children }) => {
return (
<Wrapper>
{bubblesStyles.map((style, index) => (
<Bubble key={index} style={style} />
))}
{children}
</Wrapper>
);
};
export default BubblesBackground;