diff --git a/docs/.nav.yml b/docs/.nav.yml index 12e5a7c..f5346b8 100644 --- a/docs/.nav.yml +++ b/docs/.nav.yml @@ -1,20 +1,20 @@ nav: - Inicio: index.md - Meetups: - - General: meetups/index.md - - "2025": meetups/2025/index.md - - "2024": meetups/2024/index.md - - "2023": meetups/2023/index.md + - General: meetups/index.md + - "2025": meetups/2025/index.md + - "2024": meetups/2024/index.md + - "2023": meetups/2023/index.md - Participa: - - Cómo Contribuir: comunidad/como-contribuir.md - - Voluntarios: comunidad/voluntarios.md - - Ponentes: comunidad/ponentes.md - - Sedes: comunidad/sedes.md + - Cómo Contribuir: participa/como-contribuir.md + - Voluntarios: participa/voluntarios.md + - Ponentes: participa/ponentes.md + - Sedes: participa/sedes.md - Comunidad: - - Comunidades: comunidad/comunidades.md - - Código de Conducta: codigo-de-conducta.md - - Aviso de Privacidad: aviso-de-privacidad.md + - Comunidades: comunidad/comunidades.md + - Código de Conducta: comunidad/codigo-de-conducta.md + - Aviso de Privacidad: comunidad/aviso-de-privacidad.md - Blog: - - Inicio: blog/index.md - - PyCon Latam 2025: blog/PyconLatam2025.md + - Inicio: blog/index.md + - PyCon Latam 2025: blog/PyconLatam2025.md - Acerca de: about.md diff --git a/docs/about.md b/docs/about.md index c50b71d..0bfcf5e 100644 --- a/docs/about.md +++ b/docs/about.md @@ -1,16 +1,15 @@ -
- Python CDMX Logo -
+--- +title: Sobre Python CDMX +--- -# Sobre Python CDMX +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } -
- Conectando la comunidad Python en la Ciudad de México -
+# Sobre Python CDMX ---- +Conectando la comunidad Python en la Ciudad de México +{ .centered-text .subtitle } -## Nuestra Historia +## :fontawesome-solid-heart: Nuestra Historia **Python CDMX** nació de la pasión por compartir conocimiento y conectar desarrolladores Python en la Ciudad de México. Desde nuestros inicios, hemos organizado meetups mensuales donde expertos y entusiastas se reúnen para aprender, compartir experiencias y construir relaciones profesionales. @@ -18,34 +17,34 @@ Nuestra comunidad ha crecido significativamente, pasando de pequeños grupos de --- -## Nuestra Cultura +## :fontawesome-solid-star: Nuestra Cultura -### Valores Fundamentales +### :fontawesome-solid-handshake: Valores Fundamentales - **Colaboración**: Creemos en el poder del trabajo en equipo y el intercambio de conocimientos - **Inclusividad**: Nuestra comunidad es abierta y acogedora para todos los niveles de experiencia - **Innovación**: Fomentamos la exploración de nuevas tecnologías y enfoques - **Mentoría**: Promovemos el aprendizaje entre pares y el desarrollo profesional -### Filosofía +### :fontawesome-solid-lightbulb: Filosofía -> *"Compartir conocimiento es multiplicar sabiduría"* +> Compartir conocimiento es multiplicar sabiduría Creemos que el verdadero crecimiento profesional viene de la colaboración y el intercambio de experiencias. Cada charla, cada conversación y cada conexión contribuye al desarrollo de nuestra comunidad. --- -## Formas de Participación +## :fontawesome-solid-users: Formas de Participación -### Ser Ponente +### :fontawesome-solid-microphone: Ser Ponente -Comparte tu experiencia y conocimiento con la comunidad. Consulta nuestra [guía para ponentes](comunidad/ponentes.md) para más información. +Comparte tu experiencia y conocimiento con la comunidad. Consulta nuestra [guía para ponentes](participa/ponentes) para más información. -### Ser Voluntario +### :fontawesome-solid-hands-helping: Ser Voluntario -Ayuda a organizar eventos, gestionar redes sociales o contribuir con el desarrollo del sitio web. Conoce más en [nuestra página de voluntarios](comunidad/voluntarios.md). +Ayuda a organizar eventos, gestionar redes sociales o contribuir con el desarrollo del sitio web. Conoce más en [nuestra página de voluntarios](participa/voluntarios). -### Asistir a Meetups +### :fontawesome-solid-calendar: Asistir a Meetups Participa en nuestros eventos mensuales para aprender, conectar y crecer profesionalmente. diff --git a/docs/blog/.nav.yml b/docs/blog/.nav.yml deleted file mode 100644 index 6f73d44..0000000 --- a/docs/blog/.nav.yml +++ /dev/null @@ -1,3 +0,0 @@ -nav: - - Inicio: index.md - - PyCon Latam 2025: PyconLatam2025.md diff --git a/docs/blog/.pages b/docs/blog/.pages deleted file mode 100644 index d3fdf61..0000000 --- a/docs/blog/.pages +++ /dev/null @@ -1,4 +0,0 @@ -title: Blog -nav: - - index.md - - PyconLatam2025.md diff --git a/docs/comunidad/alianzas.md b/docs/comunidad/alianzas.md deleted file mode 100644 index a8fa4eb..0000000 --- a/docs/comunidad/alianzas.md +++ /dev/null @@ -1,205 +0,0 @@ -
- Python CDMX Logo -
- -# Alianzas - -
- Comunidades y empresas que apoyan Python CDMX -
- ---- - -## Nuestras Alianzas - -Python CDMX trabaja en colaboración con diversas comunidades y empresas para crear un ecosistema más fuerte y diverso. Estas alianzas nos permiten: - -- **Compartir recursos** y experiencias -- **Organizar eventos conjuntos** de mayor impacto -- **Expandir nuestra red** de contactos y oportunidades -- **Crear sinergias** que benefician a toda la comunidad - ---- - -## Comunidades Amigas - -### Comunidades Python - -
- - - -
- Logo PyMTY -

PyMTY

-

Nuevo Leon

-
-
- - - -
- Logo PythonistasGDL -

Pythonistas GDL

-

Jalisco

-
-
- - - -
- Logo PyTalavera -

PyTalavera

-

Puebla

-
-
- - - -
- Logo pyladies-cuernavaca -

pyladies Cuernavaca

-

Morelos

-
-
- -
- -### Otras Comunidades - -
- - - -
- Logo Ajolotes en la Nube -

Ajolotes en la Nube

-

CDMX

-
-
- - - -
- Logo Ajolotes en la Nube -

LIDSOL

-

UNAM, Facultad ingeniería
CDMX

-
-
- - - -
- Logo sudoFCiencias -

sudoFCiencias

-

UNAM, Facultad Ciencias
CDMX

-
-
- - - -
- Logo sudoFCiencias -

Fedora México

-

México

-
- -
- - - -
- Logo RustMX -

RustMX

-

México

-
-
- - -
- Logo enchiladas devops -

Enchiladas Devops

-

México

-
-
- - - -
- Logo Linux en español -

Linux en español

-

Latinoamérica

-
-
- - - -
- Logo Salamandra Devs -

Salamandra Devs

-

México

-
-
-
- ---- - -## Empresas Aliadas - -### Empresas Tecnológicas - -
- - - -
- Logo Ajolotes en la Nube -

Wizeline México

-

Sede principal de nuestros meetups

-
-
- - - -
- Logo CLARA -

CLARA

-

Sede alterna

-
-
-
- ---- - -## Beneficios de las Alianzas - -### Para la Comunidad - -- **Eventos más grandes** y diversos -- **Recursos compartidos** entre comunidades -- **Oportunidades de networking** expandidas -- **Contenido más rico** y variado - -### Para las Empresas - -- **Visibilidad** en la comunidad tech -- **Acceso a talento** calificado -- **Branding** positivo y asociación -- **Networking** con desarrolladores - -### Para los Miembros - -- **Más eventos** y oportunidades -- **Redes profesionales** expandidas -- **Recursos adicionales** y beneficios -- **Experiencias únicas** de colaboración - ---- - ---8<-- "components/community-links.md" - ---- - ---8<-- "components/quick-navigation.md" - ---- diff --git a/docs/aviso-de-privacidad.md b/docs/comunidad/aviso-de-privacidad.md similarity index 100% rename from docs/aviso-de-privacidad.md rename to docs/comunidad/aviso-de-privacidad.md diff --git a/docs/codigo-de-conducta.md b/docs/comunidad/codigo-de-conducta.md similarity index 100% rename from docs/codigo-de-conducta.md rename to docs/comunidad/codigo-de-conducta.md diff --git a/docs/comunidad/comunidades.md b/docs/comunidad/comunidades.md index 11cab20..ba5cdff 100644 --- a/docs/comunidad/comunidades.md +++ b/docs/comunidad/comunidades.md @@ -1,56 +1,42 @@ -
- Python CDMX Logo -
- +--- +title: Alianzas y Comunidades --- -## Comunidades Amigas +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } -### Comunidades Python en México +# Comunidades -
+## :fontawesome-solid-users: Comunidades Amigas - - -
- Logo PyMTY -

PyMTY

-

Nuevo Leon

-
-
+### :fontawesome-solid-star: Comunidades Python en México - - -
- Logo PythonistasGDL -

Pythonistas GDL

-

Jalisco

-
-
+
+- ![logo PyMTY](/images/comunidades/pymty.png) - - -
- Logo PyTalavera -

PyTalavera

-

Puebla

