<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TikMarket - Vende en TikTok sin Inventario y Gana Dinero</title>
<meta name="description" content="Plataforma revolucionaria para vender en TikTok sin invertir en inventario. Gana comisiones del 80% por cada venta. ¡Regístrate gratis hoy!">
<meta name="keywords" content="vender en tiktok, marketplace sin inventario, ganar dinero tiktok, comisiones tiktok, tienda online gratis">
<link rel="canonical" href="https://www.tikmarket.com/">
<meta property="og:title" content="TikMarket - Vende en TikTok sin Inventario y Gana Dinero">
<meta property="og:description" content="Plataforma revolucionaria para vender en TikTok sin invertir en inventario. Gana comisiones del 80% por cada venta. ¡Regístrate gratis hoy!">
<meta property="og:image" content="https://www.tikmarket.com/og-image.jpg">
<meta property="og:url" content="https://www.tikmarket.com/">
<meta name="twitter:card" content="summary_large_image">
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🛒</text></svg>">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Montserrat:wght@700;800&display=swap" rel="stylesheet">
<style>
:root {
--navy-primary: #0a2463;
--navy-secondary: #1e3a8a;
--navy-light: #3a506b;
--gold-accent: #d4af37;
--gold-dark: #b8860b;
--cream-bg: #f8f9fa;
--light-gray: #e9ecef;
--medium-gray: #6c757d;
--dark-text: #212529;
--success: #28a745;
--danger: #dc3545;
--warning: #ffc107;
--transition: all 0.3s ease;
--shadow-sm: 0 4px 6px rgba(10, 36, 99, 0.1);
--shadow-md: 0 10px 15px rgba(10, 36, 99, 0.15);
--shadow-lg: 0 20px 25px rgba(10, 36, 99, 0.2);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
body {
background-color: #fff;
color: var(--dark-text);
line-height: 1.6;
overflow-x: hidden;
min-height: 100vh;
display: flex;
flex-direction: column;
}
.container {
width: 100%;
max-width: 1400px;
margin: 0 auto;
padding: 0 20px;
}
/* Header Styles */
header {
background: white;
padding: 15px 0;
box-shadow: 0 2px 15px rgba(10, 36, 99, 0.1);
position: sticky;
top: 0;
z-index: 1000;
border-bottom: 1px solid var(--light-gray);
}
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
display: flex;
align-items: center;
color: var(--navy-primary);
font-weight: bold;
font-size: 1.8rem;
text-decoration: none;
}
.logo i {
color: var(--gold-accent);
margin-right: 8px;
}
.logo span {
color: var(--gold-accent);
}
nav ul {
display: flex;
list-style: none;
gap: 25px;
}
nav a {
color: var(--dark-text);
text-decoration: none;
font-weight: 500;
transition: var(--transition);
position: relative;
padding: 5px 0;
display: flex;
align-items: center;
gap: 5px;
}
nav a:after {
content: '';
position: absolute;
width: 0;
height: 2px;
bottom: 0;
left: 0;
background: var(--gold-accent);
transition: var(--transition);
}
nav a:hover:after {
width: 100%;
}
nav a:hover {
color: var(--navy-primary);
}
.header-actions {
display: flex;
align-items: center;
gap: 15px;
}
.search-bar {
position: relative;
width: 280px;
}
.search-bar input {
width: 100%;
padding: 10px 20px 10px 45px;
border: 2px solid var(--light-gray);
border-radius: 50px;
font-size: 0.95rem;
outline: none;
transition: var(--transition);
}
.search-bar input:focus {
border-color: var(--navy-primary);
box-shadow: 0 0 0 3px rgba(10, 36, 99, 0.1);
}
.search-bar i {
position: absolute;
left: 15px;
top: 50%;
transform: translateY(-50%);
color: var(--medium-gray);
}
.user-actions {
display: flex;
align-items: center;
gap: 15px;
}
.btn {
display: inline-flex;
align-items: center;
gap: 8px;
background: var(--navy-primary);
color: white;
padding: 10px 20px;
border-radius: 8px;
text-decoration: none;
font-weight: 500;
transition: var(--transition);
border: none;
cursor: pointer;
font-size: 0.95rem;
}
.btn:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-md);
}
.btn-gold {
background: var(--gold-accent);
color: var(--navy-primary);
}
.btn-gold:hover {
background: var(--gold-dark);
color: white;
}
.btn-outline {
background: transparent;
border: 2px solid var(--navy-primary);
color: var(--navy-primary);
}
.btn-outline:hover {
background: var(--navy-primary);
color: white;
}
.cart-icon {
position: relative;
font-size: 1.2rem;
cursor: pointer;
}
.cart-count {
position: absolute;
top: -8px;
right: -8px;
background: var(--danger);
color: white;
font-size: 0.7rem;
width: 20px;
height: 20px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
/* Marketplace Header */
.marketplace-header {
background: white;
padding: 15px 0;
border-top: 1px solid var(--light-gray);
border-bottom: 1px solid var(--light-gray);
}
.marketplace-filters {
display: flex;
flex-wrap: wrap;
gap: 15px;
padding: 10px 0;
align-items: center;
}
.categories {
display: flex;
gap: 10px;
overflow-x: auto;
padding: 5px 0;
min-width: 200px;
scrollbar-width: none;
}
.categories::-webkit-scrollbar {
display: none;
}
.category {
background: var(--light-gray);
color: var(--medium-gray);
padding: 8px 16px;
border-radius: 50px;
white-space: nowrap;
cursor: pointer;
transition: var(--transition);
font-size: 0.9rem;
font-weight: 500;
}
.category.active, .category:hover {
background: var(--navy-primary);
color: white;
}
.category.active {
font-weight: 600;
}
.filters {
display: flex;
gap: 10px;
margin-left: auto;
}
.filter-btn {
background: white;
border: 1px solid var(--light-gray);
border-radius: 8px;
padding: 8px 15px;
display: flex;
align-items: center;
gap: 5px;
color: var(--dark-text);
cursor: pointer;
transition: var(--transition);
}
.filter-btn:hover {
border-color: var(--navy-primary);
color: var(--navy-primary);
}
/* Hero Section */
.hero {
padding: 60px 0 40px;
background: linear-gradient(135deg, var(--cream-bg) 0%, #eef2f7 100%);
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,0 L100,100 L0,100 Z" fill="rgba(212, 175, 55, 0.05)"/></svg>');
background-size: cover;
opacity: 0.3;
}
.hero-content {
position: relative;
z-index: 2;
max-width: 700px;
}
.hero h1 {
font-size: 2.8rem;
margin-bottom: 20px;
color: var(--navy-primary);
line-height: 1.2;
font-family: 'Montserrat', sans-serif;
}
.hero h1 span {
color: var(--gold-accent);
font-weight: 800;
}
.hero p {
font-size: 1.2rem;
color: var(--medium-gray);
margin-bottom: 30px;
}
.hero-features {
display: flex;
gap: 25px;
margin-top: 30px;
}
.feature {
display: flex;
align-items: flex-start;
gap: 10px;
}
.feature i {
color: var(--gold-accent);
font-size: 1.2rem;
margin-top: 3px;
}
.feature-text h3 {
color: var(--navy-primary);
margin-bottom: 5px;
}
.feature-text p {
color: var(--medium-gray);
font-size: 0.95rem;
}
/* Main Content */
main {
flex: 1;
}
.section-title {
text-align: center;
margin: 40px 0 30px;
}
.section-title h2 {
font-size: 2.2rem;
color: var(--navy-primary);
position: relative;
display: inline-block;
font-family: 'Montserrat', sans-serif;
}
.section-title h2:after {
content: '';
position: absolute;
width: 60px;
height: 3px;
background: var(--gold-accent);
bottom: -10px;
left: 50%;
transform: translateX(-50%);
border-radius: 3px;
}
.section-title p {
color: var(--medium-gray);
max-width: 700px;
margin: 15px auto 0;
}
/* Products Grid */
.products-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 25px;
padding: 20px 0 40px;
}
.product-card {
background: white;
border-radius: 12px;
overflow: hidden;
box-shadow: var(--shadow-sm);
transition: var(--transition);
position: relative;
}
.product-card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-lg);
}
.product-img {
height: 200px;
background: var(--light-gray);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
position: relative;
}
.product-img img {
width: 100%;
height: 100%;
object-fit: cover;
transition: var(--transition);
}
.product-card:hover .product-img img {
transform: scale(1.05);
}
.product-badge {
position: absolute;
top: 15px;
left: 15px;
background: var(--gold-accent);
color: var(--navy-primary);
padding: 5px 12px;
border-radius: 20px;
font-weight: bold;
font-size: 0.85rem;
z-index: 2;
}
.product-wishlist {
position: absolute;
top: 15px;
right: 15px;
width: 36px;
height: 36px;
background: rgba(255, 255, 255, 0.9);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: var(--transition);
z-index: 2;
}
.product-wishlist:hover {
background: var(--gold-accent);
color: white;
}
.product-info {
padding: 20px;
}
.product-category {
display: inline-block;
background: rgba(30, 58, 138, 0.1);
color: var(--navy-secondary);
padding: 5px 12px;
border-radius: 20px;
font-size: 0.85rem;
margin-bottom: 10px;
}
.product-name {
font-size: 1.2rem;
margin-bottom: 10px;
color: var(--dark-text);
height: 45px;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.product-description {
color: var(--medium-gray);
font-size: 0.95rem;
margin-bottom: 15px;
height: 45px;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.product-pricing {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
.product-price {
font-size: 1.4rem;
font-weight: bold;
color: var(--navy-primary);
}
.product-original-price {
text-decoration: line-through;
color: var(--medium-gray);
font-size: 0.95rem;
}
.product-savings {
background: rgba(212, 175, 55, 0.15);
color: var(--gold-accent);
padding: 3px 8px;
border-radius: 5px;
font-weight: bold;
font-size: 0.85rem;
}
.product-actions {
display: flex;
gap: 10px;
}
.btn-add-to-cart {
flex: 1;
background: white;
color: var(--navy-primary);
border: 1px solid var(--navy-light);
border-radius: 8px;
padding: 10px;
font-weight: 500;
transition: var(--transition);
display: flex;
align-items: center;
justify-content: center;
gap: 5px;
}
.btn-add-to-cart:hover {
background: var(--navy-light);
color: white;
border-color: var(--navy-light);
}
.btn-buy-now {
flex: 1;
background: var(--navy-primary);
color: white;
border: none;
border-radius: 8px;
padding: 10px;
font-weight: 500;
transition: var(--transition);
display: flex;
align-items: center;
justify-content: center;
gap: 5px;
}
.btn-buy-now:hover {
background: #0d3073;
transform: translateY(-2px);
}
.product-seller {
display: flex;
align-items: center;
gap: 10px;
margin-top: 15px;
padding-top: 15px;
border-top: 1px solid var(--light-gray);
}
.seller-avatar {
width: 32px;
height: 32px;
background: var(--navy-primary);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
font-size: 0.8rem;
}
.seller-info {
font-size: 0.85rem;
}
.seller-info strong {
color: var(--navy-primary);
}
.verified-seller {
display: flex;
align-items: center;
gap: 3px;
color: var(--success);
font-size: 0.8rem;
}
/* Seller Section */
.seller-section {
padding: 60px 0;
background: linear-gradient(135deg, var(--navy-primary) 0%, var(--navy-secondary) 100%);
color: white;
position: relative;
overflow: hidden;
}
.seller-section::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,100 L100,0 L100,100 Z" fill="rgba(212, 175, 55, 0.1)"/></svg>');
background-size: cover;
opacity: 0.2;
}
.seller-section h2 {
color: white;
margin-bottom: 20px;
position: relative;
z-index: 2;
}
.seller-section p {
max-width: 700px;
margin: 0 auto 30px;
opacity: 0.9;
position: relative;
z-index: 2;
}
.commission-structure {
max-width: 900px;
margin: 0 auto;
background: rgba(255, 255, 255, 0.1);
border-radius: 15px;
overflow: hidden;
backdrop-filter: blur(10px);
}
.commission-header {
background: rgba(255, 255, 255, 0.15);
padding: 25px;
text-align: center;
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.commission-header h3 {
font-size: 1.8rem;
color: var(--gold-accent);
}
.commission-rates {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1px;
background: rgba(255, 255, 255, 0.1);
}
.rate-card {
background: rgba(255, 255, 255, 0.05);
padding: 25px;
text-align: center;
transition: var(--transition);
}
.rate-card:hover {
background: rgba(255, 255, 255, 0.15);
transform: translateY(-5px);
}
.rate-icon {
font-size: 2.5rem;
color: var(--gold-accent);
margin-bottom: 15px;
}
.rate-value {
font-size: 2.5rem;
font-weight: bold;
color: var(--gold-accent);
margin: 15px 0;
}
.rate-description {
color: rgba(255, 255, 255, 0.8);
}
.seller-cta {
display: flex;
flex-direction: column;
align-items: center;
gap: 20px;
max-width: 700px;
margin: 40px auto 0;
position: relative;
z-index: 2;
}
.seller-cta p {
font-size: 1.1rem;
text-align: center;
}
.seller-stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: 20px;
max-width: 800px;
margin: 30px auto 0;
text-align: center;
}
.stat-item {
padding: 15px;
background: rgba(255, 255, 255, 0.1);
border-radius: 10px;
transition: var(--transition);
}
.stat-item:hover {
background: rgba(255, 255, 255, 0.15);
transform: translateY(-5px);
}
.stat-value {
font-size: 2.2rem;
font-weight: bold;
color: var(--gold-accent);
line-height: 1;
}
.stat-label {
color: rgba(255, 255, 255, 0.8);
font-size: 0.95rem;
}
/* How It Works */
.how-it-works {
padding: 60px 0;
background: white;
}
.steps-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 30px;
max-width: 1200px;
margin: 0 auto;
}
.step-card {
background: var(--cream-bg);
border-radius: 12px;
padding: 30px;
text-align: center;
transition: var(--transition);
position: relative;
overflow: hidden;
border: 1px solid var(--light-gray);
}
.step-card:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 5px;
background: var(--gold-accent);
}
.step-card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-md);
border-color: rgba(30, 58, 138, 0.2);
}
.step-number {
display: inline-flex;
align-items: center;
justify-content: center;
width: 45px;
height: 45px;
background: var(--navy-primary);
color: white;
border-radius: 50%;
font-weight: bold;
font-size: 1.2rem;
margin-bottom: 20px;
}
.step-card h3 {
margin-bottom: 15px;
color: var(--navy-primary);
font-size: 1.4rem;
}
.step-card p {
color: var(--medium-gray);
}
/* Testimonials */
.testimonials {
padding: 60px 0;
background: var(--cream-bg);
}
.testimonial-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 30px;
max-width: 1200px;
margin: 0 auto;
}
.testimonial-card {
background: white;
border-radius: 12px;
padding: 25px;
position: relative;
box-shadow: 0 5px 15px rgba(0,0,0,0.05);
transition: var(--transition);
}
.testimonial-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-md);
}
.testimonial-content {
margin-top: 20px;
color: var(--medium-gray);
font-style: italic;
position: relative;
z-index: 1;
line-height: 1.7;
}
.testimonial-author {
display: flex;
align-items: center;
margin-top: 20px;
}
.author-avatar {
width: 50px;
height: 50px;
background: var(--navy-primary);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
font-size: 1.1rem;
}
.author-info h4 {
margin-bottom: 5px;
color: var(--navy-primary);
font-size: 1.1rem;
}
.author-info p {
color: var(--medium-gray);
font-size: 0.85rem;
}
.author-verified {
display: flex;
align-items: center;
gap: 5px;
color: var(--success);
font-weight: 500;
font-size: 0.85rem;
margin-top: 3px;
}
.verified-icon {
color: var(--success);
}
/* Results Section */
.results {
padding: 60px 0;
background: linear-gradient(135deg, var(--navy-primary) 0%, var(--navy-secondary) 100%);
color: white;
text-align: center;
}
.results h2 {
font-size: 2.2rem;
margin-bottom: 20px;
}
.results p {
max-width: 700px;
margin: 0 auto 30px;
font-size: 1.1rem;
opacity: 0.9;
}
.results-btn {
background: var(--gold-accent);
color: var(--navy-primary);
font-weight: bold;
font-size: 1.1rem;
padding: 12px 30px;
}
.results-btn:hover {
background: var(--gold-dark);
color: white;
transform: translateY(-3px);
box-shadow: 0 10px 25px rgba(212, 175, 55, 0.3);
}
/* Footer */
footer {
background: #212529;
color: #adb5bd;
padding: 50px 0 20px;
}
.footer-content {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 30px;
margin-bottom: 40px;
}
.footer-logo {
font-size: 1.8rem;
color: var(--gold-accent);
margin-bottom: 20px;
font-weight: bold;
display: flex;
align-items: center;
gap: 10px;
}
.footer-about p {
color: #adb5bd;
margin-bottom: 15px;
line-height: 1.7;
}
.footer-links h4, .footer-seller h4, .footer-contact h4 {
color: white;
margin-bottom: 20px;
font-size: 1.2rem;
display: flex;
align-items: center;
gap: 10px;
}
.footer-links ul, .footer-seller ul, .footer-contact ul {
list-style: none;
}
.footer-links li, .footer-seller li, .footer-contact li {
margin-bottom: 12px;
}
.footer-links a, .footer-seller a, .footer-contact a {
color: #adb5bd;
text-decoration: none;
transition: var(--transition);
display: flex;
align-items: center;
gap: 8px;
}
.footer-links a:hover, .footer-seller a:hover, .footer-contact a:hover {
color: var(--gold-accent);
padding-left: 5px;
}
.social-links {
display: flex;
gap: 15px;
margin-top: 20px;
}
.social-links a {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
background: rgba(255, 255, 255, 0.1);
border-radius: 50%;
color: white;
transition: var(--transition);
}
.social-links a:hover {
background: var(--gold-accent);
color: var(--navy-primary);
transform: translateY(-3px);
}
.copyright {
margin-top: 40px;
padding-top: 20px;
border-top: 1px solid #343a40;
font-size: 0.9rem;
opacity: 0.7;
text-align: center;
color: #adb5bd;
}
.payment-methods {
display: flex;
gap: 15px;
justify-content: center;
margin-top: 15px;
flex-wrap: wrap;
}
.payment-methods i {
font-size: 2rem;
color: rgba(255, 255, 255, 0.7);
}
/* Auth Modal */
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.7);
z-index: 2000;
align-items: center;
justify-content: center;
animation: fadeIn 0.3s ease;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.modal-content {
background: white;
border-radius: 15px;
width: 100%;
max-width: 500px;
overflow: hidden;
box-shadow: 0 15px 50px rgba(0, 0, 0, 0.3);
position: relative;
animation: slideIn 0.4s ease;
}
@keyframes slideIn {
from {
transform: translateY(-50px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.modal-header {
background: var(--navy-primary);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.modal-header h2 {
font-size: 1.8rem;
margin-bottom: 5px;
}
.modal-subtitle {
opacity: 0.8;
font-size: 0.95rem;
}
.modal-close {
position: absolute;
top: 15px;
right: 20px;
color: white;
font-size: 1.5rem;
cursor: pointer;
transition: var(--transition);
}
.modal-close:hover {
color: var(--gold-accent);
}
.modal-body {
padding: 30px;
}
.auth-tabs {
display: flex;
margin-bottom: 25px;
border-bottom: 1px solid var(--light-gray);
}
.auth-tab {
flex: 1;
text-align: center;
padding: 12px 0;
cursor: pointer;
font-weight: 500;
transition: var(--transition);
}
.auth-tab.active {
color: var(--navy-primary);
border-bottom: 3px solid var(--gold-accent);
font-weight: 600;
}
.auth-form {
display: none;
}
.auth-form.active {
display: block;
}
.form-group {
margin-bottom: 20px;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-weight: 500;
color: var(--dark-text);
}
.form-group input {
width: 100%;
padding: 12px 15px;
border: 1px solid var(--light-gray);
border-radius: 8px;
font-size: 1rem;
transition: var(--transition);
}
.form-group input:focus {
outline: none;
border-color: var(--navy-primary);
box-shadow: 0 0 0 3px rgba(10, 36, 99, 0.1);
}
.form-group .input-icon {
position: relative;
}
.form-group .input-icon i {
position: absolute;
left: 15px;
top: 50%;
transform: translateY(-50%);
color: var(--medium-gray);
}
.form-group .input-icon input {
padding-left: 45px;
}
.form-group.forgot-password {
text-align: right;
margin-bottom: 25px;
}
.form-group.forgot-password a {
color: var(--navy-primary);
text-decoration: none;
font-size: 0.9rem;
}
.form-group .btn {
width: 100%;
justify-content: center;
}
.divider {
display: flex;
align-items: center;
margin: 25px 0;
}
.divider-line {
flex: 1;
height: 1px;
background: var(--light-gray);
}
.divider-text {
padding: 0 15px;
color: var(--medium-gray);
font-size: 0.9rem;
}
.social-login {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
}
.social-btn {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 12px;
border-radius: 8px;
font-weight: 500;
cursor: pointer;
transition: var(--transition);
border: 1px solid var(--light-gray);
}
.social-btn.google {
background: white;
color: #757575;
}
.social-btn.google:hover {
background: #f8f8f8;
border-color: #ddd;
}
.social-btn.tiktok {
background: var(--navy-primary);
color: white;
}
.social-btn.tiktok:hover {
background: #0d3073;
transform: translateY(-2px);
}
.auth-footer {
text-align: center;
margin-top: 25px;
font-size: 0.95rem;
color: var(--medium-gray);
}
.auth-footer a {
color: var(--navy-primary);
text-decoration: none;
font-weight: 500;
}
/* User Dashboard */
.user-dashboard {
display: none;
padding: 40px 0;
background: var(--cream-bg);
}
.dashboard-content {
max-width: 1200px;
margin: 0 auto;
}
.dashboard-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30px;
}
.dashboard-title {
font-size: 1.8rem;
color: var(--navy-primary);
}
.dashboard-stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin-bottom: 30px;
}
.stat-card {
background: white;
border-radius: 12px;
padding: 20px;
box-shadow: var(--shadow-sm);
}
.stat-card h3 {
color: var(--medium-gray);
font-size: 0.95rem;
margin-bottom: 10px;
}
.stat-value {
font-size: 2rem;
font-weight: bold;
color: var(--navy-primary);
}
.stat-trend {
display: flex;
align-items: center;
gap: 5px;
font-size: 0.9rem;
margin-top: 5px;
}
.trend-up {
color: var(--success);
}
.trend-down {
color: var(--danger);
}
.dashboard-section {
background: white;
border-radius: 12px;
padding: 25px;
margin-bottom: 30px;
box-shadow: var(--shadow-sm);
}
.section-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.section-title h3 {
font-size: 1.4rem;
color: var(--navy-primary);
margin: 0;
}
.section-header a {
color: var(--navy-primary);
text-decoration: none;
font-weight: 500;
}
.products-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 20px;
}
.dashboard-product {
display: flex;
gap: 15px;
padding: 15px 0;
border-bottom: 1px solid var(--light-gray);
}
.dashboard-product:last-child {
border-bottom: none;
}
.product-thumb {
width: 80px;
height: 80px;
background: var(--light-gray);
border-radius: 8px;
overflow: hidden;
}
.product-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
}
.product-details {
flex: 1;
}
.product-details h4 {
margin-bottom: 5px;
color: var(--navy-primary);
}
.product-meta {
display: flex;
gap: 15px;
margin-top: 8px;
font-size: 0.85rem;
color: var(--medium-gray);
}
.product-actions {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 10px;
}
.product-btn {
padding: 5px 10px;
border-radius: 5px;
font-size: 0.85rem;
text-align: center;
cursor: pointer;
transition: var(--transition);
}
.product-btn.view {
background: rgba(30, 58, 138, 0.1);
color: var(--navy-secondary);
}
.product-btn.view:hover {
background: rgba(30, 58, 138, 0.2);
}
.product-btn.edit {
background: rgba(212, 175, 55, 0.1);
color: var(--gold-dark);
}
.product-btn.edit:hover {
background: rgba(212, 175, 55, 0.2);
}
/* Cart */
.cart {
display: none;
padding: 40px 0;
background: var(--cream-bg);
}
.cart-header {
max-width: 1000px;
margin: 0 auto 30px;
}
.cart-title {
font-size: 1.8rem;
color: var(--navy-primary);
margin-bottom: 15px;
}
.cart-subtitle {
color: var(--medium-gray);
}
.cart-content {
max-width: 1000px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 350px;
gap: 30px;
}
.cart-items {
background: white;
border-radius: 12px;
padding: 25px;
box-shadow: var(--shadow-sm);
}
.cart-item {
display: grid;
grid-template-columns: 100px 1fr auto;
gap: 20px;
padding: 20px 0;
border-bottom: 1px solid var(--light-gray);
}
.cart-item:last-child {
border-bottom: none;
}
.item-image {
width: 100px;
height: 100px;
background: var(--light-gray);
border-radius: 8px;
overflow: hidden;
}
.item-image img {
width: 100%;
height: 100%;
object-fit: cover;
}
.item-details {
display: flex;
flex-direction: column;
gap: 10px;
}
.item-name {
font-weight: 500;
color: var(--navy-primary);
font-size: 1.1rem;
}
.item-seller {
display: flex;
align-items: center;
gap: 8px;
font-size: 0.85rem;
color: var(--medium-gray);
}
.item-actions {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
}
.item-price {
font-weight: bold;
font-size: 1.2rem;
color: var(--navy-primary);
}
.item-remove {
color: var(--danger);
cursor: pointer;
font-size: 0.9rem;
transition: var(--transition);
}
.item-remove:hover {
color: #c82333;
}
.cart-summary {
background: white;
border-radius: 12px;
padding: 25px;
box-shadow: var(--shadow-sm);
}
.summary-title {
font-size: 1.4rem;
color: var(--navy-primary);
margin-bottom: 20px;
}
.summary-row {
display: flex;
justify-content: space-between;
margin-bottom: 15px;
}
.summary-total {
font-weight: bold;
font-size: 1.3rem;
color: var(--navy-primary);
border-top: 1px solid var(--light-gray);
padding-top: 15px;
margin-top: 15px;
}
.checkout-btn {
width: 100%;
padding: 15px;
font-size: 1.1rem;
margin-top: 20px;
}
.empty-cart {
text-align: center;
padding: 40px 0;
}
.empty-cart i {
font-size: 4rem;
color: var(--light-gray);
margin-bottom: 20px;
}
.empty-cart h3 {
color: var(--navy-primary);
margin-bottom: 15px;
}
.empty-cart p {
color: var(--medium-gray);
max-width: 400px;
margin: 0 auto 25px;
}
/* Responsive Design */
@media (max-width: 1200px) {
.cart-content {
grid-template-columns: 1fr;
}
.cart-summary {
order: -1;
}
}
@media (max-width: 992px) {
.hero h1 {
font-size: 2.3rem;
}
.hero-features {
flex-direction: column;
gap: 15px;
}
}
@media (max-width: 768px) {
.header-content {
flex-direction: column;
gap: 15px;
}
nav ul {
flex-wrap: wrap;
justify-content: center;
}
nav a {
margin: 5px 10px;
font-size: 0.9rem;
}
.search-bar {
width: 100%;
}
.hero h1 {
font-size: 2rem;
}
.hero p {
font-size: 1rem;
}
.products-grid {
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}
.step-card {
padding: 20px;
}
.modal-content {
margin: 20px;
}
}
@media (max-width: 576px) {
.hero h1 {
font-size: 1.8rem;
}
.hero-features {
flex-direction: column;
}
.feature {
flex-direction: row;
}
.categories {
gap: 5px;
}
.category {
padding: 6px 10px;
font-size: 0.8rem;
}
.btn {
padding: 8px 15px;
font-size: 0.9rem;
}
.products-grid {
grid-template-columns: 1fr;
}
.seller-stats {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<header>
<div class="container">
<div class="header-content">
<a href="#" class="logo"><i class="fas fa-store"></i>Tik<span>Market</span></a>
<nav>
<ul>
<li><a href="#how-it-works"><i class="fas fa-cogs"></i> Cómo Funciona</a></li>
<li><a href="#products"><i class="fas fa-box-open"></i> Productos</a></li>
<li><a href="#seller"><i class="fas fa-chart-line"></i> Para Vendedores</a></li>
<li><a href="#testimonials"><i class="fas fa-comments"></i> Testimonios</a></li>
</ul>
</nav>
<div class="header-actions">
<div class="search-bar">
<i class="fas fa-search"></i>
<input type="text" placeholder="Buscar productos...">
</div>
<div class="user-actions">
<div class="cart-icon" id="cart-icon">
<i class="fas fa-shopping-cart"></i>
<span class="cart-count">0</span>
</div>
<div class="user-menu" id="user-menu">
<i class="fas fa-user-circle" style="font-size: 1.4rem; cursor: pointer;"></i>
</div>
<button class="btn btn-gold" id="login-btn"><i class="fas fa-sign-in-alt"></i> Iniciar Sesión</button>
</div>
</div>
</div>
</div>
</header>
<div class="marketplace-header">
<div class="container">
<div class="marketplace-filters">
<div class="categories">
<span class="category active">Todos</span>
<span class="category">Electrónica</span>
<span class="category">Moda</span>
<span class="category">Hogar</span>
<span class="category">Belleza</span>
<span class="category">Deportes</span>
<span class="category">Mascotas</span>
<span class="category">Juguetes</span>
</div>
<div class="filters">
<div class="filter-btn">
<i class="fas fa-sort-amount-down"></i> Más Relevantes
</div>
<div class="filter-btn">
<i class="fas fa-tags"></i> Ofertas
</div>
<div class="filter-btn">
<i class="fas fa-sliders-h"></i> Filtros
</div>
</div>
</div>
</div>
</div>
<section class="hero">
<div class="container">
<div class="hero-content">
<h1>Vende en TikTok sin tener <span>inventario físico</span></h1>
<p>Convierte tu cuenta de TikTok en una tienda virtual rentable. Gana comisiones del 80% por cada venta sin invertir en productos, publicidad ni logística.</p>
<a href="#seller" class="btn btn-gold"><i class="fab fa-tiktok"></i> ¡Empieza a Vender en TikTok!</a>
<p style="font-weight: 500; color: var(--medium-gray);"><i class="fas fa-check-circle" style="color: var(--success); margin-right: 5px;"></i> +5,842 vendedores generando ingresos en nuestra plataforma</p>
<div class="hero-features">
<div class="feature">
<i class="fas fa-wallet"></i>
<div class="feature-text">
<h3>80% de Comisión</h3>
<p>Recibe el 80% de cada venta realizada</p>
</div>
</div>
<div class="feature">
<i class="fas fa-box-open"></i>
<div class="feature-text">
<h3>Sin Inventario</h3>
<p>Nunca necesitas comprar productos</p>
</div>
</div>
<div class="feature">
<i class="fas fa-shipping-fast"></i>
<div class="feature-text">
<h3>Envío Directo</h3>
<p>El proveedor envía directamente al cliente</p>
</div>
</div>
</div>
</div>
</div>
</section>
<main>
<section class="products" id="products">
<div class="container">
<div class="section-title">
<h2>Productos Destacados</h2>
<p>Los artículos más vendidos en nuestra plataforma esta semana</p>
</div>
<div class="products-grid" id="products-grid">
<!-- Products will be loaded here via JavaScript -->
</div>
</div>
</section>
<section class="how-it-works" id="how-it-works">
<div class="container">
<div class="section-title">
<h2>Cómo Funciona</h2>
<p>Nuestro sistema revolucionario para vender sin inventario</p>
</div>
<div class="steps-grid">
<div class="step-card">
<div class="step-number">1</div>
<h3>Regístrate Gratis</h3>
<p>Crea tu cuenta de vendedor en minutos. Sin costos de inscripción ni pagos ocultos.</p>
</div>
<div class="step-card">
<div class="step-number">2</div>
<h3>Elige Productos</h3>
<p>Selecciona productos de nuestro catálogo de más de 50,000 artículos sin necesidad de invertir en inventario.</p>
</div>
<div class="step-card">
<div class="step-number">3</div>
<h3>Crea Contenido</h3>
<p>Haz videos promocionando los productos en TikTok sin necesidad de tenerlos físicamente.</p>
</div>
<div class="step-card">
<div class="step-number">4</div>
<h3>Gana Comisiones</h3>
<p>Recibe el 80% de cada venta realizada a través de tu enlace único. Nosotros procesamos el pedido y envío.</p>
</div>
</div>
</div>
</section>
<section class="seller-section" id="seller">
<div class="container">
<div class="section-title">
<h2 style="color: white;">Modelo de Comisiones</h2>
<p style="color: rgba(255,255,255,0.8);">Descubre cómo generamos ingresos para ti y para nuestra plataforma</p>
</div>
<div class="commission-structure">
<div class="commission-header">
<h3>¿Cómo Funcionan las Comisiones?</h3>
<p class="modal-subtitle">Nuestro modelo es simple y transparente: tú ganas, nosotros ganamos</p>
</div>
<div class="commission-rates">
<div class="rate-card">
<div class="rate-icon">
<i class="fas fa-wallet"></i>
</div>
<h4>Tu Comisión</h4>
<div class="rate-value">80%</div>
<p class="rate-description">Del precio de venta que recibes directamente en tu cuenta</p>
</div>
<div class="rate-card">
<div class="rate-icon">
<i class="fas fa-store"></i>
</div>
<h4>Nuestra Comisión</h4>
<div class="rate-value">20%</div>
<p class="rate-description">Cubre procesamiento de pedidos, atención al cliente y logística</p>
</div>
</div>
</div>
<div class="commission-highlight" style="background: rgba(212, 175, 55, 0.1); border-left: 3px solid var(--gold-accent); padding: 15px; border-radius: 0 8px 8px 0; margin: 20px 0;">
<p><strong>Ejemplo práctico:</strong> Si vendes un producto de $50, tú recibes $40 y nosotros $10. Este modelo permite que operemos sin costos iniciales para ti.</p>
</div>
<div class="seller-cta">
<p>¿Listo para comenzar a generar ingresos sin invertir en inventario?</p>
<a href="#" class="btn btn-gold" id="register-seller"><i class="fab fa-tiktok"></i> Regístrate como Vendedor Gratis</a>
<div class="seller-stats">
<div class="stat-item">
<div class="stat-value">80%</div>
<div class="stat-label">Tu Comisión</div>
</div>
<div class="stat-item">
<div class="stat-value">50k+</div>
<div class="stat-label">Productos</div>
</div>
<div class="stat-item">
<div class="stat-value">24h</div>
<div class="stat-label">Soporte</div>
</div>
<div class="stat-item">
<div class="stat-value">$0</div>
<div class="stat-label">Inversión Inicial</div>
</div>
</div>
</div>
</div>
</section>
<section class="testimonials" id="testimonials">
<div class="container">
<div class="section-title">
<h2>Lo que dicen nuestros vendedores</h2>
<p>Personas reales que están generando ingresos con TikMarket</p>
</div>
<div class="testimonial-grid">
<div class="testimonial-card">
<div class="testimonial-content">
Empecé sin ningún conocimiento de marketing. Seguí los tutoriales en TikTok y en 2 semanas ya estaba generando mis primeras ventas. ¡El sistema de comisiones es transparente y los pagos llegan puntualmente cada semana!
</div>
<div class="testimonial-author">
<div class="author-avatar">ML</div>
<div class="author-info">
<h4>María López</h4>
<p>Vendedora desde Enero 2023 • $1,245 en comisiones</p>
<div class="author-verified">
<i class="fas fa-badge-check verified-icon"></i> Cuenta Verificada
</div>
</div>
</div>
</div>
<div class="testimonial-card">
<div class="testimonial-content">
Lo mejor es que no tuve que invertir nada. Solo necesité mi teléfono y seguir las estrategias. El 80% de comisión es mucho mejor que otras plataformas. ¡He generado más de $2,000 en 2 meses!
</div>
<div class="testimonial-author">
<div class="author-avatar">CM</div>
<div class="author-info">
<h4>Carlos Mendoza</h4>
<p>Vendedor desde Marzo 2023 • $2,180 en comisiones</p>
<div class="author-verified">
<i class="fas fa-badge-check verified-icon"></i> Cuenta Verificada
</div>
</div>
</div>
</div>
<div class="testimonial-card">
<div class="testimonial-content">
La plataforma es muy fácil de usar. Puedo ver mis estadísticas en tiempo real y el sistema de pagos es rápido. ¡Recomiendo TikMarket a todos los que quieren vender en TikTok sin complicaciones!
</div>
<div class="testimonial-author">
<div class="author-avatar">AS</div>
<div class="author-info">
<h4>Ana Sánchez</h4>
<p>Vendedora desde Febrero 2023 • $890 en comisiones</p>
<div class="author-verified">
<i class="fas fa-badge-check verified-icon"></i> Cuenta Verificada
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="results">
<div class="container">
<h2>¡Convierte tu cuenta de TikTok en una fuente de ingresos!</h2>
<p>Únete a miles de vendedores que están generando ingresos con nuestro modelo sin inventario y comisiones justas.</p>
<a href="#" class="btn results-btn" id="cta-seller"><i class="fab fa-tiktok"></i> Regístrate como Vendedor Gratis</a>
<div class="seller-stats" style="margin-top: 30px;">
<div class="stat-item">
<div class="stat-value">0€</div>
<div class="stat-label">Inversión Inicial</div>
</div>
<div class="stat-item">
<div class="stat-value">80%</div>
<div class="stat-label">De Comisión</div>
</div>
<div class="stat-item">
<div class="stat-value">24/7</div>
<div class="stat-label">Soporte al Vendedor</div>
</div>
<div class="stat-item">
<div class="stat-value">50k+</div>
<div class="stat-label">Productos Disponibles</div>
</div>
</div>
</div>
</section>
</main>
<div class="user-dashboard" id="user-dashboard">
<div class="container">
<div class="dashboard-content">
<div class="dashboard-header">
<h2 class="dashboard-title">Dashboard del Vendedor</h2>
<div>
<span class="welcome-message" style="margin-right: 20px;">¡Hola, <span id="user-name">Usuario</span>!</span>
<button class="btn btn-outline" id="logout-btn"><i class="fas fa-sign-out-alt"></i> Cerrar Sesión</button>
</div>
</div>
<div class="dashboard-stats">
<div class="stat-card">
<h3>Comisiones Totales</h3>
<div class="stat-value">$<span id="total-commissions">0.00</span></div>
<div class="stat-trend trend-up">
<i class="fas fa-arrow-up"></i> 15% más que la semana pasada
</div>
</div>
<div class="stat-card">
<h3>Ventas Realizadas</h3>
<div class="stat-value"><span id="total-sales">0</span></div>
<div class="stat-trend trend-up">
<i class="fas fa-arrow-up"></i> 8 nuevas esta semana
</div>
</div>
<div class="stat-card">
<h3>Productos Activos</h3>
<div class="stat-value"><span id="active-products">0</span></div>
<div class="stat-trend">
<i class="fas fa-info-circle"></i> Elige más productos para aumentar ventas
</div>
</div>
<div class="stat-card">
<h3>Próximo Pago</h3>
<div class="stat-value">$<span id="next-payout">0.00</span></div>
<div class="stat-trend">
<i class="fas fa-calendar"></i> En 3 días (15 de agosto)
</div>
</div>
</div>
<div class="dashboard-section">
<div class="section-header">
<h3>Tus Productos Destacados</h3>
<a href="#">Ver todos los productos</a>
</div>
<div class="products-list" id="dashboard-products">
<!-- Dashboard products will be loaded here -->
</div>
</div>
<div class="dashboard-section">
<div class="section-header">
<h3>Últimas Comisiones</h3>
<a href="#">Ver historial completo</a>
</div>
<div class="products-list">
<div class="dashboard-product">
<div class="product-thumb">
<img src="https://placehold.co/80x80/3a506b/white?text=Smartwatch" alt="Smartwatch">
</div>
<div class="product-details">
<h4>Smartwatch Pro con Monitor Cardíaco</h4>
<div class="product-meta">
<span><i class="fas fa-calendar"></i> 12 ago 2023</span>
<span><i class="fas fa-tag"></i> $49.99</span>
<span><i class="fas fa-percentage"></i> 80% comisión</span>
</div>
</div>
<div class="product-actions">
<div class="product-btn view">Ver venta</div>
<div class="product-value" style="font-weight: bold; color: var(--navy-primary);">$39.99</div>
</div>
</div>
<div class="dashboard-product">
<div class="product-thumb">
<img src="https://placehold.co/80x80/3a506b/white?text=Organizador" alt="Organizador">
</div>
<div class="product-details">
<h4>Organizador de Maquillaje Giratorio</h4>
<div class="product-meta">
<span><i class="fas fa-calendar"></i> 10 ago 2023</span>
<span><i class="fas fa-tag"></i> $18.99</span>
<span><i class="fas fa-percentage"></i> 80% comisión</span>
</div>
</div>
<div class="product-actions">
<div class="product-btn view">Ver venta</div>
<div class="product-value" style="font-weight: bold; color: var(--navy-primary);">$15.19</div>
</div>
</div>
<div class="dashboard-product">
<div class="product-thumb">
<img src="https://placehold.co/80x80/3a506b/white?text=LED" alt="LED">
</div>
<div class="product-details">
<h4>Luz LED para Teléfono con Selfie</h4>
<div class="product-meta">
<span><i class="fas fa-calendar"></i> 08 ago 2023</span>
<span><i class="fas fa-tag"></i> $12.49</span>
<span><i class="fas fa-percentage"></i> 80% comisión</span>
</div>
</div>
<div class="product-actions">
<div class="product-btn view">Ver venta</div>
<div class="product-value" style="font-weight: bold; color: var(--navy-primary);">$9.99</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cart" id="cart">
<div class="container">
<div class="cart-header">
<h2 class="cart-title">Tu Carrito de Compras</h2>
<p class="cart-subtitle">Revisa los productos que has seleccionado y completa tu compra</p>
</div>
<div class="cart-content">
<div class="cart-items" id="cart-items">
<!-- Cart items will be loaded here -->
<div class="empty-cart">
<i class="fas fa-shopping-cart"></i>
<h3>Tu carrito está vacío</h3>
<p>Agrega productos a tu carrito para comenzar el proceso de compra</p>
<button class="btn btn-gold" id="continue-shopping"><i class="fas fa-arrow-left"></i> Continuar comprando</button>
</div>
</div>
<div class="cart-summary">
<h3 class="summary-title">Resumen de la Compra</h3>
<div class="summary-row">
<span>Subtotal (3 productos):</span>
<span>$81.47</span>
</div>
<div class="summary-row">
<span>Envío:</span>
<span>Gratis</span>
</div>
<div class="summary-row">
<span>Comisión de TikMarket (20%):</span>
<span>$16.29</span>
</div>
<div class="summary-total">
Total: $65.18
</div>
<button class="btn btn-gold checkout-btn"><i class="fas fa-credit-card"></i> Proceder al Pago</button>
</div>
</div>
</div>
</div>
<!-- Auth Modal -->
<div class="modal" id="auth-modal">
<div class="modal-content">
<div class="modal-header">
<h2>Iniciar Sesión</h2>
<p class="modal-subtitle">Accede a tu cuenta de vendedor</p>
<span class="modal-close" id="modal-close">×</span>
</div>
<div class="modal-body">
<div class="auth-tabs">
<div class="auth-tab active" data-tab="login">Iniciar Sesión</div>
<div class="auth-tab" data-tab="register">Registrarse</div>
</div>
<div class="auth-form active" id="login-form">
<div class="form-group">
<label for="login-email">Correo Electrónico</label>
<div class="input-icon">
<i class="fas fa-envelope"></i>
<input type="email" id="login-email" placeholder="tu@correo.com" required>
</div>
</div>
<div class="form-group">
<label for="login-password">Contraseña</label>
<div class="input-icon">
<i class="fas fa-lock"></i>
<input type="password" id="login-password" placeholder="Tu contraseña" required>
</div>
</div>
<div class="form-group forgot-password">
<a href="#">¿Olvidaste tu contraseña?</a>
</div>
<button class="btn" id="login-submit"><i class="fas fa-sign-in-alt"></i> Iniciar Sesión</button>
<div class="divider">
<div class="divider-line"></div>
<div class="divider-text">o inicia con</div>
<div class="divider-line"></div>
</div>
<div class="social-login">
<button class="social-btn google">
<i class="fab fa-google"></i> Google
</button>
<button class="social-btn tiktok" id="tiktok-login">
<i class="fab fa-tiktok"></i> TikTok
</button>
</div>
<div class="auth-footer">
¿No tienes una cuenta? <a href="#" id="switch-to-register">Regístrate ahora</a>
</div>
</div>
<div class="auth-form" id="register-form">
<div class="form-group">
<label for="register-name">Nombre Completo</label>
<div class="input-icon">
<i class="fas fa-user"></i>
<input type="text" id="register-name" placeholder="Tu nombre completo" required>
</div>
</div>
<div class="form-group">
<label for="register-email">Correo Electrónico</label>
<div class="input-icon">
<i class="fas fa-envelope"></i>
<input type="email" id="register-email" placeholder="tu@correo.com" required>
</div>
</div>
<div class="form-group">
<label for="register-password">Contraseña</label>
<div class="input-icon">
<i class="fas fa-lock"></i>
<input type="password" id="register-password" placeholder="Mínimo 8 caracteres" required>
</div>
</div>
<div class="form-group">
<label for="register-confirm">Confirmar Contraseña</label>
<div class="input-icon">
<i class="fas fa-lock"></i>
<input type="password" id="register-confirm" placeholder="Confirma tu contraseña" required>
</div>
</div>
<div class="form-group">
<input type="checkbox" id="register-terms" required style="width: auto; margin-right: 8px;">
<label for="register-terms" style="display: inline;">Acepto los <a href="#" style="color: var(--navy-primary);">Términos y Condiciones</a> y la <a href="#" style="color: var(--navy-primary);">Política de Privacidad</a></label>
</div>
<button class="btn btn-gold" id="register-submit"><i class="fas fa-user-plus"></i> Crear Cuenta</button>
<div class="divider">
<div class="divider-line"></div>
<div class="divider-text">o regístrate con</div>
<div class="divider-line"></div>
</div>
<div class="social-login">
<button class="social-btn google">
<i class="fab fa-google"></i> Google
</button>
<button class="social-btn tiktok" id="tiktok-register">
<i class="fab fa-tiktok"></i> TikTok
</button>
</div>
<div class="auth-footer">
¿Ya tienes una cuenta? <a href="#" id="switch-to-login">Inicia sesión</a>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="container">
<div class="footer-content">
<div class="footer-about">
<div class="footer-logo"><i class="fas fa-store"></i> TikMarket</div>
<p>La plataforma líder para vender en TikTok sin necesidad de inventario. Conectamos a vendedores con productos de calidad y una experiencia de compra excepcional.</p>
<div class="social-links">
<a href="#" aria-label="Facebook"><i class="fab fa-facebook-f"></i></a>
<a href="#" aria-label="Instagram"><i class="fab fa-instagram"></i></a>
<a href="#" aria-label="TikTok"><i class="fab fa-tiktok"></i></a>
<a href="#" aria-label="YouTube"><i class="fab fa-youtube"></i></a>
<a href="#" aria-label="Twitter"><i class="fab fa-twitter"></i></a>
</div>
</div>
<div class="footer-links">
<h4><i class="fas fa-info-circle"></i> Información</h4>
<ul>
<li><a href="#"><i class="fas fa-cogs"></i> Cómo Funciona</a></li>
<li><a href="#"><i class="fas fa-chart-line"></i> Para Vendedores</a></li>
<li><a href="#"><i class="fas fa-box-open"></i> Catálogo de Productos</a></li>
<li><a href="#"><i class="fas fa-percentage"></i> Política de Comisiones</a></li>
<li><a href="#"><i class="fas fa-handshake"></i> Programa de Afiliados</a></li>
</ul>
</div>
<div class="footer-seller">
<h4><i class="fas fa-user-tie"></i> Para Vendedores</h4>
<ul>
<li><a href="#"><i class="fas fa-user-plus"></i> Registrarse como Vendedor</a></li>
<li><a href="#"><i class="fas fa-question-circle"></i> Centro de Ayuda</a></li>
<li><a href="#"><i class="fas fa-tachometer-alt"></i> Dashboard de Vendedor</a></li>
<li><a href="#"><i class="fas fa-file-contract"></i> Políticas de la Plataforma</a></li>
<li><a href="#"><i class="fas fa-file-alt"></i> Términos y Condiciones</a></li>
</ul>
</div>
<div class="footer-contact">
<h4><i class="fas fa-headset"></i> Soporte al Cliente</h4>
<ul>
<li><a href="#"><i class="fas fa-envelope"></i> soporte@tikmarket.com</a></li>
<li><a href="#"><i class="fas fa-phone"></i> +34 912 345 678</a></li>
<li><a href="#"><i class="fab fa-whatsapp"></i> WhatsApp: +34 612 345 678</a></li>
<li><a href="#"><i class="fas fa-clock"></i> Lunes a Viernes: 9:00 - 18:00</a></li>
<li><a href="#"><i class="fas fa-comments"></i> Chat en Vivo</a></li>
</ul>
</div>
</div>
<div class="copyright">
<p>Este sitio no está afiliado a TikTok, Inc. TikTok es una marca registrada de ByteDance Ltd.</p>
<p style="margin-top: 8px; font-size: 0.85rem;">TikMarket es una plataforma independiente que permite a los usuarios vender productos a través de enlaces de afiliación.</p>
<div class="payment-methods">
<i class="fab fa-cc-visa"></i>
<i class="fab fa-cc-mastercard"></i>
<i class="fab fa-cc-amex"></i>
<i class="fab fa-cc-paypal"></i>
<i class="fab fa-cc-apple-pay"></i>
</div>
</div>
</div>
</footer>
<script>
// Product data
const products = [
{
id: 1,
name: "Smartwatch Pro con Monitor Cardíaco",
description: "Reloj inteligente con seguimiento de salud avanzado y 7 días de batería",
price: 49.99,
originalPrice: 62.50,
discount: "20% OFF",
category: "Electrónica",
image: "https://placehold.co/300x300/3a506b/white?text=Smartwatch",
seller: "TechGadgets",
rating: 4.8,
sales: 145
},
{
id: 2,
name: "Organizador de Maquillaje Giratorio",
description: "Base giratoria transparente para organizar tu colección de maquillaje",
price: 18.99,
originalPrice: 24.99,
discount: "Nuevo",
category: "Hogar",
image: "https://placehold.co/300x300/3a506b/white?text=Organizador",
seller: "BeautyStore",
rating: 4.7,
sales: 230
},
{
id: 3,
name: "Luz LED para Teléfono con Selfie",
description: "Anillo de luz portátil con 3 modos de iluminación y soporte para teléfono",
price: 12.49,
category: "Tecnología",
image: "https://placehold.co/300x300/3a506b/white?text=LED",
seller: "GadgetWorld",
rating: 4.6,
sales: 312
},
{
id: 4,
name: "Set de Juguetes Interactivos para Perros",
description: "6 juguetes resistentes y seguros para mantener entretenido a tu mascota",
price: 22.99,
originalPrice: 35.00,
discount: "35% OFF",
category: "Mascotas",
image: "https://placehold.co/300x300/3a506b/white?text=Juguetes",
seller: "PetLovers",
rating: 4.9,
sales: 187
},
{
id: 5,
name: "Cargador Inalámbrico Rápido 20W",
description: "Carga rápida inalámbrica compatible con todos los dispositivos Qi",
price: 14.99,
originalPrice: 19.99,
discount: "15% OFF",
category: "Electrónica",
image: "https://placehold.co/300x300/3a506b/white?text=Cargador",
seller: "TechGadgets",
rating: 4.5,
sales: 294
},
{
id: 6,
name: "Zapatillas Deportivas Ultraligeras",
description: "Calzado deportivo con tecnología de amortiguación y diseño ergonómico",
price: 32.99,
originalPrice: 45.00,
discount: "Más Vendido",
category: "Moda",
image: "https://placehold.co/300x300/3a506b/white?text=Zapatillas",
seller: "FashionHub",
rating: 4.7,
sales: 425
},
{
id: 7,
name: "Kit de Maquillaje Profesional",
description: "24 sombras de ojos, 12 labiales y pinceles profesionales",
price: 27.99,
originalPrice: 39.99,
discount: "30% OFF",
category: "Belleza",
image: "https://placehold.co/300x300/3a506b/white?text=Maquillaje",
seller: "BeautyStore",
rating: 4.8,
sales: 378
},
{
id: 8,
name: "Auriculares Inalámbricos Bluetooth 5.0",
description: "Sonido premium con cancelación de ruido y 20 horas de batería",
price: 39.99,
originalPrice: 59.99,
discount: "33% OFF",
category: "Electrónica",
image: "https://placehold.co/300x300/3a506b/white?text=Auriculares",
seller: "TechGadgets",
rating: 4.6,
sales: 256
}
];
// DOM elements
const productsGrid = document.getElementById('products-grid');
const loginBtn = document.getElementById('login-btn');
const registerSellerBtn = document.getElementById('register-seller');
const ctaSellerBtn = document.getElementById('cta-seller');
const authModal = document.getElementById('auth-modal');
const modalClose = document.getElementById('modal-close');
const authTabs = document.querySelectorAll('.auth-tab');
const authForms = document.querySelectorAll('.auth-form');
const loginForm = document.getElementById('login-form');
const registerForm = document.getElementById('register-form');
const switchToRegister = document.getElementById('switch-to-register');
const switchToLogin = document.getElementById('switch-to-login');
const loginSubmit = document.getElementById('login-submit');
const registerSubmit = document.getElementById('register-submit');
const userMenu = document.getElementById('user-menu');
const userDashboard = document.getElementById('user-dashboard');
const logoutBtn = document.getElementById('logout-btn');
const userName = document.getElementById('user-name');
const totalCommissions = document.getElementById('total-commissions');
const totalSales = document.getElementById('total-sales');
const activeProducts = document.getElementById('active-products');
const nextPayout = document.getElementById('next-payout');
const dashboardProducts = document.getElementById('dashboard-products');
const cartIcon = document.getElementById('cart-icon');
const cart = document.getElementById('cart');
const continueShopping = document.getElementById('continue-shopping');
const cartItems = document.getElementById('cart-items');
// Auth modal functions
function showModal() {
authModal.style.display = 'flex';
document.body.style.overflow = 'hidden';
}
function hideModal() {
authModal.style.display = 'none';
document.body.style.overflow = 'auto';
}
function setActiveTab(tabName) {
authTabs.forEach(tab => {
tab.classList.remove('active');
if (tab.dataset.tab === tabName) {
tab.classList.add('active');
}
});
authForms.forEach(form => {
form.classList.remove('active');
if (tabName === 'login' && form.id === 'login-form') {
form.classList.add('active');
} else if (tabName === 'register' && form.id === 'register-form') {
form.classList.add('active');
}
});
}
// Cart functions
function showCart() {
cart.style.display = 'block';
document.body.style.overflow = 'hidden';
}
function hideCart() {
cart.style.display = 'none';
document.body.style.overflow = 'auto';
}
// User functions
function login(user) {
localStorage.setItem('tikmarket_user', JSON.stringify(user));
updateUIAfterLogin(user);
}
function logout() {
localStorage.removeItem('tikmarket_user');
updateUIAfterLogout();
}
function isLoggedIn() {
return !!localStorage.getItem('tikmarket_user');
}
function getCurrentUser() {
const user = localStorage.getItem('tikmarket_user');
return user ? JSON.parse(user) : null;
}
function updateUIAfterLogin(user) {
loginBtn.style.display = 'none';
userMenu.style.display = 'block';
userName.textContent = user.name;
// Show dashboard if on seller registration page
if (window.location.hash === '#seller') {
userDashboard.style.display = 'block';
window.scrollTo(0, 0);
}
// Update dashboard data
totalCommissions.textContent = '1,245.50';
totalSales.textContent = '38';
activeProducts.textContent = '12';
nextPayout.textContent = '312.75';
// Render dashboard products
renderDashboardProducts();
}
function updateUIAfterLogout() {
loginBtn.style.display = 'inline-block';
userMenu.style.display = 'none';
userDashboard.style.display = 'none';
cart.style.display = 'none';
}
function renderDashboardProducts() {
let html = '';
products.slice(0, 3).forEach(product => {
html += `
<div class="dashboard-product">
<div class="product-thumb">
<img src="${product.image}" alt="${product.name}">
</div>
<div class="product-details">
<h4>${product.name}</h4>
<div class="product-meta">
<span><i class="fas fa-tag"></i> ${product.price.toFixed(2)}€</span>
<span><i class="fas fa-chart-line"></i> ${product.sales} ventas</span>
<span><i class="fas fa-star"></i> ${product.rating}</span>
</div>
</div>
<div class="product-actions">
<div class="product-btn view">Ver en TikTok</div>
<div class="product-btn edit">Editar</div>
</div>
</div>
`;
});
dashboardProducts.innerHTML = html;
}
function renderProducts() {
let html = '';
products.forEach(product => {
const hasDiscount = product.originalPrice && product.originalPrice > product.price;
const savings = hasDiscount ? ((product.originalPrice - product.price) / product.originalPrice * 100).toFixed(0) : null;
html += `
<div class="product-card" data-id="${product.id}">
${product.discount ? `<div class="product-badge">${product.discount}</div>` : ''}
<div class="product-img">
<img src="${product.image}" alt="${product.name}">
</div>
<div class="product-info">
<span class="product-category">${product.category}</span>
<h3 class="product-name">${product.name}</h3>
<p class="product-description">${product.description}</p>
<div class="product-pricing">
<div>
<span class="product-price">$${product.price.toFixed(2)}</span>
${hasDiscount ? `<span class="product-original-price">$${product.originalPrice.toFixed(2)}</span>` : ''}
</div>
${savings ? `<span class="product-savings">-${savings}%</span>` : ''}
</div>
<div class="product-actions">
<button class="btn-add-to-cart" data-id="${product.id}">
<i class="fas fa-shopping-cart"></i> Carrito
</button>
<button class="btn-buy-now" data-id="${product.id}">
<i class="fas fa-bolt"></i> Comprar
</button>
</div>
<div class="product-seller">
<div class="seller-avatar">${product.seller.charAt(0)}</div>
<div class="seller-info">
<strong>${product.seller}</strong>
<div class="verified-seller">
<i class="fas fa-badge-check"></i> Vendedor Verificado
</div>
</div>
</div>
</div>
</div>
`;
});
productsGrid.innerHTML = html;
}
function renderCartItems() {
const cart = JSON.parse(localStorage.getItem('tikmarket_cart') || '[]');
if (cart.length === 0) {
cartItems.innerHTML = `
<div class="empty-cart">
<i class="fas fa-shopping-cart"></i>
<h3>Tu carrito está vacío</h3>
<p>Agrega productos a tu carrito para comenzar el proceso de compra</p>
<button class="btn btn-gold" id="continue-shopping"><i class="fas fa-arrow-left"></i> Continuar comprando</button>
</div>
`;
document.getElementById('continue-shopping').addEventListener('click', () => {
hideCart();
});
return;
}
let html = '';
let subtotal = 0;
cart.forEach(item => {
const product = products.find(p => p.id === item.id);
if (product) {
const itemTotal = product.price * item.quantity;
subtotal += itemTotal;
html += `
<div class="cart-item">
<div class="item-image">
<img src="${product.image}" alt="${product.name}">
</div>
<div class="item-details">
<div class="item-name">${product.name}</div>
<div class="item-seller">
<i class="fas fa-store"></i> Vendido por ${product.seller}
</div>
<div class="item-actions">
<div class="quantity-selector">
<button class="quantity-btn minus" data-id="${product.id}">-</button>
<span class="quantity">${item.quantity}</span>
<button class="quantity-btn plus" data-id="${product.id}">+</button>
</div>
</div>
</div>
<div class="item-actions">
<div class="item-price">$${itemTotal.toFixed(2)}</div>
<div class="item-remove" data-id="${product.id}">
<i class="fas fa-trash"></i> Eliminar
</div>
</div>
</div>
`;
}
});
const commission = subtotal * 0.2;
const total = subtotal - commission;
html += `
<div class="cart-summary">
<h3 class="summary-title">Resumen de la Compra</h3>
<div class="summary-row">
<span>Subtotal (${cart.length} productos):</span>
<span>$${subtotal.toFixed(2)}</span>
</div>
<div class="summary-row">
<span>Envío:</span>
<span>Gratis</span>
</div>
<div class="summary-row">
<span>Comisión de TikMarket (20%):</span>
<span>$${commission.toFixed(2)}</span>
</div>
<div class="summary-total">
Total: $${total.toFixed(2)}
</div>
<button class="btn btn-gold checkout-btn"><i class="fas fa-credit-card"></i> Proceder al Pago</button>
</div>
`;
cartItems.innerHTML = html;
// Add event listeners for cart actions
document.querySelectorAll('.item-remove').forEach(button => {
button.addEventListener('click', function() {
const id = parseInt(this.getAttribute('data-id'));
removeFromCart(id);
});
});
document.querySelectorAll('.quantity-btn.minus').forEach(button => {
button.addEventListener('click', function() {
const id = parseInt(this.getAttribute('data-id'));
updateQuantity(id, -1);
});
});
document.querySelectorAll('.quantity-btn.plus').forEach(button => {
button.addEventListener('click', function() {
const id = parseInt(this.getAttribute('data-id'));
updateQuantity(id, 1);
});
});
}
function addToCart(productId) {
let cart = JSON.parse(localStorage.getItem('tikmarket_cart') || '[]');
const existingItem = cart.find(item => item.id === productId);
if (existingItem) {
existingItem.quantity += 1;
} else {
cart.push({ id: productId, quantity: 1 });
}
localStorage.setItem('tikmarket_cart', JSON.stringify(cart));
updateCartCount();
renderCartItems();
}
function removeFromCart(productId) {
let cart = JSON.parse(localStorage.getItem('tikmarket_cart') || '[]');
cart = cart.filter(item => item.id !== productId);
localStorage.setItem('tikmarket_cart', JSON.stringify(cart));
updateCartCount();
renderCartItems();
}
function updateQuantity(productId, change) {
let cart = JSON.parse(localStorage.getItem('tikmarket_cart') || '[]');
const item = cart.find(item => item.id === productId);
if (item) {
item.quantity += change;
if (item.quantity <= 0) {
removeFromCart(productId);
return;
}
localStorage.setItem('tikmarket_cart', JSON.stringify(cart));
updateCartCount();
renderCartItems();
}
}
function updateCartCount() {
const cart = JSON.parse(localStorage.getItem('tikmarket_cart') || '[]');
const count = cart.reduce((total, item) => total + item.quantity, 0);
document.querySelector('.cart-count').textContent = count;
}
// Event listeners
loginBtn.addEventListener('click', showModal);
modalClose.addEventListener('click', hideModal);
switchToRegister.addEventListener('click', (e) => {
e.preventDefault();
setActiveTab('register');
});
switchToLogin.addEventListener('click', (e) => {
e.preventDefault();
setActiveTab('login');
});
authTabs.forEach(tab => {
tab.addEventListener('click', () => {
setActiveTab(tab.dataset.tab);
});
});
loginSubmit.addEventListener('click', () => {
const email = document.getElementById('login-email').value;
const password = document.getElementById('login-password').value;
if (email && password) {
// In a real app, you would verify credentials with a server
const user = {
id: Date.now(),
name: email.split('@')[0],
email: email,
role: 'seller'
};
login(user);
hideModal();
}
});
registerSubmit.addEventListener('click', () => {
const name = document.getElementById('register-name').value;
const email = document.getElementById('register-email').value;
const password = document.getElementById('register-password').value;
const confirm = document.getElementById('register-confirm').value;
if (name && email && password && password === confirm) {
// In a real app, you would send data to a server
const user = {
id: Date.now(),
name: name,
email: email,
role: 'seller'
};
login(user);
hideModal();
} else {
alert('Por favor, verifica tus datos e intenta de nuevo.');
}
});
userMenu.addEventListener('click', () => {
if (isLoggedIn()) {
userDashboard.style.display = userDashboard.style.display === 'block' ? 'none' : 'block';
} else {
showModal();
}
});
logoutBtn.addEventListener('click', logout);
registerSellerBtn.addEventListener('click', (e) => {
e.preventDefault();
if (isLoggedIn()) {
userDashboard.style.display = 'block';
window.scrollTo(0, 0);
} else {
showModal();
setActiveTab('register');
}
});
ctaSellerBtn.addEventListener('click', (e) => {
e.preventDefault();
if (isLoggedIn()) {
userDashboard.style.display = 'block';
window.scrollTo(0, 0);
} else {
showModal();
setActiveTab('register');
}
});
cartIcon.addEventListener('click', () => {
if (isLoggedIn()) {
showCart();
} else {
showModal();
}
});
document.querySelectorAll('.btn-add-to-cart').forEach(button => {
button.addEventListener('click', function() {
const productId = parseInt(this.getAttribute('data-id'));
addToCart(productId);
});
});
document.querySelectorAll('.btn-buy-now').forEach(button => {
button.addEventListener('click', function() {
const productId = parseInt(this.getAttribute('data-id'));
addToCart(productId);
showCart();
});
});
// Initialize
document.addEventListener('DOMContentLoaded', () => {
renderProducts();
updateCartCount();
if (isLoggedIn()) {
updateUIAfterLogin(getCurrentUser());
}
// Close modal when clicking outside
authModal.addEventListener('click', (e) => {
if (e.target === authModal) {
hideModal();
}
});
// Close cart when clicking outside
cart.addEventListener('click', (e) => {
if (e.target === cart) {
hideCart();
}
});
// Close dashboard when clicking outside
document.addEventListener('click', (e) => {
if (userDashboard.style.display === 'block' &&
!userDashboard.contains(e.target) &&
!userMenu.contains(e.target)) {
userDashboard.style.display = 'none';
}
});
});
</script>
</body>
</html>