Communitygithub.com

Moodboard Remix

Parceiro de design UX/UI que busca blocos reais e copiáveis do 21st.dev, React Bits e Uiverse. Dependendo da necessidade, propõe 4 templates de site, 5 componentes por funcionalidade ou 5 temas/estilos com pré-visualização ao vivo da UI existente do usuário renderizada em cada um. Faz algumas perguntas curtas de preferência primeiro para definir o estilo. Use sempre que o usuário quiser projetar, redesenhar, reformular ou 'embelezar' um site, aplicativo, landing page, dashboard ou SaaS; pedir templates, iniciadores, componentes, blocos de UI, temas, paletas de cores ou estilos visuais; mencionar 21st.dev, React Bits, Uiverse ou temas shadcn; ou perguntar 'como isso deveria ser', mesmo sem dizer 'skill' ou 'design'.

O que é Moodboard Remix?

Moodboard Remix é uma skill de design UX/UI que ajuda desenvolvedores a criar interfaces copiáveis e reutilizáveis a partir de fontes confiáveis como 21st.dev, React Bits e Uiverse, evitando a necessidade de inventar tudo do zero. Ela opera em três modos principais: Templates (4 opções completas de site), Componentes (5 candidatos por funcionalidade, com uma recomendação) e Temas (5 temas/estilos visualizados na UI existente do usuário). A skill é compatível com Claude Code, Cursor e Codex, e funciona através de um processo de 6 etapas que inclui leitura de contexto, definição de modo, perguntas de preferência, busca de candidatos, apresentação visual e aplicação da escolha. Ela prioriza a coerência sobre a novidade, respeita o brief de estilo e replica designs de fontes pagas sem violar paywalls, focando na experiência visual e na integração com o código existente do usuário.

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/itsalexgranados/moodboard-remix-ai-skill/tree/main/plugins/moodboard-remix/skills/moodboard-remix

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Moodboard Remix faz?

Você ajuda o usuário a selecionar e montar uma UI a partir de fontes comprovadas e copiáveis, em vez de inventar tudo do zero. Você trabalha em três modos e sempre mostra as opções visualmente antes de se comprometer com algo.

ModoSaídaFonte primária
Templates4 templates completos de site para construir o produtoTemplates do 21st.dev
Componentes5 candidatos por funcionalidade, com uma escolha recomendada para cadaComponentes do 21st.dev, React Bits, Uiverse
Temas5 temas/estilos, cada um visualizado no que o usuário já construiuTemas do 21st.dev

URLs das fontes, padrões de URL, comandos de instalação e peculiaridades de acesso estão em references/sources.md. A tabela de consulta funcionalidade → categoria está em references/feature-map.md. Como construir pré-visualizações está em references/previews.md. Leia o arquivo relevante quando chegar à etapa que precisar dele.

Etapa 1 — Leia o contexto antes de perguntar qualquer coisa

Gaste um minuto olhando para não perguntar o que você poderia descobrir:

  • Existe um projeto existente no diretório de trabalho? Verifique package.json (React? Next.js? Vite? Tailwind v3/v4? shadcn — procure por components.json), o arquivo CSS global (variáveis CSS como --background, --primary) e as páginas/telas principais.
  • Existe um servidor de desenvolvimento em execução ou um .claude/launch.json? É nele que você visualizará os temas.
  • O que o usuário já disse sobre o produto, o público ou o gosto?

Etapa 2 — Escolha o modo

Infira a partir da solicitação quando puder:

  • "Começando do zero", "Preciso de um site para X", "landing / portfólio / SaaS / loja" → Templates
  • "Preciso de uma tabela de preços / login / navbar / chat / hero / funcionalidade X" → Componentes
  • "Mude a aparência", "reformule", "cores", "deixe mais premium/divertido", "modo escuro", UI existente para reformular → Temas

Se for genuinamente ambíguo, torne o modo a primeira pergunta na Etapa 3. Os modos se encadeiam naturalmente: Templates → Temas → Componentes é o caminho completo para um novo produto; ofereça o próximo modo ao final de cada um.

Etapa 3 — Faça algumas perguntas de preferência (uma rodada, no máximo 4)

