From 1ea068fdb906c1d1f63eb5ed54588ee9d4516a59 Mon Sep 17 00:00:00 2001 From: ananeridev Date: Mon, 11 May 2026 09:30:19 -0300 Subject: [PATCH 1/2] fix: readme Signed-off-by: ananeridev --- README.md | 4 +- i18n/en-US/code.json | 20 +++-- i18n/es-419/code.json | 20 +++-- i18n/pt-BR/code.json | 20 +++-- src/website/components/_partial/Navbar.tsx | 13 ++-- src/website/components/home/Gallery.tsx | 25 +++++- src/website/components/home/Sponsors.tsx | 76 +++++++++++++++++++ src/website/components/home/Team.tsx | 35 +++++---- .../pages/c4p/_components/diversity.tsx | 4 +- src/website/pages/index.tsx | 4 +- src/website/pages/sponsors.tsx | 76 +------------------ src/website/pages/team.tsx | 8 ++ src/website/scss/pages/_gallery.scss | 59 ++++++++++++++ 13 files changed, 240 insertions(+), 124 deletions(-) create mode 100644 src/website/components/home/Sponsors.tsx create mode 100644 src/website/pages/team.tsx diff --git a/README.md b/README.md index 8f30b63..7c11fb8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# JSConf Brasil 2026 +# JSConf Brasil 2026 🐢✨ -A **JSConf Brasil** é a conferência brasileira dentro da família **JSConf**, dedicada à comunidade **JavaScript** e ao ecossistema em torno da linguagem — do front ao back, ferramentas, performance e as pessoas que constroem produtos com tecnologia web. +A **JSConf Brasil** é a conferência brasileira dentro da família [JSConf](https://jsconf.com/) dedicada à comunidade **JavaScript** e ao ecossistema em torno da linguagem — do front ao back, ferramentas, performance e as pessoas que constroem produtos com tecnologia web. ## Propósito diff --git a/i18n/en-US/code.json b/i18n/en-US/code.json index 2a2b546..d1a442b 100644 --- a/i18n/en-US/code.json +++ b/i18n/en-US/code.json @@ -101,6 +101,18 @@ "gallery.community.description": { "message": "We organize meetups and events connecting Node.js developers across Brazil." }, + "gallery.c4pGuide.heading": { + "message": "Submit your talk!" + }, + "gallery.c4pGuide.title": { + "message": "Call 4 Papers Guide" + }, + "gallery.c4pGuide.description": { + "message": "Want to submit a talk? Read the full guide with criteria, tips, and deadlines." + }, + "gallery.c4pGuide.cta": { + "message": "Open guide" + }, "gallery.networking.title": { "message": "Networking" }, @@ -150,7 +162,7 @@ "message": "USCS - Municipal University of São Caetano do Sul" }, "team.title": { - "message": "Our Team" + "message": "The team behind JSConfBR" }, "team.subtitle": { "message": "International experts and local talent sharing the future of the web." @@ -167,12 +179,6 @@ "team.ana.position": { "message": "Senior Software Engineer" }, - "team.weslley.bio": { - "message": "Weslley Araújo is a developer with over 11 years of experience, MySQL2 maintainer and creator of Poku, a high-performance test runner that challenges the programming language itself." - }, - "team.weslley.position": { - "message": "Principal Developer" - }, "team.lojhan.bio": { "message": "Tech Lead & Full Stack Developer. Helping teams build scalable applications with modern technologies. Specialized in frontend, backend and architecture design." }, diff --git a/i18n/es-419/code.json b/i18n/es-419/code.json index af19f06..d3baa9f 100644 --- a/i18n/es-419/code.json +++ b/i18n/es-419/code.json @@ -101,6 +101,18 @@ "gallery.community.description": { "message": "Organizamos meetups y eventos conectando desarrolladores Node.js en todo Brasil." }, + "gallery.c4pGuide.heading": { + "message": "¡Envía tu charla!" + }, + "gallery.c4pGuide.title": { + "message": "Guía de Call 4 Papers" + }, + "gallery.c4pGuide.description": { + "message": "¿Quieres enviar una charla? Consulta la guía completa con criterios, consejos y fechas." + }, + "gallery.c4pGuide.cta": { + "message": "Ver guía" + }, "gallery.networking.title": { "message": "Networking" }, @@ -150,7 +162,7 @@ "message": "USCS - Universidad Municipal de São Caetano do Sul" }, "team.title": { - "message": "Nuestro Equipo" + "message": "El equipo detrás de JSConfBR" }, "team.subtitle": { "message": "Expertos internacionales y talentos locales compartiendo el futuro de la web." @@ -167,12 +179,6 @@ "team.ana.position": { "message": "Senior Software Engineer" }, - "team.weslley.bio": { - "message": "Weslley Araújo es un desarrollador con más de 11 años de experiencia, mantenedor de MySQL2 y creador de Poku, un test runner de alto rendimiento que desafía al propio lenguaje de programación." - }, - "team.weslley.position": { - "message": "Principal Developer" - }, "team.lojhan.bio": { "message": "Tech Lead & Full Stack Developer. Ayudando a equipos a construir aplicaciones escalables con tecnologías modernas. Especializado en frontend, backend y diseño de arquitectura." }, diff --git a/i18n/pt-BR/code.json b/i18n/pt-BR/code.json index fb181e4..1d1fd9e 100644 --- a/i18n/pt-BR/code.json +++ b/i18n/pt-BR/code.json @@ -101,6 +101,18 @@ "gallery.community.description": { "message": "Organizamos meetups e eventos conectando desenvolvedores Node.js por todo o Brasil." }, + "gallery.c4pGuide.heading": { + "message": "Mande sua palestra!" + }, + "gallery.c4pGuide.title": { + "message": "Guia de Call 4 Papers" + }, + "gallery.c4pGuide.description": { + "message": "Quer submeter uma palestra? Veja o guia completo com critérios, dicas e prazos." + }, + "gallery.c4pGuide.cta": { + "message": "Acessar guia" + }, "gallery.networking.title": { "message": "Networking" }, @@ -150,7 +162,7 @@ "message": "USCS - Universidade Municipal de São Caetano do Sul" }, "team.title": { - "message": "Nosso Time" + "message": "O time por trás da JSConfBR" }, "team.subtitle": { "message": "Especialistas internacionais e talentos locais compartilhando o futuro da web." @@ -167,12 +179,6 @@ "team.ana.position": { "message": "Senior Software Engineer" }, - "team.weslley.bio": { - "message": "Weslley Araújo é um desenvolvedor com mais de 11 anos de experiência, mantenedor do MySQL2 e criador do Poku, um test runner de alta performance que desafia a própria linguagem de programação." - }, - "team.weslley.position": { - "message": "Principal Developer" - }, "team.lojhan.bio": { "message": "Tech Lead & Full Stack Developer. Ajudando equipes a construir aplicações escaláveis com tecnologias modernas. Especializado em frontend, backend e design de arquitetura." }, diff --git a/src/website/components/_partial/Navbar.tsx b/src/website/components/_partial/Navbar.tsx index c21b58a..ad696e3 100644 --- a/src/website/components/_partial/Navbar.tsx +++ b/src/website/components/_partial/Navbar.tsx @@ -43,8 +43,9 @@ const SECTIONS: Section[] = [ priority: 2, }, { - id: 'team', - label: , + id: 'sponsors', + label: , + priority: 1, }, ]; @@ -184,8 +185,8 @@ export const Navbar = () => { C4P - - + +
@@ -270,8 +271,8 @@ export const Navbar = () => { C4P - - + + diff --git a/src/website/components/home/Gallery.tsx b/src/website/components/home/Gallery.tsx index 20c37e8..1a061a5 100644 --- a/src/website/components/home/Gallery.tsx +++ b/src/website/components/home/Gallery.tsx @@ -1,8 +1,10 @@ import type { FC, ReactNode, RefObject } from 'react'; import { useRef } from 'react'; -import { Camera, Handshake, PartyPopper, Users } from 'lucide-react'; +import Link from '@docusaurus/Link'; +import { Camera, FileText, Handshake, Mic, PartyPopper, Users } from 'lucide-react'; import { Text } from '@site/src/website/components/shared/i18n'; import { useScroll } from '../../hooks/useScroll'; +import { useLocalePath } from '../../hooks/useLocalePath'; import { Image } from '../shared/Image'; type TextCardProps = { @@ -54,6 +56,8 @@ const PhotoCard: FC = ({ src, alt, className = '' }) => { }; export const Gallery = () => { + const { localePath } = useLocalePath(); + return (
@@ -111,6 +115,25 @@ export const Gallery = () => { alt='NodeBR meetup full' />
+

+ +

+
+
+ +
+

+ +

+

+ +

+
+ + + +
+
); diff --git a/src/website/components/home/Sponsors.tsx b/src/website/components/home/Sponsors.tsx new file mode 100644 index 0000000..77f6368 --- /dev/null +++ b/src/website/components/home/Sponsors.tsx @@ -0,0 +1,76 @@ +import '@site/src/website/scss/pages/sponsors.scss'; +import { ExternalLink, Handshake, Heart } from 'lucide-react'; +import { Text } from '@site/src/website/components/shared/i18n'; +import { SafeLink } from '@site/src/website/components/shared/SafeLink'; +import { link } from '@site/src/website/configs/definitions'; + +export const Sponsors = () => ( +
+
+

+ +

+

+ +

+
+ +
+

+ +

+
+
+ +

+ +

+

+ +

+
+
+ +

+ +

+

+ +

+
+
+
+ +
+

+ +

+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+

+ +

+

+ +

+ + + +
+
+); diff --git a/src/website/components/home/Team.tsx b/src/website/components/home/Team.tsx index e9fb922..dceb047 100644 --- a/src/website/components/home/Team.tsx +++ b/src/website/components/home/Team.tsx @@ -81,6 +81,14 @@ export const Team = () => { website: 'https://blog.lsantos.dev', }} /> +
@@ -92,25 +100,16 @@ export const Team = () => {
- { + const { localePath } = useLocalePath(); const { formData, updateField, goToStep } = useC4P(); const handleSubmit = (event: SubmitEvent) => { @@ -46,7 +48,7 @@ export const Diversity = () => { física, etc.) e (c) gerar estatísticas agregadas sobre diversidade no C4P. Você pode revogar esse consentimento a qualquer momento escrevendo para um dos{' '} - + nossos voluntários . diff --git a/src/website/pages/index.tsx b/src/website/pages/index.tsx index 70d14ff..ce122e6 100644 --- a/src/website/pages/index.tsx +++ b/src/website/pages/index.tsx @@ -3,7 +3,7 @@ import { Gallery } from '../components/home/Gallery'; import { Home } from '../components/home/Home'; import { Location } from '../components/home/Location'; // import { Speakers } from '../components/home/Speakers'; -import { Team } from '../components/home/Team'; +import { Sponsors } from '../components/home/Sponsors'; import { TicketSelection } from '../components/home/TicketSelection'; import { Waitlist } from '../components/home/Waitlist'; import { Page } from '../components/shared/Page'; @@ -17,6 +17,6 @@ export default () => ( - + ); diff --git a/src/website/pages/sponsors.tsx b/src/website/pages/sponsors.tsx index 2ea6f61..c3f763a 100644 --- a/src/website/pages/sponsors.tsx +++ b/src/website/pages/sponsors.tsx @@ -1,82 +1,12 @@ -import '@site/src/website/scss/pages/sponsors.scss'; -import { ExternalLink, Handshake, Heart } from 'lucide-react'; -import { Text, text } from '@site/src/website/components/shared/i18n'; +import { text } from '@site/src/website/components/shared/i18n'; +import { Sponsors } from '@site/src/website/components/home/Sponsors'; import { Page } from '@site/src/website/components/shared/Page'; -import { SafeLink } from '@site/src/website/components/shared/SafeLink'; -import { link } from '@site/src/website/configs/definitions'; export default () => ( -
-
-

- -

-

- -

-
- -
-

- -

-
-
- -

- -

-

- -

-
-
- -

- -

-

- -

-
-
-
- -
-

- -

-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
-
- -
-

- -

-

- -

- - - -
-
+
); diff --git a/src/website/pages/team.tsx b/src/website/pages/team.tsx new file mode 100644 index 0000000..a97899b --- /dev/null +++ b/src/website/pages/team.tsx @@ -0,0 +1,8 @@ +import { Team } from '../components/home/Team'; +import { Page } from '../components/shared/Page'; + +export default () => ( + + + +); diff --git a/src/website/scss/pages/_gallery.scss b/src/website/scss/pages/_gallery.scss index bd6420a..c7a9b50 100644 --- a/src/website/scss/pages/_gallery.scss +++ b/src/website/scss/pages/_gallery.scss @@ -136,6 +136,65 @@ } } } + + .c4p-cta { + width: 100%; + border-radius: 2rem; + border: 0.1rem solid #022514; + background-color: #021509b3; + padding: 2.5rem 3rem; + + .c4p-cta-content { + @include flex(row, center, space-between); + gap: 2.5rem; + flex-wrap: wrap; + + @media (max-width: 780px) { + flex-direction: column; + align-items: flex-start; + } + } + + .c4p-cta-icon { + width: 3rem; + height: 3rem; + stroke: var(--ifm-color-primary-darker); + flex-shrink: 0; + } + + .c4p-cta-title { + font-family: var(--ifm-font-family-title); + font-size: 1.8rem; + font-weight: 800; + color: #fff; + margin: 0 0 0.6rem; + } + + .c4p-cta-description { + font-size: 1.3rem; + font-weight: 500; + line-height: 1.6; + opacity: 0.75; + margin: 0; + } + + .c4p-cta-link { + flex-shrink: 0; + padding: 1rem 2.2rem; + border-radius: 10rem; + background-color: var(--ifm-color-primary); + color: #000; + font-size: 1.4rem; + font-weight: 700; + text-decoration: none; + transition: opacity 0.2s ease; + + &:hover { + opacity: 0.85; + text-decoration: none; + } + } + } } } } From 911beee3e27f1759305fad05dcbc42a7d2fbd17c Mon Sep 17 00:00:00 2001 From: ananeridev Date: Mon, 11 May 2026 09:33:10 -0300 Subject: [PATCH 2/2] fix: minor Signed-off-by: ananeridev --- src/website/components/home/Gallery.tsx | 11 +++++++++-- src/website/pages/sponsors.tsx | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/website/components/home/Gallery.tsx b/src/website/components/home/Gallery.tsx index 1a061a5..ec2f078 100644 --- a/src/website/components/home/Gallery.tsx +++ b/src/website/components/home/Gallery.tsx @@ -1,10 +1,17 @@ import type { FC, ReactNode, RefObject } from 'react'; import { useRef } from 'react'; import Link from '@docusaurus/Link'; -import { Camera, FileText, Handshake, Mic, PartyPopper, Users } from 'lucide-react'; +import { + Camera, + FileText, + Handshake, + Mic, + PartyPopper, + Users, +} from 'lucide-react'; import { Text } from '@site/src/website/components/shared/i18n'; -import { useScroll } from '../../hooks/useScroll'; import { useLocalePath } from '../../hooks/useLocalePath'; +import { useScroll } from '../../hooks/useScroll'; import { Image } from '../shared/Image'; type TextCardProps = { diff --git a/src/website/pages/sponsors.tsx b/src/website/pages/sponsors.tsx index c3f763a..1722c27 100644 --- a/src/website/pages/sponsors.tsx +++ b/src/website/pages/sponsors.tsx @@ -1,5 +1,5 @@ -import { text } from '@site/src/website/components/shared/i18n'; import { Sponsors } from '@site/src/website/components/home/Sponsors'; +import { text } from '@site/src/website/components/shared/i18n'; import { Page } from '@site/src/website/components/shared/Page'; export default () => (