theme merge

This commit is contained in:
Young Vigz 2025-07-07 09:52:36 +02:00
parent ee58c5db82
commit 71dced0dc4
66 changed files with 3147 additions and 2 deletions

4
.gitignore vendored
View File

@ -10,5 +10,5 @@ plugins/*
!plugins/pandaGadzety/**
themes/*
!themes/pandaTheme/
!themes/pandaTheme/**
!themes/panda-theme/
!themes/panda-theme/**

View File

@ -0,0 +1,15 @@
<?php get_header(); ?>
<main class="error">
<div class="error__info">
<div class="error__text">404</div>
<a href="<?php echo esc_url( home_url( '/sklep/' ) ); ?>" class="error__button">
Powrót do sklepu
</a>
</div>
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/404.png" alt="panda_placz" class="error__image" />
</main>
<?php wp_footer(); ?>
</body>
</html>

View File

@ -0,0 +1,24 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
body {
background-color: var(--background);
overflow-x: hidden;
}
a {
text-decoration: none;
color: inherit;
}
.woocommerce-LoopProduct-link .woocommerce-Price-amount {
display: none !important;
}
.single-product__calculator .woocommerce-Price-amount {
display: none !important;
}

View File

@ -0,0 +1,23 @@
.woocommerce {
color: var(--primary);
}
.woocommerce:has(.woocommerce-MyAccount-navigation) {
width: 90%;
margin: 50px auto;
}
.woocommerce-MyAccount-navigation ul {
list-style: none;
}
.woocommerce-MyAccount-navigation li {
background-color: var(--button-color);
width: 50%;
text-align: center;
margin: 10px 0px;
padding: 10px 16px;
border-radius: 10px;
color: var(--white);
}

View File

@ -0,0 +1,131 @@
/* ================ Bestseller ================ */
.bestseller {
display: flex;
flex-direction: column;
align-items: center;
padding-top: 100px;
padding-bottom: 100px;
}
.bestseller__heading {
text-align: center;
margin-bottom: 60px !important;
}
.bestseller__shop-button {
margin-top: 60px;
padding: .75rem 1.5rem;
background: var(--button-color);
color: #fff;
border-radius: 40px;
cursor: pointer;
user-select: none;
transition: all 0.25s ease;
text-decoration: none;
}
.bestseller__shop-button:hover {
background: var(--primary);
}
.bestseller .product-slider {
position: relative;
display: flex;
justify-content: center;
width: 100%;
}
.bestseller .product-slider .slick-dots {
display: none !important;
}
.bestseller .product-slider a {
text-decoration: none;
}
.slick-list {
width: 80%;
}
.slick-track {
display: flex;
justify-content: space-between;
}
.bestseller .product-slider .slide-item {
background: #ffffff;
border-radius: 15px;
padding: 1.5rem;
display: flex;
height: 425px;
flex-direction: column;
color: var(--primary);
margin: 0px 16px;
border: 1px solid #B0D5DE;
}
.bestseller .product-slider .slide-item img {
width: 100%;
height: 180px;
object-fit: contain;
margin-bottom: 1rem;
background: #fff;
}
.slide-item__description {
display: -webkit-box;
line-clamp: 2;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.bestseller .product-slider .slide-item__text {
height: 245px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.bestseller .product-slider .slide-item h2 {
font-size: 1rem;
font-weight: 700;
}
.bestseller .product-slider .slide-item .slide-item__price {
font-size: .9rem;
color: var(--primary);
font-weight: 700;
}
.bestseller .product-slider .slide-item a {
text-align: center;
color: var(--white);
text-decoration: none;
padding: 5px 0px;
border-radius: 38px;
}
.bestseller .slick-prev,
.bestseller .slick-next {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: 10;
}
.bestseller .slick-prev { left: 0px; }
.bestseller .slick-next { right: 0px; }
.bestseller .slider-arrow {
background: #fff;
border: none;
width: 40px;
height: 40px;
border-radius: 50%;
}
@media (min-width: 768px) {
.bestseller .slick-prev { left: 50px; }
.bestseller .slick-next { right: 50px; }
}

View File

@ -0,0 +1,34 @@
/* ================ Breadcrumbs ================ */
.woocommerce-breadcrumb {
display: flex;
align-items: center;
color: #00424B !important;
font-size: 10px !important;
margin-left: 20px !important;
margin-top: 10px !important;
}
@media (min-width: 900px) {
.woocommerce-breadcrumb {
font-size: 16px !important;
margin-left: 50px !important;
margin-top: 20px !important;
}
}
.woocommerce-breadcrumb * {
margin-right: 10px !important;
}
.woocommerce-breadcrumb a {
text-decoration: none;
color: #404041 !important;
}
.woocommerce-breadcrumb .breadcrumb-sep {
color: #404041 !important;
font-size: 24px !important;
}

View File

@ -0,0 +1,9 @@
.btn-primary {
background-color: var(--button-color);
transition: 0.3s ease all;
}
.btn-primary:hover {
background-color: var(--primary);
}

View File

@ -0,0 +1,35 @@
/* ================ Cart ================ */
.woocommerce:has(.woocommerce-cart-form){
width: 90%;
color: var(--primary);
margin: auto;
margin-top: 50px;
}
.checkout-button, .wc-block-components-button{
background-color: var(--button-color) !important;
color: var(--white);
border: 0;
border-radius: 10px;
}
.wc-block-components-product-name {
font-weight: 700;
}
.wp-block-woocommerce-checkout {
width: 90%;
margin: auto !important;
margin-bottom: 50px !important;
}
td.product-thumbnail {
background-color: var(--white);
}
.product-thumbnail img {
width: 100% !important;
height: 200px !important;
object-fit: contain;
}

View File

@ -0,0 +1,233 @@
/* ================ Categories Landing Page ================ */
.hero-uv {
display: none;
align-items: center;
justify-content: center;
margin-top: 40px;
}
.hero-uv__inner {
width: 70%;
display: flex;
justify-content: center;
background-color: var(--white);
padding: 20px 0px 20px 77px;
border-radius: 40px;
}
.hero-uv__text {
width: 50%;
color: var(--primary);
display: flex;
flex-direction: column;
justify-content: space-around;
}
.hero-uv__text h2 {
font-weight: 400;
font-size: 36px;
}
.hero-uv__text p {
font-size: 20px;
}
.hero-uv__text a {
width: 80%;
background-color: var(--button-color);
text-align: center;
padding: 15px 25px;
border-radius: 40px;
color: var(--white);
text-decoration: none;
}
.hero-uv__slider {
width: 50% !important;
}
.hero-uv__slider * {
width: 100%;
}
.hero-uv__slider .slick-dots li button:before {
content: '';
display: inline-block;
width: 8px;
height: 8px;
background-color: #00bcd4;
border-radius: 50%;
opacity: 1;
transition: all .3s ease;
}
.hero-uv__slider .slick-dots li.slick-active button:before {
width: 24px;
height: 8px;
background-color: #00bcd4;
border-radius: 25px;
}
.categories {
width: 75%;
display: flex;
flex-direction: column;
grid-template-columns: repeat(2, 1fr);
gap: 1rem;
margin: auto;
padding-top: 20px;
font-weight: bold;
}
@media (min-width: 430px) {
.categories {
width: 100%;
display: grid;
}
}
.categories__item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-decoration: none;
background: #fff;
padding: 1rem;
border-radius: 40px;
color: var(--white);
height: 200px;
transition: transform 0.3s ease;
font-size: 24px;
}
.categories__item--wide {
grid-column: span 2;
transition: all 0.3s ease;
}
.categories__item--wide:hover {
background-color: var(--white);
color: var(--button-color);
}
.biuro-i-praca {
background-color: var(--yellow);
}
.do-kluczy-i-narzedzi {
background-color: var(--button-color);
}
.do-pisania {
background-color: var(--secondary);
}
.do-zywnosci-i-napojow {
background-color: var(--secondary);
}
.dzieci-i-zabawki {
background-color: var(--button-color);
}
.moda-i-odziez {
background-color: var(--yellow);
}
.torby-i-podroze {
background-color: var(--yellow);
}
.sport-i-wypoczynek {
color: var(--button-color);
}
.sport-i-wypoczynek svg g path {
fill: var(--button-color) !important;
}
.technologia-i-telefon {
color: var(--button-color);
}
.technologia-i-telefon svg path {
fill: var(--button-color) !important;
}
.categories__icon svg {
transform: scale(1.5);
}
.categories__icon svg g path {
fill: var(--white);
}
.categories__icon svg path {
fill: var(--white);
}
.categories__label {
text-align: center;
}
.categories__item--all {
background: var(--white);
color: var(--primary);
transition: all 0.3s ease;
}
.categories__item--all:hover {
background: var(--primary);
color: var(--white);
}
.categories__item--wide {
background-color: var(--button-color);
color: var(--white);
}
.categories__icon svg {
transition: all 0.3s ease;
}
.upscale svg {
transform: scale(2.0);
}
@media (min-width: 768px) {
.hero-uv {
display: flex;
}
.hero-uv__slider {
display: none !important;
}
.hero-uv__text {
width: 90%;
}
.categories {
display: grid;
grid-template-columns: repeat(2, 1fr);
width: 70%;
}
}
@media (min-width: 1024px) {
.categories {
grid-template-columns: repeat(4, 1fr);
}
.hero-uv__slider {
display: block !important;
}
.hero-uv__text {
width: 50%;
}
}

View File

@ -0,0 +1,53 @@
/* ================ Error 404 ================ */
.error {
display: flex;
justify-content: center;
align-items: center;
height: calc(100vh - 80px);
gap: 2rem;
padding: 0 1rem;
box-sizing: border-box;
}
.error__info {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.error__text {
font-weight: bold;
font-size: 128px;
color: #053C45;
}
.error__button {
margin-top: 1rem;
padding: .75rem 1.5rem;
background: var(--button-color);
color: #fff;
border-radius: 40px;
cursor: pointer;
user-select: none;
transition: all 0.25s ease;
text-decoration: none;
}
.error__button:hover {
background: var(--primary);
}
.error__image {
display: none;
}
@media (min-width: 768px) {
.error__image {
display: block;
width: 300px;
max-width: 100%;
}
}

View File

@ -0,0 +1,144 @@
/* ================ Footer ================ */
.founds {
background-color: var(--white);
display: flex;
justify-content: center;
}
.founds img {
max-width: 100%;
max-height: 110px;
}
footer {
background-color: var(--footer-bg);
color: var(--primary);
padding-top: 50px;
padding-bottom: 50px;
display: flex;
justify-content: center;
}
.site-footer__inner {
max-width: 80%;
}
.site-footer__logo {
text-align: center;
margin-bottom: 2.5rem;
}
.site-footer__logo img {
max-width: 150px;
height: auto;
}
.site-footer__info {
display: grid;
grid-template-columns: 1fr;
gap: 1.5rem;
margin-bottom: 2rem;
}
.site-footer__section {
text-align: center;
}
.site-footer__section-header {
font-weight: 600;
margin-bottom: 0.75rem;
}
.site-footer__section-text {
font-size: 0.9rem;
line-height: 1.4;
margin-bottom: 10px;
}
.site-footer__section-text--featured {
font-weight: 600;
}
.site-footer__section-icons svg {
width: 40px;
margin-top: 30px;
}
.site-footer__section-icons svg:last-child {
margin-left: 30px;
}
.site-footer__copyright {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.5rem;
margin-top: 100px;
}
.site-footer__copyright-text,
.site-footer__design-text {
font-size: 0.85rem;
margin: 0;
text-align: center;
}
@media (min-width: 768px) {
.founds img {
max-width: 75vw;
}
.site-footer__logo {
text-align: left;
}
.site-footer__info {
grid-template-columns: repeat(4, 1fr);
gap: 2rem;
margin-bottom: 2.5rem;
}
.site-footer__section {
text-align: left;
}
.site-footer__copyright {
flex-direction: row;
justify-content: space-between;
align-items: center;
margin-top: 150px;
}
.site-footer__copyright-text,
.site-footer__design-text {
text-align: left;
}
}
@media (min-width: 1024px) {
.site-footer__logo img {
max-width: 350px;
}
.site-footer__section-header {
font-size: 30px;
}
.site-footer__section-text {
font-size: 20px;
}
.site-footer__copyright {
margin-top: 200px;
}
.site-footer__copyright-text,
.site-footer__design-text {
font-size: 18px;
}
.shop-sidebar {
height: 800px;
padding: 50px;
border-top-right-radius: 32px;
border-bottom-right-radius: 32px;
}
.shop-products {
margin-left: 50px;
}
}

View File

@ -0,0 +1,256 @@
/* ================ Header ================ */
header {
background-color: var(--white);
}
.site-header__container {
width: 90%;
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px 0px;
margin: auto;
}
.logo {
width: 130px;
height: 60px;
}
.logo img {
width: 100%;
height: 100%;
}
.site-header__utils {
display: flex;
align-items: center;
gap: 36px;
color: var(--white);
}
.site-header__utils a {
text-decoration: none;
color: white;
}
.site-header__search {
display: none;
flex: 1;
max-width: 400px;
background: #F5F5F5;
border-radius: 10px;
overflow: hidden;
border: 1px solid #D6E9EE;
}
.site-header__search-input {
flex: 1;
border: none;
padding: 12px 0px;
font-size: 1rem;
background: #F5F5F5;
color: var(--button-color);
}
.site-header__search-input::placeholder {
color: var(--button-color);
}
.site-header__search-button {
display: flex;
justify-content: center;
align-items: center;
border: none;
background: transparent;
padding: 0 16px;
cursor: pointer;
font-size: 1.1rem;
}
.site-header__dropcat,
.site-header__shop {
display: none;
padding: 16px 26px;
border-radius: 10px;
white-space: nowrap;
font-weight: 500;
cursor: pointer;
user-select: none;
}
.site-header__dropcat { background-color: var(--button-color); }
.site-header__shop { background-color: var(--secondary); }
.site-header__info {
display: flex;
gap: 16px;
}
.site-header__info-account,
.site-header__info-cart {
position: relative;
width: 56px;
height: 56px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 10px;
background-color: var(--button-color);
padding: 16px 16px;
}
.info-cart__count {
width: 32px;
height: 32px;
position: absolute;
display: flex;
justify-content: center;
align-items: center;
top: 0;
right: 0;
transform: translateY(-45%) translateX(45%);
background-color: var(--secondary);
padding: 8px;
border-radius: 50%;
}
.site-header__search-suggestions {
position: absolute;
background: #fff;
border: 1px solid #ddd;
width: 100%;
max-width: 300px;
z-index: 999;
list-style: none;
margin: 0;
padding: 0;
display: none;
}
.site-header__search-suggestions li {
color: var(--button-color);
padding: .5em;
}
.site-header__search-suggestions li a {
display: flex;
align-items: center;
text-decoration: none;
color: inherit;
}
.site-header__search-suggestions img {
width: 30px;
height: auto;
margin-right: .5em;
}
.site-header__search-suggestions li:hover {
background: #f5f5f5;
}
.site-header__cats {
display: none;
justify-content: center;
background-color: var(--primary);
padding-top: 10px;
padding-bottom: 10px;
}
.site-header__cats-list {
width: 90%;
display: flex;
padding: 0;
justify-content: space-around;
}
.site-header__cats-item {
list-style-type: none;
}
.site-header__cats-link {
color: var(--white);
text-decoration: none;
font-size: 16px;
}
.site-header__cats-separator {
color: var(--white);
opacity: 20%;
}
.site-header__cats-list .site-header__cats-separator:last-child {
display: none;
}
.dropcats {
max-height: 0;
opacity: 0;
overflow: hidden;
transition: max-height 0.5s ease, opacity 0.5s ease, padding 0.5s ease;
position: absolute;
right: 0;
width: 70%;
background-color: #F5F5F5;
padding: 0 30px;
border-radius: 0 0 12px 12px;
justify-content: space-around;
z-index: 9999;
display: flex;
}
.dropcats.dropcats_active {
max-height: 1000px;
opacity: 1;
padding: 30px;
}
.dropcats__categories {
display: grid;
grid-template-columns: repeat(2, 1fr); /* 2 kolumny o równej szerokości */
grid-auto-rows: auto;
list-style: none;
padding: 0;
margin: 0;
gap: 10px 100px;
color: #053C45;
}
.dropcats__categories li a{
display: flex;
gap: 5px;
}
.dropcats__close svg {
cursor: pointer;
}
@media (min-width: 768px) {
.logo {
width: 170px;
height: 80px;
}
.site-header__cats {
display: flex;
}
.site-header__search {
display: flex;
}
}
@media (min-width: 1024px) {
.site-header_navigation {
display: flex;
gap: 12px;
}
.site-header__dropcat,
.site-header__shop {
display: block;
}
}

View File

@ -0,0 +1,129 @@
/* ================ Hero ================ */
.section-main {
min-height: 100vh;
padding-top: 20px;
padding-bottom: 20px;
}
.hero {
display: flex;
justify-content: center;
align-items: center;
}
.hero__media {
display: none;
}
.hero__content {
width: 420px;
}
.hero__heading {
font-size: 1.4rem;
font-weight: 400;
color: var(--primary);
margin-bottom: 1rem;
}
.hero__heading--bold {
font-weight: 600;
}
.hero__heading--highlight {
color: var(--secondary);
}
.hero__description {
font-size: 1rem;
margin-bottom: 2rem;
color: var(--primary);
text-align: justify;
}
.hero__description--highlight {
font-weight: 600;
}
.hero__feature {
display: flex;
align-items: center;
gap: 1rem;
background-color: var(--white);
padding: 1rem;
margin-bottom: 1rem;
border-radius: 1rem;
}
.hero__icon {
width: 4rem;
height: 4rem;
background-color: var(--button-color);
color: var(--white);
border-radius: 1rem;
display: flex;
align-items: center;
justify-content: center;
padding: 10px;
}
.hero__icon--yellow {
background-color: var(--yellow);
}
.hero__icon--blue {
background-color: var(--secondary);
}
.hero__feature-text {
font-weight: 600;
color: var(--primary);
font-size: 1rem;
}
@media (min-width: 1024px) {
.hero {
justify-content: left;
}
.hero__media {
display: block;
width: 50%;
}
.hero__media img {
width: 100%;
}
.hero__content {
width: 40%;
margin-left: 50px;
}
.hero__heading {
font-size: 40px;
}
}
.upscale-anim svg {
animation: svgAnim 3s ease infinite;
}
@keyframes svgAnim {
0% {
transform: scale(1.0);
}
10% {
transform: scale(1.20);
}
20% {
transform: scale(0.75);
}
30% {
transform: scale(1.0);
}
100% {
transform: scale(1.0);
}
}

View File

@ -0,0 +1,109 @@
/* ================ Shop Filters Widget ================ */
.shop-sidebar {
background: #00424B;
color: var(--white);
padding: 30px;
}
.active-cat {
color: var(--yellow) !important;
}
.widget .wp-block-heading {
border-bottom: 0.5px solid white;
padding-bottom: 10px;
margin-top: 40px !important;
}
.widget .wp-block-heading:first-child {
margin-bottom: 20px;
}
.widget .wp-block-heading::after {
content: "^";
float: right;
font-size: 20px;
}
.wc-block-product-categories-list-item__name::after {
content: ">";
float: right;
font-size: 20px;
}
.wc-block-product-categories-list li {
margin-top: 10px;
}
.wc-block-product-filter-price-slider .text input[type=text] {
background-color: transparent;
color: var(--white);
}
.wc-block-product-filter-price-slider__range .range-bar {
background: var(--yellow) !important;
}
.widget ul {
list-style-type: none;
padding: 0;
}
.wp-block-search__inside-wrapper {
background-color: transparent;
border: 1px solid var(--white);
padding: 10px 16px;
border-radius: 12px;
}
.wp-block-search__inside-wrapper button {
background: transparent;
border: none;
}
.wp-block-search__inside-wrapper button svg {
color: var(--white);
}
.wp-block-search__input {
background: transparent;
color: var(--white);
}
.wp-block-search__input::placeholder {
color: var(--white);
}
.wc-block-product-categories-list-item-count {
display: none;
}
@media (min-width: 768px) {
.shop-sidebar {
flex: 0 0 250px;
display: block;
height: 800px;
padding: 30px;
border-top-right-radius: 32px;
border-bottom-right-radius: 32px;
}
.shop-sidebar a{
color: var(--white);
}
.widget ul a {
text-decoration: none;
}
.shop-products {
margin-left: 30px;
margin-right: 50px;
}
}

View File

@ -0,0 +1,155 @@
/* ================ Shop Products Page ================ */
.shop-layout {
gap: 20px;
margin-bottom: 50px;
}
@media (min-width: 768px) {
.shop-layout {
display: flex;
}
}
.shop-products {
flex: 1 1 auto;
min-width: 0;
margin-bottom: 20px;
}
.shop-products__header {
display: flex;
justify-content: space-between;
background: transparent !important;
margin-bottom: 20px;
}
.shop-products__header-title {
font-size: 24px;
color: #053C45;
font-weight: 500;
}
.shop-products .product {
display: flex;
justify-content: space-around;
flex-direction: column;
background-color: var(--white);
border: 1px solid #B0D5DE;
border-radius: 24px;
padding: 20px !important;
height: 450px;
overflow: hidden;
}
@media (min-width: 764px) {
.shop-products .product {
height: 400px;
}
}
.shop-products .products .product img {
width: 100% !important;
height: 180px !important;
object-fit: contain;
display: block;
margin-bottom: 1rem;
}
.product-short-description {
display: -webkit-box;
line-clamp: 2;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.shop-products .product a, .shop-products .product span {
color: #053C45 ;
}
.view-product {
width: 100%;
background-color: #0F6472;
text-align: center;
color: var(--white) !important;
padding: 5px 24px;
border-radius: 38px;
}
.orderby {
width: 190px;
background-color: transparent;
border: 1px solid #0F6472;
border-radius: 10px;
color: #053C45;
padding: 8px 12px;
}
.woocommerce-LoopProduct-link p {
color: #053C45 !important;
}
.shop-pagination {
float: right;
}
.custom-pagination {
display: flex;
gap: 10px;
list-style: none;
color: #053C45;
justify-content: center;
align-items: center;
}
.prev,
.next {
display: none;
font-weight: 700;
border: 1px solid #0F6472;
padding: 10px 16px;
border-radius: 123px;
}
@media (min-width: 1024px) {
.prev,
.next {
display: block;
}
}
.active {
display: flex;
justify-content: center;
align-items: center;
width: 25px;
height: 25px;
background-color: var(--yellow);
border-radius: 123px;
color: var(--white) !important;
}
.shop-products ul.products {
display: grid !important;
grid-template-columns: repeat(2, 1fr) !important;
gap: 20px !important;
}
.shop-products ul.products li {
margin: 0 !important;
width: 100% !important;
}
.shop-products ul.products::before,
.shop-products ul.products::after {
display: none;
}
@media (min-width: 1300px) {
.shop-products ul.products {
grid-template-columns: repeat(4, 1fr) !important;
}
}

View File

@ -0,0 +1,360 @@
/* ================ Single Product ================ */
.single-product__top {
width: 90%;
gap: 2rem;
margin: auto;
}
@media (min-width: 764px) {
.single-product__top {
display: flex;
}
}
.single-product__gallery {
flex: 1;
}
.single-product__thumbnails {
display: flex;
gap: .5rem;
margin-top: 1rem;
}
.single-product__thumbnails img {
width: 100%;
height: 300px;
object-fit: contain;
object-position: center;
background-color: var(--white);
border-radius: 8px;
}
.single-product__calculator {
width: 100%;
flex: 1;
background: var(--white);
padding: 2rem;
border-radius: 16px;
color: #053C45 !important;
}
.single-product__calculator label {
display: block;
margin-top: 1rem;
font-weight: 500;
}
.single-product__calculator select,
.single-product__calculator input[type="number"],
.single-product__calculator input[type="file"] {
width: 100%;
padding: .5rem;
margin-top: .25rem;
border: 1px solid #ccc;
border-radius: 8px;
}
.calculator-results {
margin-top: 1.5rem;
border-top: 1px solid #eee;
padding-top: 1rem;
}
.calculator-results > div {
display: flex;
justify-content: space-between;
margin-bottom: .5rem;
}
.single-product__calculator-header {
border-bottom: 1px solid #CECECE;
padding-bottom: 20px;
}
.custom-header {
font-weight: 700;
color: #053C45;
font-size: 32px;
}
.product-name__header {
font-weight: 600;
color: #9D9D9D;
font-size: 14px;
margin: 16px 0px;
}
.product-title {
font-weight: 700;
font-size: 24px;
color: #053C45;
margin-bottom: 16px;
}
.single-product__options {
margin-bottom: 16px;
border-bottom: 1px solid #CECECE;
}
.single-product__options label {
margin-bottom: 5px;
font-weight: 600;
font-size: 18px;
color: #053C45;
}
.single-product__options select {
width: 40%;
}
.single-product__options p {
width: 40%;
margin: 16px 0px;
background-color: #053C45;
color: var(--white);
font-size: 16px;
font-weight: 600;
text-align: center;
padding: 10px 16px;
border-radius: 8px;
}
.title {
font-weight: 700;
font-size: 26px;
color: #053C45;
}
.product-name__title {
margin: 10px 0px;
}
#product-name {
font-size: 24px;
}
.price-wrapper {
display: block;
justify-content: space-between;
}
.entry-title
{
display: none;
}
.labeling_summary {
width: 100%;
}
.price {
width: 100%;
}
@media (min-width: 1024px) {
.price-wrapper {
display: flex;
}
.labeling_summary {
width: 55%;
}
.price {
width: 40%;
}
}
.price p {
font-weight: 600;
}
.price span {
display: block;
width: 100%;
font-weight: 400;
font-size: 12px;
text-align: justify;
margin-top: 10px;
}
#photo::file-selector-button {
background-color: #053C45;
color: var(--white);
padding: 8px 14px;
border-radius: 8px;
border: none;
cursor: pointer;
}
.labeling_summary p {
font-weight: 600;
font-size: 24px;
margin-top: 10px;
}
.labeling_summary table {
width: 100%;
margin-bottom: 20px;
}
.labeling_summary td:last-child {
float: right;
}
.add-to-cart input {
width: 100%;
background-color: #0F6472;
color: var(--white);
cursor: pointer;
padding: 10px 12px;
border-radius: 40px;
border: none;
}
.product-info-card {
margin: 2rem auto;
background: #fff;
border-radius: 1.5rem;
overflow: hidden;
color: #053C45;
}
.product-info-card__header {
padding: 1.5rem 2rem;
}
.product-info-card__header h2 {
margin: 0 0 .5rem;
font-size: 1.75rem;
font-weight: 700;
}
.product-info-card__header p {
margin: 0;
font-size: 1rem;
line-height: 1.4;
}
.product-info-card__details {
padding: 0 2rem 2rem;
}
.product-info-card__details h3 {
margin-top: 1rem;
font-size: 1.25rem;
border-bottom: 1px solid #dfe6e7;
padding-bottom: .5rem;
}
.product-info-table {
width: 100%;
border-collapse: collapse;
margin-top: 1rem;
}
.product-info-table td {
padding: .75rem 1rem;
font-size: 1rem;
}
.product-info-table tr:nth-child(odd) { background: #f7fafb; }
.product-info-table tr:nth-child(even){ background: #fff; }
.product-info-table tr:first-child td { font-weight: 600; }
#stock {
background-color: #053C45;
color: var(--white);
padding: 10px 16px;
border-radius: 8px;
margin-top: 20px;
}
.options {
width: 50%;
}
.slick-track {
margin-top: 10px;
}
.product-image {
max-width: 100px !important;
max-height: 100px !important;
object-fit: contain !important;
object-position: center !important;
background-color: var(--white) !important;
border-radius: 10px;
}
.unavailable {
background-color: var(--yellow) !important;
cursor: default !important;
}
/* ================ Single Product Gallery ================ */
.single-product__gallery {
position: relative;
overflow: hidden;
}
.single-product__images {
width: 100%;
max-height: 400px;
}
.single-product__images .slick-track {
display: flex;
align-items: center;
}
.single-product__images .slick-slide {
padding: 10px;
}
.single-product__images .slick-slide img {
max-width: 100%;
max-height: 350px;
width: auto;
height: auto;
margin: 0 auto;
object-fit: contain;
}
.slick-arrow {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: 10;
background: rgba(255, 255, 255, 0.7);
border: none;
width: 40px;
height: 40px;
border-radius: 50%;
font-size: 0;
cursor: pointer;
}
.slick-prev {
left: 10px;
}
.slick-next {
right: 10px;
}
.slick-arrow::before {
content: "";
display: block;
width: 15px;
height: 15px;
border-top: 3px solid #053C45;
border-left: 3px solid #053C45;
margin: 0 auto;
}
.slick-prev::before {
transform: rotate(-45deg);
margin-right: 2px;
}
.slick-next::before {
transform: rotate(135deg);
margin-left: 2px;
}
.single-product__images .slick-list {
width: 100%;
}

View File

@ -0,0 +1,24 @@
/* ================ Variables ================ */
@import "variables.css";
@import "base.css";
/* ================ Landing Page ================ */
@import "./components/header.css";
@import "./components/categories-main.css";
@import "./components/bestseller.css";
@import "./components/hero.css";
@import "./components/footer.css";
/* ================ Error Page ================ */
@import "./components/error404.css";
/* ================ Shop Page ================ */
@import "./components/breadcrumbs.css";
@import "./components/shop-filters.css";
@import "./components/shop-products.css";
@import "./components/shop-single-product.css";
@import "./components/cart.css";
@import "./components/account.css";
/* ================ Utils ================ */
@import "./components/buttons.css";

View File

@ -0,0 +1,16 @@
@import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');
:root {
/* breakpoints */
--breakpoint-md: 768px;
--breakpoint-lg: 1024px;
/* colors */
--white: #ffffff;
--primary: #094654;
--secondary: #00B4E1;
--yellow: #ffab0a;
--footer-bg: #92CDDB;
--background: #DDE9EC;
--button-color:#0F6472;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,3 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.5 22.5L22.5 7.5M7.5 7.5L22.5 22.5" stroke="#094654" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 233 B

View File

@ -0,0 +1,13 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30_1569)">
<path d="M2.94044 0.10614H1.45189C0.703011 0.10614 0.09375 0.715401 0.09375 1.46428V22.5605C0.09375 23.3094 0.703011 23.9186 1.45189 23.9186H2.94044V0.10614Z" fill="#00B4E1"/>
<path d="M15.232 0.10614H3.69043V23.9186H15.232C15.9809 23.9186 16.5901 23.3094 16.5901 22.5605V1.46428C16.5901 0.715401 15.9809 0.10614 15.232 0.10614Z" fill="#00B4E1"/>
<path d="M18.3945 20.3166C18.3945 20.993 18.6403 21.6454 19.0866 22.1536L19.9009 23.0809V23.5437C19.9009 23.7508 20.0688 23.9187 20.2759 23.9187C20.483 23.9187 20.6509 23.7508 20.6509 23.5437V23.0809L21.4651 22.1536C21.9114 21.6454 22.1572 20.993 22.1572 20.3166V4.37494H18.3945V20.3166Z" fill="#00B4E1"/>
<path d="M22.8819 2.87559H22.1572V1.46428C22.1572 0.715401 21.548 0.10614 20.7991 0.10614H19.7527C19.0038 0.10614 18.3945 0.715401 18.3945 1.46428V3.62492H22.4471C22.4515 3.62492 22.4558 3.62544 22.4602 3.62559H22.8819C23.0333 3.62559 23.1564 3.7487 23.1564 3.90002V7.60218C23.1564 7.8093 23.3243 7.97718 23.5314 7.97718C23.7385 7.97718 23.9064 7.8093 23.9064 7.60218V3.90002C23.9064 3.33514 23.4468 2.87559 22.8819 2.87559Z" fill="#00B4E1"/>
</g>
<defs>
<clipPath id="clip0_30_1569">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,8 @@
<svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M25.5549 29.4049C26.0974 29.4049 26.5371 28.9635 26.5371 28.4189C26.5371 27.8743 26.0974 27.4329 25.5549 27.4329C25.0124 27.4329 24.5727 27.8743 24.5727 28.4189C24.5727 28.9635 25.0124 29.4049 25.5549 29.4049Z" fill="white"/>
<path d="M25.1514 35.3419L20.641 39.566V41.2374H31.1341L25.2575 35.3478C25.2437 35.3336 25.2252 35.3252 25.2056 35.3241C25.1859 35.323 25.1666 35.3293 25.1514 35.3419Z" fill="white"/>
<path d="M20.641 36.8693L23.8116 33.9003C24.1983 33.5363 24.7112 33.3381 25.2412 33.3481C25.7713 33.358 26.2765 33.5753 26.6493 33.9536L29.0941 36.4058L31.7667 33.9023C32.154 33.5435 32.664 33.348 33.1909 33.3562C33.7179 33.3645 34.2215 33.5759 34.5975 33.9466L36.3566 35.7077V23.4888H20.641V36.8693ZM25.5521 25.4608C26.1349 25.4608 26.7047 25.6343 27.1892 25.9594C27.6738 26.2844 28.0515 26.7464 28.2745 27.2869C28.4976 27.8274 28.5559 28.4222 28.4422 28.996C28.3285 29.5699 28.0479 30.0969 27.6358 30.5106C27.2237 30.9243 26.6986 31.2061 26.127 31.3202C25.5554 31.4343 24.9629 31.3758 24.4245 31.1519C23.8861 30.928 23.4259 30.5488 23.1021 30.0624C22.7783 29.5759 22.6055 29.004 22.6055 28.4189C22.6055 27.6344 22.9159 26.882 23.4685 26.3272C24.0211 25.7725 24.7706 25.4608 25.5521 25.4608Z" fill="white"/>
<path d="M33.1079 35.3428L30.4873 37.799L33.9163 41.2373H36.3591V38.4922L33.2159 35.3487C33.2019 35.3344 33.183 35.3259 33.163 35.3248C33.1431 35.3237 33.1234 35.3301 33.1079 35.3428Z" fill="white"/>
<path d="M28.4988 7.71236C29.7172 7.70854 30.8905 7.24917 31.7898 6.42386C32.6891 5.59855 33.2499 4.46651 33.3627 3.24858C31.7716 3.63814 30.1359 3.8129 28.4988 3.76822C26.8609 3.81572 25.2242 3.63925 23.6338 3.24365C23.7459 4.46246 24.3064 5.59559 25.206 6.42186C26.1055 7.24812 27.2795 7.70823 28.4988 7.71236Z" fill="white"/>
<path d="M13.7671 5.22351C12.8396 5.48472 12.0094 6.01461 11.3803 6.74693L1.4971 18.2411C1.17365 18.6197 0.997148 19.1026 1.00003 19.6014C1.00292 20.1001 1.185 20.581 1.51281 20.9557L5.30519 25.2637C5.57238 25.5675 5.92276 25.7856 6.31263 25.8908C6.7025 25.996 7.1146 25.9837 7.49752 25.8553L10.8204 24.7499V19.5447C10.8204 19.2832 10.9239 19.0324 11.1081 18.8474C11.2923 18.6625 11.5421 18.5586 11.8026 18.5586C12.0631 18.5586 12.313 18.6625 12.4972 18.8474C12.6814 19.0324 12.7848 19.2832 12.7848 19.5447V57.014C12.7848 57.2755 12.8883 57.5263 13.0725 57.7112C13.2567 57.8961 13.5066 58 13.7671 58H43.2339C43.4944 58 43.7442 57.8961 43.9284 57.7112C44.1126 57.5263 44.2161 57.2755 44.2161 57.014V19.5447C44.2161 19.2832 44.3196 19.0324 44.5038 18.8474C44.688 18.6625 44.9378 18.5586 45.1983 18.5586C45.4588 18.5586 45.7086 18.6625 45.8928 18.8474C46.077 19.0324 46.1805 19.2832 46.1805 19.5447V24.7499L49.5024 25.8553C49.8857 25.9848 50.2985 25.9978 50.6891 25.8925C51.0797 25.7873 51.4306 25.5685 51.6977 25.2637L55.4881 20.9527C55.8155 20.5779 55.9973 20.0972 56 19.5987C56.0027 19.1002 55.8262 18.6175 55.5028 18.2392L45.6207 6.74693C44.9916 6.01457 44.1614 5.48466 43.2339 5.22351L35.3652 3C35.3085 4.78728 34.5623 6.48253 33.2841 7.72792C32.0058 8.97331 30.2955 9.6714 28.5143 9.67486C26.733 9.67831 25.0201 8.98686 23.737 7.74643C22.454 6.50601 21.7012 4.81367 21.6376 3.02662L13.7671 5.22351ZM14.7493 19.5447C14.7493 19.0216 14.9563 18.52 15.3247 18.1502C15.6931 17.7804 16.1927 17.5726 16.7137 17.5726H19.6604C19.9209 17.5726 20.1708 17.6765 20.355 17.8614C20.5392 18.0463 20.6427 18.2971 20.6427 18.5586C20.6427 18.8201 20.5392 19.0709 20.355 19.2559C20.1708 19.4408 19.9209 19.5447 19.6604 19.5447H16.7137V22.5028C16.7137 22.7643 16.6103 23.0151 16.4261 23.2C16.2419 23.3849 15.992 23.4888 15.7315 23.4888C15.471 23.4888 15.2212 23.3849 15.037 23.2C14.8528 23.0151 14.7493 22.7643 14.7493 22.5028V19.5447ZM19.6604 47.1536H16.7137C16.1927 47.1536 15.6931 46.9459 15.3247 46.576C14.9563 46.2062 14.7493 45.7046 14.7493 45.1816V42.2235C14.7493 41.9619 14.8528 41.7111 15.037 41.5262C15.2212 41.3413 15.471 41.2374 15.7315 41.2374C15.992 41.2374 16.2419 41.3413 16.4261 41.5262C16.6103 41.7111 16.7137 41.9619 16.7137 42.2235V45.1816H19.6604C19.9209 45.1816 20.1708 45.2854 20.355 45.4704C20.5392 45.6553 20.6427 45.9061 20.6427 46.1676C20.6427 46.4291 20.5392 46.6799 20.355 46.8648C20.1708 47.0497 19.9209 47.1536 19.6604 47.1536ZM42.2516 45.1816C42.2516 45.7046 42.0447 46.2062 41.6763 46.576C41.3078 46.9459 40.8082 47.1536 40.2872 47.1536H37.3405C37.08 47.1536 36.8302 47.0497 36.646 46.8648C36.4618 46.6799 36.3583 46.4291 36.3583 46.1676C36.3583 45.9061 36.4618 45.6553 36.646 45.4704C36.8302 45.2854 37.08 45.1816 37.3405 45.1816H40.2872V42.2235C40.2872 41.9619 40.3907 41.7111 40.5749 41.5262C40.7591 41.3413 41.0089 41.2374 41.2694 41.2374C41.5299 41.2374 41.7797 41.3413 41.9639 41.5262C42.1481 41.7111 42.2516 41.9619 42.2516 42.2235V45.1816ZM37.3405 17.5726H40.2872C40.8082 17.5726 41.3078 17.7804 41.6763 18.1502C42.0447 18.52 42.2516 19.0216 42.2516 19.5447V22.5028C42.2516 22.7643 42.1481 23.0151 41.9639 23.2C41.7797 23.3849 41.5299 23.4888 41.2694 23.4888C41.0089 23.4888 40.7591 23.3849 40.5749 23.2C40.3907 23.0151 40.2872 22.7643 40.2872 22.5028V19.5447H37.3405C37.08 19.5447 36.8302 19.4408 36.646 19.2559C36.4618 19.0709 36.3583 18.8201 36.3583 18.5586C36.3583 18.2971 36.4618 18.0463 36.646 17.8614C36.8302 17.6765 37.08 17.5726 37.3405 17.5726ZM36.3583 21.5167C36.8793 21.5167 37.3789 21.7245 37.7474 22.0943C38.1158 22.4642 38.3227 22.9658 38.3227 23.4888V41.2374C38.3227 41.7604 38.1158 42.262 37.7474 42.6319C37.3789 43.0017 36.8793 43.2095 36.3583 43.2095H20.6427C20.1216 43.2095 19.622 43.0017 19.2536 42.6319C18.8852 42.262 18.6782 41.7604 18.6782 41.2374V23.4888C18.6782 22.9658 18.8852 22.4642 19.2536 22.0943C19.622 21.7245 20.1216 21.5167 20.6427 21.5167H36.3583Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1,3 @@
<svg width="21" height="19" viewBox="0 0 21 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.65283 1.28143H2.28819C3.35771 1.28143 4.25566 2.08675 4.37164 3.14996L5.22145 10.9399C5.33743 12.0031 6.23538 12.8084 7.3049 12.8084H16.3717C17.3297 12.8084 18.1658 12.1588 18.4025 11.2305L19.8486 5.56014C20.1865 4.23499 19.1853 2.94644 17.8178 2.94644H5.42529M5.45123 16.607H6.23716M5.45123 17.3929H6.23716M16.9782 16.607H17.7641M16.9782 17.3929H17.7641M6.89235 17C6.89235 17.5787 6.42319 18.0479 5.84445 18.0479C5.26571 18.0479 4.79654 17.5787 4.79654 17C4.79654 16.4213 5.26571 15.9521 5.84445 15.9521C6.42319 15.9521 6.89235 16.4213 6.89235 17ZM18.4193 17C18.4193 17.5787 17.9501 18.0479 17.3714 18.0479C16.7927 18.0479 16.3235 17.5787 16.3235 17C16.3235 16.4213 16.7927 15.9521 17.3714 15.9521C17.9501 15.9521 18.4193 16.4213 18.4193 17Z" stroke="white" stroke-width="1.88623" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 922 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 KiB

View File

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.7114 8.2875L15.4576 6.285L14.1301 8.03625C14.1301 8.77125 13.9989 9.50625 13.7401 10.215C13.4589 10.9913 13.0314 11.6925 12.4951 12.285L13.8489 17.01L16.3726 16.2863L14.9251 11.2388L18.5289 10.2038L19.9764 15.2513L22.5001 14.5275L20.7114 8.2875Z" fill="#00B4E1"/>
<path d="M9.98266 2.88001C10.0089 2.85376 10.0314 2.83126 10.0577 2.80501C10.1027 2.76001 10.1514 2.72251 10.2002 2.68126C10.2339 2.65126 10.2677 2.62501 10.3052 2.59501C10.3502 2.56126 10.3989 2.52751 10.4439 2.49376C10.4889 2.46376 10.5302 2.43376 10.5752 2.40751C10.6202 2.38126 10.6652 2.35501 10.7102 2.32876C10.7852 2.28751 10.8564 2.24626 10.9352 2.20876C11.7527 1.82626 12.6714 1.78876 13.5227 2.09626C14.3927 2.41126 15.0639 3.06376 15.4352 3.87001L15.2027 3.78376C14.8914 3.66376 14.5389 3.76501 14.3364 4.03126L13.4552 5.19751C13.4814 5.24251 13.5039 5.29126 13.5264 5.34001C13.7627 5.85001 13.9314 6.38626 14.0252 6.92626L15.1952 5.38501L21.3264 7.72126L21.8627 6.31876L16.3614 4.22251C16.0202 2.92876 15.0714 1.86001 13.7777 1.39126C12.7389 1.01251 11.6177 1.06126 10.6164 1.53001C10.5602 1.55626 10.5114 1.58626 10.4552 1.61251C10.4477 1.61251 10.4402 1.61251 10.4327 1.62001C10.4027 1.63501 10.3727 1.65751 10.3427 1.67251C10.2864 1.70251 10.2302 1.73626 10.1777 1.77001C10.1214 1.80376 10.0689 1.84126 10.0164 1.87501C9.96016 1.91626 9.90016 1.95376 9.84391 1.99876C9.79891 2.03251 9.75766 2.06626 9.71641 2.10376C9.65641 2.15251 9.60016 2.20126 9.54391 2.25376C9.51016 2.28751 9.47641 2.32126 9.43891 2.35501C9.38266 2.41126 9.32266 2.47126 9.27016 2.53126C9.24766 2.55376 9.22891 2.58001 9.21016 2.60251C6.42016 1.84876 3.46891 3.34126 2.46016 6.10501C1.62391 8.40376 2.38516 10.8938 4.17016 12.3675L3.49516 14.2238L3.94516 15.1838L2.98516 15.6338L3.43516 16.5938L2.47516 17.0438L2.92516 18.0038L1.96516 18.4538L1.50391 19.725L2.49766 22.4813L5.02891 21.0075L7.70641 13.6538C10.0239 13.6725 12.2064 12.2588 13.0427 9.95626C14.0664 7.14376 12.7014 4.05001 9.99016 2.87626L9.98266 2.88001ZM9.83266 5.60251C9.61891 6.18751 8.97391 6.48751 8.38891 6.27376C7.80391 6.06001 7.50391 5.41501 7.71766 4.83001C7.83766 4.50376 8.09266 4.27126 8.39266 4.16251C8.32516 4.40626 8.26891 4.65376 8.24641 4.90501C8.22766 5.11126 8.38141 5.29501 8.58766 5.31376C8.79391 5.33251 8.97766 5.17876 8.99641 4.97251C9.02266 4.69876 9.08266 4.42876 9.17266 4.16626C9.74641 4.38376 10.0427 5.02126 9.83266 5.60251Z" fill="#00B4E1"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,13 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30_1563)">
<path d="M17.8693 5.46392L18.5738 4.58198C19.5392 3.37651 19.3435 1.61525 18.1354 0.649825L18.0911 0.613296C16.8856 -0.352132 15.1244 -0.156437 14.1589 1.05165L13.457 1.93097L17.8693 5.46392Z" fill="#00B4E1"/>
<path d="M13.5821 12.8767C13.6056 13.0906 13.7126 13.2942 13.8926 13.4403C14.2553 13.7299 14.785 13.6725 15.0746 13.3098L19.9148 7.25635C20.2097 6.88844 20.1444 6.34833 19.7661 6.06131C19.4008 5.78473 18.8763 5.863 18.5893 6.22047L18.117 6.81017L17.3081 6.16307L17.3108 6.16046L12.9011 2.62491L1.61865 16.728L6.03092 20.2609L16.2618 7.47553L17.0707 8.12262L13.7622 12.2583C13.6161 12.4383 13.5587 12.6627 13.5821 12.8767Z" fill="#00B4E1"/>
<path d="M5.29769 20.9132L1.14114 17.5838C1.07329 17.816 1.03937 18.0195 1.03937 18.0195L0.0869936 22.5805C0.0191527 22.9093 0.353138 23.1781 0.658422 23.0372L4.90108 21.1063C4.89847 21.1063 5.08634 21.028 5.29769 20.9132Z" fill="#00B4E1"/>
<path d="M23.3171 21.7299C23.2806 21.7299 23.2467 21.7325 23.2101 21.7378L16.7992 22.5675C16.4704 22.6093 16.2408 22.2492 16.4182 21.9674C16.5147 21.8187 16.6087 21.6673 16.7026 21.516C16.9505 21.1142 16.6191 20.5793 16.1599 20.5793C16.1286 20.5793 16.0973 20.5819 16.0633 20.5871L7.66152 21.85L6.65695 22.0013L3.91722 22.4136C3.60672 22.4606 3.39798 22.7241 3.42407 23.0398C3.43451 23.1807 3.49191 23.3138 3.58324 23.4129C3.69022 23.5304 3.83895 23.5956 4.00072 23.5956C4.03203 23.5956 4.06334 23.593 4.09726 23.5878L14.1116 22.0822C14.4535 22.03 14.6883 22.4162 14.4873 22.698C14.4221 22.7867 14.3569 22.878 14.2917 22.9668C14.1116 23.212 14.1534 23.6217 14.3621 23.833C14.4691 23.9426 14.6048 24 14.7483 24C14.764 24 14.7822 24 14.7979 23.9974H14.8005H14.8031L23.4476 22.8963H23.4502H23.4528C23.6015 22.8728 23.732 22.7867 23.8181 22.6536C23.9121 22.5075 23.946 22.3275 23.9042 22.1657C23.8363 21.9021 23.6067 21.7299 23.3171 21.7299Z" fill="#00B4E1"/>
</g>
<defs>
<clipPath id="clip0_30_1563">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.4544 5.12332H19.1425V1.09863C19.1425 0.492627 18.6492 0 18.0424 0H2.60004C1.99324 0 1.5 0.492627 1.5 1.09863V19.6436C1.5 21.2186 2.78263 22.5 4.36009 22.5H16.2823C17.8593 22.5 19.1424 21.2186 19.1424 19.6436V17.3767H20.4544C22.4094 17.3767 24 15.7882 24 13.8357V8.66434C24 6.71181 22.4094 5.12332 20.4544 5.12332ZM14.5157 11.0087L11.4884 15.0196C10.9035 15.7947 9.73904 15.7949 9.15409 15.0196L6.12678 11.0087C4.88186 9.35978 6.00123 6.97755 8.05712 6.90117C8.95387 6.86821 9.77626 7.25757 10.3214 7.89521C10.8446 7.28306 11.6226 6.89941 12.4789 6.89941C14.6102 6.89941 15.7786 9.33592 14.5157 11.0087ZM22.68 13.8357C22.68 15.0612 21.6816 16.0583 20.4544 16.0583H19.1425V6.44168H20.4544C21.6816 6.44168 22.68 7.43875 22.68 8.66434V13.8357Z" fill="#00B4E1"/>
<path d="M12.4788 8.21777C11.7167 8.21777 11.0707 8.78599 10.9761 9.53965C10.9348 9.86924 10.654 10.1167 10.3214 10.1167C9.98826 10.1167 9.70753 9.86924 9.66618 9.53965C9.57434 8.80796 8.94825 8.19949 8.10546 8.21865C7.11349 8.25561 6.5756 9.41353 7.18055 10.2151L10.2083 14.226C10.2643 14.3011 10.3775 14.3017 10.434 14.226L13.4618 10.2151C14.0717 9.40685 13.5223 8.21777 12.4788 8.21777Z" fill="#00B4E1"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,12 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30_1545)">
<path d="M7.36441 11.455H16.6394C17.2394 11.455 17.7294 10.965 17.7294 10.365V1.09C17.7294 0.49 17.2394 0 16.6394 0H7.36441C6.76441 0 6.27441 0.49 6.27441 1.09V10.365C6.27441 10.965 6.76441 11.455 7.36441 11.455ZM9.08441 4.845C9.13941 4.675 9.27441 4.545 9.44941 4.49L10.7694 4.105L11.5444 2.965C11.7494 2.67 12.2444 2.67 12.4494 2.965L13.2244 4.105L14.5444 4.49C14.7194 4.545 14.8544 4.675 14.9094 4.845C14.9694 5.02 14.9344 5.205 14.8294 5.345L13.9894 6.435L14.0244 7.815C14.0294 7.995 13.9494 8.165 13.7994 8.27C13.7044 8.34 13.5944 8.38 13.4794 8.38C13.4194 8.38 13.3594 8.37 13.2994 8.345L11.9994 7.88L10.6994 8.345C10.5294 8.405 10.3394 8.38 10.1994 8.27C10.0544 8.165 9.96941 7.995 9.97441 7.815L10.0094 6.435L9.16941 5.345C9.05941 5.205 9.02441 5.02 9.08441 4.845Z" fill="#00B4E1"/>
<path d="M1.09 24H10.365C10.965 24 11.455 23.51 11.455 22.91V13.635C11.455 13.035 10.965 12.545 10.365 12.545H1.09C0.49 12.545 0 13.035 0 13.635V22.91C0 23.51 0.49 24 1.09 24ZM5.725 15C7.535 15 9 16.465 9 18.275C9 20.08 7.535 21.545 5.725 21.545C3.92 21.545 2.455 20.08 2.455 18.275C2.455 16.465 3.92 15 5.725 15Z" fill="#00B4E1"/>
<path d="M22.9099 12.545H13.6349C13.0349 12.545 12.5449 13.035 12.5449 13.635V22.91C12.5449 23.51 13.0349 24 13.6349 24H22.9099C23.5099 24 23.9999 23.51 23.9999 22.91V13.635C23.9999 13.035 23.5099 12.545 22.9099 12.545ZM20.9149 21.02C20.8099 21.18 20.6399 21.275 20.4549 21.275H16.0899C15.9049 21.275 15.7349 21.18 15.6349 21.02C15.5349 20.87 15.5199 20.675 15.5949 20.505L17.7749 15.595C17.8649 15.4 18.0549 15.275 18.2749 15.275C18.4899 15.275 18.6799 15.4 18.7699 15.595L20.9499 20.505C21.0249 20.675 21.0099 20.87 20.9149 21.02Z" fill="#00B4E1"/>
</g>
<defs>
<clipPath id="clip0_30_1545">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,10 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_19_4910)">
<path d="M42.6758 0H7.32422C3.28598 0 0 3.28598 0 7.32422V42.6758C0 46.714 3.28598 50 7.32422 50H22.0703V32.3242H16.2109V23.5352H22.0703V17.5781C22.0703 12.7316 26.0128 8.78906 30.8594 8.78906H39.7461V17.5781H30.8594V23.5352H39.7461L38.2812 32.3242H30.8594V50H42.6758C46.714 50 50 46.714 50 42.6758V7.32422C50 3.28598 46.714 0 42.6758 0Z" fill="#094654"/>
</g>
<defs>
<clipPath id="clip0_19_4910">
<rect width="50" height="50" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 573 KiB