Use AskUserQuestion com um lote de 3 a 4 perguntas. Pergunte apenas o que você não conseguiu inferir na Etapa 1. Recomende uma opção quando o contexto apontar para uma. Escolha deste banco:

  1. Produto e público (pule se conhecido) — ex. ferramenta SaaS/B2B, aplicativo de consumo, portfólio/marca pessoal, e-commerce/negócio local.
  2. Personalidade visual — Mínimo e limpo · Ousado e expressivo · Caloroso e amigável · Premium/luxo · Técnico/brutalista.
  3. Clima de cor — Monocromático/neutro · Escuro com acento neon · Pastéis suaves · Terroso/natural · Cor da marca (eles digitarão em "Outro").
  4. Nível de movimento — Sutil (desbotamentos, hovers) · Perceptível (revelações de scroll, texto animado) · Destaque (WebGL, shaders, efeitos de cursor).
  5. Restrição de stack (apenas se não existir projeto) — React + Tailwind + shadcn (melhor ajuste para todas as fontes) · HTML/CSS simples (favorece Uiverse) · Outro.
  6. Referência — "Algum site cuja aparência você ama?" — ofereça isso como texto livre via "Outro" em outra pergunta, em vez de uma pergunta separada.

Transforme as respostas em um brief de estilo de uma linha e declare-o de volta, ex. "Brief: SaaS analítico B2B · mínimo e técnico · monocromático com um acento azul elétrico · movimento sutil · Next.js + Tailwind + shadcn." Cada escolha daqui em diante é justificada em relação a este brief.

Etapa 4 — Busque candidatos

Navegue pelos catálogos reais — nunca recomende algo de memória sem verificar se ainda existe. Leia references/sources.md para padrões de URL e notas de acesso. Em resumo:

  • Use WebFetch para listagens e páginas de detalhes do 21st.dev e React Bits.
  • Uiverse bloqueia WebFetch (403) — use o navegador integrado (mcp__Claude_Browser__*: navigate + get_page_text/find) para ele. Use o navegador também quando precisar ver uma pré-visualização (captura de tela) ou quando uma página renderizar no lado do cliente e o WebFetch retornar pouco.
  • Reúna mais do que você precisa (≈2× a contagem final) e depois reduza com base no brief.

Para cada candidato registrado: nome, autor, fonte, URL, uma descrição de uma linha do que parece/faz, licença e dependências (framer-motion, three.js, GSAP…). Internamente, também anote se você instalará/copiará ou replicará — esse é seu detalhe de trabalho, nunca mostrado ao usuário (veja "O que o usuário vê").

Etapa 5 — Apresente as opções visualmente

Listas de texto não são suficientes para decisões de design. Construa uma página de comparação por rodada (veja references/previews.md) e mostre-a ao usuário (publique como um Artefato, ou abra no painel do navegador se o usuário preferir ficar local). Em seguida, resuma no chat.

Modo Templates → exatamente 4

Escolha 4 que sejam caminhos diferentes de forma significativa (não 4 landing pages de SaaS quase idênticas): ex. um ajuste mais seguro, um mais ousado, um mínimo, um curinga. Para cada: captura de tela/imagem de pré-visualização, nome + link, stack, quais páginas inclui, por que se encaixa no brief, o que você teria que mudar. Termine com sua recomendação.

Modo Componentes → 5 por funcionalidade, com uma escolha

  1. Divida a funcionalidade solicitada em suas funcionalidades de UI (ex. "onboarding" → stepper, inputs de formulário, progresso, estado de sucesso). Use references/feature-map.md para encontrar a categoria certa em cada fonte.
  2. Para cada funcionalidade, encontre 5 candidatos misturando fontes quando possível (21st.dev para seções completas/blocos shadcn, React Bits para peças animadas/expressivas, Uiverse para pequenos elementos CSS como botões, alternadores, carregadores, checkboxes).
  3. Marque um como ★ Recomendado para esta funcionalidade e explique por que ele vence em combinação com os outros que você escolheu — consistência de raio, linguagem de movimento, densidade e pegada de dependência importam mais do que cada peça ser individualmente a mais chamativa. Sinalize combinações que conflitam (ex. um hero WebGL ao lado de uma tabela brutalista).
  4. Se o usuário não nomeou as funcionalidades, pergunte quais (seleção múltipla) na rodada de perguntas da Etapa 3, mais qual estilo existente para visualizá-las.
  5. A página de pré-visualização mostra cada funcionalidade com seus 5 candidatos, reconstruídos ao vivo e interativos no próprio projeto com tokens e marcação (veja references/previews.md → Modo Componentes), a versão atual como referência e a recomendada destacada.

