InfoJoias

Manual da Marca

Guia completo de identidade visual e design system InfoJoias®

🎨 Paleta de Cores📝 Tipografia🎯 Componentes⚡ Animações
InfoJoias

Logotipo e Símbolo

InfoJoias

Logotipo e Símbolo InfoJoias

A identidade visual InfoJoias é composta pelo logotipo (isotipo + tipografia “INFOJOIAS”) e peloisotipo (apenas o símbolo). O isotipo representa uma figura humana estilizada em um círculo, simbolizando a conexão humana com o universo das joias, transmitindo confiança, elegância e expertise no setor de joias, semijoias e bijuterias.

Logotipo

Combinação do isotipo com a tipografia “INFOJOIAS” - uso principal da marca em materiais institucionais.

Isotipo

Apenas o símbolo circular com figura humana estilizada, ideal para favicons, apps e aplicações compactas.

Paleta de Cores

Azul corporativo (#1e293b), Laranja energético (#ea5b1b) e Branco (#fff) para máxima versatilidade.

Formatos Disponíveis

WEBPSEO Otimizado
SVGEscalável
PNGDisponível
PDFImpressão

InfoJoias
Logotipo Completo

Logotipo Azul

Logotipo Azul

Versão principal com tipografia e isotipo em azul corporativo

Uso Recomendado:

Cabeçalhos principaisDocumentos oficiaisAssinaturas de emailMaterial corporativo
React/Next.js:
<Image src="/images/logo/svg/logotipo-azul.svg" alt="Logotipo Azul" width={280} height={80} />
Logotipo Branco

Logotipo Branco

Versão para fundos escuros com tipografia e isotipo brancos

Uso Recomendado:

Fundos escurosImagens promocionaisMateriais impressos escurosOverlays
React/Next.js:
<Image src="/images/logo/svg/logotipo-branco.svg" alt="Logotipo Branco" width={280} height={80} />
Logotipo Laranja

Logotipo Laranja

Versão com tipografia e isotipo em laranja energético

Uso Recomendado:

Materiais promocionaisCampanhas publicitáriasElementos de destaque
React/Next.js:
<Image src="/images/logo/svg/logotipo-laranja.svg" alt="Logotipo Laranja" width={280} height={80} />

InfoJoias
Isotipo (Símbolo)

Isotipo Azul

Isotipo Azul

Símbolo InfoJoias em azul corporativo - versão institucional

Uso Recomendado:

FaviconsÍcones de appsDocumentos formaisApresentações corporativas
React/Next.js:
<Image src="/images/logo/svg/Isotipo-azul.svg" alt="Isotipo Azul" width={120} height={120} />
Isotipo Branco

Isotipo Branco

Símbolo InfoJoias em branco para fundos escuros

Uso Recomendado:

Fundos escurosOverlaysElementos sobre imagensMateriais noturnos
React/Next.js:
<Image src="/images/logo/svg/Isotipo-branco.svg" alt="Isotipo Branco" width={120} height={120} />
Isotipo Laranja

Isotipo Laranja

Símbolo InfoJoias em laranja energético - versão promocional

Uso Recomendado:

Campanhas publicitáriasMateriais promocionaisElementos de destaqueRedes sociais
React/Next.js:
<Image src="/images/logo/svg/Isotipo-laranja.svg" alt="Isotipo Laranja" width={120} height={120} />

Diretrizes de Uso

✅ Permitido

  • Usar as versões fornecidas sem modificações
  • Redimensionar proporcionalmente
  • Usar versão apropriada para o fundo
  • Manter área de proteção adequada
  • Usar isotipo sozinho quando necessário

❌ Não Permitido

  • Alterar cores do logotipo
  • Distorcer proporções (esticar/comprimir)
  • Adicionar efeitos ou sombras
  • Separar elementos do logotipo
  • Usar sobre fundos com baixo contraste

InfoJoiasTamanho Mínimo

O logotipo completo deve ter pelo menos 184px de largura em aplicações digitais e30mm de largura em materiais impressos. O isotipo deve ter pelo menos32px digitalmente e 10mm impresso para manter a legibilidade.

Paleta de Cores

🟠

Cores Primárias - InfoJoias Orange

Baseada na identidade visual InfoJoias®, nossa cor principal transmite energia e confiança.

infojoias-orange-50

Backgrounds sutis

infojoias-orange-100

Highlights suaves

infojoias-orange-200

Borders e divisores

infojoias-orange-300

Estados hover

infojoias-orange-400

Elementos secundários

infojoias-orange-500

Principal

COR PRINCIPAL ⭐

infojoias-orange-600

Estados ativos

infojoias-orange-700

Texto sobre fundos claros

infojoias-orange-800

Elementos escuros

infojoias-orange-900

Texto principal escuro

🔵

Cores Secundárias - InfoJoias Blue

Nossa paleta azul transmite profissionalismo e confiabilidade.

infojoias-blue-50

Backgrounds principais

infojoias-blue-100

Áreas de conteúdo

infojoias-blue-200

Borders sutis

infojoias-blue-300

Elementos desabilitados

infojoias-blue-400

Texto secundário

infojoias-blue-500

Ícones e elementos

infojoias-blue-600

Texto principal

infojoias-blue-700

Headings

infojoias-blue-800

Principal

COR PRINCIPAL AZUL ⭐

infojoias-blue-900

Texto escuro

infojoias-blue-950

Backgrounds escuros

Cores de Apoio - InfoJoias Light

Tons suaves para criar hierarquia visual e respiração no design.

infojoias-light-50

Background Light Orange

infojoias-light-100

Background Light Blue

infojoias-light-200

Background Light Purple

infojoias-light-300

Background Light Gray

infojoias-light-400

Branco puro

Tipografia

📝 Famílias de Fonte

Inter

Fonte Principal - Sans Serif

font-family: 'Inter', ui-sans-serif, system-ui
Texto principal e corpo de artigos

BW Mitga / Poppins

Fonte Display - Para Títulos

font-family: 'BW Mitga', 'Poppins', ui-sans-serif, system-ui
InfoJoias Design System

Playfair Display

Fonte Decorativa - Para Elementos Especiais

font-family: 'Playfair Display', serif
Elegância & Sofisticação

📏 Hierarquia Tipográfica

InfoJoias Manual da Marca

Títulos principais, hero sections

Elemento:

H1 Luxury

Classe:

luxury-h1

Tamanho:

48px

Line Height:

56px

Peso:

700

Paleta de Cores

Seções principais

Elemento:

H2 Luxury

Classe:

luxury-h2

Tamanho:

36px

Line Height:

44px

Peso:

600

Cores Primárias

Subtítulos

Elemento:

H3 Luxury

Classe:

luxury-h3

Tamanho:

24px

Line Height:

32px

Peso:

600

Componente Visual

Títulos de cards

Elemento:

H4 Luxury

Classe:

luxury-h4

Tamanho:

20px

Line Height:

28px

Peso:

500

Texto destacado para introduções e destaques importantes.

Texto destacado

Elemento:

Body Large

Classe:

luxury-body-large

Tamanho:

18px

Line Height:

28px

Peso:

400

Este é o texto principal usado em parágrafos e conteúdo geral.

Texto principal

Elemento:

Body

Classe:

luxury-body

Tamanho:

16px

Line Height:

24px

Peso:

400

Labels, captions e informações auxiliares.

Texto secundário

Elemento:

Small

Classe:

luxury-small

Tamanho:

14px

Line Height:

20px

Peso:

400

📱 Tamanhos Responsivos

text-xs

12px

Textos muito pequenos

text-sm

14px

Labels, captions

text-base

16px

Texto padrão

text-lg

18px

Texto destacado

text-xl

20px

Subtítulos pequenos

text-2xl

24px

Títulos médios

text-3xl

30px

Títulos grandes

text-4xl

36px

Hero secundário

text-5xl

48px

Hero principal

text-6xl

60px

Display especial

💡 Mobile First: Use as classes base e adicione prefixos de breakpoints como sm:, md:, lg:, xl: para responsividade.

Componentes Visuais

🔘 Botões

Botão Primário

Usado para ações principais e CTAs

btn-luxury-primary
<button class="px-6 py-3 bg-infojoias-orange-500 hover:bg-infojoias-orange-600 text-white rounded-xl font-semibold transition-all duration-300 hover:scale-105 shadow-lg hover:shadow-xl">
  Cadastrar Agora
</button>

Botão Secundário

Para ações secundárias

btn-luxury-secondary
<button class="px-6 py-3 bg-transparent border-2 border-infojoias-blue-800 text-infojoias-blue-800 hover:bg-infojoias-blue-50 rounded-xl font-semibold transition-all duration-300">
  Saiba Mais
</button>

Botão Terciário

Para ações auxiliares

btn-luxury-tertiary
<button class="px-6 py-3 bg-infojoias-light-50 border border-infojoias-light-200 text-infojoias-blue-700 hover:bg-infojoias-light-100 rounded-lg font-medium transition-all duration-300">
  Ver Detalhes
</button>

🃏 Cards

Card Luxury

Card principal do sistema

card-luxury

Card Título

Descrição do conteúdo do card com informações relevantes.

<div class="bg-white border border-infojoias-light-200 rounded-2xl p-6 shadow-sm hover:shadow-md transition-all duration-300 hover:scale-105">
  <h3 class="text-lg font-semibold text-infojoias-blue-800 mb-4">Card Título</h3>
  <p class="text-infojoias-blue-600 mb-4">Descrição do conteúdo...</p>
</div>

Card Categoria

Para exibir categorias

card-luxury-category

Categoria

24 itens

<div class="bg-infojoias-light-50 rounded-xl p-6 text-center hover:bg-infojoias-orange-50 transition-all duration-300 cursor-pointer">
  <h4 class="font-semibold text-infojoias-blue-800 mb-2">Categoria</h4>
  <p class="text-sm text-infojoias-blue-600">24 itens</p>
</div>

Card Perfil

Para exibir perfis de usuário

card-luxury-profile

Maria Silva

Especialista em Joias

24

Posts

1.2k

Views

89

Likes

<div class="bg-white border border-infojoias-light-200 rounded-2xl p-6 shadow-sm">
  <div class="flex items-center gap-4 mb-4">
    <div class="bg-infojoias-orange-500 p-3 rounded-full">
      <User class="h-6 w-6 text-white" />
    </div>
    <div>
      <h3 class="font-semibold text-infojoias-blue-800">Nome</h3>
      <p class="text-sm text-infojoias-blue-600">Cargo</p>
    </div>
  </div>
</div>

🎨 Design Tokens

Border Radius

rounded-sm(2px) - Elementos pequenos
rounded(4px) - Padrão shadcn
rounded-md(6px) - Inputs, badges
rounded-lg(8px) - Cards pequenos
rounded-xl(12px) - Botões, cards médios
rounded-2xl(16px) - Cards grandes
rounded-3xl(24px) - Cards especiais (infojoias)

Sombras

shadow-smSombra sutil
shadowSombra padrão
shadow-mdSombra média
shadow-lgSombra grande
shadow-xlSombra extra grande
shadow-2xlSombra máxima

Sombras e Efeitos

🌫️ Sombras Personalizadas

luxury

Sombra sutil para elementos delicados

0 1px 2px rgba(0, 0, 0, 0.05)

luxury-lg

Sombra média para cards e botões

0 4px 6px rgba(0, 0, 0, 0.07)

luxury-xl

Sombra grande para modais e elementos flutuantes

0 10px 15px rgba(0, 0, 0, 0.1)

luxury-glow

Sombra com brilho suave

0 0 15px rgba(99, 102, 241, 0.1)

shadow-3xl

Sombra 3D avançada para elementos principais

0 25px 50px -12px rgba(0, 0, 0, 0.25)

🌈 Gradientes

gradient-infojoias

Preview

Gradiente principal InfoJoias

background: linear-gradient(135deg, #ea5b1b 0%, #fb923c 100%)

gradient-infojoias-hover

Preview

Gradiente para estados hover

background: linear-gradient(135deg, #dc2626 0%, #ea5b1b 100%)

gradient-infojoias-soft

Preview

Gradiente suave para light mode

background: linear-gradient(135deg, #fdefe8 0%, #d6f6ff 100%)

gradient-infojoias-soft-dark

Preview

Gradiente suave para dark mode

background: linear-gradient(135deg, #1f2937 0%, #111827 100%)

gradient-blue

Preview

Gradiente azul secundário

background: linear-gradient(135deg, #343452 0%, #475569 100%)

gradient-light

Preview

Gradiente claro para backgrounds

background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%)

✨ Efeitos Especiais

Glow Effect

Efeito de brilho sutil

box-shadow: 0 0 20px rgba(234, 91, 27, 0.2); filter: drop-shadow(0 0 10px rgba(234, 91, 27, 0.1));

Elevation

Elevação com sombra múltipla

box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05), 0 10px 20px rgba(0, 0, 0, 0.05);

Neon Glow

Brilho neon para elementos especiais

box-shadow: 0 0 5px rgba(234, 91, 27, 0.3), 0 0 10px rgba(234, 91, 27, 0.2), 0 0 15px rgba(234, 91, 27, 0.1);

💡 Dicas de Uso

✅ Boas Práticas

  • • Use sombras sutis para elementos de interface
  • • Gradientes principais apenas em CTAs importantes
  • • Combine sombras com border-radius adequado
  • • Efeitos especiais apenas para elementos interativos

❌ Evitar

  • • Sombras muito pesadas em elementos pequenos
  • • Mais de um gradiente por seção
  • • Efeitos de brilho excessivos
  • • Misturar muitos efeitos diferentes

Espaçamentos

📏 Escala de Espaçamentos

spacing-00 (0px)

Reset margins/padding

spacing-0.50.125rem (2px)

Micro espaçamentos

spacing-10.25rem (4px)

Espaçamentos mínimos

spacing-1.50.375rem (6px)

Pequenos detalhes

spacing-20.5rem (8px)

Gaps pequenos

spacing-2.50.625rem (10px)

Espaçamento fino

spacing-30.75rem (12px)

Padrão pequeno

spacing-3.50.875rem (14px)

Entre pequeno e médio

spacing-41rem (16px)

Espaçamento base

spacing-51.25rem (20px)

Espaçamento médio

spacing-61.5rem (24px)

Sections pequenas

spacing-71.75rem (28px)

Entre médio e grande

spacing-82rem (32px)

Espaçamento grande

spacing-92.25rem (36px)

Sections médias

spacing-102.5rem (40px)

Espaçamento XL

spacing-112.75rem (44px)

Entre grande e XL

spacing-123rem (48px)

Sections grandes

spacing-143.5rem (56px)

Sections principais

spacing-164rem (64px)

Containers

spacing-184.5rem (72px)

InfoJoias custom

spacing-205rem (80px)

Headers

spacing-246rem (96px)

Sections hero

spacing-287rem (112px)

Mega sections

spacing-328rem (128px)

Page sections

spacing-369rem (144px)

Layout principal

spacing-4010rem (160px)

Headers grandes

spacing-4411rem (176px)

Sections especiais

spacing-4812rem (192px)

Layout containers

spacing-5213rem (208px)

Hero sections

spacing-5614rem (224px)

Mega containers

spacing-6015rem (240px)

Full sections

spacing-6416rem (256px)

Page headers

spacing-7218rem (288px)

Landing sections

spacing-8020rem (320px)

Mega headers

spacing-8822rem (352px)

InfoJoias custom

spacing-9624rem (384px)

Full page sections

spacing-12832rem (512px)

InfoJoias custom

🔘 Border Radius

rounded-none

0px

Elementos retangulares

rounded-sm

2px

Elementos pequenos

rounded

4px

Padrão shadcn

rounded-md

6px

Inputs, badges

rounded-lg

8px

Cards pequenos

rounded-xl

12px

Botões, cards médios

rounded-2xl

16px

Cards grandes

rounded-3xl

24px

Cards especiais (InfoJoias)

rounded-full

9999px

Círculos perfeitos

📦 Tamanhos de Container

containerauto

Container responsivo automático

max-w-sm384px

Small container

max-w-md448px

Medium container

max-w-lg512px

Large container

max-w-xl576px

Extra large container

max-w-2xl672px

2XL container

max-w-3xl768px

3XL container

max-w-4xl896px

4XL container

max-w-5xl1024px

5XL container

max-w-6xl1152px

6XL container

max-w-7xl1280pxInfoJoias Padrão

7XL container (InfoJoias padrão)

max-w-screen-2xl1536px

Full screen container

📐 Diretrizes de Espaçamento

✅ Boas Práticas

  • • Use múltiplos de 4px para consistência
  • spacing-4 (16px) como base para componentes
  • spacing-8 (32px) para seções pequenas
  • spacing-16 (64px) para seções principais
  • rounded-3xl para cards InfoJoias especiais
  • max-w-7xl como container padrão

📱 Responsividade

  • • Mobile: p-4 lg:p-8 para containers
  • • Seções: py-16 px-4 sm:px-6 lg:px-8
  • • Cards: p-4 md:p-6 lg:p-8
  • • Gaps: gap-4 md:gap-6 lg:gap-8
  • • Margens: mb-8 md:mb-12 lg:mb-16

🎯 Exemplo Prático

<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16"> <div class="bg-white rounded-3xl p-8 shadow-lg"> <h2 class="text-3xl font-bold mb-6">Título da Seção</h2> <div class="grid gap-8 md:grid-cols-2 lg:grid-cols-3"> <!-- Cards aqui --> </div> </div> </div>

Animações

⏱️ Durações de Transição

duration-75

75ms

Feedback instantâneo

duration-100

100ms

Micro-interações

duration-150

150ms

Hovers rápidos

duration-200

200ms

Hovers padrão

duration-250

250ms

Transições suaves

duration-300

300ms

Animações médias

duration-350

350ms

Animações suaves

duration-500

500ms

Animações lentas

duration-700

700ms

Transições especiais

duration-1000

1000ms

Animações longas

📈 Funções de Easing

ease-linear

Velocidade constante

linear
ease-in

Aceleração gradual

cubic-bezier(0.4, 0, 1, 1)
ease-out

Desaceleração gradual

cubic-bezier(0, 0, 0.2, 1)
ease-in-out

Aceleração e desaceleração

cubic-bezier(0.4, 0, 0.2, 1)

🖱️ Animações de Hover

hover-scale

Escala suave no hover

Duração:

250ms

Easing:

ease-out

transform: scale(1.05); transition: transform 250ms ease-out;

hover-lift

Elevação no hover

Duração:

250ms

Easing:

ease-out

transform: translateY(-8px); transition: transform 250ms ease-out;

hover-glow

Brilho no hover

Duração:

300ms

Easing:

ease-out

box-shadow: 0 0 20px rgba(234, 91, 27, 0.3); transition: box-shadow 300ms ease-out;

hover-rotate

Rotação sutil no hover

Duração:

200ms

Easing:

ease-out

transform: rotate(2deg) scale(1.02); transition: transform 200ms ease-out;

🎭 Animações de Entrada

fade-in

Aparição com fade

Duração:

300ms

Easing:

ease-out

opacity: 1; transform: translateY(0); transition: opacity 300ms ease-out, transform 300ms ease-out;

scale-in

Aparição com escala

Duração:

250ms

Easing:

ease-out

opacity: 1; transform: scale(1); transition: opacity 250ms ease-out, transform 250ms ease-out;

slide-up

Deslizamento de baixo para cima

Duração:

350ms

Easing:

ease-out

opacity: 1; transform: translateY(0); transition: opacity 350ms ease-out, transform 350ms ease-out;

slide-right

Deslizamento da esquerda para direita

Duração:

300ms

Easing:

ease-out

opacity: 1; transform: translateX(0); transition: opacity 300ms ease-out, transform 300ms ease-out;

✨ Animações Especiais

pulse-gentle

Pulsação suave

Duração:

2s

Easing:

cubic-bezier(0.4, 0, 0.6, 1)

animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;

bounce-gentle

Bounce suave

Duração:

1s

Easing:

ease-in-out

animation: bounce 1s ease-in-out infinite;

float

Movimento flutuante

Duração:

3s

Easing:

ease-in-out

animation: float 3s ease-in-out infinite;

glow-pulse

Brilho pulsante

Duração:

2s

Easing:

ease-in-out

animation: glow-pulse 2s ease-in-out infinite;

🎯 Diretrizes de Animação

✅ Boas Práticas

  • • Use duration-250 para hovers padrão
  • • Prefira ease-out para transições suaves
  • • Limite animações simultâneas (máx. 2-3)
  • • Use transform em vez de propriedades de layout
  • • Aplique will-change para animações complexas
  • • Respeite prefers-reduced-motion

⚡ Performance

  • • Anime apenas transform e opacity
  • • Use transform3d para hardware acceleration
  • • Evite animar width, height, padding
  • • Prefira CSS animations a JavaScript
  • • Use contain: layout style paint
  • • Remova will-change após animação

🎯 Exemplo Otimizado

.hover-card { transition: transform 250ms ease-out, box-shadow 250ms ease-out; will-change: transform; } .hover-card:hover { transform: translateY(-4px) scale(1.02); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); } @media (prefers-reduced-motion: reduce) { .hover-card { transition: none; } }

Códigos de Uso

HTML - Estruturas Base

Botão Primário

html

Botão principal para CTAs importantes

<!-- Botão Primário InfoJoias -->
<button class="px-6 py-3 bg-infojoias-orange-500 hover:bg-infojoias-orange-600 text-white rounded-xl font-semibold transition-all duration-300 hover:scale-105 shadow-lg hover:shadow-xl">
  Cadastrar Agora
</button>

Card Principal

html

Estrutura de card com design InfoJoias

<!-- Card Luxury InfoJoias -->
<div class="bg-white dark:bg-infojoias-blue-950 border border-infojoias-light-200 dark:border-infojoias-blue-800 rounded-3xl p-8 shadow-sm hover:shadow-lg transition-all duration-300 hover:scale-105">
  <div class="flex items-center gap-4 mb-6">
    <div class="bg-infojoias-orange-500 p-3 rounded-xl">
      <svg class="h-6 w-6 text-white" fill="currentColor" viewBox="0 0 24 24">
        <!-- Ícone aqui -->
      </svg>
    </div>
    <h3 class="text-2xl font-bold text-infojoias-blue-800 dark:text-white font-display">
      Título do Card
    </h3>
  </div>
  
  <p class="text-infojoias-blue-600 dark:text-infojoias-light-300 leading-relaxed mb-6">
    Conteúdo do card com texto responsivo e acessível.
  </p>
  
  <button class="text-infojoias-orange-500 hover:text-infojoias-orange-600 font-semibold transition-colors flex items-center gap-2">
    Ver mais
    <svg class="h-4 w-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
      <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
    </svg>
  </button>
</div>

Container com Gradiente

html

Section com gradiente de fundo InfoJoias

<!-- Container com Gradiente -->
<div class="bg-gradient-to-br from-infojoias-orange-500 to-infojoias-orange-600 rounded-3xl p-8 lg:p-12 text-white">
  <div class="max-w-4xl mx-auto text-center">
    <h2 class="text-4xl lg:text-5xl font-bold font-display mb-6">
      Título com Gradiente
    </h2>
    <p class="text-xl lg:text-2xl opacity-90 mb-8">
      Descrição elegante sobre joias e gemologia.
    </p>
    <button class="bg-white text-infojoias-orange-600 px-8 py-4 rounded-xl font-semibold hover:bg-infojoias-light-50 transition-all duration-300 hover:scale-105">
      Descobrir Mais
    </button>
  </div>
</div>

Grid Responsivo

html

Layout em grid com cards responsivos

<!-- Grid Responsivo InfoJoias -->
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16">
  <div class="text-center mb-12">
    <h2 class="text-4xl font-bold text-infojoias-blue-800 dark:text-white font-display mb-4">
      Nossos Serviços
    </h2>
    <p class="text-xl text-infojoias-blue-600 dark:text-infojoias-light-300">
      Expertise em joias e gemologia
    </p>
  </div>
  
  <div class="grid gap-8 md:grid-cols-2 lg:grid-cols-3">
    <div class="bg-white dark:bg-infojoias-blue-950 rounded-2xl p-6 border border-infojoias-light-200 dark:border-infojoias-blue-800 hover:shadow-lg transition-all duration-300">
      <!-- Conteúdo do card -->
    </div>
    <!-- Mais cards... -->
  </div>
</div>

CSS - Estilos Customizados

Classes Utilitárias

css

Combinações frequentes para reutilização

/* Classes Utilitárias InfoJoias */
.hero-title {
  @apply text-5xl lg:text-6xl font-bold font-display text-infojoias-blue-800 dark:text-white mb-6 leading-tight;
}

.hero-subtitle {
  @apply text-xl lg:text-2xl text-infojoias-blue-600 dark:text-infojoias-light-300 mb-8 leading-relaxed;
}

.section-padding {
  @apply py-16 lg:py-24 px-4 sm:px-6 lg:px-8;
}

.card-luxury {
  @apply bg-white dark:bg-infojoias-blue-950 border border-infojoias-light-200 dark:border-infojoias-blue-800 rounded-3xl p-8 shadow-sm hover:shadow-lg transition-all duration-300;
}

.btn-primary {
  @apply px-6 py-3 bg-infojoias-orange-500 hover:bg-infojoias-orange-600 text-white rounded-xl font-semibold transition-all duration-300 hover:scale-105 shadow-lg hover:shadow-xl;
}

.text-balance {
  @apply text-infojoias-blue-700 dark:text-infojoias-light-300 leading-relaxed;
}

Animações Customizadas

css

Keyframes para animações especiais

/* Animações InfoJoias */
@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-10px);
  }
}