View File

@ -0,0 +1,12 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_19_4912)">
<path d="M36.4654 0H13.5345C6.07146 0 0 6.07146 0 13.5345V36.4658C0 43.9284 6.07146 49.9999 13.5345 49.9999H36.4658C43.9284 49.9999 49.9999 43.9284 49.9999 36.4658V13.5345C49.9999 6.07146 43.9284 0 36.4654 0ZM25 38.6714C17.4614 38.6714 11.3285 32.5385 11.3285 25C11.3285 17.4614 17.4614 11.3285 25 11.3285C32.5385 11.3285 38.6714 17.4614 38.6714 25C38.6714 32.5385 32.5385 38.6714 25 38.6714ZM38.9983 14.5527C36.7706 14.5527 34.9586 12.7407 34.9586 10.5129C34.9586 8.28512 36.7706 6.47277 38.9983 6.47277C41.2261 6.47277 43.0385 8.28512 43.0385 10.5129C43.0385 12.7407 41.2261 14.5527 38.9983 14.5527Z" fill="#094654"/>
<path d="M25 14.2598C19.078 14.2598 14.2597 19.0777 14.2597 25C14.2597 30.922 19.078 35.7403 25 35.7403C30.9223 35.7403 35.7402 30.922 35.7402 25C35.7402 19.0777 30.9223 14.2598 25 14.2598Z" fill="#094654"/>
<path d="M38.9983 9.4043C38.3872 9.4043 37.8898 9.90173 37.8898 10.5128C37.8898 11.124 38.3872 11.6214 38.9983 11.6214C39.6098 11.6214 40.1073 11.1243 40.1073 10.5128C40.1073 9.90135 39.6098 9.4043 38.9983 9.4043Z" fill="#094654"/>
</g>
<defs>
<clipPath id="clip0_19_4912">
<rect width="50" height="50" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -0,0 +1,7 @@
<svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3998 15.3177C13.1636 15.3177 12.1603 14.3144 12.1603 13.0781V5.23958C12.1603 4.00333 13.1636 3 14.3998 3C15.6361 3 16.6394 4.00333 16.6394 5.23958V13.0781C16.6394 14.3144 15.6361 15.3177 14.3998 15.3177Z" fill="white"/>
<path d="M25.0364 15.3177C23.8002 15.3177 22.7969 14.3144 22.7969 13.0781V5.23958C22.7969 4.00333 23.8002 3 25.0364 3C26.2727 3 27.276 4.00333 27.276 5.23958V13.0781C27.276 14.3144 26.2727 15.3177 25.0364 15.3177Z" fill="white"/>
<path d="M35.673 15.3177C34.4368 15.3177 33.4335 14.3144 33.4335 13.0781V5.23958C33.4335 4.00333 34.4368 3 35.673 3C36.9093 3 37.9126 4.00333 37.9126 5.23958V13.0781C37.9126 14.3144 36.9093 15.3177 35.673 15.3177Z" fill="white"/>
<path d="M37.9138 8.03906H12.1588C8.75466 8.03906 6 10.7937 6 14.1979V43.8724C6 47.2766 8.75466 50.0312 12.1588 50.0312H28.6868L29.1795 47.2766C29.4034 46.0224 29.9857 44.9026 30.8815 43.9844L44.0726 30.8156V14.1979C44.0726 10.7937 41.3179 8.03906 37.9138 8.03906ZM23.9165 18.6771C25.1483 18.6771 26.1561 19.6849 26.1561 20.9167C26.1561 22.1484 25.1483 23.1562 23.9165 23.1562H14.9583C13.7265 23.1562 12.7187 22.1484 12.7187 20.9167C12.7187 19.6849 13.7265 18.6771 14.9583 18.6771H23.9165ZM30.6352 32.1146H14.9583C13.7265 32.1146 12.7187 31.1068 12.7187 29.875C12.7187 28.6432 13.7265 27.6354 14.9583 27.6354H30.6352C31.8669 27.6354 32.8748 28.6432 32.8748 29.875C32.8748 31.1068 31.8669 32.1146 30.6352 32.1146Z" fill="white"/>
<path d="M34.0583 56.7501C33.6171 56.7501 33.1871 56.5754 32.8713 56.2574C32.4839 55.8699 32.3092 55.319 32.4055 54.777L33.5925 48.0471C33.6507 47.7089 33.8164 47.3953 34.0583 47.1512L50.687 30.5246C52.7295 28.4776 54.7362 29.0308 55.8335 30.1282L58.6039 32.8985C60.1335 34.4259 60.1335 36.9118 58.6039 38.4415L41.9751 55.0704C41.7333 55.3145 41.4197 55.478 41.0793 55.5362L34.3494 56.7232C34.2531 56.7411 34.1546 56.7501 34.0583 56.7501Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -0,0 +1,11 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30_1549)">
<path d="M13.2918 7.26596C12.8223 7.26596 12.4404 7.6479 12.4404 8.11735V10.3195C12.4404 10.789 12.8223 11.1709 13.2918 11.1709C13.7613 11.1709 14.1432 10.789 14.1432 10.3195V8.11735C14.1432 7.6479 13.7612 7.26596 13.2918 7.26596Z" fill="#00B4E1"/>
<path d="M23.7883 7.81613L19.7336 3.84624C18.7894 2.92177 17.5417 2.41266 16.2203 2.41266H15.8731C15.8369 2.38294 15.7971 2.35641 15.754 2.33372L14.6924 1.77483C14.3487 1.59385 13.9236 1.72589 13.7426 2.06949C13.6849 2.17913 13.6594 2.29702 13.662 2.41271H10.337C10.3396 2.29707 10.3141 2.17913 10.2564 2.06949C10.0755 1.72585 9.6502 1.59389 9.30665 1.77483L8.24498 2.33372C8.2019 2.35641 8.16215 2.38294 8.12592 2.41266H7.77871C6.45731 2.41266 5.20954 2.92177 4.26543 3.84624L0.210743 7.81613C-0.0597257 8.08093 -0.072007 8.51227 0.182852 8.79202L2.83415 11.7025C3.0809 11.9734 3.49429 12.0094 3.78417 11.7852L5.43032 10.5119L5.59715 21.6138C5.60292 21.9979 5.91599 22.3063 6.30018 22.3063H17.699C18.0832 22.3063 18.3962 21.9979 18.402 21.6138L18.5688 10.5119L20.215 11.7852C20.5048 12.0094 20.9182 11.9735 21.165 11.7025L23.8163 8.79202C24.0711 8.51227 24.0587 8.08093 23.7883 7.81613ZM9.85612 11.874C9.85612 12.2623 9.54131 12.5771 9.15299 12.5771C8.76468 12.5771 8.44987 12.2623 8.44987 11.874V6.56283C8.44987 6.17452 8.76468 5.85971 9.15299 5.85971C9.54131 5.85971 9.85612 6.17452 9.85612 6.56283V11.874ZM15.5491 10.3195C15.5491 11.5644 14.5364 12.5771 13.2915 12.5771C12.0466 12.5771 11.0339 11.5644 11.0339 10.3195V8.11735C11.0339 6.87249 12.0466 5.85971 13.2915 5.85971C14.5364 5.85971 15.5491 6.87244 15.5491 8.11735V10.3195Z" fill="#00B4E1"/>
</g>
<defs>
<clipPath id="clip0_30_1549">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,3 @@
<svg width="927" height="587" viewBox="0 0 927 587" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 0H633.5C795.596 0 927 131.404 927 293.5C927 455.596 795.596 587 633.5 587H0V0Z" fill="#FFAB0A"/>
</svg>

