Saltar al contenido principal

Ajústalo a tu marca

Personaliza la marca del widget de Support con variables CSS, la prop theme y los tokens de tu aplicación.

Puedes hacer que el widget parezca parte de tu producto sin sustituir ningún componente.

Usa esto cuando

  • la forma por defecto del widget te vale y lo que necesitas sobre todo es la marca
  • quieres una forma de copiar y pegar para fijar colores y radios
  • quieres que el widget siga el tema de tu aplicación o forzar el modo oscuro

Elige el camino más simple

En muchas aplicaciones con Tailwind y shadcn, el widget ya se siente nativo en cuanto importas el punto de entrada de CSS. Empieza por la opción más pequeña que cubra lo que necesitas.

Mejor opción por defecto

No hacer nada

Si tu aplicación ya expone tokens al estilo de shadcn, importa el CSS del widget y renderiza el componente Support.

Configuración

Sin CSS de tema adicional

El widget toma automáticamente los colores, el radio, las fuentes y el modo oscuro del anfitrión.

Marca fija

Define --fx-theme-*

Usa tokens explícitos del widget cuando quieras que mantenga los mismos valores de marca en todas las aplicaciones.

Configuración

.fluxo { --fx-theme-primary: ... }

Las anulaciones del widget prevalecen sobre los tokens del anfitrión sin cambiar el resto de la aplicación.

Modo forzado

Use theme="dark"

Usa la prop theme cuando el widget deba quedarse en oscuro en vez de seguir el tema de la página.

Configuración

<Support theme="dark" />

El modo de color queda fijo mientras el resto del contrato de tema no cambia.

Prioridad del tema

El widget resuelve los valores del tema en este orden:

  1. Las sustituciones explícitas de --fx-theme-* que definas en .fluxo
  2. Los tokens de la página anfitriona al estilo shadcn, como --background, --primary, --radius y --font-sans
  3. Los valores por defecto integrados de Fluxo

Es decir: en muchos montajes el widget ya se parecerá bastante a tu aplicación antes de que escribas nada de CSS de tema.

Orden del tema

Cómo elige el widget su color de fondo

Gana el primer valor definido. El mismo orden se aplica a los demás tokens del widget.

Paso 1

Anulación del widget

Defínelo en .fluxo cuando quieras que el widget use un valor fijo.

--fx-theme-background ->
Paso 2

Token de la aplicación anfitriona

Si no hay anulación del widget, este usa el token de tu aplicación.

--background ->
Paso 3

Valor por defecto de Fluxo

Cuando no hay ningún token definido, el widget recurre al valor por defecto que trae de serie.

oklch(99% 0 0)

Resultado: primero ganan las sobrescrituras del widget, luego los tokens al estilo shadcn del host y por último los valores predeterminados de Fluxo. El mismo patrón se aplica a colores, radios, fuentes y tokens sensibles al modo oscuro.

En muchas apps con shadcn, no hagas nada

Si tu aplicación ya expone los tokens habituales de shadcn en :root y .dark, el widget los toma automáticamente. No hace falta ninguna correspondencia de tema para empezar.

Renderiza <Support />, importa support.css o styles.css y comprueba hasta dónde te lleva el tema automático del anfitrión antes de añadir nada.

Qué se hereda automáticamente

Hoy el widget por defecto busca estos tokens del anfitrión:

  • --background
  • --foreground
  • --popover
  • --popover-foreground
  • --primary
  • --primary-foreground
  • --secondary
  • --secondary-foreground
  • --muted
  • --muted-foreground
  • --accent
  • --accent-foreground
  • --border
  • --input
  • --ring
  • --destructive
  • --destructive-foreground
  • --radius
  • --font-sans
  • --font-mono

El modo oscuro también sigue a tu aplicación. El widget comprueba si hay .dark en algún ancestro o data-color-scheme="dark" en su raíz.

Esta adopción automática se limita a propósito a los tokens base estándar al estilo de shadcn:

  • colores
  • radio
  • fuentes
  • modo oscuro

Fijar los valores del widget

Define los tokens del widget una vez y conserva la interfaz por defecto.

csssrc/index.css
.fluxo {
  --fx-theme-primary: #111827;
  --fx-theme-primary-foreground: #ffffff;
  --fx-theme-background: #ffffff;
  --fx-theme-foreground: #111827;
  --fx-theme-border: #e5e7eb;
  --fx-theme-radius: 0px;
}

Eso suele bastar cuando quieres fijar el widget a tus propios valores en lugar de depender de los tokens de la página anfitriona.

Forzar el modo oscuro

import { Support } from "@fluxolat/react";
 
<Support theme="dark" />;

Por defecto el widget sigue el tema de tu aplicación. Usa theme="dark" cuando el widget deba quedarse oscuro en lugar de seguir el tema de la página.