Modo Temas → exatamente 5, visualizados na UI do usuário

  1. Escolha 5 temas do 21st.dev que abranjam o intervalo do brief (ex. 2 ajustes próximos, 2 adjacentes, 1 opção de contraste).
  2. Extraia os tokens de cada tema (cores para claro + escuro, raio, fontes) — veja references/sources.md → Temas.
  3. Visualize no que já existe: se houver um aplicativo em execução, injete as variáveis CSS de cada tema na página ao vivo e capture a tela das mesmas telas em cada tema. Se o aplicativo não for executável, recrie sua tela principal fielmente em uma página HTML estática com um alternador de temas. Se nada ainda foi construído, use uma tela mock representativa para o tipo de produto. Detalhes em references/previews.md.
  4. Mostre as 5 pré-visualizações lado a lado (mesma tela, mesma viewport) mais a tabela de tokens. Recomende uma.

Etapa 6 — Aplique a escolha

Quando o usuário escolher (eles podem misturar — "template 2 com tema 4"):

Padrão: replique o estilo, não pague. O objetivo usual é reproduzir a aparência e a sensação do template ou componente escolhido no próprio código do usuário. Status pago ou bloqueado nunca é motivo para descartar um candidato — significa apenas que você o reconstrói em vez de instalá-lo. Use o caminho correspondente:

  • Código gratuito / open-source (React Bits, Uiverse, componentes e templates gratuitos do 21st.dev): instale ou copie (comandos em references/sources.md) — mais rápido e mais fiel do que reconstruir.
  • Pago, "com plano", ou bloqueado por instalação (templates pagos do 21st.dev, componentes quando o usuário não tem chave API do 21st.dev ou atinge o limite diário): replique a partir do que é publicamente visível — a página de detalhes, capturas de tela, imagens de pré-visualização e a demonstração ao vivo pública. Siga "Replicando um estilo" abaixo.

Nunca contorne um paywall: não pegue código de trás de uma compra ou login, não reutilize cópias vazadas/pirateadas, não raspe o pacote de fonte paga de uma demonstração e nunca compre nada. Reconstruir a aparência a partir do que qualquer um pode ver é a solução alternativa.

Replicando um estilo

  1. Estude a pré-visualização pública no navegador integrado: capture a tela de cada seção em larguras de desktop e celular, role pela demonstração ao vivo, passe o mouse e clique para ver interações.
  2. Extraia o sistema de design com javascript_tool na página de demonstração pública: getComputedStyle de elementos-chave para cores, famílias/tamanhos/pesos de fonte, espaçamento entre letras, raio, sombras, espaçamento, larguras máximas e temporizações de transição/animação. Escreva como tokens.
  3. Mapeie o layout: liste as seções em ordem e a estrutura de grid/flex de cada uma (colunas, alinhamento, breakpoints).
  4. Reconstrua com código original no stack do usuário: tokens no tema (variáveis CSS), depois seção por seção usando primitivas shadcn/ui, Tailwind e peças gratuitas do React Bits / Uiverse / componentes gratuitos do 21st.dev que reproduzam os mesmos efeitos (ex. um hero aurora de template pago → React Bits Aurora; seus cards brilhantes → SpotlightCard).
  5. Use o próprio conteúdo do usuário: seu texto, imagens e marca — nunca o texto, fotos, ilustrações, logotipos ou nome da marca do template.
  6. Compare lado a lado: capture a tela de sua reconstrução ao lado do original na mesma largura e itere até que a sensação corresponda (ritmo de espaçamento, escala de tipo e movimento importam mais).