After

Width:  |  Height:  |  Size: 216 B

View File

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20 20L16.2223 16.2156M18.3158 11.1579C18.3158 13.0563 17.5617 14.8769 16.2193 16.2193C14.8769 17.5617 13.0563 18.3158 11.1579 18.3158C9.2595 18.3158 7.43886 17.5617 6.0965 16.2193C4.75413 14.8769 4 13.0563 4 11.1579C4 9.2595 4.75413 7.43886 6.0965 6.0965C7.43886 4.75413 9.2595 4 11.1579 4C13.0563 4 14.8769 4.75413 16.2193 6.0965C17.5617 7.43886 18.3158 9.2595 18.3158 11.1579V11.1579Z" stroke="#0F6472" stroke-width="1.5" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

View File

@ -0,0 +1,12 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30_1556)">
<path d="M19.7336 17.1402H14.0339V9.60865H16.4497C16.4223 7.55376 16.0368 5.46259 15.3823 3.83689C14.7787 2.3376 13.9926 1.40625 13.3308 1.40625C12.669 1.40625 11.8829 2.3376 11.2793 3.83689C10.6248 5.46255 10.2394 7.55376 10.212 9.60865H12.6277V17.1402H8.10842L6.04434 15.0762C4.56484 13.5967 2.15759 13.5967 0.678135 15.0762C0.546277 15.208 0.472168 15.3868 0.472168 15.5733C0.472168 15.7598 0.546277 15.9387 0.678135 16.0705L5.75841 21.1507C5.74777 21.1774 5.73811 21.2046 5.73056 21.233L5.2328 23.1171C5.13362 23.4925 5.35758 23.8773 5.733 23.9765C5.79319 23.9924 5.85361 24 5.91305 24C6.22444 24 6.50911 23.7915 6.5924 23.4762L7.07812 21.6377H20.66V23.2967C20.66 23.685 20.9749 23.9998 21.3632 23.9998C21.7515 23.9998 22.0663 23.685 22.0663 23.2967V21.6378H22.8249C23.2132 21.6378 23.528 21.323 23.528 20.9346C23.5281 18.8424 21.8259 17.1402 19.7336 17.1402Z" fill="#00B4E1"/>
<path d="M16.687 3.31169C17.4059 5.09719 17.8285 7.37966 17.8563 9.60864H21.5335C21.9218 9.60864 22.2366 9.29383 22.2366 8.90552C22.2366 3.99503 18.2416 0 13.3311 0C14.6354 0 15.8273 1.17613 16.687 3.31169Z" fill="#00B4E1"/>
<path d="M9.97483 3.31169C10.8346 1.17613 12.0265 0 13.3309 0C8.42028 0 4.42529 3.99503 4.42529 8.90552C4.42529 9.29383 4.7401 9.60864 5.12841 9.60864H8.80559C8.83343 7.37971 9.25601 5.09724 9.97483 3.31169Z" fill="#00B4E1"/>
</g>
<defs>
<clipPath id="clip0_30_1556">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,3 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.19 2.5H7.81C4.17 2.5 2 4.67 2 8.31V16.69C2 20.33 4.17 22.5 7.81 22.5H16.19C19.83 22.5 22 20.33 22 16.69V8.31C22 4.67 19.83 2.5 16.19 2.5ZM9.97 15.4L7.72 17.65C7.57 17.8 7.38 17.87 7.19 17.87C7 17.87 6.8 17.8 6.66 17.65L5.91 16.9C5.61 16.61 5.61 16.13 5.91 15.84C6.2 15.55 6.67 15.55 6.97 15.84L7.19 16.06L8.91 14.34C9.2 14.05 9.67 14.05 9.97 14.34C10.26 14.63 10.26 15.11 9.97 15.4ZM9.97 8.4L7.72 10.65C7.57 10.8 7.38 10.87 7.19 10.87C7 10.87 6.8 10.8 6.66 10.65L5.91 9.9C5.61 9.61 5.61 9.13 5.91 8.84C6.2 8.55 6.67 8.55 6.97 8.84L7.19 9.06L8.91 7.34C9.2 7.05 9.67 7.05 9.97 7.34C10.26 7.63 10.26 8.11 9.97 8.4ZM17.56 17.12H12.31C11.9 17.12 11.56 16.78 11.56 16.37C11.56 15.96 11.9 15.62 12.31 15.62H17.56C17.98 15.62 18.31 15.96 18.31 16.37C18.31 16.78 17.98 17.12 17.56 17.12ZM17.56 10.12H12.31C11.9 10.12 11.56 9.78 11.56 9.37C11.56 8.96 11.9 8.62 12.31 8.62H17.56C17.98 8.62 18.31 8.96 18.31 9.37C18.31 9.78 17.98 10.12 17.56 10.12Z" fill="#FFAB0A"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.9756 0H7.99012C6.58088 0.00159801 5.4389 1.14358 5.4375 2.55282V21.4473C5.4389 22.8566 6.58088 23.9985 7.99012 23.9999H15.9756C17.3848 23.9985 18.5268 22.8566 18.5284 21.4473V2.55282C18.5268 1.14358 17.3848 0.00159801 15.9756 0ZM11.983 21.8182C11.3803 21.8182 10.8919 21.3299 10.8919 20.7272C10.8919 20.1248 11.3803 19.6364 11.983 19.6364C12.5854 19.6364 13.0738 20.1248 13.0738 20.7272C13.0738 21.3299 12.5854 21.8182 11.983 21.8182ZM13.6193 3.27273H10.3466C10.0454 3.27273 9.80107 3.02843 9.80107 2.72721C9.80107 2.42598 10.0454 2.18188 10.3466 2.18188H13.6193C13.9205 2.18188 14.1646 2.42598 14.1646 2.72721C14.1646 3.02843 13.9205 3.27273 13.6193 3.27273Z" fill="#00B4E1"/>
</svg>

