Skip to content

Sistema de colores

La librería implementa un sistema de colores semánticos estilo Ionic: cada color tiene un nombre (primary, secondary, etc.) y se asigna automáticamente al token Catppuccin correspondiente según el tema activo (oscuro/claro).


Tipos

ts
type Color =
  | 'primary'   // acento principal
  | 'secondary' // acento secundario
  | 'tertiary'  // acento terciario
  | 'success'   // operación exitosa
  | 'warning'   // advertencia
  | 'danger'    // error o peligro
  | 'light'     // tono claro (fondo)
  | 'medium'    // tono medio (bordes/texto secundario)
  | 'dark';     // tono oscuro (texto principal)

type Fill = 'solid' | 'outline' | 'clear';

Fill solo aplica a ButtonTui y ButtonTuiGroup.


Demo — paleta completa

Fondo (.bg-color-{name})

primarysecondarytertiarysuccesswarningdangerlightmediumdark

Texto (.color-{name})

█ primary █ secondary █ tertiary █ success █ warning █ danger █ light █ medium █ dark

Borde (.bd-color-{name})

█ primary █ secondary █ tertiary █ success █ warning █ danger █ light █ medium █ dark

Variables CSS

Cada color semántico expone una variable --color-{name} que se redefine automáticamente según el tema activo.

VariableTema oscuro (Mocha)Tema claro (Latte)
--color-primary--ctp-mocha-mauve--ctp-latte-mauve
--color-secondary--ctp-mocha-lavender--ctp-latte-lavender
--color-tertiary--ctp-mocha-blue--ctp-latte-blue
--color-success--ctp-mocha-green--ctp-latte-green
--color-warning--ctp-mocha-yellow--ctp-latte-yellow
--color-danger--ctp-mocha-red--ctp-latte-red
--color-light--ctp-mocha-rosewater--ctp-latte-surface1
--color-medium--ctp-mocha-overlay2--ctp-latte-overlay0
--color-dark--ctp-mocha-subtext1--ctp-latte-text

Modificar colores

Puedes sobrescribir cualquier variable de color para personalizar el tema:

css
:root {
  --color-primary: #ff00aa;
  --color-danger: #ff4444;
}

También puedes redefinir solo para tema oscuro o claro usando .theme-dark o .theme-light:

css
.theme-dark {
  --color-primary: #ff00aa;
}

Agregar un color

Puedes extender el sistema con colores personalizados. Define las variables en :root y crea una clase utilitaria:

css
:root {
  --color-favorite: #69bb7b;
}

.color-favorite { color: var(--color-favorite); }
.bg-color-favorite { background: var(--color-favorite); }
.bd-color-favorite { border-color: var(--color-favorite); }

Luego usa el color en cualquier componente mediante clases:

html
<span class="color-favorite">Texto favorito</span>

Clases utilitarias

Disponibles para usar fuera de los componentes:

ClaseEfecto
.color-{name}color
.bg-color-{name}background
.bd-color-{name}border-color
html
<span class="bg-color-danger color-dark bd-color-warning">
  Alerta
</span>