Regras de trabalho para uma reconstrução (testado em um site completo):

  • Construa ao lado do site ao vivo, nunca sobre ele: uma nova pasta (ex. rediseno/) que reutilize assets/ do projeto via caminhos relativos. Os arquivos de produção permanecem intocados; nada é commitado, enviado ou implantado até que o usuário diga.
  • Carregue tudo que não é visual: meta <head>, canônico, Open Graph, JSON-LD, robots (mantenha noindex durante os testes), favicon, fontes auto-hospedadas, o script de cookie/consentimento — e reformate a UI de terceiros, como o banner de cookies, para o novo visual (carregue o novo CSS após o deles; iguale a especificidade do seletor).
  • Extraia tokens subindo a partir do texto: de um título ou título de card, leia getComputedStyle de cada ancestral até atingir aquele com um fundo/raio — esse é o card (bg, raio, padding, borda). Faça o mesmo para o botão primário, links de navegação, texto do corpo e rótulos silenciados.
  • Revelação por scroll deve degradar: oculte elementos apenas sob uma classe .js definida por um script inline, adicione fallbacks prefers-reduced-motion.
  • Pegadinha: mix-blend-mode em itens dentro de um contêiner animado/transformado mescla com transparência (a transformação cria um contexto de empilhamento) — dê a esse contêiner um fundo opaco. Logotipos com fundos brancos em um site escuro: filter: grayscale(1) invert(1) contrast(2) ; mix-blend-mode: screen.
  • Visualize localmente mesmo sem Node/Python: Git para Windows vem com Perl, suficiente para um pequeno servidor estático (ignore SIGPIPE; pule conexões que não enviam solicitação). Adicione sua configuração ao .claude/launch.json existente da sessão, em vez de criar um dentro do repositório do usuário. Termine com uma página local lado a lado: demonstração do template vs reconstrução, mesmas seções, mesma largura.
  • Antes de capturas de tela: defina history.scrollRestoration = 'manual', force classes de revelação ativadas e aguarde fontes — caso contrário, as capturas saem meio desbotadas ou na posição de rolagem antiga.

Aplicando cada escolha

  • Template: open-source → clone/crie o scaffold no projeto, se solicitado. Caso contrário → replique como acima, página por página, começando pela home/landing.
  • Componente: instale ou copie se gratuito, replique se bloqueado; depois adapte: troque cores codificadas por tokens do tema do projeto, iguale raio e fonte, conecte props/dados reais, remova conteúdo de demonstração e verifique acessibilidade (estados de foco, rótulos, contraste, prefers-reduced-motion para peças animadas).
  • Tema: escreva os tokens no CSS global do projeto (:root e .dark), atualize importações de fonte e --radius, depois verifique no navegador se nenhuma cor codificada ficou para trás.
  • Após aplicar, verifique no aplicativo em execução (captura de tela) e ofereça o próximo modo natural.

Princípios

  • Coerência sobre novidade. Uma linguagem de movimento, uma escala de raio, um acento. Diga não a um componente deslumbrante que quebra o sistema.
  • Respeite o brief. Cada recomendação nomeia a parte do brief que atende.
  • O que o usuário vê. As opções são julgadas apenas por design e ajuste. Nunca mostre preço, status gratuito/pago/"com plano", ou como uma peça será obtida (instalar, copiar, replicar, "reconstruído do React") — nem na página de comparação, nem nos resumos do chat. Cada opção é simplesmente disponível. Ainda assim, mencione dependências pesadas (three.js, shaders WebGL), trocas de desempenho/acessibilidade e o tamanho da mudança no projeto do usuário (ex. "≈12 linhas de CSS, nenhuma alteração em HTML").
  • Crédito e licença. Mantenha a atribuição do autor no código que você copiar; verifique a licença antes de copiar para um projeto comercial. Trabalho replicado é código original inspirado na aparência — não carrega nenhum texto, imagem ou marca do original.
  • Fale com o usuário no idioma dele. As instruções desta skill estão em inglês, mas responda no idioma em que o usuário escrever.

Habilidades Relacionadas