After

Width:  |  Height:  |  Size: 794 B

View File

@ -0,0 +1,5 @@
<svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M55.5379 29.8536C55.3021 29.3905 55.3021 28.8595 55.5379 28.3965L57.7243 24.1047C58.9417 21.7151 57.9772 18.867 55.5286 17.6203L51.1308 15.3814C50.6563 15.1399 50.331 14.7101 50.2382 14.2027L49.3781 9.49737C48.8992 6.8776 46.3736 5.11718 43.6295 5.48972L38.7001 6.15878C38.1681 6.23085 37.642 6.06671 37.256 5.70845L33.6779 2.3871C31.6856 0.537687 28.5644 0.537577 26.5722 2.3871L22.994 5.70878C22.6079 6.06715 22.0818 6.23096 21.5499 6.15911L16.6205 5.49005C13.8755 5.11728 11.3508 6.87793 10.8719 9.4977L10.0118 14.2028C9.91896 14.7103 9.59368 15.14 9.11933 15.3816L4.72156 17.6206C2.27296 18.8671 1.30845 21.7155 2.52576 24.1051L4.71205 28.3967C4.94791 28.8598 4.94791 29.3909 4.71205 29.8538L2.52565 34.1455C1.30833 36.5351 2.27284 39.3832 4.72144 40.6298L9.11921 42.8688C9.59368 43.1103 9.91896 43.5401 10.0118 44.0475L10.8719 48.7528C11.3079 51.1377 13.4391 52.8102 15.8885 52.81C16.1298 52.81 16.3746 52.7938 16.6206 52.7604L21.55 52.0913C22.0816 52.0189 22.608 52.1834 22.9941 52.5416L26.5722 55.863C27.5685 56.7878 28.8465 57.2501 30.125 57.25C31.4031 57.2499 32.6819 56.7876 33.6778 55.863L37.256 52.5416C37.6421 52.1834 38.1683 52.0197 38.7001 52.0913L43.6295 52.7604C46.3749 53.133 48.8992 51.3725 49.3781 48.7527L50.2383 44.0477C50.3312 43.5401 50.6564 43.1104 51.1308 42.8688L55.5286 40.6298C57.9772 39.3834 58.9417 36.535 57.7243 34.1454L55.5379 29.8536ZM23.3628 14.526C26.7807 14.526 29.5615 17.1942 29.5615 20.4738C29.5615 23.7534 26.7807 26.4216 23.3628 26.4216C19.9449 26.4216 17.1641 23.7534 17.1641 20.4738C17.1641 17.1942 19.9449 14.526 23.3628 14.526ZM20.1633 40.9774C19.8332 41.2942 19.4006 41.4526 18.968 41.4526C18.5354 41.4526 18.1026 41.2943 17.7727 40.9774C17.1125 40.344 17.1125 39.3169 17.7727 38.6834L40.0866 17.2725C40.7466 16.6391 41.8172 16.6391 42.4773 17.2725C43.1375 17.906 43.1375 18.9331 42.4773 19.5666L20.1633 40.9774ZM36.887 43.7242C33.4691 43.7242 30.6883 41.056 30.6883 37.7764C30.6883 34.4968 33.4691 31.8286 36.887 31.8286C40.3049 31.8286 43.0857 34.4968 43.0857 37.7764C43.0857 41.056 40.3049 43.7242 36.887 43.7242Z" fill="white"/>
<path d="M36.8882 35.0728C35.3346 35.0728 34.0706 36.2855 34.0706 37.7762C34.0706 39.267 35.3345 40.4797 36.8882 40.4797C38.4418 40.4797 39.7057 39.267 39.7057 37.7762C39.7057 36.2855 38.4418 35.0728 36.8882 35.0728Z" fill="white"/>
<path d="M23.3705 17.7703C21.8169 17.7703 20.553 18.983 20.553 20.4737C20.553 21.9645 21.8169 23.1773 23.3705 23.1773C24.9241 23.1773 26.1881 21.9646 26.1881 20.4737C26.188 18.9831 24.9241 17.7703 23.3705 17.7703Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.16767 17.0107H17.8329V20.3436H6.16767V17.0107ZM21.3374 2.59774L20.01 8.06688C20.5244 9.1832 20.8147 10.4232 20.817 11.7299L20.8345 21.8242C20.8355 22.3981 20.6129 22.9382 20.2079 23.3448C19.8026 23.7514 19.2633 23.9759 18.6894 23.9769L5.33627 24C5.33591 24 5.33292 24 5.33256 24C4.14984 24 3.18575 23.0376 3.18359 21.8549L3.16621 11.7606C3.16394 10.4507 3.4461 9.1844 3.9819 8.03069L2.66313 2.59774C2.59457 2.3151 2.72499 2.02155 2.98078 1.88298L5.18644 0.688033C5.36133 0.593219 5.57025 0.585187 5.75197 0.665857C5.93369 0.746647 6.0677 0.907148 6.11469 1.10049L6.94164 4.50757C7.3354 4.23164 7.74954 3.99083 8.17926 3.7843V3.33288C8.17914 1.49509 9.67424 0 11.512 0H12.4885C14.3262 0 15.8213 1.49509 15.8213 3.33288V3.79928C16.2527 4.00857 16.6656 4.2507 17.0546 4.52447L17.8857 1.10049C17.9327 0.907148 18.0666 0.746647 18.2484 0.665857C18.4301 0.585068 18.6389 0.593219 18.8139 0.688033L21.0196 1.88298C21.2755 2.02167 21.4059 2.3151 21.3374 2.59774ZM9.46327 3.28817C10.2684 3.04796 11.1124 2.92126 11.9763 2.91982H11.992C12.8769 2.91982 13.7312 3.05288 14.5378 3.29728C14.5185 2.18289 13.6074 1.28197 12.4886 1.28197H11.5121C10.3962 1.28185 9.48736 2.17797 9.46327 3.28817ZM19.1148 16.3698C19.1148 16.0158 18.8278 15.7289 18.4739 15.7289H5.52674C5.17278 15.7289 4.88582 16.0158 4.88582 16.3698V20.9846C4.88582 21.3386 5.17278 21.6256 5.52674 21.6256H18.4739C18.8278 21.6256 19.1148 21.3386 19.1148 20.9846V16.3698ZM19.1148 12.0545C19.1148 8.13149 15.9232 4.93993 12.0002 4.93993C8.07726 4.93993 4.8857 8.13149 4.8857 12.0545C4.8857 12.4084 5.17266 12.6954 5.52662 12.6954C5.88059 12.6954 6.16755 12.4084 6.16755 12.0545C6.16755 8.83834 8.78399 6.2219 12.0001 6.2219C15.2163 6.2219 17.8327 8.83834 17.8327 12.0545C17.8327 12.4084 18.1197 12.6954 18.4736 12.6954C18.8276 12.6954 19.1148 12.4084 19.1148 12.0545Z" fill="#00B4E1"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,3 @@
<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.6645 14.7605C15.5582 14.7605 17.904 12.4147 17.904 9.52095C17.904 6.62725 15.5582 4.28143 12.6645 4.28143C9.77078 4.28143 7.42496 6.62725 7.42496 9.52095C7.42496 12.4147 9.77078 14.7605 12.6645 14.7605ZM12.6645 14.7605C8.03455 14.7605 4.28125 17.5755 4.28125 21.0479M12.6645 14.7605C17.2944 14.7605 21.0477 17.5755 21.0477 21.0479" stroke="white" stroke-width="1.88623" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 511 B