Usa theme="light" para fijar el widget al modo claro.

<Support theme="light" />

Fijar el widget a tus tokens de shadcn

Sigue siendo útil cuando quieres que el tema del widget quede explícitamente ligado a los tokens de tu aplicación, aunque más adelante renombres o cambies el origen de esos tokens.

:root {
  --fx-theme-background: var(--background);
  --fx-theme-foreground: var(--foreground);
  --fx-theme-primary: var(--primary);
  --fx-theme-primary-foreground: var(--primary-foreground);
  --fx-theme-border: var(--border);
  --fx-theme-radius: var(--radius);
}

Lo que no se hereda automáticamente

El widget hereda los tokens de diseño CSS, el radio, las fuentes y el modo oscuro. No hereda configuración arbitraria de Tailwind resuelta en tiempo de compilación, como:

  • escalas de espaciado propias
  • escalas de sombra propias
  • utilidades de plugins propios
  • renombrados o variantes de utilidades ajenos al widget

Si tu aplicación usa nombres de token propios fuera de los tokens base al estilo shadcn, mapéalos explícitamente a --fx-theme-*.

Cuándo quedarte aquí

  • con los colores, el radio y el modo oscuro te basta
  • quieres mantener la maquetación por defecto
  • no necesitas páginas propias ni una estructura propia

Siguiente paso

  • Páginas y maquetación cuando necesites otra primera pantalla, una inserción en línea o tu propia estructura
  • Textos e idioma cuando el siguiente cambio sea de redacción y no de interfaz

Referencia de tokens para empezar

Esta tabla cubre las sustituciones más habituales, no todos los tokens exportados. Usa el punto de entrada CSS que instales como referencia canónica de tu versión del paquete; ahí también se definen popover, secondary, accent, input, ring, el primer plano de destructive, las fuentes y niveles de fondo adicionales.

VariableVista previa (claro)Valor por defecto (claro)Vista previa (oscuro)Valor por defecto (oscuro)
--fx-theme-backgroundoklch(99% 0 0)oklch(15.5% 0 0)
--fx-theme-foregroundoklch(20.5% 0 0)oklch(95% 0 0)
--fx-theme-primaryoklch(14.5% 0 0)oklch(98.5% 0 0)
--fx-theme-primary-foregroundoklch(98.5% 0 0)oklch(14.5% 0 0)
--fx-theme-borderoklch(92.2% 0 0)oklch(26.9% 0 0)
--fx-theme-mutedMezcla de coloresMezcla de colores
--fx-theme-muted-foregroundMezcla de coloresMezcla de colores
--fx-theme-radius-0.375rem-0.375rem

Tokens adicionales

Úsalos cuando los tokens básicos no basten:

Colores de estado

VariableVista previa (claro)Valor por defecto (claro)Vista previa (oscuro)Valor por defecto (oscuro)
--fx-theme-destructiveoklch(57.7% 0.245 27.325)oklch(39.6% 0.141 25.723)
--fx-theme-successoklch(71.7% 0.18 142)oklch(60% 0.15 142)
--fx-theme-warningoklch(86.4% 0.144 99)oklch(90.3% 0.111 99)
--fx-theme-neutraloklch(60.8% 0 0)oklch(50% 0 0)

Colores de acento para avatares

VariableVista previa (claro)Valor por defecto (claro)Vista previa (oscuro)Valor por defecto (oscuro)
--fx-theme-pinkoklch(76.3% 0.152 354)oklch(84.2% 0.109 354)
--fx-theme-yellowoklch(86.4% 0.144 99)oklch(90.3% 0.111 99)
--fx-theme-blueoklch(72.5% 0.132 241)oklch(79.8% 0.089 241)
--fx-theme-orangeoklch(74.5% 0.166 50)oklch(68.2% 0.194 50)

Tonos de fondo

VariableVista previa (claro)Valor por defecto (claro)Vista previa (oscuro)Valor por defecto (oscuro)
--fx-theme-background-50Mezcla de coloresMezcla de colores
--fx-theme-background-100Mezcla de coloresMezcla de colores
--fx-theme-background-200Mezcla de coloresMezcla de colores
--fx-theme-background-300Mezcla de coloresMezcla de colores

Los tonos de fondo se derivan de tus colores base con color-mix(), salvo que los sustituyas directamente.

El CSS actual usa color-mix(in oklch, …) para los tonos derivados. Si necesitas dar soporte a un navegador antiguo sin esa sintaxis, sustituye directamente los valores derivados de --fx-theme-* e incluye ese navegador en tu matriz de pruebas visuales.

¿Te resultó útil esta página?

Abre una incidencia de documentación ya rellenada para que el equipo pueda actuar.