@keyframes glow-pulse {
  0%, 100% {
    box-shadow: 0 0 15px rgba(234, 91, 27, 0.2);
  }
  50% {
    box-shadow: 0 0 25px rgba(234, 91, 27, 0.4);
  }
}

@keyframes gentle-bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-8px);
  }
  60% {
    transform: translateY(-4px);
  }
}

.float {
  animation: float 3s ease-in-out infinite;
}

.glow-pulse {
  animation: glow-pulse 2s ease-in-out infinite;
}

.gentle-bounce {
  animation: gentle-bounce 2s ease-in-out infinite;
}

Gradientes Customizados

css

Definições de gradientes da marca

/* Gradientes InfoJoias */
.bg-gradient-primary {
  background: linear-gradient(135deg, #ea5b1b 0%, #fb923c 100%);
}

.bg-gradient-primary-hover {
  background: linear-gradient(135deg, #dc2626 0%, #ea5b1b 100%);
}

.bg-gradient-soft {
  background: linear-gradient(135deg, #fdefe8 0%, #d6f6ff 100%);
}

.bg-gradient-dark {
  background: linear-gradient(135deg, #1f2937 0%, #111827 100%);
}

.bg-gradient-blue {
  background: linear-gradient(135deg, #343452 0%, #475569 100%);
}

/* Gradientes com texto */
.text-gradient-primary {
  background: linear-gradient(135deg, #ea5b1b 0%, #fb923c 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

Responsividade

css

Media queries e breakpoints

/* Responsividade InfoJoias */
/* Mobile First Approach */
.responsive-container {
  @apply px-4 py-8;
}

@media (min-width: 640px) {
  .responsive-container {
    @apply px-6 py-12;
  }
}

@media (min-width: 1024px) {
  .responsive-container {
    @apply px-8 py-16;
  }
}

/* Typography Responsiva */
.responsive-heading {
  @apply text-3xl font-bold;
}

@media (min-width: 768px) {
  .responsive-heading {
    @apply text-4xl;
  }
}

@media (min-width: 1024px) {
  .responsive-heading {
    @apply text-5xl;
  }
}

/* Grid Responsivo */
.responsive-grid {
  @apply grid gap-6 grid-cols-1;
}

@media (min-width: 768px) {
  .responsive-grid {
    @apply grid-cols-2 gap-8;
  }
}

@media (min-width: 1024px) {
  .responsive-grid {
    @apply grid-cols-3 gap-8;
  }
}

JavaScript - Interatividade

Tema Toggle

javascript

Script para alternância de tema escuro/claro

// Theme Toggle InfoJoias
function initThemeToggle() {
  const theme = localStorage.getItem('theme') || 'light';
  document.documentElement.classList.toggle('dark', theme === 'dark');
  
  const toggleBtn = document.querySelector('[data-theme-toggle]');
  toggleBtn?.addEventListener('click', () => {
    const isDark = document.documentElement.classList.contains('dark');
    const newTheme = isDark ? 'light' : 'dark';
    
    document.documentElement.classList.toggle('dark', newTheme === 'dark');
    localStorage.setItem('theme', newTheme);
    
    // Animação suave na transição
    document.documentElement.style.transition = 'all 0.3s ease';
    setTimeout(() => {
      document.documentElement.style.transition = '';
    }, 300);
  });
}

// Inicializar ao carregar a página
document.addEventListener('DOMContentLoaded', initThemeToggle);

Scroll Animations

javascript

Animações baseadas em scroll

// Scroll Animations InfoJoias
function initScrollAnimations() {
  const observer = new IntersectionObserver((entries) => {
    entries.forEach((entry) => {
      if (entry.isIntersecting) {
        entry.target.classList.add('animate-in');
      }
    });
  }, {
    threshold: 0.1,
    rootMargin: '0px 0px -50px 0px'
  });

  // Elementos para animar
  const animateElements = document.querySelectorAll('[data-animate]');
  animateElements.forEach((el) => observer.observe(el));
}

// CSS correspondente
const scrollAnimationStyles = `
  [data-animate] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  
  [data-animate].animate-in {
    opacity: 1;
    transform: translateY(0);
  }
  
  [data-animate="fade-up"] {
    transform: translateY(50px);
  }
  
  [data-animate="fade-left"] {
    transform: translateX(-50px);
  }
  
  [data-animate="scale"] {
    transform: scale(0.9);
  }
`;

// Adicionar estilos
const styleSheet = document.createElement('style');
styleSheet.textContent = scrollAnimationStyles;
document.head.appendChild(styleSheet);

initScrollAnimations();

🚀 Referência Rápida

🎨 Cores Principais

bg-infojoias-orange-500text-infojoias-blue-800border-infojoias-light-200

📏 Espaçamentos

p-8 (padding)gap-6 (grid gap)mb-6 (margin bottom)

🔘 Border Radius

rounded-xl (12px)rounded-2xl (16px)rounded-3xl (24px)

💡 Dica: Sempre teste em diferentes dispositivos e temas (claro/escuro) para garantir a melhor experiência do usuário.

Diretrizes de Uso

✅ Boas Práticas

Cores

  • Use infojoias-orange-500 como cor primária para CTAs importantes
  • Combine infojoias-blue-800 com infojoias-light-50 para contraste suave
  • Mantenha pelo menos contraste 4.5:1 para acessibilidade
  • Use cores neutras para grandes áreas de texto
  • Limite o uso de cores vibrantes a elementos de destaque

Layout

  • Aplique rounded-3xl em cards principais para identidade InfoJoias
  • Use max-w-7xl como container padrão para conteúdo
  • Mantenha hierarquia visual clara com espaçamentos consistentes
  • Aplique grid responsivo com breakpoints bem definidos
  • Use sticky navigation para melhor experiência

Tipografia

  • Use font-display para títulos e font-sans para texto corrido
  • Mantenha line-height adequado para legibilidade (1.5-1.6)
  • Aplique text-balance para títulos longos
  • Use escalas tipográficas consistentes (text-lg, text-xl, etc.)
  • Combine pesos de fonte estrategicamente (font-medium, font-bold)

Animações

  • Prefira animações sutis com duration-250ms
  • Use ease-out para transições mais naturais
  • Aplique hover:scale-105 para interatividade sutil
  • Respeite prefers-reduced-motion para acessibilidade
  • Limite animações simultâneas a 2-3 elementos

❌ Práticas a Evitar

Cores

  • Não use cores primárias em fundos grandes
  • Evite combinações com baixo contraste
  • Não misture mais de 3 cores principais por seção
  • Evite usar apenas cor para transmitir informação
  • Não use gradientes em textos pequenos

Layout

  • Não use border-radius muito pequeno em elementos grandes
  • Evite layouts que quebram em dispositivos móveis
  • Não sobrecarregue a interface com muitos elementos
  • Evite containers sem padding adequado
  • Não ignore breakpoints intermediários

Tipografia

  • Evite text-align center em textos longos
  • Não use mais de 3 tamanhos de fonte por seção
  • Evite line-height muito apertado (<1.2)
  • Não misture muitas famílias tipográficas
  • Evite textos muito longos sem quebras

Animações

  • Evite mais de 2 animações simultâneas
  • Não combine gradientes com sombras muito fortes
  • Evite animações muito rápidas (<100ms)
  • Não anime propriedades que causam reflow
  • Evite efeitos que podem causar epilepsia

📱 Diretrizes Responsivas

Mobile (320px - 767px)

Use padding: p-4 para containers
Aplique text-base para corpo de texto
Use grid-cols-1 para cards
Mantenha botões com min-height: 44px
Reduza espaçamentos: gap-4, mb-4

Tablet (768px - 1023px)

Use padding: p-6 para containers
Aplique text-lg para destaque
Use grid-cols-2 para cards
Mantenha navegação acessível por toque
Espaçamentos médios: gap-6, mb-6

Desktop (1024px+)

Use padding: p-8 para containers
Aplique text-xl para hero sections
Use grid-cols-3 ou grid-cols-4 para cards
Aproveite hover states
Espaçamentos generosos: gap-8, mb-8

💡 Mobile First: Sempre comece o design pela versão mobile e expanda para telas maiores usando breakpoints.

♿ Acessibilidade

Contraste

  • Mínimo 4.5:1 para texto normal
  • Mínimo 3:1 para texto grande (18px+)
  • Teste com ferramentas de contraste
  • Considere usuários com daltonismo

Navegação

  • Use skip links para navegação por teclado
  • Mantenha ordem lógica de foco
  • Forneça indicadores visuais de foco
  • Use ARIA labels quando necessário

Conteúdo

  • Use headings hierárquicos (h1, h2, h3)
  • Forneça alt text para imagens
  • Use texto descritivo para links
  • Mantenha linguagem clara e simples

🎯 Exemplo de Implementação Completa

Card de Produto - Boas Práticas Aplicadas

<!-- Card responsivo e acessível --> <article class="bg-white dark:bg-infojoias-blue-950 border border-infojoias-light-200 dark:border-infojoias-blue-800 rounded-3xl p-6 lg:p-8 shadow-sm hover:shadow-lg transition-all duration-300 hover:scale-105 focus-within:ring-2 focus-within:ring-infojoias-orange-500"> <!-- Cabeçalho com ícone --> <header class="flex items-center gap-4 mb-6"> <div class="bg-infojoias-orange-500 p-3 rounded-xl" aria-hidden="true"> <svg class="h-6 w-6 text-white"><!-- Ícone --></svg> </div> <h3 class="text-xl lg:text-2xl font-bold font-display text-infojoias-blue-800 dark:text-white"> Título do Produto </h3> </header> <!-- Conteúdo --> <p class="text-infojoias-blue-600 dark:text-infojoias-light-300 leading-relaxed mb-6"> Descrição clara e concisa do produto ou serviço. </p> <!-- CTA acessível --> <a href="/produto" class="inline-flex items-center gap-2 px-6 py-3 bg-infojoias-orange-500 hover:bg-infojoias-orange-600 text-white font-semibold rounded-xl transition-all duration-300 hover:scale-105 focus:outline-none focus:ring-2 focus:ring-infojoias-orange-500 focus:ring-offset-2" aria-label="Ver detalhes do produto"> Ver Detalhes <svg class="h-4 w-4" aria-hidden="true"><!-- Seta --></svg> </a> </article>
✅ Práticas Aplicadas
  • • Cores com bom contraste
  • • Responsividade mobile-first
  • • Focus states para acessibilidade
  • • Semântica HTML correta
  • • Animações sutis e suaves
🎨 Design Tokens Usados
  • • rounded-3xl (24px)
  • • duration-300 (300ms)
  • • hover:scale-105
  • • shadow-sm/shadow-lg
  • • ring-2 para focus

📅 Última Atualização: Dezembro 2024 • 🔄 Versão: 1.0 • 👥 Para: Time de Marketing InfoJoias

💡 Este design system está alinhado com a identidade visual InfoJoias e otimizado para conversão.