View File

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.19 2H7.81C4.17 2 2 4.17 2 7.81V16.19C2 19.83 4.17 22 7.81 22H16.19C19.83 22 22 19.83 22 16.19V7.81C22 4.17 19.83 2 16.19 2ZM9.97 14.9L7.72 17.15C7.57 17.3 7.38 17.37 7.19 17.37C7 17.37 6.8 17.3 6.66 17.15L5.91 16.4C5.61 16.11 5.61 15.63 5.91 15.34C6.2 15.05 6.67 15.05 6.97 15.34L7.19 15.56L8.91 13.84C9.2 13.55 9.67 13.55 9.97 13.84C10.26 14.13 10.26 14.61 9.97 14.9ZM9.97 7.9L7.72 10.15C7.57 10.3 7.38 10.37 7.19 10.37C7 10.37 6.8 10.3 6.66 10.15L5.91 9.4C5.61 9.11 5.61 8.63 5.91 8.34C6.2 8.05 6.67 8.05 6.97 8.34L7.19 8.56L8.91 6.84C9.2 6.55 9.67 6.55 9.97 6.84C10.26 7.13 10.26 7.61 9.97 7.9ZM17.56 16.62H12.31C11.9 16.62 11.56 16.28 11.56 15.87C11.56 15.46 11.9 15.12 12.31 15.12H17.56C17.98 15.12 18.31 15.46 18.31 15.87C18.31 16.28 17.98 16.62 17.56 16.62ZM17.56 9.62H12.31C11.9 9.62 11.56 9.28 11.56 8.87C11.56 8.46 11.9 8.12 12.31 8.12H17.56C17.98 8.12 18.31 8.46 18.31 8.87C18.31 9.28 17.98 9.62 17.56 9.62Z" fill="#00B4E1"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,24 @@
const cats = document.querySelectorAll(".categories a")
cats.forEach(cat => {
cat.addEventListener("mouseenter", () => {
cat.classList.add("upscale")
})
cat.addEventListener("mouseleave", () => {
cat.classList.remove("upscale")
})
})
const heroes = document.querySelectorAll(".hero__icon")
let time = 0
heroes.forEach(hero => {
setTimeout(() => {
hero.classList.add("upscale-anim")
}, time)
time += 200
})

View File

@ -0,0 +1,8 @@
const buttons = document.querySelectorAll(".site-header__dropcat, .dropcats__close svg");
buttons.forEach(button => {
button.addEventListener("click", () => {
const dropcat = document.querySelector(".dropcats");
dropcat.classList.toggle("dropcats_active");
});
});

View File

@ -0,0 +1,43 @@
(function($){
const $input = $('.site-header__search-input');
const $container = $('<ul class="site-header__search-suggestions"></ul>').insertAfter($input);
let timer;
$input.on('keyup', function(){
const term = $(this).val().trim();
clearTimeout(timer);
if (term.length < 2) {
$container.empty().hide();
return;
}
timer = setTimeout(() => {
$.getJSON(pandaLiveSearch.ajax_url, {
action: 'live_search',
term: term
}).done(function(results){
$container.empty();
if (results.length) {
results.forEach(item => {
$container.append(
`<li>
<a href="${item.permalink}">
<img src="${item.thumb}" alt=""/>
${item.title}
</a>
</li>`
);
});
$container.show();
} else {
$container.hide();
}
});
}, 300);
});
$(document).on('click', function(e){
if (!$(e.target).closest('.site-header__search-input, .site-header__search-suggestions').length) {
$container.hide();
}
});
})(jQuery);

View File

@ -0,0 +1,36 @@
jQuery(function($){
$('.product-slider').slick({
slidesToShow: 4,
slidesToScroll: 1,
infinite: true,
arrows: true,
dots: false,
draggable: false,
swipe: false,
autoplay: true,
autoplaySpeed: 4000,
touchMove: false,
prevArrow: '<button type="button" class="slick-prev slider-arrow"><span class="screen-reader-text">Poprzedni</span></button>',
nextArrow: '<button type="button" class="slick-next slider-arrow"><span class="screen-reader-text">Następny</span></button>',
responsive: [
{ breakpoint: 1300, settings: { slidesToShow: 3 } },
{ breakpoint: 950, settings: { slidesToShow: 2 } },
{ breakpoint: 620, settings: { slidesToShow: 1 } }
]
});
$('.hero-uv__slider').slick({
slidesToShow: 1,
slidesToScroll: 1,
infinite: true,
arrows: false,
draggable: false,
swipe: false,
touchMove: false,
dots: true,
autoplay: true,
autoplaySpeed: 4000,
adaptiveHeight: true,
appendDots: $('.hero-uv__slider'),
});
});

View File

@ -0,0 +1,51 @@
const catList = document.querySelector(".wc-block-product-categories-list");
function addShowAllCat(shopUrl) {
if (typeof catList !== 'undefined' && catList) {
const showAllItem = document.createElement("li");
showAllItem.classList.add("show-all-categories");
const link = document.createElement("a");
link.href = shopUrl;
link.textContent = "Pokaż wszystkie";
showAllItem.appendChild(link);
catList.insertBefore(showAllItem, catList.firstChild);
}
}
function setActiveCatColor() {
const path = window.location.pathname;
const catList = document.querySelector(".wc-block-product-categories-list");
if (!catList) return;
const listItems = catList.querySelectorAll("li");
if (path === "/sklep" || path === "/sklep/") {
const firstItem = catList.querySelector("li a");
if (firstItem) {
firstItem.classList.add("active-cat");
}
} else {
const categorySlug = path.split("/").filter(Boolean)[1].split("-").join(" ");
listItems.forEach(item => {
const link = item.querySelector("a span")
if(link) {
let text = link.textContent.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase()
console.log(text, categorySlug)
if(text == categorySlug) {
link.classList.add("active-cat");
}
}
})
}
}
addShowAllCat(pandaThemeVars.shopUrl);
setActiveCatColor();

View File

@ -0,0 +1,54 @@
<div class="founds">
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/fundusze.png" alt="Fundusze" />
</div>
<footer class="site-footer">
<div class="site-footer__inner">
<div class="site-footer__logo">
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/logo.png" alt="Logo Panda" />
</div>
<div class="site-footer__info">
<section class="site-footer__section">
<p class="site-footer__section-header">Dane firmy</p>
<p class="site-footer__section-text site-footer__section-text--featured">Sklep Pandagadzety.pl</p>
<p class="site-footer__section-text">ul. Katowicka 135c</p>
<p class="site-footer__section-text">43-211 Piasek</p>
<p class="site-footer__section-text">Polska</p>
</section>
<section class="site-footer__section">
<p class="site-footer__section-header">Kontakt</p>
<p class="site-footer__section-text">(+48) 793 511 011</p>
<p class="site-footer__section-text">sklep@pandagadzety.pl</p>
</section>
<section class="site-footer__section">
<p class="site-footer__section-header">Szybki dostęp</p>
<p class="site-footer__section-text">Strona główna</p>
<p class="site-footer__section-text">Sklep</p>
<p class="site-footer__section-text">Regulamin</p>
<p class="site-footer__section-text">Polityka Prywatności</p>
</section>
<section class="site-footer__section">
<p class="site-footer__section-header">Nasze social media</p>
<p class="site-footer__section-text">Facebook</p>
<p class="site-footer__section-text">Instagram</p>
<div class="site-footer__section-icons">
<?php echo file_get_contents(get_template_directory() . '/assets/images/facebook.svg'); ?>
<?php echo file_get_contents(get_template_directory() . '/assets/images/instagram.svg'); ?>
</div>
</section>
</div>
<div class="site-footer__copyright">
<p class="site-footer__copyright-text">
© 2024 Panda Gadżety. All Rights Reserved.
</p>
<p class="site-footer__design-text">
Design & Code by Foxstudio
</p>
</div>
</div>
</footer>
<?php wp_footer(); ?>
</body>
</html>

View File

