Pular para o conteúdo principal

Temas

Toda cor tem um padrão. Você sobrescreve o que quiser e o resto continua, porque as paletas se juntam campo a campo.

<Cicerone.Provider
steps={STEPS}
theme={{
ring: '#5fd694',
scrim: 'rgba(11,18,13,.55)',
card: { buttonBackground: '#2e9e5b' },
}}>

O que tem num tema

CampoO que pinta
scrimO escurecido sobre tudo fora do furo
ringO contorno em volta do alvo
ringGlowO halo em volta do anel
ringWidthEspessura do anel
cardPaleta padrão do card
highlightPaleta usada pelos passos de destaque

Paletas de card

card e highlight têm o mesmo formato.

CampoO que pinta
cardBackgroundFundo do card
cardBackgroundGradientSegunda parada do gradiente. Sem ela o card é cor sólida.
arrowBackgroundO losango na borda do card
labelContador do passo ou rótulo customizado
title / textTexto do card
skipO link de pular
buttonBackground / buttonTextO botão de avançar

Passos de destaque

Colocar variant: 'highlight' troca para a segunda paleta e liga três extras: card com gradiente, um brilho atravessando ele, e faíscas em volta do alvo. O anel também pulsa em direção à cor de destaque em vez de ficar parado.

{
id: 'premium',
title: 'Premium',
text: 'Busque sem escanear, use offline, receba alternativas.',
variant: 'highlight',
label: 'PREMIUM',
}

É chamativo de propósito. Guarde para um upsell ou uma novidade, não para um passo sim outro não.

Recolorir funciona do mesmo jeito:

theme={{
highlight: {
cardBackground: '#1e2749',
cardBackgroundGradient: '#0e1430',
label: '#7aa2ff',
buttonBackground: '#7aa2ff',
buttonText: '#0e1430',
},
}}

Rótulos

Os padrões estão em inglês. {{current}} e {{total}} são substituídos.

labels={{
step: 'DICA {{current}} DE {{total}}',
stepSingle: 'DICA',
next: 'Próximo',
last: 'Entendi',
skip: 'Pular',
}}

stepSingle é o que aparece num tour de um passo só, já que "1 de 1" não diz nada a ninguém.

Um passo também pode ter o próprio label, que substitui o contador só naquele passo. É assim que o exemplo Premium acima mostra PREMIUM em vez de DICA 5 DE 5.

Trocando o card

Quando o tema não basta, o renderCard te entrega tudo que o card embutido usa e deixa você desenhar o seu. O holofote, o anel e o posicionamento continuam como estão.

<Cicerone.Provider
steps={STEPS}
renderCard={({ step, index, total, isLast, next, skip }) => (
<MyCard
title={step.title}
body={step.text}
counter={`${index + 1}/${total}`}
onNext={next}
onSkip={skip}
nextLabel={isLast ? 'Pronto' : 'Próximo'}
/>
)}
/>

O posicionamento fica com você. O placement e o layout que chegam dizem qual lado o tour escolheu e onde ele teria posto o próprio card.