Crie temas para o FuriaPlay
Um tema muda o visual inteiro do app na TV: cores, letras, o jeito do foco do controle, o fundo com imagem ou vídeo, animações e momentos especiais como fogos à meia-noite. Tudo em um arquivo de texto, sem programar.
Como funciona
- Escreva o tema no simulador. A prévia ao lado é o app de verdade, com filmes de demonstração, e muda a cada tecla.
- Corrija o que o simulador apontar. Erro é uma parte que a TV vai ignorar. Aviso é algo que funciona, mas é ajustado (um número fora do limite, por exemplo).
- Baixe o arquivo
.fpthemee envie ao revendedor. Ele importa no Estúdio de Temas do painel, confere na prévia, pode testar na TV dele por 30 minutos e aplica para os clientes.
Tema é só dados. Não existe código, script nem link externo: o painel e o app conferem tudo de novo. Assim um tema nunca trava a TV nem expõe o cliente.
O arquivo .fptheme
É um JSON com o nome do tema e o pack, que é o visual. Só format e pack são obrigatórios, e dentro do pack tudo é opcional: o que faltar usa o visual padrão.
{
"$schema": "https://painel.furiaplay.com/studio/theme.schema.json",
"format": "furiaplay-theme",
"v": 1,
"name": "Arraiá",
"author": "Seu nome",
"pack": {
"colors": { "bg": "#1A0D06", "primary": "#FFB300", "text": "#FFF6EA" },
"font": { "title": "poppins", "body": "nunito" },
"focus": { "style": "glow", "scale": 1.06 },
"card": "raised",
"scene": { "kind": "gradient", "colors": ["#2A1208", "#0F0703"], "angle": 180 },
"layers": [{ "kind": "particles", "items": ["🌽", "⭐"], "motion": "fall", "count": 12 }],
"countdown": { "to": "06-24", "label": "o São João" }
}
}
Com a linha $schema, editores como o VS Code completam os campos e avisam erros enquanto você digita.
Cores e letras
| Campo | O que muda |
|---|---|
colors.bg | Fundo das telas. |
colors.surface, surface2 | Cards e cards em destaque. |
colors.border | Bordas e divisórias. |
colors.text, textDim, textMute | Texto normal, secundário e apagado. |
colors.primary, onPrimary | Cor principal (botões, destaques) e o texto em cima dela. |
colors.focus | Cor do foco do controle. Sem ela, usa a principal. |
colors.live | Selo AO VIVO. |
font.title, font.body | system, archivo, inter, poppins, montserrat, nunito, playfair ou bebas. As fontes já vêm no app, então funcionam sem internet. |
Cores sempre no formato #RRGGBB. Para ler de longe na TV, o texto precisa de contraste de pelo menos 4,5:1 com o fundo. O Estúdio avisa quando não tem.
Foco e cards
| Campo | Valores |
|---|---|
focus.style | ring (contorno), glow (brilho), lift (sobe com sombra), fill (preenche), underline (sublinha). |
focus.scale | Quanto o item cresce no foco: de 1 a 1.12. |
focus.width | Espessura do contorno: 1 a 5. |
card | flat, outline, glass (vidro) ou raised (com sombra). |
radius | Cantos dos cards em px: 0 a 24. |
pill | true deixa botões totalmente redondos. |
Fundo
| Campo | O que faz |
|---|---|
scene.kind | solid, gradient, image ou video. |
scene.colors, angle | Até 3 cores do degradê e a direção em graus (180 = de cima para baixo). |
scene.image | Imagem de fundo (1920×1080). Com vídeo, é a imagem parada mostrada em TVs fracas e enquanto o vídeo carrega. |
scene.video | Vídeo curto em loop, sempre sem som (MP4, 10 a 20 segundos, até 8 MB). |
scene.dim | Escurece a imagem ou o vídeo: 0 a 0.9. |
scene.vignette | Bordas escuras: 0 a 1. |
scene.glow | Luz colorida suave: { "color", "x", "y", "size" }, posições de 0 a 1 da tela. |
scene.poster | true: a capa do filme em foco aparece desfocada no fundo do Início. |
scene.parallax | O fundo se move um pouco ao rolar o Início: 0 (parado) a 1. |
Animações (camadas)
Até 4 camadas de partículas por cima das telas. Elas nunca pegam o foco do controle.
| Campo | Valores |
|---|---|
kind | Sempre "particles". |
shape | Forma pronta: snow, dot, star, spark, heart, petal. |
items | Em vez da forma: até 4 emojis ou imagens PNG com fundo transparente. |
motion | fall (cair), rise (subir), float, twinkle (piscar), drift (atravessar), swirl (girar caindo). |
count, speed | Quantidade (1 a 40) e velocidade (0.25 a 3). |
size, opacity | Tamanho [mín, máx] de 4 a 64 e opacidade de 0.1 a 1. |
color | Cor das formas prontas. |
depth | true: as de perto são maiores e mais rápidas. |
where | home (só no Início) ou all (todas as telas, menos o player). |
Momentos especiais
Saudação (intro)
Um texto grande com uma explosão de emojis quando o app abre, uma vez por dia. Ex.: { "text": "Feliz Natal!", "sub": "Boas festas", "items": ["🎄", "⭐"], "color": "#E53935" }.
Contagem regressiva (countdown)
Mostra "Faltam 3 dias para o Natal" no Início. { "to": "12-25", "label": "o Natal", "days": 25 }: aparece a partir de days dias antes (padrão 30) e no dia mostra "Chegou o Natal!".
Efeitos na hora certa (moments)
Até 6 efeitos que começam num horário exato: fireworks (fogos), confetti ou snowstorm (nevasca), com texto opcional e duração de 5 a 120 segundos. Ex.: { "at": "01-01 00:00", "kind": "fireworks", "text": "Feliz Ano Novo!", "seconds": 60 }.
Datas
| Formato | Quando |
|---|---|
"12-25" | Todo ano, 25 de dezembro, à meia-noite. |
"01-01 00:00" | Todo ano, no horário indicado. |
"pascoa", "carnaval" | Mudam de data todo ano. O painel calcula (só para a contagem regressiva). |
"2026-12-20T16:00:00-03:00" | Uma vez só, nessa data. |
Tudo no horário de Brasília. O revendedor também pode programar o tema para entrar sozinho todo ano em "Temas e layouts", no calendário automático.
Imagens e vídeos
As TVs só carregam arquivos do servidor do FuriaPlay. Por isso, no arquivo que você entrega, coloque as imagens dentro do próprio JSON como data:image/png;base64,… (ou data:video/mp4;base64,…). Ao importar no Estúdio, elas são enviadas para o servidor e o link é trocado sozinho. Links de outros sites ficam de fora.
- Imagens: PNG, JPG, WEBP ou SVG, até 3 MB cada. Fundo em 1920×1080.
- Vídeo: MP4 ou WEBM, até 8 MB, sem som, 720p é suficiente.
Limites e desempenho
Muitas TVs Android são fracas, então o app protege o cliente:
- No máximo 40 partículas na tela da TV (25 no celular), somando todas as camadas.
- Se a TV começar a travar, o app passa sozinho para "efeitos leves" (cerca de um terço das partículas e imagem parada no lugar do vídeo).
- O cliente pode escolher efeitos completos, leves ou desligados em Configurações.
- Nada anima dentro do player de vídeo.
Apps anteriores à versão 0.12 mostram só as cores do tema. Nada quebra neles.
Entregar ao revendedor
- No simulador, clique em Baixar .fptheme e envie o arquivo.
- O revendedor abre Meu app → Temas e layouts → Galeria e novo tema → Importar arquivo .fptheme.
- Ele confere na prévia, salva e aplica nas TVs, ou testa só na TV dele por 30 minutos.
O Estúdio de Temas faz parte do Premium do revendedor.