@ -0,0 +1,107 @@
<?php get_header(); ?>
<main>
<?php echo do_shortcode('[hero_slider]'); ?>
<section class="categories">
<a href="<?php echo esc_url( wc_get_page_permalink('shop') ); ?>" class="categories__item categories__item--all">
Zobacz wszystkie produkty
</a>
<?php
$all_cats = get_terms([
'taxonomy' => 'product_cat',
'hide_empty' => false,
]);
$product_cats = array_filter($all_cats, function($cat){
return $cat->slug !== 'bez-kategorii';
});
if (! is_wp_error($product_cats) && ! empty($product_cats)):
foreach ($product_cats as $cat): ?>
<a href="<?php echo esc_url( get_term_link($cat) ); ?>"
class="categories__item <?php echo $cat->slug ?>">
<span class="categories__icon">
<?php
$svg = get_template_directory() . '/assets/images/' . $cat->slug . '.svg';
echo file_exists($svg) ? file_get_contents($svg) : '';
?>
</span>
<span class="categories__label"><?php echo esc_html($cat->name); ?></span>
</a>
<?php endforeach;
endif;
?>
<a href="<?php echo esc_url( wc_get_page_permalink('shop') ); ?>"
class="categories__item categories__item--wide">
Zobacz wszystkie produkty
</a>
</section>
<section class="bestseller">
<p class="hero__heading bestseller__heading">
<span class="hero__heading--bold">
PAN<span class="hero__heading--highlight">DA</span>
</span>
BESTSELLERY
</p>
<?php echo do_shortcode('[product_slider limit="6" orderby="rand"]'); ?>
<a href="<?php echo esc_url( home_url( '/sklep/' ) ); ?>" class="bestseller__shop-button">
Przejdź do sklepu
</a>
</section>
<section class="hero section-main">
<div class="hero__media">
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/hero.png" alt="kubek" class="hero__image" />
</div>
<div class="hero__content">
<p class="hero__heading">
CO OFERUJE
<span class="hero__heading--bold">
PAN<span class="hero__heading--highlight">DA</span>
</span>
GADŻETY?
</p>
<p class="hero__description">
Naszym celem jest dostarczenie produktów reklamowych w możliwie najlepszej jakości oraz cenie.
<span class="hero__description--highlight">Posiadamy 10-letnie doświadczenie</span>,
a nasz park maszynowy oraz doświadczenie załogi gwarantuje najwyższą jakość usług.
</p>
<div class="hero__feature">
<div class="hero__icon">
<?php echo file_get_contents(get_template_directory() . '/assets/images/location.svg'); ?>
</div>
<p class="hero__feature-text">Największy wybór produktów</p>
</div>
<div class="hero__feature">
<div class="hero__icon hero__icon--yellow">
<?php echo file_get_contents(get_template_directory() . '/assets/images/calendar.svg'); ?>
</div>
<p class="hero__feature-text">Produkty z Twoim nadrukiem</p>
</div>
<div class="hero__feature">
<div class="hero__icon hero__icon--blue">
<?php echo file_get_contents(get_template_directory() . '/assets/images/ticket.svg'); ?>
</div>
<p class="hero__feature-text">Produkty w różnych pakietach</p>
</div>
</div>
</section>
</main>
<?php get_footer(); ?>

View File

@ -0,0 +1,282 @@
<?php
function panda_enqueue_styles() {
$ver = '1.0';
$base = get_template_directory_uri() . '/assets/';
/*wp_enqueue_style('panda-style', get_stylesheet_uri());
wp_enqueue_style('panda-mobile', $base . '/css/mobile.css', ['panda-style'], $ver);
wp_enqueue_style('panda-tablet', $base . '/css/tablet.css', ['panda-mobile'], $ver);
wp_enqueue_style('panda-desktop', $base . '/css/desktop.css', ['panda-tablet'], $ver);*/
wp_enqueue_style( 'panda-main', $base . '/css/main.css', [], $ver );
wp_enqueue_script('categories-hover', $base . '/js/categories-hover.js', array(), null, true);
wp_enqueue_script('dropcat', $base . '/js/dropcat.js', array(), null, true);
wp_enqueue_script('shop-links', $base . '/js/shop-links.js', array(), null, true);
wp_localize_script( 'shop-links', 'pandaThemeVars', [
'shopUrl' => get_permalink( wc_get_page_id( 'shop' ) )
] );
}
add_action('wp_enqueue_scripts', 'panda_enqueue_styles');
// WooCommerce support
add_action('after_setup_theme', function () {
add_theme_support('woocommerce');
});
// Search bar
add_action( 'wp_ajax_live_search', 'panda_live_search' );
add_action( 'wp_ajax_nopriv_live_search', 'panda_live_search' );
function panda_live_search() {
if ( empty( $_GET['term'] ) ) {
wp_send_json( [] );
}
$term = sanitize_text_field( wp_unslash( $_GET['term'] ) );
$args = [
'post_type' => 'product',
'posts_per_page' => 5,
's' => $term,
'post_status' => 'publish',
];
$query = new WP_Query( $args );
$results = [];
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
$results[] = [
'title' => get_the_title(),
'permalink' => get_permalink(),
'thumb' => get_the_post_thumbnail_url( get_the_ID(), 'thumbnail' ),
];
}
wp_reset_postdata();
}
wp_send_json( $results );
}
add_action( 'wp_enqueue_scripts', function(){
wp_enqueue_script(
'panda-live-search',
get_template_directory_uri() . '/assets/js/live-search.js',
[ 'jquery' ],
'1.0',
true
);
wp_localize_script( 'panda-live-search', 'pandaLiveSearch', [
'ajax_url' => admin_url( 'admin-ajax.php' ),
] );
});
// Slider
add_action( 'wp_enqueue_scripts', 'enqueue_slick_slider_assets' );
function enqueue_slick_slider_assets() {
wp_enqueue_style( 'slick-css', 'https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css', array(), '1.8.1' );
wp_enqueue_style( 'slick-theme-css', 'https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css', array('slick-css'), '1.8.1' );
wp_enqueue_script( 'slick-js', 'https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js', array('jquery'), '1.8.1', true );
wp_enqueue_script( 'my-slider-init', get_stylesheet_directory_uri() . '/assets/js/product-slider.js', array('slick-js'), '1.0', true );
}
add_shortcode( 'product_slider', 'render_product_slider' );
function render_product_slider( $atts ) {
$atts = shortcode_atts( array(
'limit' => 6,
'orderby' => 'rand',
), $atts, 'product_slider' );
$args = array(
'post_type' => 'product',
'posts_per_page' => intval( $atts['limit'] ),
'orderby' => sanitize_text_field( $atts['orderby'] ),
'post_status' => 'publish',
);
$loop = new WP_Query( $args );
wp_enqueue_script("slider-images-js", plugins_url("/pandaGadzety/assets/js/slider-images.js"), [], null, true);
$productData = [];
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) {
$loop->the_post();
global $product;
$sku = $product->get_sku();
if ( $sku ) {
try {
$info = (new \Foxstudio\Plugins\Template\Repository\ProductRepository(SERVER_URL))->getProductInfo($sku);
if (!empty($info['message'])) {
$productData[$sku] = [
'img' => $info['message']['productBaseInfo']['primary_img'] ?? null,
];
}
} catch (\Throwable $e) {
}
}
}
wp_localize_script("slider-images-js", "archiveImagesData", [
'products' => $productData
]);
wp_reset_postdata();
}
if ( ! $loop->have_posts() ) {
return '<p>Brak produktów.</p>';
}
?>
<div class="product-slider" >
<?php while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
<div class="slide-item" data-sku="<?php echo esc_attr( $product->get_sku() ); ?>">
<?php echo woocommerce_get_product_thumbnail(); ?>
<div class="slide-item__text">
<h2><?php the_title(); ?></h2>
<p class="slide-item__description"><?php echo $product->get_short_description(); ?></p>
<span class="slide-item__price">Od <?php echo $product->get_price_html(); ?></span>
<a href="<?php the_permalink(); ?>" class="btn-primary">Zobacz produkt</a>
</div>
</div>
<?php endwhile; ?>
</div>
<?php
}
add_shortcode( 'related_products_slider', function( $atts ) {
$limit = isset( $atts['limit'] ) ? intval( $atts['limit'] ) : 4;
$related = wc_get_related_products( get_the_ID(), $limit );
if ( empty( $related ) ) {
return '<p>Brak podobnych produktów.</p>';
}
return do_shortcode( '[product_slider ids="' . implode( ',', $related ) . '" limit="' . $limit . '" orderby="post__in"]' );
} );
// landing page slider
add_shortcode( 'hero_slider', 'panda_render_hero_slider' );
function panda_render_hero_slider( $atts ) {
$slides = [
get_template_directory_uri() . '/assets/images/slide1.png',
get_template_directory_uri() . '/assets/images/slide2.png',
get_template_directory_uri() . '/assets/images/slide3.png',
];
ob_start();
?>
<section class="hero-uv">
<div class="hero-uv__inner">
<div class="hero-uv__text">
<h2>Nowa kolekcja kubków<br><strong>z nadrukiem UV</strong></h2>
<p>Dodaj na kubek logo z Twoim ulubionym nadrukiem.</p>
<a href="<?php echo esc_url( wc_get_page_permalink( 'shop' ) ); ?>" class="btn-primary">Zobacz produkty</a>
</div>
<div class="hero-uv__slider">
<?php foreach ( $slides as $src ): ?>
<div class="hero-uv__slide">
<img src="<?php echo esc_url( $src ); ?>" alt="">
</div>
<?php endforeach; ?>
</div>
</div>
</section>
<?php
return ob_get_clean();
}
// widget for shop
function register_shop_sidebar() {
register_sidebar( array(
'name' => 'Shop Filters',
'id' => 'shop-filters',
'before_widget' => '<div class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'register_shop_sidebar' );
// breadcrumbs separator change
add_filter( 'woocommerce_breadcrumb_defaults', 'my_change_breadcrumb_separator' );
function my_change_breadcrumb_separator( $defaults ) {
$defaults['delimiter'] = ' <span class="breadcrumb-sep">&gt;</span> ';
return $defaults;
}
// changing cart button on product to see product
/*add_filter( 'woocommerce_loop_add_to_cart_link', 'panda_replace_add_to_cart_with_view_product', 10, 2 );
function panda_replace_add_to_cart_with_view_product( $button_html, $product ) {
$url = $product->get_permalink();
$label = esc_html__( 'Zobacz produkt', 'panda-theme' );
$classes = 'view-product';
return sprintf(
'<a href="%1$s" class="%2$s">%3$s</a>',
esc_url( $url ),
esc_attr( $classes ),
$label
);
}*/
// Wstawianie własnego „Zobacz produkt” w pętli po produktach
add_action( 'woocommerce_after_shop_loop_item', 'panda_replace_add_to_cart_with_view_product', 10 );
function panda_replace_add_to_cart_with_view_product() {
global $product;
$url = $product->get_permalink();
$label = esc_html__( 'Zobacz produkt', 'panda-theme' );
$classes = 'view-product';
printf(
'<a href="%1$s" class="%2$s">%3$s</a>',
esc_url( $url ),
esc_attr( $classes ),
$label
);
}
add_action('wp_enqueue_scripts', function() {
if ( is_shop() || is_product_category() ) {
wp_enqueue_script("slider-images-js", plugins_url("/pandaGadzety/assets/js/slider-images.js"), [], null, true);
global $wp_query;
$productData = [];
foreach ( $wp_query->posts as $post ) {
$product = wc_get_product( $post->ID );
if ( ! $product ) continue;
$sku = $product->get_sku();
if ( $sku ) {
try {
$info = (new \Foxstudio\Plugins\Template\Repository\ProductRepository(SERVER_URL))->getProductInfo($sku);
if (!empty($info['message'])) {
$productData[$sku] = [
'img' => $info['message']['productBaseInfo']['primary_img'] ?? null,
];
}
} catch (\Throwable $e) {}
}
}
wp_localize_script("slider-images-js", "archiveImagesData", [
'products' => $productData
]);
}
});

View File

@ -0,0 +1,142 @@
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo('charset'); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<header class="site-header">
<div class="site-header__container">
<div class="logo">
<a href="<?php echo home_url(); ?>">
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/logo.png" alt="Logo Panda" />
</a>
</div>
<div class="site-header__utils">
<div class="site-header_navigation">
<form role="search" method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>" class="site-header__search">
<button type="submit" class="site-header__search-button">
<?php
echo file_get_contents(get_template_directory() . '/assets/images/search.svg' );
?>
</button>
<input
type="search"
class="site-header__search-input"
name="s"
placeholder="Jakiego gadżetu szukasz?"
value="<?php echo get_search_query(); ?>"
required
/>
<input type="hidden" name="post_type" value="product" />
</form>
<div class="site-header__dropcat">
Kategorie produktów
</div>
<a href="<?php echo esc_url( wc_get_page_permalink('shop') ); ?>">
<div class="site-header__shop">
Sklep
</div>
</a>
</div>
<div class="site-header__info">
<a href="<?php echo get_permalink( wc_get_page_id( 'myaccount' ) ); ?>">
<div class="site-header__info-account">
<?php
echo file_get_contents(get_template_directory() . '/assets/images/user.svg' );
?>
</div>
</a>
<a href="<?php echo get_permalink( wc_get_page_id( 'cart' ) ); ?>">
<div class="site-header__info-cart">
<?php
echo file_get_contents(get_template_directory() . '/assets/images/cart.svg' );
?>
<span class="info-cart__count">
<?php echo WC()->cart->get_cart_contents_count(); ?>
</span>
</div>
</a>
</div>
</div>
</div>
<div class="dropcats">
<ul class="dropcats__categories">
<?php
$all_cats = get_terms([
'taxonomy' => 'product_cat',
'hide_empty' => false,
]);
$product_cats = array_filter( $all_cats, function( $cat ) {
return $cat->slug !== 'bez-kategorii';
});
if ( !is_wp_error( $product_cats ) && !empty( $product_cats ) ) : ?>
<?php foreach ( $product_cats as $cat ) : ?>
<li>
<a href="<?php echo esc_url( get_term_link( $cat ) ); ?>" class="">
<?php
$svg = get_template_directory() . '/assets/images/' . $cat->slug . '.svg';
echo file_exists($svg) ? file_get_contents($svg) : '';
?>
<?php echo esc_html( $cat->name ); ?>
</a>
</li>
<?php endforeach; ?>
</nav>
<?php endif; ?>
<li>
<a href="<?php echo esc_url( wc_get_page_permalink('shop') ); ?>">
<?php
echo file_get_contents(get_template_directory() . '/assets/images/task.svg' );
?>
Pokaż wszystkie kategorie
</a>
</li>
</ul>
<div class="dropcats__close">
<?php
echo file_get_contents(get_template_directory() . '/assets/images/Close.svg' );
?>
</div>
</div>
<?php
$all_cats = get_terms([
'taxonomy' => 'product_cat',
'hide_empty' => false,
]);
$product_cats = array_filter( $all_cats, function( $cat ) {
return $cat->slug !== 'bez-kategorii'
&& $cat->slug !== 'moda-i-odziez';
});
if ( !is_wp_error( $product_cats ) && !empty( $product_cats ) ) : ?>
<nav class="site-header__cats">
<ul class="site-header__cats-list">
<?php foreach ( $product_cats as $cat ) : ?>
<li class="site-header__cats-item">
<a href="<?php echo esc_url( get_term_link( $cat ) ); ?>" class="site-header__cats-link">
<?php echo esc_html( $cat->name ); ?>
</a>
</li>
<div class="site-header__cats-separator">
|
</div>
<?php endforeach; ?>
</ul>
</nav>
<?php endif; ?>
</header>

View File

@ -0,0 +1,3 @@
<?php get_header(); ?>
<?php get_footer(); ?>

View File

@ -0,0 +1,16 @@
<?php
/**
* Szablon stron statycznych
*/
get_header(); ?>
<main class="site-main">
<?php
while ( have_posts() ) {
the_post();
the_content();
}
?>
</main>
<?php get_footer(); ?>

View File

@ -0,0 +1,6 @@
/*
Theme Name: Panda Theme
Author: Foxstudio
Version: 1.0
Description: Custom theme based on a Figma project.
*/

View File

@ -0,0 +1,8 @@
<?php
get_header();
?>
<main class="shop-content">
<?php woocommerce_content(); ?>
</main>
<?php
get_footer();

View File

@ -0,0 +1,70 @@
<?php
defined( 'ABSPATH' ) || exit;
get_header(); ?>
<script src=""></script>
<div class="shop-breadcrumbs">
<?php woocommerce_breadcrumb(); ?>
</div>
<div class="shop-layout">
<aside class="shop-sidebar">
<?php
dynamic_sidebar( 'shop-filters' );
?>
</aside>
<main class="shop-products">
<header class="shop-products__header">
<div class="shop-products__header-title">Wszystkie produkty</div>
<div class="shop-products__sort">
<?php woocommerce_catalog_ordering(); ?>
</div>
</header>
<?php if ( woocommerce_product_loop() ) : ?>
<?php woocommerce_product_loop_start(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php wc_get_template_part( 'content', 'product' ); ?>
<?php endwhile; ?>
<?php woocommerce_product_loop_end(); ?>
<?php
global $wp_query;
$big = 999999999;
$pagination = paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages,
'prev_text' => '&lt; Poprzednia strona',
'next_text' => 'Następna strona &gt;',
'type' => 'array',
'end_size' => 2,
'mid_size' => 1,
) );
if ( is_array( $pagination ) ) : ?>
<nav class="shop-pagination">
<ul class="custom-pagination">
<?php foreach ( $pagination as $page ) : ?>
<li class="<?php echo ( strpos( $page, 'current' ) !== false ) ? 'active' : ''; ?>">
<?php echo $page; ?>
</li>
<?php endforeach; ?>
</ul>
</nav>
<?php endif; ?>
<?php else : ?>
<?php wc_no_products_found(); ?>
<?php endif; ?>
</main>
</div>
<?php get_footer(); ?>

View File

@ -0,0 +1,206 @@
<?php
/**
* Cart Page
*
* This template can be overridden by copying it to yourtheme/woocommerce/cart/cart.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 7.9.0
*/
defined( 'ABSPATH' ) || exit;
do_action( 'woocommerce_before_cart' ); ?>
<form class="woocommerce-cart-form" action="<?php echo esc_url( wc_get_cart_url() ); ?>" method="post">
<?php do_action( 'woocommerce_before_cart_table' ); ?>
<table class="shop_table shop_table_responsive cart woocommerce-cart-form__contents" cellspacing="0">
<thead>
<tr>
<th class="product-remove"><span class="screen-reader-text"><?php esc_html_e( 'Remove item', 'woocommerce' ); ?></span></th>
<th class="product-thumbnail"><span class="screen-reader-text"><?php esc_html_e( 'Thumbnail image', 'woocommerce' ); ?></span></th>
<th class="product-name"><?php esc_html_e( 'Product', 'woocommerce' ); ?></th>
<th class="product-price"><?php esc_html_e( 'Price', 'woocommerce' ); ?></th>
<th class="product-quantity"><?php esc_html_e( 'Quantity', 'woocommerce' ); ?></th>
<th class="product-subtotal"><?php esc_html_e( 'Subtotal', 'woocommerce' ); ?></th>
</tr>
</thead>
<tbody>
<?php do_action( 'woocommerce_before_cart_contents' ); ?>
<?php
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
/**
* Filter the product name.
*
* @since 2.1.0
* @param string $product_name Name of the product in the cart.
* @param array $cart_item The product in the cart.
* @param string $cart_item_key Key for the product in the cart.
*/
$product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key );
if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
$product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );
?>
<tr class="woocommerce-cart-form__cart-item <?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
<td class="product-remove">
<?php
echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'woocommerce_cart_item_remove_link',
sprintf(
'<a href="%s" class="remove" aria-label="%s" data-product_id="%s" data-product_sku="%s">&times;</a>',
esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
/* translators: %s is the product name */
esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ),
esc_attr( $product_id ),
esc_attr( $_product->get_sku() )
),
$cart_item_key
);
?>
</td>
<td data-sku="<?php echo esc_attr($_product->get_sku()); ?>" class="product-thumbnail">
<?php
/**
* Filter the product thumbnail displayed in the WooCommerce cart.
*
* This filter allows developers to customize the HTML output of the product
* thumbnail. It passes the product image along with cart item data
* for potential modifications before being displayed in the cart.
*
* @param string $thumbnail The HTML for the product image.
* @param array $cart_item The cart item data.
* @param string $cart_item_key Unique key for the cart item.
*
* @since 2.1.0
*/
$sku = $_product->get_sku();
if ( $sku ) {
try {
$info = (new \Foxstudio\Plugins\Template\Repository\ProductRepository(SERVER_URL))->getProductInfo($sku);
if (!empty($info['message'])) {
$img_url = $info['message']['productBaseInfo']['primary_img'] ?? '';
}
} catch (\Throwable $e) {
}
}
if ( $img_url ) {
echo '<img src="' . esc_url( $img_url ) . '" alt="' . esc_attr( $_product->get_name() ) . '" />';
} else {
echo $_product->get_image(); // lub wc_get_product_thumbnail();
}
?>
</td>
<td class="product-name" data-title="<?php esc_attr_e( 'Product', 'woocommerce' ); ?>">
<?php
if ( ! $product_permalink ) {
echo wp_kses_post( $product_name . '&nbsp;' );
} else {
/**
* This filter is documented above.
*
* @since 2.1.0
*/
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', sprintf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $_product->get_name() ), $cart_item, $cart_item_key ) );
}
do_action( 'woocommerce_after_cart_item_name', $cart_item, $cart_item_key );
// Meta data.
echo wc_get_formatted_cart_item_data( $cart_item ); // PHPCS: XSS ok.
// Backorder notification.
if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) ) {
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_backorder_notification', '<p class="backorder_notification">' . esc_html__( 'Available on backorder', 'woocommerce' ) . '</p>', $product_id ) );
}
?>
</td>
<td class="product-price" data-title="<?php esc_attr_e( 'Price', 'woocommerce' ); ?>">
<?php
echo apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); // PHPCS: XSS ok.
?>
</td>
<td class="product-quantity" data-title="<?php esc_attr_e( 'Quantity', 'woocommerce' ); ?>">
<?php
if ( $_product->is_sold_individually() ) {
$min_quantity = 1;
$max_quantity = 1;
} else {
$min_quantity = 0;
$max_quantity = $_product->get_max_purchase_quantity();
}
$product_quantity = woocommerce_quantity_input(
array(
'input_name' => "cart[{$cart_item_key}][qty]",
'input_value' => $cart_item['quantity'],
'max_value' => $max_quantity,
'min_value' => $min_quantity,
'product_name' => $product_name,
),
$_product,
false
);
echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key, $cart_item ); // PHPCS: XSS ok.
?>
</td>
<td class="product-subtotal" data-title="<?php esc_attr_e( 'Subtotal', 'woocommerce' ); ?>">
<?php
echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); // PHPCS: XSS ok.
?>
</td>
</tr>
<?php
}
}
?>
<?php do_action( 'woocommerce_cart_contents' ); ?>
<?php do_action( 'woocommerce_after_cart_contents' ); ?>
</tbody>
</table>
<?php do_action( 'woocommerce_after_cart_table' ); ?>
</form>
<?php do_action( 'woocommerce_before_cart_collaterals' ); ?>
<div class="cart-collaterals">
<?php
/**
* Cart collaterals hook.
*
* @hooked woocommerce_cross_sell_display
* @hooked woocommerce_cart_totals - 10
*/
do_action( 'woocommerce_cart_collaterals' );
?>
</div>
<?php echo do_shortcode('[InformationAboutLabelingMixed]'); ?>
<?php echo do_shortcode('[InformationAboutLabeling]'); ?>
<?php do_action( 'woocommerce_after_cart' ); ?>