-
-
+ :fontawesome-solid-python: [PyMTY](https://social.org.mx/@pymty) - - -
- Logo pyladies-cuernavaca -

pyladies Cuernavaca

-

Morelos

-
-
+ Nuevo Leon + +- ![logo Pythonistas GDL](/images/comunidades/pythonistas-GDL.jpg) + + :fontawesome-solid-python: [Pythonistas GDL](https://pythonistas-gdl.org/) + + Jalisco + +- ![logo PyTalavera](/images/comunidades/pyTalavera.jpg) + [:fontawesome-solid-python: PyTalavera](https://www.facebook.com/profile.php?id=61559788469426) + + Puebla + +- ![logo pyladies Cuernavaca](/images/comunidades/pyladies-cuernavaca.png) + :fontawesome-solid-python: [pyladies Cuernavaca](https://pyladies-cuernavaca.quarto.pub/web/) + Morelos
-### Otras Comunidades +### :fontawesome-solid-code: Otras Comunidades -
+
@@ -127,16 +113,12 @@ --- -## Empresas anfitrionas - -
- Estas empresas han abierto sus puertas para que la comunidad Python CDMX crezca -
- -### Gracias por ser sede +## :fontawesome-solid-building: Empresas anfitrionas -
+Estas empresas han abierto sus puertas para que la comunidad Python CDMX crezca, **gracias por su apoyo**. +{ .centered-text } + --- diff --git a/docs/css/custom.css b/docs/css/custom.css deleted file mode 100644 index b1beee4..0000000 --- a/docs/css/custom.css +++ /dev/null @@ -1,1498 +0,0 @@ -/* ============================================================================= - PYTHON CDMX - ESTILOS PERSONALIZADOS PARA MKDOCS MATERIAL - - Este archivo contiene los estilos personalizados para el sitio web de Python CDMX. - Utiliza las variables nativas de MkDocs Material para garantizar compatibilidad - automática con modo claro/oscuro. - - Estructura: - - Dependencias externas - - Variables CSS personalizadas - - Sección Hero - - Sistema de botones - - Tarjetas y grillas - - Tarjetas de voluntarios - - Tarjetas de comunidades aliadas - - Enlaces de comunidad - - Lema de la comunidad y navegación - - Iconografía - - Animaciones - - Media queries responsivas (consolidados) - ============================================================================= */ - - @import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css'); - - /* ----------------------------------------------------------------------------- - VARIABLES CSS PERSONALIZADAS - ----------------------------------------------------------------------------- */ - - :root { - /* Colores principales */ - --python-green: #4CAF50; - --python-green-dark: #45a049; - --python-white: #ffffff; - - /* Radios y espaciado */ - --button-radius: 3.125rem; - --card-radius: 0.75rem; - - /* Colores de redes sociales */ - --telegram-color: #0088cc; - --meetup-color: #ed1c40; - --youtube-color: #ff0000; - --github-color: #333333; - --instagram-color: #e4405f; - --linkedin-color: #0077b5; - - /* Colores de años y especialización */ - --year-2024-color: #2196F3; - --year-2024-hover: #1976D2; - --year-2023-color: #FF9800; - --year-2023-hover: #F57C00; - - /* Colores de badges */ - --badge-ambassador: #2E7D32; - --badge-organizer: #1565C0; - --badge-production: #E65100; - --badge-host: #6A1B9A; - --badge-technical: #37474F; - --badge-support: #3E2723; - --badge-global: #AD1457; - --badge-strategic: #283593; - - /* Transiciones estándar */ - --transition-base: all 0.3s ease; - --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); - } - - .pygreen { - color: var(--md-primary-fg-color); - font-weight: 400; - } - - /* ----------------------------------------------------------------------------- - SECCIÓN HERO - ----------------------------------------------------------------------------- */ - - .hero-section { - padding: 2rem 1rem; - text-align: center; - margin-bottom: 2rem; - border-radius: var(--card-radius); - background: var(--md-default-bg-color); - border: 1px solid var(--md-default-fg-color--lightest); - } - - .hero-logo { - width: 7.5rem; - height: 7.5rem; - margin-bottom: 1.5rem; - border-radius: 1rem; - box-shadow: var(--md-shadow-z1); - } - - .hero-section h1 { - font-size: clamp(2.5rem, 8vw, 4rem); - margin-bottom: 1rem; - line-height: 1.2; - } - - .hero-subtitle { - font-size: 1.125rem; - color: var(--md-default-fg-color--light); - max-width: 37.5rem; - margin: 0 auto 2rem; - line-height: 1.7; - } - - /* ----------------------------------------------------------------------------- - SISTEMA DE BOTONES - ----------------------------------------------------------------------------- */ - - .action-buttons { - display: flex; - gap: 1rem; - justify-content: center; - flex-wrap: wrap; - } - - .action-buttons a { - display: inline-flex; - align-items: center; - justify-content: center; - padding: 1rem 1.5rem; - border-radius: var(--button-radius); - text-decoration: none; - font-weight: 500; - transition: var(--transition-base); - min-width: 8.75rem; - } - - .action-buttons a:first-child { - background: var(--md-primary-fg-color); - color: var(--python-white); - } - - .action-buttons a:first-child:hover { - opacity: 0.9; - transform: translateY(-1px); - } - - .action-buttons a:last-child { - background: transparent; - color: var(--md-primary-fg-color); - border: 2px solid var(--md-primary-fg-color); - } - - .action-buttons a:last-child:hover { - background: var(--md-primary-fg-color); - color: var(--python-white); - } - - /* Botones estándar del sitio */ - .upcoming-btn, - .btn, - .btn-primary, - .participation-card a, - .year-card a { - background: var(--python-green) !important; - color: var(--python-white) !important; - padding: 0.75rem 1.5rem; - border-radius: var(--button-radius); - text-decoration: none; - font-weight: 600; - display: inline-flex; - align-items: center; - justify-content: center; - gap: 0.5rem; - transition: var(--transition-base); - border: none; - margin-top: 1rem; - } - - .upcoming-btn:hover, - .btn:hover, - .btn-primary:hover, - .participation-card a:hover, - .year-card a:hover { - background: var(--python-green-dark) !important; - color: var(--python-white) !important; - transform: translateY(-2px); - box-shadow: var(--md-shadow-z2); - text-decoration: none; - } - - /* Asegurar visibilidad en botones específicos del index */ - .btn.btn-primary, - .btn-primary.mt-2, - .upcoming-btn { - background: var(--python-green) !important; - color: var(--python-white) !important; - text-decoration: none !important; - } - - .btn.btn-primary:hover, - .btn-primary.mt-2:hover, - .upcoming-btn:hover { - background: var(--python-green-dark) !important; - color: var(--python-white) !important; - text-decoration: none !important; - } - - /* Botones de navegación discretos */ - .btn-nav { - background: transparent; - color: var(--md-default-fg-color--light); - border: 1px solid var(--md-default-fg-color--lightest); - padding: 0.5rem 1rem; - border-radius: 1.5rem; - text-decoration: none; - font-weight: 500; - font-size: 0.875rem; - display: inline-flex; - align-items: center; - justify-content: center; - gap: 0.375rem; - transition: var(--transition-base); - margin: 0.25rem; - min-width: 140px; - text-align: center; - white-space: nowrap; - } - - .btn-nav:hover { - background: var(--md-default-fg-color--lightest); - color: var(--md-default-fg-color); - border-color: var(--md-default-fg-color--light); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - text-decoration: none; - } - - .btn-nav i { - font-size: 0.875em; - opacity: 0.7; - } - - .btn-nav:hover i { - opacity: 1; - } - - /* ----------------------------------------------------------------------------- - TARJETAS Y GRILLAS - ----------------------------------------------------------------------------- */ - - /* Estilos base para todas las tarjetas */ - .participation-card, - .year-card, - .stat-card, - .community-highlight, - .upcoming-events { - background: var(--md-default-bg-color); - border: 1px solid var(--md-default-fg-color--lightest); - border-radius: var(--card-radius); - text-align: center; - transition: var(--transition-smooth); - position: relative; - overflow: hidden; - } - - /* Grillas responsivas */ - .participation-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 1.5rem; - margin: 2rem 0; - } - - .year-cards { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 1.5rem; - margin: 2rem 0; - } - - .stats-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); - gap: 1.5rem; - margin: 2rem 0; - } - - /* Caso especial: cuando hay 3 tarjetas de participación, la tercera ocupa toda la fila */ - .participation-grid .participation-card:nth-child(3):nth-last-child(1) { - grid-column: 1 / -1; - max-width: 400px; - margin: 0 auto; - } - - /* Tarjetas de participación */ - .participation-card { - padding: 2rem; - min-height: 200px; - display: flex; - flex-direction: column; - justify-content: space-between; - } - - .participation-card:hover { - transform: translateY(-5px); - box-shadow: var(--md-shadow-z3); - border-color: var(--md-primary-fg-color); - } - - .participation-card h3 { - color: var(--md-default-fg-color); - margin-bottom: 1rem; - font-size: 1.25rem; - font-weight: 600; - } - - .participation-card h3 i { - font-size: 2rem; - color: var(--md-primary-fg-color); - margin-bottom: 0.5rem; - display: block; - } - - .participation-card p { - color: var(--md-default-fg-color--light); - line-height: 1.6; - margin-bottom: 1.5rem; - flex-grow: 1; - } - - /* Tarjetas de años */ - .year-card { - padding: 0.5rem 2rem; - min-height: 200px; - display: flex; - flex-direction: column; - justify-content: space-between; - } - - .year-card:hover { - transform: translateY(-5px); - box-shadow: var(--md-shadow-z3); - border-color: var(--md-primary-fg-color); - } - - .year-card::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - height: 4px; - background: linear-gradient(90deg, var(--md-primary-fg-color), var(--python-green)); - opacity: 0; - transition: var(--transition-base); - } - - .year-card:hover::before { - opacity: 1; - } - - .year-card h3 { - color: var(--md-default-fg-color); - margin-bottom: 0.5rem; - font-size: 1.5rem; - font-weight: 700; - } - - .year-card h3 i { - font-size: 2rem; - color: var(--md-primary-fg-color); - margin-bottom: 0.25rem; - display: block; - } - - .year-card p { - color: var(--md-default-fg-color--light); - line-height: 1.4; - margin-bottom: 0.25rem; - } - - .year-card p:first-of-type { - font-size: 1.125rem; - font-weight: 600; - color: var(--md-primary-fg-color); - } - - .year-card a { - margin-top: auto; - } - - /* Tarjetas de estadísticas */ - .stat-card { - padding: 1.5rem; - } - - .stat-card:hover { - transform: translateY(-3px); - box-shadow: var(--md-shadow-z2); - border-color: var(--md-primary-fg-color); - } - - .stat-card h3 { - color: var(--md-primary-fg-color); - margin-bottom: 0.5rem; - font-size: 1.25rem; - font-weight: 700; - } - - .stat-card h3 i { - font-size: 1.5rem; - margin-bottom: 0.5rem; - display: block; - } - - .stat-card p { - color: var(--md-default-fg-color--light); - font-weight: 500; - } - - /* Especialización de tarjetas por tipo */ - .participation-ponente, - .year-2025 { - border-left: 4px solid var(--python-green); - } - - .participation-voluntario, - .year-2024 { - border-left: 4px solid var(--year-2024-color); - } - - .participation-asistir, - .year-2023 { - border-left: 4px solid var(--year-2023-color); - } - - .year-2025:hover { - border-left-color: var(--python-green-dark); - } - - .year-2024:hover { - border-left-color: var(--year-2024-hover); - } - - .year-2023:hover { - border-left-color: var(--year-2023-hover); - } - - /* ----------------------------------------------------------------------------- - TARJETAS DE VOLUNTARIOS - ----------------------------------------------------------------------------- */ - - .volunteer-card { - background: var(--md-default-bg-color); - border: 1px solid var(--md-default-fg-color--lightest); - border-radius: var(--card-radius); - padding: 2rem; - margin-bottom: 2rem; - transition: var(--transition-base); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); - } - - .volunteer-card:hover { - transform: translateY(-2px); - box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); - border-color: var(--md-primary-fg-color--light); - } - - .volunteer-card .card-header { - display: grid; - grid-template-columns: 1fr auto; - gap: 2rem; - align-items: start; - margin-bottom: 1.5rem; - } - - .volunteer-card .card-info { - display: flex; - flex-direction: column; - gap: 0.75rem; - } - - .volunteer-card .card-title { - font-size: 1.5rem; - font-weight: 700; - color: var(--md-default-fg-color); - margin: 0; - line-height: 1.2; - } - - .volunteer-card .card-title i { - color: var(--md-primary-fg-color); - margin-right: 0.5rem; - } - - .volunteer-card .card-subtitle { - font-size: 1rem; - color: var(--md-default-fg-color--light); - margin: 0; - font-weight: 500; - line-height: 1.4; - } - - .volunteer-card .badges-container { - display: flex; - gap: 0.5rem; - flex-wrap: wrap; - } - - .volunteer-card .badge { - padding: 0.125rem 0.5rem; - border-radius: 0.75rem; - font-size: 0.625rem; - font-weight: 500; - text-transform: uppercase; - letter-spacing: 0.03em; - opacity: 0.85; - } - - /* Badges específicos por rol */ - .volunteer-card .badge.ambassador { - background: rgba(76, 175, 80, 0.15); - color: var(--badge-ambassador); - border: 1px solid rgba(76, 175, 80, 0.3); - } - - .volunteer-card .badge.organizer { - background: rgba(33, 150, 243, 0.15); - color: var(--badge-organizer); - border: 1px solid rgba(33, 150, 243, 0.3); - } - - .volunteer-card .badge.production { - background: rgba(255, 152, 0, 0.15); - color: var(--badge-production); - border: 1px solid rgba(255, 152, 0, 0.3); - } - - .volunteer-card .badge.host { - background: rgba(156, 39, 176, 0.15); - color: var(--badge-host); - border: 1px solid rgba(156, 39, 176, 0.3); - } - - .volunteer-card .badge.technical { - background: rgba(96, 125, 139, 0.15); - color: var(--badge-technical); - border: 1px solid rgba(96, 125, 139, 0.3); - } - - .volunteer-card .badge.support { - background: rgba(121, 85, 72, 0.15); - color: var(--badge-support); - border: 1px solid rgba(121, 85, 72, 0.3); - } - - .volunteer-card .badge.global { - background: rgba(233, 30, 99, 0.15); - color: var(--badge-global); - border: 1px solid rgba(233, 30, 99, 0.3); - } - - .volunteer-card .badge.strategic { - background: rgba(63, 81, 181, 0.15); - color: var(--badge-strategic); - border: 1px solid rgba(63, 81, 181, 0.3); - } - - /* Avatar y sección social */ - .volunteer-card .avatar-section { - display: flex; - flex-direction: column; - align-items: center; - gap: 1rem; - } - - .volunteer-card .volunteer-avatar { - width: 100px; - height: 100px; - border-radius: 50%; - object-fit: cover; - border: 3px solid var(--md-primary-fg-color--light); - transition: var(--transition-base); - } - - .volunteer-card:hover .volunteer-avatar { - border-color: var(--md-primary-fg-color); - transform: scale(1.05); - } - - .volunteer-card .social-icons { - display: flex; - gap: 0.5rem; - justify-content: center; - } - - .volunteer-card .social-icon { - display: flex; - align-items: center; - justify-content: center; - width: 32px; - height: 32px; - border-radius: 50%; - background: var(--md-default-fg-color--lightest); - color: var(--md-default-fg-color--light); - text-decoration: none; - transition: var(--transition-base); - font-size: 0.875rem; - } - - .volunteer-card .social-icon:hover { - transform: translateY(-2px); - text-decoration: none; - } - - .volunteer-card .social-icon.linkedin:hover { - background: var(--linkedin-color); - color: white; - } - - .volunteer-card .social-icon.github:hover { - background: var(--github-color); - color: white; - } - - /* Contenido de la tarjeta */ - .volunteer-card .card-content { - border-top: 1px solid var(--md-default-fg-color--lightest); - padding-top: 1.5rem; - } - - .volunteer-card .card-role { - line-height: 1.6; - } - - .volunteer-card .role-title { - font-weight: 700; - color: var(--md-primary-fg-color); - font-size: 0.9rem; - text-transform: uppercase; - letter-spacing: 0.05em; - display: block; - margin-bottom: 0.5rem; - } - - .volunteer-card .role-description { - font-weight: 500; - color: var(--md-default-fg-color--light); - font-size: 0.875rem; - font-style: italic; - line-height: 1.4; - display: block; - margin-bottom: 1rem; - } - - .volunteer-card .card-role ul { - margin-top: 1rem; - padding-left: 1.5rem; - } - - .volunteer-card .card-role li { - margin-bottom: 0.5rem; - color: var(--md-default-fg-color--light); - } - - /* Encabezados ocultos para voluntarios */ - .volunteer-header { - position: absolute; - left: -9999px; - width: 1px; - height: 1px; - overflow: hidden; - clip: rect(1px, 1px, 1px, 1px); - } - - .volunteer-card:first-of-type { - margin-top: 1rem; - } - - /* ----------------------------------------------------------------------------- - TARJETAS DE COMUNIDADES ALIADAS - ----------------------------------------------------------------------------- */ - - .communities-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 1.5rem; - margin: 2rem 0; - padding: 0; - } - - .community-card { - display: flex; - flex-direction: column; - align-items: center; - text-align: center; - padding: 2rem 1.5rem; - border-radius: var(--card-radius); - background: var(--md-default-bg-color); - border: 2px solid var(--md-default-fg-color--lightest); - transition: var(--transition-smooth); - text-decoration: none; - color: var(--md-default-fg-color); - position: relative; - overflow: hidden; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - } - - .community-card::before { - content: ''; - position: absolute; - top: 0; - left: -100%; - width: 100%; - height: 100%; - background: linear-gradient(90deg, transparent, rgba(76, 175, 80, 0.1), transparent); - transition: var(--transition-smooth); - } - - .community-card:hover::before { - left: 100%; - } - - .community-card:hover { - transform: translateY(-5px); - border-color: var(--python-green); - box-shadow: 0 8px 25px rgba(76, 175, 80, 0.15); - text-decoration: none; - color: var(--md-default-fg-color); - } - - .community-card img { - /*width: 120px;*/ - height: 120px; - object-fit: cover; - /*border-radius: 50%;*/ - margin-bottom: 1rem; - border: 3px solid var(--md-default-fg-color--lightest); - transition: var(--transition-base); - } - - .community-card:hover img { - border-color: var(--python-green); - transform: scale(1.05); - } - - .community-card h4 { - margin: 0.5rem 0; - font-size: 1.1rem; - font-weight: 600; - color: var(--md-default-fg-color); - transition: var(--transition-base); - } - - .community-card h4 i { - margin-right: 0.5rem; - color: var(--python-green); - font-size: 0.9em; - } - - .community-card:hover h4 { - color: var(--python-green); - } - - .community-card p { - margin: 0; - font-size: 0.9rem; - color: var(--md-default-fg-color--light); - line-height: 1.4; - } - - /* ----------------------------------------------------------------------------- - MEETUPS Y EVENTOS - ----------------------------------------------------------------------------- */ - - .meetup-hero { - padding: 2rem 1rem; - text-align: center; - margin-bottom: 2rem; - border-radius: var(--card-radius); - background: var(--md-default-bg-color); - border: 1px solid var(--md-default-fg-color--lightest); - box-shadow: var(--md-shadow-z1); - } - - .meetup-hero h1 { - font-size: clamp(2rem, 6vw, 3.5rem); - margin-bottom: 1rem; - line-height: 1.2; - color: var(--md-default-fg-color); - } - - .meetup-subtitle { - font-size: 1.125rem; - color: var(--md-default-fg-color--light); - margin: 0; - font-weight: 400; - line-height: 1.6; - } - - .event-details { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 1rem; - margin: 2rem 0; - } - - .detail-card { - background: var(--md-default-bg-color); - border: 1px solid var(--md-default-fg-color--lightest); - border-radius: var(--card-radius); - padding: 1.25rem; - text-align: center; - transition: var(--transition-base); - box-shadow: var(--md-shadow-z1); - } - - .detail-card:hover { - transform: translateY(-2px); - box-shadow: var(--md-shadow-z2); - border-color: var(--md-primary-fg-color--light); - } - - .detail-card h3 { - margin: 0 0 0.75rem 0; - color: var(--md-primary-fg-color); - font-size: 1rem; - font-weight: 600; - } - - .detail-card h3 i { - margin-right: 0.5rem; - opacity: 0.7; - font-size: 0.9em; - } - - .detail-card p { - margin: 0; - color: var(--md-default-fg-color--light); - font-weight: 500; - font-size: 0.95rem; - } - - .rsvp-card a { - color: var(--md-primary-fg-color); - text-decoration: none; - font-weight: 600; - } - - .rsvp-card a:hover { - text-decoration: underline; - } - - /* Secciones de charlas */ - .talk-section { - margin: 2rem 0; - border: 1px solid var(--md-default-fg-color--lightest); - border-radius: var(--card-radius); - overflow: hidden; - background: var(--md-default-bg-color); - box-shadow: var(--md-shadow-z1); - } - - .talk-header { - background: var(--md-default-bg-color); - color: var(--md-default-fg-color); - padding: 1.5rem; - text-align: center; - border-bottom: 1px solid var(--md-default-fg-color--lightest); - } - - .talk-header h3 { - margin: 0 0 0.5rem 0; - font-size: 1.4rem; - color: var(--md-primary-fg-color); - font-weight: 600; - } - - .talk-header h3 i { - margin-right: 0.5rem; - opacity: 0.7; - font-size: 0.9em; - } - - .talk-header p { - margin: 0; - color: var(--md-default-fg-color--light); - font-size: 0.95rem; - } - - .talk-header p i { - margin-right: 0.25rem; - } - - /* Sección del ponente */ - .speaker-section { - background: var(--md-default-bg-color); - padding: 1.5rem; - display: flex; - align-items: center; - gap: 1.5rem; - border-bottom: 1px solid var(--md-default-fg-color--lightest); - } - - .speaker-photo { - flex-shrink: 0; - } - - .speaker-photo img { - width: 160px; - height: 160px; - border: 2px solid var(--md-default-fg-color--lightest); - box-shadow: var(--md-shadow-z1); - object-fit: cover; - transition: var(--transition-base); - } - - .speaker-section:hover .speaker-photo img { - border-color: var(--md-primary-fg-color--light); - } - - .speaker-info h4 { - margin: 0 0 0.25rem 0; - font-size: 1.2rem; - color: var(--md-default-fg-color); - font-weight: 600; - } - - .speaker-info p:first-of-type { - margin: 0 0 0.75rem 0; - font-size: 0.9rem; - color: var(--md-primary-fg-color); - font-weight: 500; - } - - .speaker-info p:last-of-type { - margin: 0 0 0.75rem 0; - line-height: 1.5; - color: var(--md-default-fg-color--light); - font-size: 0.9rem; - } - - .speaker-links { - display: flex; - gap: 0.5rem; - } - - .speaker-links a { - display: inline-flex; - align-items: center; - justify-content: center; - width: 32px; - height: 32px; - border-radius: 50%; - background: var(--md-default-fg-color--lightest); - color: var(--md-default-fg-color--light); - text-decoration: none; - transition: var(--transition-base); - font-size: 0.9rem; - } - - .speaker-links a:hover { - background: var(--md-primary-fg-color); - color: var(--python-white); - } - - /* Descripción de la charla */ - .talk-description { - background: var(--md-default-bg-color); - padding: 1.5rem; - } - - .talk-description p { - line-height: 1.6; - font-size: 1rem; - margin-bottom: 1rem; - color: var(--md-default-fg-color); - } - - .talk-description p:last-child { - margin-top: 1rem; - font-style: italic; - color: var(--md-default-fg-color--light); - font-size: 0.95rem; - } - - /* Stack tecnológico */ - .tech-stack { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); - gap: 0.75rem; - margin: 1rem 0; - } - - .tech-stack > div { - background: var(--md-default-bg-color); - padding: 0.75rem; - border-radius: var(--card-radius); - text-align: center; - border: 1px solid var(--md-default-fg-color--lightest); - transition: var(--transition-base); - } - - .tech-stack > div:hover { - border-color: var(--md-primary-fg-color--light); - box-shadow: var(--md-shadow-z1); - } - - .tech-stack h5 { - margin: 0 0 0.25rem 0; - color: var(--md-primary-fg-color); - font-size: 0.9rem; - font-weight: 500; - } - - .tech-stack h5 i { - margin-right: 0.375rem; - opacity: 0.7; - } - - .tech-stack p { - margin: 0; - font-size: 0.8rem; - color: var(--md-default-fg-color--light); - } - - /* Sección de video */ - .video-section { - margin: 2rem 0; - text-align: center; - } - - .video-container { - max-width: 700px; - margin: 0 auto; - } - - .video-wrapper { - position: relative; - width: 100%; - height: 0; - padding-bottom: 56.25%; /* 16:9 aspect ratio */ - margin-bottom: 1rem; - border-radius: var(--card-radius); - overflow: hidden; - box-shadow: var(--md-shadow-z1); - border: 1px solid var(--md-default-fg-color--lightest); - } - - .video-wrapper iframe { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - border: none; - } - - .youtube-btn { - display: inline-flex; - align-items: center; - gap: 0.5rem; - background: var(--python-green); - color: var(--python-white); - padding: 0.75rem 1.25rem; - border-radius: var(--button-radius); - text-decoration: none; - font-weight: 500; - transition: var(--transition-base); - margin-top: 0.75rem; - font-size: 0.95rem; - } - - .youtube-btn:hover { - background: var(--python-green-dark); - color: var(--python-white); - transform: translateY(-1px); - box-shadow: var(--md-shadow-z1); - text-decoration: none; - } - - .youtube-btn i { - font-size: 1em; - } - - /* ----------------------------------------------------------------------------- - ENLACES DE COMUNIDAD - ----------------------------------------------------------------------------- */ - - .community-links { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); - gap: 1rem; - margin: 2rem 0; - padding: 0; - align-items: stretch; - } - - .community-link { - display: flex; - align-items: center; - justify-content: center; - gap: 0.625rem; - padding: 1rem; - height: 60px; - border-radius: 1rem; - text-decoration: none; - font-weight: 600; - font-size: 0.9rem; - letter-spacing: 0.025em; - transition: var(--transition-smooth); - border: 2px solid var(--md-default-fg-color--lightest); - background: var(--md-default-bg-color); - color: var(--md-default-fg-color); - text-align: center; - position: relative; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - box-sizing: border-box; - white-space: nowrap; - animation: breathe 4s ease-in-out infinite; - } - - .community-link:hover { - transform: translateY(-3px); - color: var(--python-white); - text-decoration: none; - animation: none; - } - - .community-link:active { - transform: translateY(-1px); - } - - .community-link i { - font-size: 1.25em; - transition: var(--transition-base); - margin-right: 0.125rem; - } - - .community-link:hover i { - color: var(--python-white); - transform: scale(1.1); - } - - /* Colores específicos por red social */ - .community-link.telegram { - border-color: var(--telegram-color); - } - - .community-link.telegram i { - color: var(--telegram-color); - } - - .community-link.telegram:hover { - background: var(--telegram-color); - border-color: var(--telegram-color); - box-shadow: 0 8px 25px rgba(0, 136, 204, 0.3); - } - - .community-link.meetup { - border-color: var(--meetup-color); - } - - .community-link.meetup i { - color: var(--meetup-color); - } - - .community-link.meetup:hover { - background: var(--meetup-color); - border-color: var(--meetup-color); - box-shadow: 0 8px 25px rgba(237, 28, 64, 0.3); - } - - .community-link.youtube { - border-color: var(--youtube-color); - } - - .community-link.youtube i { - color: var(--youtube-color); - } - - .community-link.youtube:hover { - background: var(--youtube-color); - border-color: var(--youtube-color); - box-shadow: 0 8px 25px rgba(255, 0, 0, 0.3); - } - - .community-link.github { - border-color: var(--github-color); - } - - .community-link.github i { - color: var(--github-color); - } - - .community-link.github:hover { - background: var(--github-color); - border-color: var(--github-color); - box-shadow: 0 8px 25px rgba(51, 51, 51, 0.3); - } - - .community-link.instagram { - border-color: var(--instagram-color); - } - - .community-link.instagram i { - color: var(--instagram-color); - } - - .community-link.instagram:hover { - background: var(--instagram-color); - border-color: var(--instagram-color); - box-shadow: 0 8px 25px rgba(228, 64, 95, 0.3); - } - - .community-link.linkedin { - border-color: var(--linkedin-color); - } - - .community-link.linkedin i { - color: var(--linkedin-color); - } - - .community-link.linkedin:hover { - background: var(--linkedin-color); - border-color: var(--linkedin-color); - box-shadow: 0 8px 25px rgba(0, 119, 181, 0.3); - } - - /* ----------------------------------------------------------------------------- - LEMA DE LA COMUNIDAD - ----------------------------------------------------------------------------- */ - - .community-motto { - text-align: center; - font-size: 1.5rem; - font-style: italic; - font-weight: 600; - color: var(--md-default-fg-color); - margin: 1rem auto; - padding: 1.25rem; - max-width: 600px; - position: relative; - background: var(--md-default-bg-color); - border: 1px solid var(--md-default-fg-color--lightest); - border-radius: var(--card-radius); - box-shadow: var(--md-shadow-z1); - } - - .community-motto::before { - content: '"'; - position: absolute; - top: -0.5rem; - left: 1rem; - font-size: 4rem; - color: var(--md-primary-fg-color); - font-family: Georgia, serif; - opacity: 0.3; - } - - .community-motto::after { - content: '"'; - position: absolute; - bottom: -2rem; - right: 1rem; - font-size: 4rem; - color: var(--md-primary-fg-color); - font-family: Georgia, serif; - opacity: 0.3; - } - - /* ----------------------------------------------------------------------------- - NAVEGACIÓN Y SECCIONES ESPECIALES - ----------------------------------------------------------------------------- */ - - .quick-navigation { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); - gap: 0.625rem; - margin: 0.75rem auto; - max-width: 600px; - } - - .quick-navigation-title { - width: 100%; - text-align: center; - margin-bottom: 0.5rem; - } - - .quick-navigation-title i { - color: var(--md-primary-fg-color); - margin-right: 0.5rem; - } - - .community-highlight { - border-left: 4px solid var(--md-primary-fg-color); - margin: 2rem 0; - padding: 1.5rem; - } - - .upcoming-events { - margin: 0.75rem 0; - padding: 1.25rem 2rem; - } - - .upcoming-events h3 { - color: var(--md-default-fg-color); - margin-bottom: 1rem; - font-size: 1.5rem; - } - - .upcoming-events p { - color: var(--md-default-fg-color--light); - margin-bottom: 2rem; - font-size: 1.1rem; - } - - /* ----------------------------------------------------------------------------- - ICONOGRAFÍA - ----------------------------------------------------------------------------- */ - - .fas, .fab { - color: var(--md-primary-fg-color); - } - - h2 .fas, h3 .fas { - margin-right: 0.5rem; - font-size: 0.9em; - } - - /* ----------------------------------------------------------------------------- - ANIMACIONES - ----------------------------------------------------------------------------- */ - - @keyframes breathe { - 0%, 100% { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - } - 50% { - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); - } - } - - /* ----------------------------------------------------------------------------- - MEDIA QUERIES RESPONSIVAS - ----------------------------------------------------------------------------- */ - - @media (max-width: 768px) { - .participation-grid, - .year-cards { - grid-template-columns: 1fr; - gap: 1rem; - } - - .participation-grid .participation-card:nth-child(3):nth-last-child(1) { - grid-column: 1; - } - - .stats-grid { - grid-template-columns: repeat(2, 1fr); - gap: 1rem; - } - - .community-links { - justify-content: center; - gap: 0.75rem; - } - - .community-link { - min-width: 140px; - padding: 1rem; - } - - .community-link i { - font-size: 1.5rem; - } - - .hero-section { - padding: 1.5rem 1rem; - } - - .hero-logo { - width: 5rem; - height: 5rem; - } - - .action-buttons { - flex-direction: column; - align-items: center; - } - - .action-buttons a { - width: 100%; - max-width: 250px; - } - - /* Voluntarios en móvil */ - .volunteer-card { - padding: 1.5rem; - } - - .volunteer-card .card-header { - grid-template-columns: 1fr; - text-align: center; - gap: 1.5rem; - } - - .volunteer-card .avatar-section { - order: -1; - } - - /* Comunidades aliadas en móvil */ - .communities-grid { - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 1rem; - margin: 1.5rem 0; - } - - .community-card { - padding: 1.5rem 1rem; - } - - .community-card img { - width: 100px; - height: 100px; - } - - .community-card h4 { - font-size: 1rem; - } - - /* Meetups responsivos */ - .meetup-hero { - padding: 1.5rem 1rem; - margin: 1rem 0; - } - - .meetup-hero h1 { - font-size: clamp(1.5rem, 5vw, 2.2rem); - } - - .meetup-subtitle { - font-size: 1rem; - } - - .event-details { - grid-template-columns: 1fr; - gap: 0.75rem; - margin: 1.5rem 0; - } - - .detail-card { - padding: 1rem; - } - - .talk-section { - margin: 1.5rem 0; - } - - .talk-header { - padding: 1.25rem 1rem; - } - - .talk-header h3 { - font-size: 1.2rem; - } - - .speaker-section { - flex-direction: column; - text-align: center; - padding: 1.25rem 1rem; - gap: 1rem; - } - - .speaker-photo img { - width: 120px; - height: 120px; - } - - .talk-description { - padding: 1.25rem 1rem; - } - - .talk-description p { - font-size: 0.95rem; - } - - .tech-stack { - grid-template-columns: 1fr; - gap: 0.5rem; - } - - .tech-stack > div { - padding: 0.75rem; - } - - .video-container { - padding: 0 1rem; - } - - .youtube-btn { - padding: 0.75rem 1rem; - font-size: 0.9rem; - } - } diff --git a/docs/index.md b/docs/index.md index 23b5fca..8389199 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,55 +1,73 @@ - -
- -

Bienvenidos a
PythonCDMX

-

#PythonCDMX es un grupo de personas interesadas en aprender y compartir su conocimiento sobre el lenguaje de programación Python. El objetivo es estar en contacto con más gente interesada en innovación y tecnología. -

- -
- -
- Vine por el código, me quedé por la comunidad -
+--- +title: Inicio +hero: "/images/logo.png" --- +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } -
-

Conoce a quienes hacen posible
Python CDMX!

- Voluntarios - Ponentes -
+# Bienvenidxs a PythonCDMX -
-

¡Únete a Nuestros Meetups!

-

Charlas técnicas, networking y aprendizaje colaborativo

- Ver Meetups -
+`#PythonCDMX` es un grupo de personas interesadas en aprender y compartir su conocimiento sobre el lenguaje de programación Python. El objetivo es estar en contacto con más gente interesada en innovación y tecnología. +{ .centered-text .subtitle } ---- +[Explorar Charlas](meetups){ .md-button .md-button--primary } +[Participa](participa/como-contribuir){ .md-button .md-button--primary } +{ .centered-text .flex .gap-1 } + +> Vine por el código, me quedé por la comunidad + +
+ +- :material-link:{ .middle } __Conoce a quienes hacen posible **Python CDMX!**__ + + --- + + [:octicons-arrow-right-24: Voluntarios](/comunidad/voluntarios) [:octicons-arrow-right-24: Ponentes](/comunidad/ponentes) + +- :material-microphone:{ .middle } __¡Únete a nuestros Meetups!__ + + --- + + Charlas técnicas, networking y aprendizaje colaborativo + + [:octicons-arrow-right-24: Ver Meetups](/meetups/2025) -## Formas de Participación - -
-
-

Ser Ponente

-

Comparte tu conocimiento con la comunidad. Charlas técnicas, casos de uso, mejores prácticas y más.

- Conoce Más -
-
-

Ser Voluntario

-

Ayuda a organizar eventos, gestionar redes sociales, o contribuir con el desarrollo del sitio web.

- Únete -
-
-

Asistir

-

Participa en nuestros meetups, aprende de expertos y conecta con otros desarrolladores Python.

- Ver Eventos -
+## :fontawesome-solid-users: Formas de Participación + +### :fontawesome-solid-microphone: Sé Ponente + +Comparte tu conocimiento con la comunidad: + +- Charlas técnicas +- Casos de uso +- Mejores prácticas +- Talleres +- Y más... + +[:octicons-arrow-right-24: Conoce más](participa/ponentes) + +### :fontawesome-solid-hands-helping: Conviértete en Voluntario + +Ayuda a la comunidad en áreas como: + +- Organización de eventos +- Gestión de redes sociales +- Desarrollo del sitio web + +[:octicons-arrow-right-24: Únete](participa/voluntarios) + +### :fontawesome-solid-users: Asiste a los Meetups + +Participa en nuestros meetups para: + +- Aprender de expertos +- Conectar con otros desarrolladores Python +- Expandir tu red profesional + +[:octicons-arrow-right-24: Ver Eventos](meetups/index) + --- --8<-- "components/community-links.md" diff --git a/docs/js/custom.js b/docs/js/custom.js deleted file mode 100644 index 43c71e6..0000000 --- a/docs/js/custom.js +++ /dev/null @@ -1,421 +0,0 @@ -// Python CDMX Custom JavaScript -document.addEventListener('DOMContentLoaded', function() { - - // Lazy loading para imágenes - const lazyImages = document.querySelectorAll('.lazy-image'); - - const imageObserver = new IntersectionObserver((entries, observer) => { - entries.forEach(entry => { - if (entry.isIntersecting) { - const img = entry.target; - img.classList.add('loaded'); - observer.unobserve(img); - } - }); - }); - - lazyImages.forEach(img => { - imageObserver.observe(img); - }); - - // Búsqueda avanzada - const searchInput = document.querySelector('.search-input'); - const searchFilters = document.querySelectorAll('.filter-chip'); - const searchableCards = document.querySelectorAll('.speaker-card, .volunteer-card, .meetup-card'); - - if (searchInput) { - searchInput.addEventListener('input', function() { - const searchTerm = this.value.toLowerCase(); - filterCards(searchTerm, getActiveFilters()); - }); - } - - searchFilters.forEach(filter => { - filter.addEventListener('click', function() { - this.classList.toggle('active'); - const searchTerm = searchInput ? searchInput.value.toLowerCase() : ''; - filterCards(searchTerm, getActiveFilters()); - }); - }); - - function getActiveFilters() { - return Array.from(document.querySelectorAll('.filter-chip.active')) - .map(filter => filter.textContent.toLowerCase()); - } - - function filterCards(searchTerm, activeFilters) { - searchableCards.forEach(card => { - const cardText = card.textContent.toLowerCase(); - const cardTags = Array.from(card.querySelectorAll('.badge')) - .map(badge => badge.textContent.toLowerCase()); - - const matchesSearch = searchTerm === '' || cardText.includes(searchTerm); - const matchesFilters = activeFilters.length === 0 || - activeFilters.some(filter => cardTags.includes(filter)); - - if (matchesSearch && matchesFilters) { - card.style.display = 'block'; - card.classList.remove('hidden'); - } else { - card.style.display = 'none'; - card.classList.add('hidden'); - } - }); - - updateSearchResults(); - } - - function updateSearchResults() { - const visibleCards = document.querySelectorAll('.speaker-card:not(.hidden), .volunteer-card:not(.hidden), .meetup-card:not(.hidden)'); - const resultsCount = document.querySelector('.search-results-count'); - - if (resultsCount) { - resultsCount.textContent = `${visibleCards.length} resultados encontrados`; - } - } - - // Botón de limpiar filtros - const clearFiltersBtn = document.querySelector('.clear-filters'); - if (clearFiltersBtn) { - clearFiltersBtn.addEventListener('click', function() { - searchFilters.forEach(filter => filter.classList.remove('active')); - if (searchInput) { - searchInput.value = ''; - } - filterCards('', []); - }); - } - - // Animaciones suaves para las tarjetas - const observerOptions = { - threshold: 0.1, - rootMargin: '0px 0px -50px 0px' - }; - - const cardObserver = new IntersectionObserver((entries) => { - entries.forEach(entry => { - if (entry.isIntersecting) { - entry.target.style.opacity = '1'; - entry.target.style.transform = 'translateY(0)'; - } - }); - }, observerOptions); - - searchableCards.forEach(card => { - card.style.opacity = '0'; - card.style.transform = 'translateY(20px)'; - card.style.transition = 'opacity 0.6s ease, transform 0.6s ease'; - cardObserver.observe(card); - }); - - // Mejoras de navegación - const navLinks = document.querySelectorAll('.md-nav__link'); - navLinks.forEach(link => { - link.addEventListener('click', function(e) { - // Añadir efecto de ripple - const ripple = document.createElement('span'); - ripple.classList.add('ripple'); - this.appendChild(ripple); - - setTimeout(() => { - ripple.remove(); - }, 600); - }); - }); - - // Scroll suave para enlaces internos - const internalLinks = document.querySelectorAll('a[href^="#"]'); - internalLinks.forEach(link => { - link.addEventListener('click', function(e) { - e.preventDefault(); - const targetId = this.getAttribute('href').substring(1); - const targetElement = document.getElementById(targetId); - - if (targetElement) { - targetElement.scrollIntoView({ - behavior: 'smooth', - block: 'start' - }); - } - }); - }); - - // Mejoras de tablas - const tables = document.querySelectorAll('.md-typeset table'); - tables.forEach(table => { - // Añadir hover effects - const rows = table.querySelectorAll('tr'); - rows.forEach(row => { - row.addEventListener('mouseenter', function() { - this.style.backgroundColor = 'rgba(38, 159, 70, 0.05)'; - }); - - row.addEventListener('mouseleave', function() { - this.style.backgroundColor = ''; - }); - }); - - // Hacer tablas responsivas - const wrapper = document.createElement('div'); - wrapper.style.overflowX = 'auto'; - wrapper.style.borderRadius = '12px'; - wrapper.style.boxShadow = '0 2px 8px rgba(0,0,0,0.1)'; - - table.parentNode.insertBefore(wrapper, table); - wrapper.appendChild(table); - }); - - // Mejoras de formularios - const formInputs = document.querySelectorAll('input, textarea, select'); - formInputs.forEach(input => { - input.addEventListener('focus', function() { - this.parentElement.classList.add('focused'); - }); - - input.addEventListener('blur', function() { - if (!this.value) { - this.parentElement.classList.remove('focused'); - } - }); - }); - - // Botones de acción mejorados - const actionButtons = document.querySelectorAll('.btn-action'); - actionButtons.forEach(button => { - button.addEventListener('click', function(e) { - // Efecto de click - const ripple = document.createElement('span'); - ripple.classList.add('button-ripple'); - this.appendChild(ripple); - - const rect = this.getBoundingClientRect(); - const size = Math.max(rect.width, rect.height); - const x = e.clientX - rect.left - size / 2; - const y = e.clientY - rect.top - size / 2; - - ripple.style.width = ripple.style.height = size + 'px'; - ripple.style.left = x + 'px'; - ripple.style.top = y + 'px'; - - setTimeout(() => { - ripple.remove(); - }, 600); - }); - }); - - // Mejoras de breadcrumbs - const breadcrumbLinks = document.querySelectorAll('.breadcrumb-item a'); - breadcrumbLinks.forEach(link => { - link.addEventListener('click', function(e) { - // Añadir indicador de navegación - this.style.position = 'relative'; - const indicator = document.createElement('span'); - indicator.style.position = 'absolute'; - indicator.style.bottom = '-2px'; - indicator.style.left = '0'; - indicator.style.width = '0'; - indicator.style.height = '2px'; - indicator.style.backgroundColor = 'var(--python-green)'; - indicator.style.transition = 'width 0.3s ease'; - this.appendChild(indicator); - - setTimeout(() => { - indicator.style.width = '100%'; - }, 100); - }); - }); - - // Optimización de rendimiento - let resizeTimer; - window.addEventListener('resize', function() { - clearTimeout(resizeTimer); - resizeTimer = setTimeout(function() { - // Recalcular posiciones después del resize - cardObserver.disconnect(); - searchableCards.forEach(card => { - cardObserver.observe(card); - }); - }, 250); - }); - - // Mejoras de accesibilidad - const focusableElements = document.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'); - - document.addEventListener('keydown', function(e) { - if (e.key === 'Tab') { - focusableElements.forEach(element => { - element.addEventListener('focus', function() { - this.style.outline = '2px solid var(--python-green)'; - this.style.outlineOffset = '2px'; - }); - - element.addEventListener('blur', function() { - this.style.outline = ''; - this.style.outlineOffset = ''; - }); - }); - } - }); - - // Mejoras de dark mode - const darkModeToggle = document.querySelector('[data-md-color-scheme]'); - if (darkModeToggle) { - darkModeToggle.addEventListener('click', function() { - // Añadir transición suave para el cambio de tema - document.body.style.transition = 'background-color 0.3s ease, color 0.3s ease'; - setTimeout(() => { - document.body.style.transition = ''; - }, 300); - }); - } - - // Mejoras de carga de página - window.addEventListener('load', function() { - // Ocultar loader si existe - const loader = document.querySelector('.page-loader'); - if (loader) { - loader.style.opacity = '0'; - setTimeout(() => { - loader.style.display = 'none'; - }, 300); - } - - // Animar elementos de la página - const animatedElements = document.querySelectorAll('.hero-section, .stats-grid, .features-grid'); - animatedElements.forEach((element, index) => { - setTimeout(() => { - element.style.opacity = '1'; - element.style.transform = 'translateY(0)'; - }, index * 200); - }); - }); - - // Mejoras de SEO y analytics - const trackEvent = function(category, action, label) { - if (typeof gtag !== 'undefined') { - gtag('event', action, { - 'event_category': category, - 'event_label': label - }); - } - }; - - // Track clicks en botones de acción - actionButtons.forEach(button => { - button.addEventListener('click', function() { - const action = this.textContent.trim(); - trackEvent('engagement', 'button_click', action); - }); - }); - - // Track búsquedas - if (searchInput) { - let searchTimeout; - searchInput.addEventListener('input', function() { - clearTimeout(searchTimeout); - searchTimeout = setTimeout(() => { - if (this.value.length > 2) { - trackEvent('search', 'search_performed', this.value); - } - }, 1000); - }); - } - - // Mejoras de UX para móviles - if (window.innerWidth <= 768) { - // Optimizar navegación móvil - const mobileNav = document.querySelector('.md-nav'); - if (mobileNav) { - mobileNav.addEventListener('touchstart', function() { - this.style.transform = 'scale(0.98)'; - }); - - mobileNav.addEventListener('touchend', function() { - this.style.transform = ''; - }); - } - - // Mejorar scroll en móviles - let isScrolling; - window.addEventListener('scroll', function() { - window.clearTimeout(isScrolling); - isScrolling = setTimeout(function() { - // Pausar animaciones durante scroll - document.body.classList.add('scrolling'); - setTimeout(() => { - document.body.classList.remove('scrolling'); - }, 100); - }, 66); - }); - } - - console.log('Python CDMX Custom JavaScript loaded successfully!'); -}); - -// Estilos CSS adicionales para las mejoras de JavaScript -const additionalStyles = ` - .button-ripple { - position: absolute; - border-radius: 50%; - background: rgba(255, 255, 255, 0.3); - transform: scale(0); - animation: ripple 0.6s linear; - pointer-events: none; - } - - @keyframes ripple { - to { - transform: scale(4); - opacity: 0; - } - } - - .ripple { - position: absolute; - border-radius: 50%; - background: rgba(38, 159, 70, 0.2); - transform: scale(0); - animation: ripple 0.6s linear; - pointer-events: none; - } - - .search-results-count { - text-align: center; - color: var(--python-gray); - font-size: 0.9rem; - margin: 1rem 0; - } - - .page-loader { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: white; - display: flex; - align-items: center; - justify-content: center; - z-index: 9999; - transition: opacity 0.3s ease; - } - - .scrolling * { - animation-play-state: paused !important; - } - - .focused { - transform: translateY(-2px); - } - - @media (max-width: 768px) { - .button-ripple { - display: none; - } - } -`; - -// Inyectar estilos adicionales -const styleSheet = document.createElement('style'); -styleSheet.textContent = additionalStyles; -document.head.appendChild(styleSheet); diff --git a/docs/meetups/2023/index.md b/docs/meetups/2023/index.md index 1aa5b85..c6b7137 100644 --- a/docs/meetups/2023/index.md +++ b/docs/meetups/2023/index.md @@ -1,16 +1,15 @@ -
- Python CDMX Logo -
+--- +title: Meetups 2023 +--- -# Meetups 2023 +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } -
- Nuestro primer año como comunidad Python CDMX -
+# :fontawesome-solid-calendar-alt: Meetups 2023 ---- +Nuestro primer año como comunidad... +{ .centered-text .subtitle } -| **Fecha** | **Charla** | **Ponente** | **Lugar** | **Detalles** | +| :fontawesome-solid-calendar: **Fecha** | :fontawesome-solid-microphone: **Charla** | :fontawesome-solid-user: **Ponente** | :fontawesome-solid-map-marker-alt: **Lugar** | :fontawesome-solid-link: **Detalles** | |:---|:---|:---|:---|:---| | **14 Noviembre 2023** | GitOps: Automatizando el despliegue de aplicaciones | Carlos Reyes | Wizeline México | [Ver detalles](202311-noviembre.md) | | **14 Noviembre 2023** | Historia de Python: De Guido van Rossum a la actualidad | Gustavo Vera | Wizeline México | [Ver detalles](202311-noviembre.md) | @@ -20,30 +19,32 @@ --- -## Estadísticas 2023 +## :fontawesome-solid-star: Estadísticas 2023 -
+
+- :fontawesome-solid-microphone: -
-

5 Charlas

-

Realizadas

-
+ 5 Charlas -
-

3 Ponentes

-

Únicos

-
+ Total Realizadas -
-

1 Sede

-

Principal

-
+- :fontawesome-solid-users: -
-

3 Meses

-

de Actividad

-
+ 3 Ponentes + + Únicos + +- :fontawesome-solid-map-marker-alt: + + 1 Sede + + Principal + +- :fontawesome-solid-calendar: + + 3 Meses + de Actividad
--- diff --git a/docs/meetups/2024/index.md b/docs/meetups/2024/index.md index 666e809..8364cd6 100644 --- a/docs/meetups/2024/index.md +++ b/docs/meetups/2024/index.md @@ -1,16 +1,15 @@ -
- Python CDMX Logo -
+--- +title: Meetups 2024 +--- -# Meetups 2024 +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } -
- Conectando desarrolladores Python en la Ciudad de México -
+# :fontawesome-solid-calendar-alt: Meetups 2024 ---- +La consolidación de la comunidad Python en la Ciudad de México +{ .centered-text .subtitle } -| **Fecha** | **Charla** | **Ponente** | **Lugar** | **Detalles** | +| :fontawesome-solid-calendar: **Fecha** | :fontawesome-solid-microphone: **Charla** | :fontawesome-solid-user: **Ponente** | :fontawesome-solid-map-marker-alt: **Lugar** | :fontawesome-solid-link: **Detalles** | |:---|:---|:---|:---|:---| | **12 Noviembre 2024** | Mejora tu código: Evita anti-patrones en Python | Alejandro Lopez | Wizeline México | [Ver detalles](202411-noviembre.md) | | **12 Noviembre 2024** | Exactamente qué y (sobre todo) por qué ChatGPT | Hugo Ramírez | Wizeline México | [Ver detalles](202411-noviembre.md) | @@ -30,30 +29,32 @@ --- -## Estadísticas 2024 +## :fontawesome-solid-star: Estadísticas 2024 -
+
+- :fontawesome-solid-microphone: -
-

15 Charlas

-

Realizadas

-
+ 15 Charlas -
-

10 Ponentes

-

Únicos

-
+ Total Realizadas -
-

1 Sede

-

Principal

-
+- :fontawesome-solid-users: -
-

11 Meses

-

de Actividad

-
+ 10 Ponentes + + Únicos + +- :fontawesome-solid-map-marker-alt: + + 1 Sede + + Principal + +- :fontawesome-solid-calendar: + + 11 Meses + de Actividad
--- diff --git a/docs/meetups/2025/index.md b/docs/meetups/2025/index.md index b923d64..eb4aa1a 100644 --- a/docs/meetups/2025/index.md +++ b/docs/meetups/2025/index.md @@ -1,16 +1,15 @@ -
- Python CDMX Logo -
+--- +title: Meetups 2025 +--- -# Meetups 2025 +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } -
- Conectando desarrolladores Python en la Ciudad de México -
+# :fontawesome-solid-calendar-alt: Meetups 2025 ---- +Conectando desarrolladores Python en la Ciudad de México +{ .centered-text .subtitle } -| **Fecha** | **Charla** | **Ponente** | **Lugar** | **Detalles** | +| :fontawesome-solid-calendar: **Fecha** | :fontawesome-solid-microphone: **Charla** | :fontawesome-solid-user: **Ponente** | :fontawesome-solid-map-marker-alt: **Lugar** | :fontawesome-solid-link: **Detalles** | |:---|:---|:---|:---|:---| | **12 Agosto 2025** | Cómo preparar una ambiente de desarrollo con Python desde zero | Juan Guillermo Gómez | Jardin Chapultepec | [Ver detalles](202508-agosto.md) | | **08 Julio 2025** | Cómo preparar una ambiente de desarrollo con Python desde zero | David Sol | Clara | [Ver detalles](202507-julio.md) | @@ -28,32 +27,33 @@ --- -## Estadísticas 2025 +## :fontawesome-solid-star: Estadísticas 2025 -
+
+- :fontawesome-solid-microphone: -
-

12 Charlas

-

Realizadas

-
+ 12 Charlas -
-

11 Ponentes

-

Únicos

-
+ Total Realizadas -
-

3 Sedes

-

Diferentes

-
+- :fontawesome-solid-users: -
-

7 Meses

-

de Actividad

-
+ 11 Ponentes -
+ Únicos + +- :fontawesome-solid-map-marker-alt: + + 3 Sedes + + Diferentes +- :fontawesome-solid-calendar: + + 7 Meses + + de Actividad +
--- @@ -66,3 +66,4 @@ --- ¿Te gustaría aparecer aquí? Conoce a nuestros [ponentes y voluntarios reconocidos](../../comunidad/como-contribuir.md). + diff --git a/docs/meetups/index.md b/docs/meetups/index.md index 2b11f26..92122f5 100644 --- a/docs/meetups/index.md +++ b/docs/meetups/index.md @@ -1,67 +1,78 @@ -
- Python CDMX Logo -
- -# Meetups Python CDMX - -
- Archivo completo de todos nuestros eventos -
- +--- +title: Meetups +subtitle: Archivo completo de todos nuestros eventos --- -## Años Disponibles +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } -
+# Meetups Python CDMX -
-

2025

-

15 charlas realizadas

-

Nuestro año más activo

- Ver meetups +Archivo completo de todos nuestros eventos. +{ .centered-text .subtitle } + +## :fontawesome-solid-calendar: Años Disponibles + +
+ +- :fontawesome-solid-rocket: 2025 + + --- + + **15 charlas realizadas** + + Nuestro año más activo a la fecha! + + [:fontawesome-solid-play: Ver meetups](/meetups/2025){ .md-button .md-button--primary } + +- :fontawesome-solid-trophy: 2024 + + --- + + **15 charlas realizadas** + + Esta fue la consolidación de la comunidad. + + [:fontawesome-solid-play: Ver meetups](/meetups/2024){ .md-button .md-button--primary } + +- :fontawesome-solid-seedling: 2023 + + --- + + **5 charlas realizadas** + + Nuestros inicios + + [:fontawesome-solid-play: Ver meetups](/meetups/2023){ .md-button .md-button--primary } +
-
-

2024

-

15 charlas realizadas

-

Consolidación de la comunidad

- Ver meetups -
+## :fontawesome-solid-star: Estadísticas Generales -
-

2023

-

5 charlas realizadas

-

Nuestros inicios

- Ver meetups -
+
-
+- :fontawesome-solid-microphone: ---- + 35 Charlas -## Estadísticas Generales + Total Realizadas + +- :fontawesome-solid-users: + + +20 Ponentes -
+ Únicos + +- :fontawesome-solid-location-dot: -
-

35 Charlas

-

Total Realizadas

-
+ 3 Sedes + + Diferentes -
-

20+ Ponentes

-

Únicos

-
+- :fontawesome-solid-calendar: -
-

3 Sedes

-

Diferentes

-
+ 3 años -
-

3 Años

-

de Actividad

-
+ De Actividad!
@@ -74,3 +85,5 @@ --8<-- "components/quick-navigation.md" --- + + diff --git a/docs/comunidad/como-contribuir.md b/docs/participa/como-contribuir.md similarity index 67% rename from docs/comunidad/como-contribuir.md rename to docs/participa/como-contribuir.md index dd4ebc5..abd6714 100644 --- a/docs/comunidad/como-contribuir.md +++ b/docs/participa/como-contribuir.md @@ -1,16 +1,16 @@ -
- Python CDMX Logo -
+--- +title: Cómo Contribuir +--- -# Cómo Contribuir +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } -
- Guía completa para contribuir a Python CDMX -
+# Cómo Contribuir + +Guía completa para contribuir a Python CDMX +{ .centered-text .subtitle } ---- -## ¿Por Qué Contribuir? +## :fontawesome-solid-heart: ¿Por Qué Contribuir? Contribuir a Python CDMX te permite: @@ -22,33 +22,33 @@ Contribuir a Python CDMX te permite: --- -## Formas de Contribuir +## :fontawesome-solid-route: Formas de Contribuir -### Ser Ponente +### :fontawesome-solid-microphone: Sé Ponente Comparte tu conocimiento con la comunidad a través de charlas técnicas, casos de uso o introducciones a nuevas tecnologías. **Más información:** [Ser Ponente](ponentes.md) -### Ser Voluntario +### :fontawesome-solid-hands-helping: Sé Voluntario Ayuda a organizar eventos, gestionar redes sociales, o contribuir con el desarrollo del sitio web. **Más información:** [Ser Voluntario](voluntarios.md) -### Desarrollo Web +### :fontawesome-solid-code: Desarrollo Web Contribuye al mantenimiento y mejora de nuestro sitio web, herramientas y automatizaciones. **Tecnologías:** MkDocs, Python, HTML/CSS, JavaScript -### Contenido +### :fontawesome-solid-share-alt: Contenido Escribe artículos, documentación, o crea contenido para nuestras redes sociales. **Tipos:** Tutoriales, casos de uso, noticias, recursos -### Alianzas +### :fontawesome-solid-handshake: Alianzas Ayuda a establecer y mantener relaciones con otras comunidades y empresas. @@ -56,27 +56,27 @@ Ayuda a establecer y mantener relaciones con otras comunidades y empresas. --- -## Proceso de Contribución +## :fontawesome-solid-clipboard-list: Proceso de Contribución -### 1. Identifica tu Área +### 1. :fontawesome-solid-search: Identifica tu Área - Revisa las [formas de contribuir](#formas-de-contribuir) - Considera tus habilidades e intereses - Evalúa tu disponibilidad de tiempo -### 2. Contacta con Nosotros +### 2. :fontawesome-solid-comments: Contacta con Nosotros - Envía un mensaje a través de nuestros canales oficiales - Participa en [nuestros meetups](../meetups/index.md) para conocernos - Asiste a sesiones informativas -### 3. Comienza Pequeño +### 3. :fontawesome-solid-rocket: Comienza Pequeño - Empieza con contribuciones pequeñas - Aprende sobre nuestros procesos - Construye relaciones con el equipo -### 4. Crece y Lidera +### 4. :fontawesome-solid-star: Crece y Lidera - Toma más responsabilidades - Ayuda a otros nuevos contribuyentes @@ -84,16 +84,16 @@ Ayuda a establecer y mantener relaciones con otras comunidades y empresas. --- -## Herramientas y Recursos +## :fontawesome-solid-tools: Herramientas y Recursos -### Desarrollo +### :fontawesome-solid-code: Desarrollo - **GitHub**: [Repositorio principal](https://github.com/PythonMexico/pythonCDMX) - **MkDocs**: Documentación del sitio - **Python**: Scripts y automatizaciones - **Docker**: Entorno de desarrollo -### Comunicación +### :fontawesome-solid-share-alt: Comunicación - **Telegram**: Canal principal de comunicación - **Meetup**: Gestión de eventos @@ -102,29 +102,29 @@ Ayuda a establecer y mantener relaciones con otras comunidades y empresas. --- -## Beneficios de Contribuir +## :fontawesome-solid-gift: Beneficios de Contribuir -### Reconocimiento +### :fontawesome-solid-certificate: Reconocimiento - Certificados de participación - Menciones en eventos y redes sociales - Referencias profesionales - Reconocimiento público -### Networking +### :fontawesome-solid-network-wired: Networking - Conexiones con expertos del sector - Oportunidades de colaboración - Red profesional expandida -### Desarrollo Profesional +### :fontawesome-solid-graduation-cap: Desarrollo Profesional - Habilidades de liderazgo - Experiencia en gestión de proyectos - Conocimientos técnicos actualizados - Portfolio de contribuciones -### Satisfacción Personal +### :fontawesome-solid-heart: Satisfacción Personal - Impacto positivo en la comunidad - Sentido de pertenencia @@ -133,16 +133,16 @@ Ayuda a establecer y mantener relaciones con otras comunidades y empresas. --- -## Nuestro Equipo +## :fontawesome-solid-users: Nuestro Equipo -### Coordinadores Principales +### :fontawesome-solid-star: Coordinadores Principales - **Coordinación General**: Gestión integral de la comunidad - **Eventos**: Organización de meetups y actividades - **Comunicación**: Gestión de canales y contenido - **Alianzas**: Relaciones con comunidades y empresas -### Voluntarios Activos +### :fontawesome-solid-users: Voluntarios Activos - **Logística**: Preparación y supervisión de eventos - **Comunicación**: Gestión de redes sociales y difusión diff --git a/docs/comunidad/ponentes.md b/docs/participa/ponentes.md similarity index 96% rename from docs/comunidad/ponentes.md rename to docs/participa/ponentes.md index c7a050f..0af7338 100644 --- a/docs/comunidad/ponentes.md +++ b/docs/participa/ponentes.md @@ -1,16 +1,15 @@ -
- Python CDMX Logo -
+--- +title: Ponentes +--- -# Ser Ponente +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } ---- +# Sé un Ponente -
- Comparte tu conocimiento con la comunidad Python CDMX -
+Comparte tu conocimiento con la comunidad +{ .centered-text .subtitle } -## ¿Por Qué Ser Ponente? +## :fontawesome-solid-heart: ¿Por Qué Ser Ponente? Ser ponente en Python CDMX te ofrece una oportunidad única para: @@ -22,21 +21,21 @@ Ser ponente en Python CDMX te ofrece una oportunidad única para: --- -## Tipos de Charlas +## :fontawesome-solid-lightbulb: Tipos de Charlas -### Charlas Técnicas +### :fontawesome-solid-code: Charlas Técnicas - **Duración**: 20-30 minutos - **Contenido**: Tecnologías Python, frameworks, librerías, mejores prácticas - **Ejemplos**: Django, Flask, FastAPI, Pandas, NumPy, Machine Learning -### Casos de Uso +### :fontawesome-solid-chart-line: Casos de Uso - **Duración**: 25-35 minutos - **Contenido**: Proyectos reales, experiencias en producción, lecciones aprendidas - **Ejemplos**: Migración de sistemas, optimización de performance, arquitecturas -### Charlas Introductorias +### :fontawesome-solid-rocket: Charlas Introductorias - **Duración**: 15-25 minutos - **Contenido**: Conceptos básicos, introducción a nuevas tecnologías @@ -44,27 +43,27 @@ Ser ponente en Python CDMX te ofrece una oportunidad única para: --- -## Proceso para Ser Ponente +## :fontawesome-solid-clipboard-list: Proceso para Ser Ponente -### 1. Propón tu Charla +### 1. :fontawesome-solid-pencil: Propón tu Charla - Envía tu propuesta a través de nuestros canales de comunicación - Incluye título, descripción, duración y nivel de audiencia - Menciona cualquier requisito técnico especial -### 2. Revisión y Feedback +### 2. :fontawesome-solid-comments: Revisión y Feedback - Nuestro equipo revisará tu propuesta - Te proporcionaremos feedback y sugerencias - Confirmaremos la fecha y logística -### 3. Preparación +### 3. :fontawesome-solid-calendar: Preparación - Recibirás recursos y guías para preparar tu presentación - Podrás hacer una prueba técnica si lo deseas - Te conectaremos con otros ponentes si es un evento múltiple -### 4. Presentación +### 4. :fontawesome-solid-microphone: Presentación - Llegada temprana para configuración técnica - Presentación en un ambiente acogedor y colaborativo @@ -72,27 +71,27 @@ Ser ponente en Python CDMX te ofrece una oportunidad única para: --- -## Beneficios para Ponentes +## :fontawesome-solid-gift: Beneficios para Ponentes -### Reconocimiento +### :fontawesome-solid-certificate: Reconocimiento - Certificado de participación como ponente - Mención especial en nuestras redes sociales - Inclusión en nuestro directorio de ponentes -### Networking +### :fontawesome-solid-network-wired: Networking - Acceso prioritario a eventos especiales - Conexión directa con otros expertos del sector - Oportunidades de colaboración en proyectos -### Recursos +### :fontawesome-solid-book: Recursos - Acceso a materiales y recursos de presentación - Feedback detallado para mejorar futuras charlas - Posibilidad de grabar tu presentación -## Ponentes de Python CDMX +## :fontawesome-solid-star: Ponentes de Python CDMX Conoce a algunos de los ponentes que han compartido su conocimiento con nuestra comunidad: @@ -716,7 +715,7 @@ Conoce a algunos de los ponentes que han compartido su conocimiento con nuestra --- -## ¿Quieres Ser Parte de Esta Lista? +## :fontawesome-solid-plus-circle: ¿Quieres Ser Parte de Esta Lista? Si te interesa compartir tu conocimiento con la comunidad Python CDMX, ¡no dudes en contactarnos! diff --git a/docs/comunidad/sedes.md b/docs/participa/sedes.md similarity index 79% rename from docs/comunidad/sedes.md rename to docs/participa/sedes.md index 46e4c71..55e4916 100644 --- a/docs/comunidad/sedes.md +++ b/docs/participa/sedes.md @@ -1,22 +1,23 @@ -# Sedes +--- +title: Sedes +--- -
- Buscamos SEDE pythonCDMX -
-
- ¡Tu empresa puede ser sede del próximo Meetup de Python CDMX! -
+![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } ---- +# Sedes + +¡Tu empresa puede ser sede del próximo Meetup de Python CDMX! +{ .centered-text .subtitle } + +![Buscamos SEDE pythonCDMX](/images/comunidades/pythoncdmx_buscamos_sede.jpg){ width=500px } +{ .centered-text } ¿Trabajas en una empresa tech, un coworking o tienes acceso a un espacio donde podríamos reunir a la comunidad Python CDMX? En 2025 seguimos creciendo y queremos llevar nuestros meetups a nuevos espacios que compartan el entusiasmo -por el conocimiento abierto, la innovación y el poder de Python . +por el conocimiento abierto, la innovación y el poder de Python :fontawesome-solid-python:. ---- - -## ¿Por qué ser sede? +## :fontawesome-solid-lightbulb: ¿Por qué ser sede? Organizar un meetup de Python CDMX en tu espacio es una gran oportunidad para: @@ -25,9 +26,7 @@ Organizar un meetup de Python CDMX en tu espacio es una gran oportunidad para: - Inspirar nuevas sinergias e ideas con personas apasionadas por Python - Participar directamente en la construcción del ecosistema tech de México ---- - -## ¿Qué necesitas para ser sede? +## :fontawesome-solid-handshake: ¿Qué necesitas para ser sede? - Espacio para 40 a 60 personas - Proyector o pantalla con entrada HDMI @@ -37,9 +36,7 @@ Organizar un meetup de Python CDMX en tu espacio es una gran oportunidad para: Opcionalmente puedes ofrecer snacks, bebidas, o sumarte con trivias, regalos o speakers. ---- - -## ¿Cómo es un meetup típico? +## :fontawesome-solid-calendar-alt: ¿Cómo es un meetup típico? Duración: 3 a 3.5 horas Inicio: 18:30 hrs @@ -54,9 +51,7 @@ Fin: 21:30–22:00 hrs | 20:15 – 21:00 | Lightning Talks | | 21:00 – 22:00 | Networking / Cierre | ---- - -## ¿Qué fechas tenemos disponibles? +## :fontawesome-solid-calendar-check: ¿Qué fechas tenemos disponibles? Organizamos nuestros meetups el **segundo martes de cada mes**. @@ -79,28 +74,21 @@ Organizamos nuestros meetups el **segundo martes de cada mes**. | 13 de octubre de 2026 | _Por definir_ | Disponible | | 10 de noviembre de 2026 | _Por definir_ | Disponible | ---- - - ---- - -## ¿Y si quiero participar? +## :fontawesome-solid-comments: ¿Y si quiero participar? ¡Nos encantaría contar contigo! -Puedes escribirnos a: +Puedes escribirnos a - [info@pythoncdmx.org](mailto:info@pythoncdmx.org) +:fontawesome-solid-envelope: [info@pythoncdmx.org](mailto:info@pythoncdmx.org) +{ .centered-text } También puedes comentar en nuestras publicaciones o enviarnos DM si viste la convocatoria en redes. ---- - > Ser sede de un meetup es más que prestar un espacio. Es apoyar la construcción de comunidad, > compartir conocimiento y sumar al crecimiento tech en México. -¡Gracias por considerar ser parte de esta aventura Pythonista! - +¡Gracias por considerar ser parte de esta aventura Pythonista! :fontawesome-brands-python::fontawesome-solid-star: --- diff --git a/docs/comunidad/sedes_faq.md b/docs/participa/sedes_faq.md similarity index 100% rename from docs/comunidad/sedes_faq.md rename to docs/participa/sedes_faq.md diff --git a/docs/comunidad/voluntarios.md b/docs/participa/voluntarios.md similarity index 96% rename from docs/comunidad/voluntarios.md rename to docs/participa/voluntarios.md index d786d0f..021b495 100644 --- a/docs/comunidad/voluntarios.md +++ b/docs/participa/voluntarios.md @@ -1,13 +1,12 @@ -
- Python CDMX Logo -
- -# Ser Voluntario - +--- +title: Voluntarios --- +![logo PythonCDMX](/images/logo.png){ width=150px .hero-logo } -## ¿Por Qué Ser Voluntario? +# Sé un Voluntario de Python CDMX + +## :fontawesome-solid-heart: ¿Por Qué Ser Voluntario? Ser voluntario en Python CDMX te permite: @@ -19,27 +18,30 @@ Ser voluntario en Python CDMX te permite: --- -## Áreas de Participación +## :fontawesome-solid-tasks: Áreas de Participación + +### :fontawesome-solid-users: Organización de Eventos -### Organización de Eventos - **Coordinación de meetups** mensuales - **Gestión de espacios** y logística - **Coordinación con ponentes** y sponsors - **Organización de eventos especiales** -### Soporte Técnico +### :fontawesome-solid-tools: Soporte Técnico + - **Configuración de equipos** y sistemas - **Soporte durante eventos** (audio, video, streaming) - **Mantenimiento de plataformas** digitales - **Desarrollo de herramientas** para la comunidad -### Comunicaciones +### :fontawesome-solid-bullhorn: Comunicaciones + - **Gestión de redes sociales** y canales digitales - **Creación de contenido** promocional - **Comunicación con miembros** y partners - **Marketing digital** y difusión -### Mentoría y Educación +### :fontawesome-solid-chalkboard-teacher: Mentoría y Educación - **Apoyo a nuevos miembros** de la comunidad - **Organización de workshops** y talleres - **Mentoría técnica** para desarrolladores @@ -47,7 +49,7 @@ Ser voluntario en Python CDMX te permite: --- -## Proceso de Incorporación +## :fontawesome-solid-clipboard-list: Proceso de Incorporación 1. **Aplicación inicial** a través de nuestro formulario 2. **Entrevista** con el equipo organizador @@ -57,7 +59,7 @@ Ser voluntario en Python CDMX te permite: --- -## Compromiso de Tiempo +## :fontawesome-solid-clock: Compromiso de Tiempo - **Mínimo:** 5-10 horas por mes - **Flexibilidad:** Horarios adaptables a tu disponibilidad @@ -66,7 +68,7 @@ Ser voluntario en Python CDMX te permite: --- -## Beneficios +## :fontawesome-solid-gift: Beneficios - **Networking** con profesionales del sector - **Desarrollo de habilidades** de liderazgo @@ -88,7 +90,7 @@ Ser voluntario en Python CDMX te permite:
-## Voluntarios de Python CDMX +## :fontawesome-solid-star: Voluntarios de Python CDMX Conoce a algunos de los voluntarios que hacen posible que Python CDMX funcione: @@ -528,7 +530,7 @@ Conoce a algunos de los voluntarios que hacen posible que Python CDMX funcione: --- -## ¿Quieres Ser Parte de Nuestro Equipo? +## :fontawesome-solid-plus-circle: ¿Quieres Ser Parte de Nuestro Equipo? Si te interesa contribuir al crecimiento de la comunidad Python CDMX, ¡únete a nuestro equipo de voluntarios! diff --git a/docs/styles/main.css b/docs/styles/main.css new file mode 100644 index 0000000..2939ae6 --- /dev/null +++ b/docs/styles/main.css @@ -0,0 +1,124 @@ +:root>* { + /* Colores principales */ + --md-primary-fg-color--lighter: #b3d0c6; + --md-primary-fg-color--light: #4d927a; + --md-primary-fg-color: #006341; + --md-primary-fg-color--dark: #004f34; + --md-primary-fg-color--darker: #003221; + --md-accent-fg-color: #006341; + --md-accent-bg-color: #ffffff; + + /* Radios y espaciado */ + --button-radius: 1rem; + --card-radius: 0.75rem; +} + +/* CENTRA TITULOS E ICONO (HERO LOGO) */ +article.md-typeset h1 { + font-size: 2rem; + text-align: center; +} + +article.md-typeset h1#bienvenidxs-a-pythoncdmx { + font-weight: 700; + color: var(--md-primary-fg-color); +} + +p:has(img.hero-logo) { + text-align: center; +} + +/* CARD BUTTONS */ +article.md-typeset .grid.cards ul li p:has(a.md-button) { + display: flex; + justify-content: end; +} + +/* GENERAL BUTTON */ + +.md-typeset a.md-button { + gap: 0.5rem; + display: flex; + align-items: center; + justify-content: space-evenly; + margin: 0px 0.25rem; + border-radius: var(--button-radius); +} + +.md-typeset a.md-button span.twemoji { + color: inherit; +} + +.md-typeset a.md-button:focus, +.md-typeset a.md-button:hover { + color: var(--md-accent-fg-color); + border-color: var(--md-accent-fg-color); + background-color: var(--md-default-bg-color); +} + +/* CARD STYLE */ +.md-typeset .grid.cards ul li { + border-radius: var(--card-radius); +} + +.md-typeset .grid.cards ul li:hover { + box-shadow: var(--md-shadow-z3); + border-color: var(--md-primary-fg-color); +} + +/* CARD HEADER */ +.md-typeset .grid.cards ul li h3 { + display: flex; + flex-direction: column; +} + +/* STAT CARDS */ +.grid.cards.stats ul li { + font-size: 1.25rem; + font-weight: 700; + text-align: center; + color: var(--md-default-fg-color--light); +} + +.md-typeset>div.grid.cards.stats>ul>li>p:nth-child(1)>span, +.md-typeset>div.grid.cards.stats>ul>li>p:nth-child(2) { + color: var(--md-primary-fg-color); +} + +/* GENERICS */ +.centered-text { + text-align: center; +} + +.flex { + display: flex; + justify-content: center; + align-items: center; + gap: 1rem; +} + +.gap-1 { + gap: 0.5rem; +} + +.subtitle { + font-size: 1.25rem; +} + +span.twemoji { + color: var(--md-accent-fg-color); +} + +/* Motto */ +blockquote { + font-size: 1.5rem; + font-style: italic; + font-weight: 600; + text-align: center; + position: relative; + margin: 1rem 0; +} + +blockquote p { + text-align: center; +} diff --git a/mkdocs.yml b/mkdocs.yml index a5273bb..55ee69a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -6,8 +6,6 @@ site_url: https://pythoncdmx.org # Repository repo_name: PythonMexico/pythonCDMX repo_url: https://github.com/PythonMexico/pythonCDMX/ -#edit_uri: edit/main/docs/ - # Copyright copyright: Copyright © 2025 Python CDMX @@ -15,25 +13,23 @@ copyright: Copyright © 2025 Python CDMX theme: name: material logo: images/logo.png - favicon: images/favicon.ico - + favicon: images/logo.png # Custom colors based on logo palette: # Light mode - scheme: default - primary: green - accent: green + primary: custom + accent: custom toggle: icon: material/brightness-7 name: Cambiar a modo oscuro # Dark mode - scheme: slate - primary: green - accent: green + primary: custom + accent: custom toggle: icon: material/brightness-4 name: Cambiar a modo claro - # Features - configuración optimizada features: - announce.dismiss @@ -60,12 +56,9 @@ theme: - search.suggest - toc.follow - # Icons - icon: - repo: fontawesome/brands/github - # Plugins plugins: + - macros - search: lang: es - git-revision-date-localized: @@ -106,66 +99,21 @@ extra: link: https://www.linkedin.com/groups/13126454/ name: LinkedIn - # Custom CSS and JavaScript extra_css: - - css/custom.css - -extra_javascript: - - js/custom.js + - styles/main.css # Markdown extensions markdown_extensions: - - abbr - - admonition - attr_list - - def_list - - footnotes + # Nos permite hacer cosas como las Card Grids https://squidfunk.github.io/mkdocs-material/reference/grids/#using-card-grids - md_in_html - toc: permalink: true title: En esta página - - pymdownx.arithmatex: - generic: true - - pymdownx.betterem: - smart_enable: all - - pymdownx.caret - - pymdownx.details - pymdownx.emoji: emoji_index: !!python/name:material.extensions.emoji.twemoji emoji_generator: !!python/name:material.extensions.emoji.to_svg - - pymdownx.highlight: - anchor_linenums: true - line_spans: __span - pygments_lang_class: true - use_pygments: true - - pymdownx.inlinehilite - - pymdownx.keys - - pymdownx.magiclink: - normalize_issue_symbols: true - repo_url_shorthand: true - user: PythonMexico - repo: pythonCDMX - - pymdownx.mark - - pymdownx.smartsymbols - - pymdownx.snippets: - base_path: 'docs' - check_paths: true - - pymdownx.superfences: - custom_fences: - - name: mermaid - class: mermaid - format: !!python/name:pymdownx.superfences.fence_code_format - - pymdownx.tabbed: - alternate_style: true - combine_header_slug: true - slugify: !!python/object/apply:pymdownx.slugs.slugify - kwds: - case: lower - - pymdownx.tasklist: - custom_checkbox: true - - pymdownx.tilde - # Validation validation: nav: