Scan to open on your phone
Point a camera at the QR code - it opens this exact paste, no app needed.
https://codepastes.com/zzgsx6t8hhdvmtphsin-tituloPlain Text
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KeeperNews - Últimas Noticias de Guantes de Arquero</title>
<style>
:root {
--bg-color: #0f172a;
--card-bg: #1e293b;
--text-color: #f8fafc;
--accent-color: #22c55e;
--accent-hover: #16a34a;
--text-muted: #94a3b8;
--border-color: #334155;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
padding: 20px;
}
header {
text-align: center;
margin-bottom: 30px;
}
header h1 {
font-size: 2.5rem;
color: var(--accent-color);
margin-bottom: 10px;
}
header p {
color: var(--text-muted);
}
.controls {
max-width: 1200px;
margin: 0 auto 30px auto;
display: flex;
flex-direction: column;
gap: 15px;
}
.search-bar {
width: 100%;
padding: 12px 20px;
border-radius: 8px;
border: 1px solid var(--border-color);
background-color: var(--card-bg);
color: white;
font-size: 1rem;
}
.filters {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: center;
}
.filter-btn {
background-color: var(--card-bg);
color: var(--text-color);
border: 1px solid var(--border-color);
padding: 8px 16px;
border-radius: 20px;
cursor: pointer;
transition: all 0.2s ease;
}
.filter-btn:hover, .filter-btn.active {
background-color: var(--accent-color);
color: #000;
border-color: var(--accent-color);
font-weight: bold;
}
.news-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 25px;
max-width: 1200px;
margin: 0 auto;
}
.news-card {
background-color: var(--card-bg);
border-radius: 12px;
overflow: hidden;
border: 1px solid var(--border-color);
display: flex;
flex-direction: column;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.news-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0,0,0,0.5);
}
.news-image {
width: 100%;
height: 240px;
object-fit: cover;
background-color: #000;
}
.news-content {
padding: 20px;
display: flex;
flex-direction: column;
flex-grow: 1;
}
.brand-badge {
align-self: flex-start;
background-color: rgba(34, 197, 94, 0.2);
color: var(--accent-color);
font-size: 0.8rem;
font-weight: bold;
padding: 4px 10px;
border-radius: 12px;
margin-bottom: 10px;
text-transform: uppercase;
}
.news-title {
font-size: 1.3rem;
margin-bottom: 10px;
}
.news-date {
font-size: 0.8rem;
color: var(--text-muted);
margin-bottom: 12px;
}
.news-description {
font-size: 0.95rem;
color: #cbd5e1;
line-height: 1.5;
margin-bottom: 20px;
flex-grow: 1;
}
.specs {
background-color: rgba(0,0,0,0.2);
padding: 10px;
border-radius: 6px;
font-size: 0.85rem;
margin-bottom: 15px;
}
.specs span {
display: block;
color: var(--text-muted);
}
.read-more {
display: inline-block;
text-align: center;
background-color: var(--accent-color);
color: #0f172a;
text-decoration: none;
padding: 10px;
border-radius: 6px;
font-weight: bold;
transition: background-color 0.2s;
}
.read-more:hover {
background-color: var(--accent-hover);
}
.no-results {
text-align: center;
grid-column: 1 / -1;
color: var(--text-muted);
padding: 40px;
}
</style>
</head>
<body>
<header>
<h1>🧤 KeeperNews Central</h1>
<p>Últimos lanzamientos y novedades sobre guantes de arquero profesionales</p>
</header>
<div class="controls">
<input type="text" id="searchInput" class="search-bar" placeholder="Buscar modelo, látex, tecnología o marca...">
<div class="filters" id="brandFilters">
<button class="filter-btn active" data-brand="all">Todas las marcas</button>
<button class="filter-btn" data-brand="RG">RG</button>
<button class="filter-btn" data-brand="Rinat">Rinat</button>
<button class="filter-btn" data-brand="T1tan">T1tan</button>
<button class="filter-btn" data-brand="Elite">Elite Sport</button>
<button class="filter-btn" data-brand="Puma">Puma</button>
<button class="filter-btn" data-brand="Nike">Nike</button>
<button class="filter-btn" data-brand="Uhlsport">Uhlsport</button>
<button class="filter-btn" data-brand="The One Glove">The One Glove</button>
<button class="filter-btn" data-brand="Reusch">Reusch</button>
</div>
</div>
<main class="news-grid" id="newsGrid"></main>
<script>
const newsData = [
{
id: 1,
brand: "RG",
title: "Nuevo RG Valah 2026: Palma AlphaGrip y Ligereza Total",
date: "12 de Octubre, 2026",
image: "https://images.unsplash.com/photo-1511886929837-354d827aae26?auto=format&fit=crop&w=800&q=80",
description: "RG presenta la actualización de su modelo insignia Valah. Diseñado con una estructura ultra ligera, cuerpo de textil transpirable y palma de látex alemán AlphaGrip de 4mm para un agarre máximo en canchas secas o húmedas.",
latex: "German AlphaGrip 4mm",
cut: "Híbrido Roll/Flat",
url: "#"
},
{
id: 2,
brand: "Rinat",
title: "Rinat Asimetrik Pro Future: Rediseño Ergonómico",
date: "08 de Octubre, 2026",
image: "https://images.unsplash.com/photo-1577223625816-7546f13df25d?auto=format&fit=crop&w=800&q=80",
description: "Rinat lanza la nueva edición Asimetrik PRO con látex German AXG-Future. Ofrece un ajuste Hyper-Cut y palmas extendidas para aumentar la superficie de contacto con la pelota.",
latex: "German AXG-Future",
cut: "Hyper-Cut (Especial)",
url: "#"
},
{
id: 3,
brand: "T1tan",
title: "Lanzamiento Colección Beast 4.0 Electric Yellow",
date: "01 de Octubre, 2026",
image: "https://images.unsplash.com/photo-1508098682722-e99c43a406b2?auto=format&fit=crop&w=800&q=80",
description: "La marca alemana T1tan actualiza la serie Beast con su látex Octo Grip de 4mm. Incluye zona de despeje reforzada y muñequera de una sola vuelta ultraconfortable.",
latex: "Octo Grip 4mm",
cut: "Negativo Puro",
url: "#"
},
{
id: 4,
brand: "Uhlsport",
title: "Serie Uhlsport Fangmaschine ZNE con Ultragrip",
date: "28 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1518091043644-c1d4457512c6?auto=format&fit=crop&w=800&q=80",
description: "Uhlsport reinventa un clásico. La serie ZNE introduce partículas de alto agarre sobre su látex Supergrip+ y el nuevo sistema Asymmetric Long Entry para un calce perfecto.",
latex: "Ultragrip ZNE / Supergrip+",
cut: "HN (Half Negative)",
url: "#"
},
{
id: 5,
brand: "Reusch",
title: "Reusch Attrakt Freegel Gold Evolution Spines",
date: "20 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1521412644187-c49fa049e84d?auto=format&fit=crop&w=800&q=80",
description: "Reusch integra protección extraíble de varillas Finger Support junto a la silicona Freegel en el dorso, ofreciendo la combinación idónea entre flexibilidad y seguridad.",
latex: "Grip Gold Latex",
cut: "Evolution Negative Cut",
url: "#"
},
{
id: 6,
brand: "Puma",
title: "Puma Future Ultimate NC: Edición Solar",
date: "15 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1606107557195-0e29a4b5b4aa?auto=format&fit=crop&w=800&q=80",
description: "Utilizados por porteros de élite mundial, los nuevos Puma Future prescinden del cierre tradicional gracias a su tejido 3D Knit e incorporan látex Elite Dual Grip de 4mm.",
latex: "4mm Elite Dual Grip",
cut: "Corte Negativo (NC)",
url: "#"
},
{
id: 7,
brand: "Nike",
title: "Nike Vapor Grip 3 Pro Edition - Colección Primavera",
date: "10 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1543351611-c82399575a20?auto=format&fit=crop&w=800&q=80",
description: "Nike renueva la gama de colores de sus legendarios VG3. Mantienen la tecnología envolvente patentada en el dedo pulgar e índice junto con la espuma Contact Plus.",
latex: "ACC Contact Plus",
cut: "Grip3 (Patentado)",
url: "#"
},
{
id: 8,
brand: "The One Glove",
title: "OG1 Apex Pro: La Nueva Revelación Británica",
date: "05 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1579952363873-27f3bade9f55?auto=format&fit=crop&w=800&q=80",
description: "The One Glove lanza su gama Apex Pro enfocada en máxima durabilidad y agarre en césped sintético gracias a su látex Pro Grade Contact de 4mm y su dorso de Neopreno Airlite.",
latex: "Pro Grade Contact 4mm",
cut: "Vortex Cut",
url: "#"
},
{
id: 9,
brand: "Elite",
title: "Elite Sport Neo Black: Palma de Cuarzo y Resistencia",
date: "01 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1517649763962-0c623266ddc0?auto=format&fit=crop&w=800&q=80",
description: "La marca especializada Elite Sport renueva la serie Neo con su palma B2B Ultra Contact Latex y zonas antidesgaste, pensadas para resistir partidos de alta exigencia.",
latex: "Ultra Contact Latex 4mm",
cut: "Speed Cut / Negativo",
url: "#"
}
];
const newsGrid = document.getElementById('newsGrid');
const searchInput = document.getElementById('searchInput');
const brandFilters = document.getElementById('brandFilters');
let selectedBrand = 'all';
let searchQuery = '';
function renderNews() {
newsGrid.innerHTML = '';
const filteredNews = newsData.filter(item => {
const matchesBrand = selectedBrand === 'all' || item.brand === selectedBrand;
const matchesSearch = item.title.toLowerCase().includes(searchQuery) ||
item.description.toLowerCase().includes(searchQuery) ||
item.brand.toLowerCase().includes(searchQuery) ||
item.latex.toLowerCase().includes(searchQuery);
return matchesBrand && matchesSearch;
});
if (filteredNews.length === 0) {
newsGrid.innerHTML = '<div class="no-results">No se encontraron noticias ni lanzamientos con los criterios seleccionados.</div>';
return;
}
filteredNews.forEach(item => {
const card = document.createElement('article');
card.className = 'news-card';
card.innerHTML = `
<img class="news-image" src="${item.image}" alt="${item.title}" loading="lazy">
<div class="news-content">
<span class="brand-badge">${item.brand}</span>
<h2 class="news-title">${item.title}</h2>
<div class="news-date">📅 ${item.date}</div>
<p class="news-description">${item.description}</p>
<div class="specs">
<span><strong>Palma / Látex:</strong> ${item.latex}</span>
<span><strong>Corte:</strong> ${item.cut}</span>
</div>
<a href="${item.url}" class="read-more">Ver detalles del guante</a>
</div>
`;
newsGrid.appendChild(card);
});
}
// Event listeners
searchInput.addEventListener('input', (e) => {
searchQuery = e.target.value.toLowerCase();
renderNews();
});
brandFilters.addEventListener('click', (e) => {
if (e.target.classList.contains('filter-btn')) {
document.querySelectorAll('.filter-btn').forEach(btn => btn.classList.remove('active'));
e.target.classList.add('active');
selectedBrand = e.target.getAttribute('data-brand');
renderNews();
}
});
// Render inicial
renderNews();
</script>
</body>
</html><!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KeeperNews - Últimas Noticias de Guantes de Arquero</title>
<style>
:root {
--bg-color: #0f172a;
--card-bg: #1e293b;
--text-color: #f8fafc;
--accent-color: #22c55e;
--accent-hover: #16a34a;
--text-muted: #94a3b8;
--border-color: #334155;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
padding: 20px;
}
header {
text-align: center;
margin-bottom: 30px;
}
header h1 {
font-size: 2.5rem;
color: var(--accent-color);
margin-bottom: 10px;
}
header p {
color: var(--text-muted);
}
.controls {
max-width: 1200px;
margin: 0 auto 30px auto;
display: flex;
flex-direction: column;
gap: 15px;
}
.search-bar {
width: 100%;
padding: 12px 20px;
border-radius: 8px;
border: 1px solid var(--border-color);
background-color: var(--card-bg);
color: white;
font-size: 1rem;
}
.filters {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: center;
}
.filter-btn {
background-color: var(--card-bg);
color: var(--text-color);
border: 1px solid var(--border-color);
padding: 8px 16px;
border-radius: 20px;
cursor: pointer;
transition: all 0.2s ease;
}
.filter-btn:hover, .filter-btn.active {
background-color: var(--accent-color);
color: #000;
border-color: var(--accent-color);
font-weight: bold;
}
.news-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 25px;
max-width: 1200px;
margin: 0 auto;
}
.news-card {
background-color: var(--card-bg);
border-radius: 12px;
overflow: hidden;
border: 1px solid var(--border-color);
display: flex;
flex-direction: column;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.news-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0,0,0,0.5);
}
.news-image {
width: 100%;
height: 240px;
object-fit: cover;
background-color: #000;
}
.news-content {
padding: 20px;
display: flex;
flex-direction: column;
flex-grow: 1;
}
.brand-badge {
align-self: flex-start;
background-color: rgba(34, 197, 94, 0.2);
color: var(--accent-color);
font-size: 0.8rem;
font-weight: bold;
padding: 4px 10px;
border-radius: 12px;
margin-bottom: 10px;
text-transform: uppercase;
}
.news-title {
font-size: 1.3rem;
margin-bottom: 10px;
}
.news-date {
font-size: 0.8rem;
color: var(--text-muted);
margin-bottom: 12px;
}
.news-description {
font-size: 0.95rem;
color: #cbd5e1;
line-height: 1.5;
margin-bottom: 20px;
flex-grow: 1;
}
.specs {
background-color: rgba(0,0,0,0.2);
padding: 10px;
border-radius: 6px;
font-size: 0.85rem;
margin-bottom: 15px;
}
.specs span {
display: block;
color: var(--text-muted);
}
.read-more {
display: inline-block;
text-align: center;
background-color: var(--accent-color);
color: #0f172a;
text-decoration: none;
padding: 10px;
border-radius: 6px;
font-weight: bold;
transition: background-color 0.2s;
}
.read-more:hover {
background-color: var(--accent-hover);
}
.no-results {
text-align: center;
grid-column: 1 / -1;
color: var(--text-muted);
padding: 40px;
}
</style>
</head>
<body>
<header>
<h1>🧤 KeeperNews Central</h1>
<p>Últimos lanzamientos y novedades sobre guantes de arquero profesionales</p>
</header>
<div class="controls">
<input type="text" id="searchInput" class="search-bar" placeholder="Buscar modelo, látex, tecnología o marca...">
<div class="filters" id="brandFilters">
<button class="filter-btn active" data-brand="all">Todas las marcas</button>
<button class="filter-btn" data-brand="RG">RG</button>
<button class="filter-btn" data-brand="Rinat">Rinat</button>
<button class="filter-btn" data-brand="T1tan">T1tan</button>
<button class="filter-btn" data-brand="Elite">Elite Sport</button>
<button class="filter-btn" data-brand="Puma">Puma</button>
<button class="filter-btn" data-brand="Nike">Nike</button>
<button class="filter-btn" data-brand="Uhlsport">Uhlsport</button>
<button class="filter-btn" data-brand="The One Glove">The One Glove</button>
<button class="filter-btn" data-brand="Reusch">Reusch</button>
</div>
</div>
<main class="news-grid" id="newsGrid"></main>
<script>
const newsData = [
{
id: 1,
brand: "RG",
title: "Nuevo RG Valah 2026: Palma AlphaGrip y Ligereza Total",
date: "12 de Octubre, 2026",
image: "https://images.unsplash.com/photo-1511886929837-354d827aae26?auto=format&fit=crop&w=800&q=80",
description: "RG presenta la actualización de su modelo insignia Valah. Diseñado con una estructura ultra ligera, cuerpo de textil transpirable y palma de látex alemán AlphaGrip de 4mm para un agarre máximo en canchas secas o húmedas.",
latex: "German AlphaGrip 4mm",
cut: "Híbrido Roll/Flat",
url: "#"
},
{
id: 2,
brand: "Rinat",
title: "Rinat Asimetrik Pro Future: Rediseño Ergonómico",
date: "08 de Octubre, 2026",
image: "https://images.unsplash.com/photo-1577223625816-7546f13df25d?auto=format&fit=crop&w=800&q=80",
description: "Rinat lanza la nueva edición Asimetrik PRO con látex German AXG-Future. Ofrece un ajuste Hyper-Cut y palmas extendidas para aumentar la superficie de contacto con la pelota.",
latex: "German AXG-Future",
cut: "Hyper-Cut (Especial)",
url: "#"
},
{
id: 3,
brand: "T1tan",
title: "Lanzamiento Colección Beast 4.0 Electric Yellow",
date: "01 de Octubre, 2026",
image: "https://images.unsplash.com/photo-1508098682722-e99c43a406b2?auto=format&fit=crop&w=800&q=80",
description: "La marca alemana T1tan actualiza la serie Beast con su látex Octo Grip de 4mm. Incluye zona de despeje reforzada y muñequera de una sola vuelta ultraconfortable.",
latex: "Octo Grip 4mm",
cut: "Negativo Puro",
url: "#"
},
{
id: 4,
brand: "Uhlsport",
title: "Serie Uhlsport Fangmaschine ZNE con Ultragrip",
date: "28 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1518091043644-c1d4457512c6?auto=format&fit=crop&w=800&q=80",
description: "Uhlsport reinventa un clásico. La serie ZNE introduce partículas de alto agarre sobre su látex Supergrip+ y el nuevo sistema Asymmetric Long Entry para un calce perfecto.",
latex: "Ultragrip ZNE / Supergrip+",
cut: "HN (Half Negative)",
url: "#"
},
{
id: 5,
brand: "Reusch",
title: "Reusch Attrakt Freegel Gold Evolution Spines",
date: "20 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1521412644187-c49fa049e84d?auto=format&fit=crop&w=800&q=80",
description: "Reusch integra protección extraíble de varillas Finger Support junto a la silicona Freegel en el dorso, ofreciendo la combinación idónea entre flexibilidad y seguridad.",
latex: "Grip Gold Latex",
cut: "Evolution Negative Cut",
url: "#"
},
{
id: 6,
brand: "Puma",
title: "Puma Future Ultimate NC: Edición Solar",
date: "15 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1606107557195-0e29a4b5b4aa?auto=format&fit=crop&w=800&q=80",
description: "Utilizados por porteros de élite mundial, los nuevos Puma Future prescinden del cierre tradicional gracias a su tejido 3D Knit e incorporan látex Elite Dual Grip de 4mm.",
latex: "4mm Elite Dual Grip",
cut: "Corte Negativo (NC)",
url: "#"
},
{
id: 7,
brand: "Nike",
title: "Nike Vapor Grip 3 Pro Edition - Colección Primavera",
date: "10 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1543351611-c82399575a20?auto=format&fit=crop&w=800&q=80",
description: "Nike renueva la gama de colores de sus legendarios VG3. Mantienen la tecnología envolvente patentada en el dedo pulgar e índice junto con la espuma Contact Plus.",
latex: "ACC Contact Plus",
cut: "Grip3 (Patentado)",
url: "#"
},
{
id: 8,
brand: "The One Glove",
title: "OG1 Apex Pro: La Nueva Revelación Británica",
date: "05 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1579952363873-27f3bade9f55?auto=format&fit=crop&w=800&q=80",
description: "The One Glove lanza su gama Apex Pro enfocada en máxima durabilidad y agarre en césped sintético gracias a su látex Pro Grade Contact de 4mm y su dorso de Neopreno Airlite.",
latex: "Pro Grade Contact 4mm",
cut: "Vortex Cut",
url: "#"
},
{
id: 9,
brand: "Elite",
title: "Elite Sport Neo Black: Palma de Cuarzo y Resistencia",
date: "01 de Septiembre, 2026",
image: "https://images.unsplash.com/photo-1517649763962-0c623266ddc0?auto=format&fit=crop&w=800&q=80",
description: "La marca especializada Elite Sport renueva la serie Neo con su palma B2B Ultra Contact Latex y zonas antidesgaste, pensadas para resistir partidos de alta exigencia.",
latex: "Ultra Contact Latex 4mm",
cut: "Speed Cut / Negativo",
url: "#"
}
];
const newsGrid = document.getElementById('newsGrid');
const searchInput = document.getElementById('searchInput');
const brandFilters = document.getElementById('brandFilters');
let selectedBrand = 'all';
let searchQuery = '';
function renderNews() {
newsGrid.innerHTML = '';
const filteredNews = newsData.filter(item => {
const matchesBrand = selectedBrand === 'all' || item.brand === selectedBrand;
const matchesSearch = item.title.toLowerCase().includes(searchQuery) ||
item.description.toLowerCase().includes(searchQuery) ||
item.brand.toLowerCase().includes(searchQuery) ||
item.latex.toLowerCase().includes(searchQuery);
return matchesBrand && matchesSearch;
});
if (filteredNews.length === 0) {
newsGrid.innerHTML = '<div class="no-results">No se encontraron noticias ni lanzamientos con los criterios seleccionados.</div>';
return;
}
filteredNews.forEach(item => {
const card = document.createElement('article');
card.className = 'news-card';
card.innerHTML = `
<img class="news-image" src="${item.image}" alt="${item.title}" loading="lazy">
<div class="news-content">
<span class="brand-badge">${item.brand}</span>
<h2 class="news-title">${item.title}</h2>
<div class="news-date">📅 ${item.date}</div>
<p class="news-description">${item.description}</p>
<div class="specs">
<span><strong>Palma / Látex:</strong> ${item.latex}</span>
<span><strong>Corte:</strong> ${item.cut}</span>
</div>
<a href="${item.url}" class="read-more">Ver detalles del guante</a>
</div>
`;
newsGrid.appendChild(card);
});
}
// Event listeners
searchInput.addEventListener('input', (e) => {
searchQuery = e.target.value.toLowerCase();
renderNews();
});
brandFilters.addEventListener('click', (e) => {
if (e.target.classList.contains('filter-btn')) {
document.querySelectorAll('.filter-btn').forEach(btn => btn.classList.remove('active'));
e.target.classList.add('active');
selectedBrand = e.target.getAttribute('data-brand');
renderNews();
}
});
// Render inicial
renderNews();
</script>
</body>
</html>25,384 chars · codepastes.com