View File

@ -0,0 +1,72 @@
<?php
/**
* The template for displaying product content within loops
*
* This template can be overridden by copying it to yourtheme/woocommerce/content-product.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 9.4.0
*/
defined( 'ABSPATH' ) || exit;
global $product;
// Check if the product is a valid WooCommerce product and ensure its visibility before proceeding.
if ( ! is_a( $product, WC_Product::class ) || ! $product->is_visible() ) {
return;
}
?>
<li <?php wc_product_class( '', $product );?> data-sku="<?php echo esc_attr($product->get_sku()); ?>">
<?php
/**
* Hook: woocommerce_before_shop_loop_item.
*
* @hooked woocommerce_template_loop_product_link_open - 10
*/
do_action( 'woocommerce_before_shop_loop_item' );
/**
* Hook: woocommerce_before_shop_loop_item_title.
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
/**
* Hook: woocommerce_shop_loop_item_title.
*
* @hooked woocommerce_template_loop_product_title - 10
*/
do_action( 'woocommerce_shop_loop_item_title' );
echo '<div class="product-short-description">';
echo apply_filters( 'woocommerce_short_description', $product->get_short_description() );
echo '</div>';
/**
* Hook: woocommerce_after_shop_loop_item_title.
*
* @hooked woocommerce_template_loop_rating - 5
* @hooked woocommerce_template_loop_price - 10
*/
do_action( 'woocommerce_after_shop_loop_item_title' );
/**
* Hook: woocommerce_after_shop_loop_item.
*
* @hooked woocommerce_template_loop_product_link_close - 5
* @hooked woocommerce_template_loop_add_to_cart - 10
*/
do_action( 'woocommerce_after_shop_loop_item' );
?>
</li>

View File

@ -0,0 +1,75 @@
<?php
defined( 'ABSPATH' ) || exit;
global $product;
$title = get_the_title();
$description = get_the_content();
$sku = $product->get_sku();
$attributes = $product->get_attributes();
?>
<div class="single-product">
<div class="single-product__top">
<div class="single-product__gallery">
<div class="single-product__thumbnails">
</div>
<div class="single-product__images">
</div>
<div class="product-info-card">
<header class="product-info-card__header">
<h2><strong><?php echo esc_html( $title ); ?></strong></h2>
<p><?php echo wp_kses_post( wpautop( $description ) ); ?></p>
</header>
<section class="product-info-card__details">
<h3>Informacje o produkcie</h3>
<table class="product-info-table">
<tbody>
<?php if ( $sku ) : ?>
<tr>
<td>SKU</td>
<td><?php echo esc_html( $sku ); ?></td>
</tr>
<?php endif; ?>
<?php
foreach ( $attributes as $attribute ) :
if ( ! $attribute->get_visible() ) {
continue;
}
$label = wc_attribute_label( $attribute->get_name() );
if ( $attribute->is_taxonomy() ) {
$terms = wp_get_post_terms( $product->get_id(), $attribute->get_name(), array( 'fields' => 'names' ) );
$value = implode( ', ', $terms );
} else {
$value = implode( ', ', $attribute->get_options() );
}
?>
<tr>
<td><?php echo esc_html( $label ); ?></td>
<td><?php echo esc_html( $value ); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</section>
</div>
</div>
<div class="single-product__calculator">
<?php do_action('woocommerce_single_product_summary'); ?>
</div>
</div>
<section class="bestseller">
<p class="hero__heading bestseller__heading">
PODOBNE PRODUKTY
</p>
<?php echo do_shortcode( '[related_products_slider limit="4"]' ); ?>
</section>

View File

@ -0,0 +1,54 @@
<?php
/**
* The Template for displaying all single products
*
* This template can be overridden by copying it to yourtheme/woocommerce/single-product.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 1.6.4
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
get_header( 'shop' ); ?>
<?php
/**
* woocommerce_before_main_content hook.
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb - 20
*/
do_action( 'woocommerce_before_main_content' );
?>
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<?php wc_get_template_part( 'content', 'single-product' ); ?>
<?php endwhile; // end of the loop. ?>
<?php
/**
* woocommerce_after_main_content hook.
*
* @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
*/
do_action( 'woocommerce_after_main_content' );
?>
<?php
get_footer( 'shop' );
/* Omit closing PHP tag at the end of PHP files to avoid "headers already sent" issues. */