Manual da Marca
Guia completo de identidade visual e design system InfoJoias®
Índice
Logotipo e Símbolo
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
Logotipo Completo

Logotipo Azul
Versão principal com tipografia e isotipo em azul corporativo
Uso Recomendado:
<Image src="/images/logo/svg/logotipo-azul.svg" alt="Logotipo Azul" width={280} height={80} />
Logotipo Branco
Versão para fundos escuros com tipografia e isotipo brancos
Uso Recomendado:
<Image src="/images/logo/svg/logotipo-branco.svg" alt="Logotipo Branco" width={280} height={80} />
Logotipo Laranja
Versão com tipografia e isotipo em laranja energético
Uso Recomendado:
<Image src="/images/logo/svg/logotipo-laranja.svg" alt="Logotipo Laranja" width={280} height={80} />
Isotipo (Símbolo)

Isotipo Azul
Símbolo InfoJoias em azul corporativo - versão institucional
Uso Recomendado:
<Image src="/images/logo/svg/Isotipo-azul.svg" alt="Isotipo Azul" width={120} height={120} />
Isotipo Branco
Símbolo InfoJoias em branco para fundos escuros
Uso Recomendado:
<Image src="/images/logo/svg/Isotipo-branco.svg" alt="Isotipo Branco" width={120} height={120} />
Isotipo Laranja
Símbolo InfoJoias em laranja energético - versão promocional
Uso Recomendado:
<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
Tamanho 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
PrincipalCOR 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
PrincipalCOR 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-uiBW Mitga / Poppins
Fonte Display - Para Títulos
font-family: 'BW Mitga', 'Poppins', ui-sans-serif, system-uiPlayfair Display
Fonte Decorativa - Para Elementos Especiais
font-family: 'Playfair Display', serif📏 Hierarquia Tipográfica
Títulos principais, hero sections
H1 Luxury
luxury-h1
48px
56px
700
Seções principais
H2 Luxury
luxury-h2
36px
44px
600
Subtítulos
H3 Luxury
luxury-h3
24px
32px
600
Títulos de cards
H4 Luxury
luxury-h4
20px
28px
500
Texto destacado
Body Large
luxury-body-large
18px
28px
400
Texto principal
Body
luxury-body
16px
24px
400
Texto secundário
Small
luxury-small
14px
20px
400
📱 Tamanhos Responsivos
text-xs12px
Textos muito pequenos
text-sm14px
Labels, captions
text-base16px
Texto padrão
text-lg18px
Texto destacado
text-xl20px
Subtítulos pequenos
text-2xl24px
Títulos médios
text-3xl30px
Títulos grandes
text-4xl36px
Hero secundário
text-5xl48px
Hero principal
text-6xl60px
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-luxuryCard 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-categoryCategoria
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-profileMaria 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 pequenosrounded(4px) - Padrão shadcnrounded-md(6px) - Inputs, badgesrounded-lg(8px) - Cards pequenosrounded-xl(12px) - Botões, cards médiosrounded-2xl(16px) - Cards grandesrounded-3xl(24px) - Cards especiais (infojoias)Sombras
shadow-smSombra sutilshadowSombra padrãoshadow-mdSombra médiashadow-lgSombra grandeshadow-xlSombra extra grandeshadow-2xlSombra máximaSombras 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
Gradiente principal InfoJoias
background: linear-gradient(135deg, #ea5b1b 0%, #fb923c 100%)gradient-infojoias-hover
Gradiente para estados hover
background: linear-gradient(135deg, #dc2626 0%, #ea5b1b 100%)gradient-infojoias-soft
Gradiente suave para light mode
background: linear-gradient(135deg, #fdefe8 0%, #d6f6ff 100%)gradient-infojoias-soft-dark
Gradiente suave para dark mode
background: linear-gradient(135deg, #1f2937 0%, #111827 100%)gradient-blue
Gradiente azul secundário
background: linear-gradient(135deg, #343452 0%, #475569 100%)gradient-light
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-none0px
Elementos retangulares
rounded-sm2px
Elementos pequenos
rounded4px
Padrão shadcn
rounded-md6px
Inputs, badges
rounded-lg8px
Cards pequenos
rounded-xl12px
Botões, cards médios
rounded-2xl16px
Cards grandes
rounded-3xl24px
Cards especiais (InfoJoias)
rounded-full9999px
Círculos perfeitos
📦 Tamanhos de Container
containerautoContainer responsivo automático
max-w-sm384pxSmall container
max-w-md448pxMedium container
max-w-lg512pxLarge container
max-w-xl576pxExtra large container
max-w-2xl672px2XL container
max-w-3xl768px3XL container
max-w-4xl896px4XL container
max-w-5xl1024px5XL container
max-w-6xl1152px6XL container
max-w-7xl1280pxInfoJoias Padrão7XL container (InfoJoias padrão)
max-w-screen-2xl1536pxFull 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-3xlpara cards InfoJoias especiais - •
max-w-7xlcomo container padrão
📱 Responsividade
- • Mobile:
p-4 lg:p-8para 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-7575ms
Feedback instantâneo
duration-100100ms
Micro-interações
duration-150150ms
Hovers rápidos
duration-200200ms
Hovers padrão
duration-250250ms
Transições suaves
duration-300300ms
Animações médias
duration-350350ms
Animações suaves
duration-500500ms
Animações lentas
duration-700700ms
Transições especiais
duration-10001000ms
Animações longas
📈 Funções de Easing
ease-linearVelocidade constante
linearease-inAceleração gradual
cubic-bezier(0.4, 0, 1, 1)ease-outDesaceleração gradual
cubic-bezier(0, 0, 0.2, 1)ease-in-outAceleração e desaceleração
cubic-bezier(0.4, 0, 0.2, 1)🖱️ Animações de Hover
hover-scale
Escala suave no hover
250ms
ease-out
transform: scale(1.05); transition: transform 250ms ease-out;hover-lift
Elevação no hover
250ms
ease-out
transform: translateY(-8px); transition: transform 250ms ease-out;hover-glow
Brilho no hover
300ms
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
200ms
ease-out
transform: rotate(2deg) scale(1.02); transition: transform 200ms ease-out;🎭 Animações de Entrada
fade-in
Aparição com fade
300ms
ease-out
opacity: 1; transform: translateY(0); transition: opacity 300ms ease-out, transform 300ms ease-out;scale-in
Aparição com escala
250ms
ease-out
opacity: 1; transform: scale(1); transition: opacity 250ms ease-out, transform 250ms ease-out;slide-up
Deslizamento de baixo para cima
350ms
ease-out
opacity: 1; transform: translateY(0); transition: opacity 350ms ease-out, transform 350ms ease-out;slide-right
Deslizamento da esquerda para direita
300ms
ease-out
opacity: 1; transform: translateX(0); transition: opacity 300ms ease-out, transform 300ms ease-out;✨ Animações Especiais
pulse-gentle
Pulsação suave
2s
cubic-bezier(0.4, 0, 0.6, 1)
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;bounce-gentle
Bounce suave
1s
ease-in-out
animation: bounce 1s ease-in-out infinite;float
Movimento flutuante
3s
ease-in-out
animation: float 3s ease-in-out infinite;glow-pulse
Brilho pulsante
2s
ease-in-out
animation: glow-pulse 2s ease-in-out infinite;🎯 Diretrizes de Animação
✅ Boas Práticas
- • Use
duration-250para hovers padrão - • Prefira
ease-outpara transições suaves - • Limite animações simultâneas (máx. 2-3)
- • Use
transformem vez de propriedades de layout - • Aplique
will-changepara animações complexas - • Respeite
prefers-reduced-motion
⚡ Performance
- • Anime apenas
transformeopacity - • Use
transform3dpara hardware acceleration - • Evite animar
width,height,padding - • Prefira CSS animations a JavaScript
- • Use
contain: layout style paint - • Remova
will-changeapó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
htmlBotã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
htmlEstrutura 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
htmlSection 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
htmlLayout 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
cssCombinaçõ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
cssKeyframes 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
cssDefiniçõ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
cssMedia 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
javascriptScript 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
javascriptAnimaçõ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)
Tablet (768px - 1023px)
Desktop (1024px+)
💡 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.