پیشنمایش زنده
کد HTML
<div class="uiverse-logo-wrapper">
<button class="uiverse-logo-button">
<div class="uiverse-logo">
<svg
xmlns="http://www.w3.org/2000/svg"
width="256"
height="256"
viewBox="0 0 256 256"
fill="none"
>
<g clip-path="url(#clip0_123_378)">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M70.1504 207.392C91.8146 224.992 116.842 235.022 143.533 235.022C183.225 235.022 219.257 212.775 245.995 176.542C234.706 161.247 221.764 148.436 207.575 138.751L184.794 150.124C189.69 157.741 192.542 166.809 192.542 176.542C192.542 203.577 170.604 225.491 143.533 225.491C122.499 225.491 104.566 212.252 97.6139 193.666L70.1504 207.38V207.392ZM126.67 179.168C127.216 182.721 128.88 186.025 131.459 188.604C134.656 191.8 139.005 193.595 143.533 193.583C152.957 193.583 160.598 185.953 160.598 176.542C160.598 171.919 158.756 167.724 155.761 164.646L126.682 179.168H126.67Z"
fill="#2BAD72"
></path>
<path
d="M76.3528 176.16L242.405 96.3367L205.91 20.4229L187.062 87.507L164.412 40.3758L145.552 107.46L122.902 60.3287L104.042 127.413L81.3916 80.2816L62.5319 147.366L39.8814 100.235L9.4707 208.318L50.9809 188.365L76.3528 176.172V176.16Z"
fill="#2BAD72"
></path>
</g>
<defs>
<clipPath id="clip0_123_378">
<rect
width="236.512"
height="214.598"
fill="white"
transform="translate(9.4707 20.4229)"
></rect>
</clipPath>
</defs>
</svg>
</div>
<div class="uiverse-glow-effect"></div>
</button>
</div>
کد CSS
.uiverse-logo-wrapper {
--logo-green: #2bad72;
--logo-dark-green: #1d8c59;
--logo-glow: rgba(43, 173, 114, 0.6);
--background: #121212;
display: flex;
justify-content: center;
align-items: center;
min-height: 300px;
min-width: 300px;
background: linear-gradient(to bottom, #121212, #0a1a0a);
font-family: "Arial", sans-serif;
overflow: hidden;
position: relative;
}
.uiverse-logo-wrapper::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background:
linear-gradient(90deg, rgba(43, 173, 114, 0.05) 1px, transparent 1px) 0 0 /
40px 40px,
linear-gradient(0deg, rgba(43, 173, 114, 0.05) 1px, transparent 1px) 0 0 /
40px 40px;
z-index: 0;
}
.uiverse-logo-button {
position: relative;
width: 200px;
height: 200px;
background: transparent;
border: none;
cursor: pointer;
outline: none;
display: flex;
justify-content: center;
align-items: center;
transition: transform 0.3s ease;
padding: 0;
overflow: visible;
z-index: 1;
}
.uiverse-logo-button:hover {
transform: scale(1.05);
}
.uiverse-logo-button:active {
transform: scale(0.95);
}
.uiverse-logo {
position: relative;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 2;
}
.uiverse-logo svg {
width: 100%;
height: 100%;
filter: drop-shadow(0 0 10px var(--logo-glow));
transition:
filter 0.3s ease,
transform 0.3s ease;
animation:
uiverse-initialLoad 1s ease-out,
uiverse-oscillate 6s infinite ease-in-out;
}
.uiverse-logo svg path {
fill: var(--logo-green);
transition:
fill 0.3s ease,
filter 0.3s ease,
transform 0.3s ease;
}
.uiverse-logo-button:hover svg {
filter: drop-shadow(0 0 15px var(--logo-glow));
transform: rotate(2deg);
}
.uiverse-logo-button:hover svg path {
fill: #33cc80;
}
.uiverse-logo-button:active svg {
filter: drop-shadow(0 0 20px var(--logo-glow)) brightness(1.2);
transform: rotate(-2deg) scale(0.9);
transition: transform 0.1s ease;
}
.uiverse-logo-button:active svg path {
fill: #40e090;
}
.uiverse-logo-button:active svg path:first-child {
transform: translateY(-3px);
transition: transform 0.2s ease;
}
.uiverse-logo-button:active svg path:last-child {
transform: translateY(3px);
transition: transform 0.2s ease;
}
.uiverse-glow-effect {
position: absolute;
width: 100%;
height: 100%;
background: radial-gradient(
circle,
rgba(43, 173, 114, 0.2) 0%,
rgba(43, 173, 114, 0) 70%
);
border-radius: 50%;
opacity: 0;
transition: opacity 0.3s ease;
z-index: 1;
}
.uiverse-logo-button:hover .uiverse-glow-effect {
opacity: 0.6;
}
.uiverse-logo-button:active .uiverse-glow-effect {
opacity: 1;
animation: uiverse-pulse 0.5s ease;
}
@keyframes uiverse-pulse {
0% {
transform: scale(1);
opacity: 0.6;
}
50% {
transform: scale(1.2);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 0.6;
}
}
.uiverse-logo-button::before {
content: "";
position: absolute;
top: 50%;
left: 50%;
width: 100%;
height: 100%;
transform: translate(-50%, -50%);
background: radial-gradient(
circle,
rgba(43, 173, 114, 0.1) 0%,
transparent 70%
);
border-radius: 50%;
opacity: 0;
transition: opacity 0.3s ease;
z-index: 0;
}
.uiverse-logo-button:hover::before {
opacity: 1;
}
.uiverse-logo-button:active::before {
animation: uiverse-explode 0.6s ease-out;
}
@keyframes uiverse-explode {
0% {
transform: translate(-50%, -50%) scale(0.5);
opacity: 0;
}
40% {
opacity: 1;
}
100% {
transform: translate(-50%, -50%) scale(2);
opacity: 0;
}
}
@keyframes uiverse-pathGlow {
0% {
filter: drop-shadow(0 0 2px rgba(43, 173, 114, 0.8));
}
30% {
filter: drop-shadow(0 0 5px rgba(43, 173, 114, 0.8));
}
60% {
filter: drop-shadow(0 0 3px rgba(43, 173, 114, 0.8));
}
100% {
filter: drop-shadow(0 0 2px rgba(43, 173, 114, 0.8));
}
}
.uiverse-logo svg path:nth-child(1) {
animation: uiverse-pathGlow 3s infinite ease-in-out;
}
.uiverse-logo svg path:nth-child(2) {
animation: uiverse-pathGlow 4s infinite ease-in-out;
animation-delay: 1s;
}
@keyframes uiverse-initialLoad {
0% {
opacity: 0;
transform: scale(0.8);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes uiverse-oscillate {
0% {
transform: rotate(0deg);
}
25% {
transform: rotate(1deg);
}
50% {
transform: rotate(0deg);
}
75% {
transform: rotate(-1deg);
}
100% {
transform: rotate(0deg);
}
}
.uiverse-logo-button::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 1px solid rgba(43, 173, 114, 0.2);
border-radius: 50%;
box-sizing: border-box;
z-index: 1;
opacity: 0;
transition:
opacity 0.3s ease,
transform 0.3s ease;
}
.uiverse-logo-button:hover::after {
opacity: 1;
transform: scale(1.05);
}