Skip to content

lucianoedipo/react-lgpd-consent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-lgpd-consent 🍪

Biblioteca React modular para gerenciamento de consentimento LGPD/GDPR

npm version License: MIT TypeScript Coverage

Documentação: https://lucianoedipo.github.io/react-lgpd-consent
Storybook: https://lucianoedipo.github.io/react-lgpd-consent/storybook


📦 Pacotes

Este é um monorepo que contém 3 pacotes publicados no npm:

npm

Headless (sem UI) - Context, hooks e lógica de consentimento.

npm install @react-lgpd-consent/core

Para quem? Desenvolvedores que querem criar sua própria UI personalizada.

  • ✅ Gerenciamento de estado de consentimento
  • ✅ Hooks React (useConsent, useConsentCategory)
  • ✅ Utilidades de cookies e localStorage
  • ✅ SSR-safe (Next.js, Remix)
  • ✅ Tree-shakeable
  • 📦 ~86 KB (gzipped)

npm

Componentes Material-UI prontos para uso.

npm install @react-lgpd-consent/mui @mui/material @emotion/react @emotion/styled

Para quem? Desenvolvedores que já usam Material-UI e querem UI pronta.

  • CookieBanner - Banner de consentimento customizável
  • PreferencesModal - Modal de preferências de cookies
  • FloatingPreferencesButton - Botão flutuante para reabrir modal
  • ✅ Suporte a temas MUI
  • ✅ Totalmente acessível (ARIA, keyboard navigation)
  • 📦 ~104 KB (gzipped, inclui core)

react-lgpd-consentRecomendado

npm

Pacote agregador - Re-exporta tudo do @react-lgpd-consent/mui (melhor DX).

npm install react-lgpd-consent @mui/material @emotion/react @emotion/styled

Para quem? Quem quer a experiência completa com setup mínimo.

  • ✅ Tudo do @react-lgpd-consent/mui + @react-lgpd-consent/core
  • ✅ Compatibilidade retroativa (v0.4.x → v0.5.x)
  • ✅ Import único, sem config extra
  • 📦 ~104 KB (gzipped)

🚀 Início Rápido

Instalação

npm install react-lgpd-consent @mui/material @emotion/react @emotion/styled

Uso Básico

import { ConsentProvider } from 'react-lgpd-consent'

function App() {
  return (
    <ConsentProvider
      categories={{
        enabledCategories: ['analytics', 'marketing']
      }}
    >
      <YourApp />
    </ConsentProvider>
  )
}

📚 Documentação

🎨 Documentação Interativa (GitHub Pages)


🤝 Como Contribuir

  1. Abra uma Issue para bugs ou melhorias.
  2. Siga o Guia de Desenvolvimento em DEVELOPMENT.md para enviar um PR.

📝 Licença

MIT © Luciano Edipo


Feito com ❤️ • Se ajudou, deixe uma ⭐ no GitHub!