Temas
Utiliza los valores de Core, selecciona claro u oscuro, registra un preset y elige densidad.
Empieza con los estilos por defecto
@use '@neural-ui/core/styles' as *;Elige claro u oscuro
import { DOCUMENT } from '@angular/common';
import { Component, inject, signal } from '@angular/core';
import { NeuSwitchComponent } from '@neural-ui/core/switch';
@Component({
selector: 'app-theme-mode',
imports: [NeuSwitchComponent],
template:
'<neu-switch label="Dark mode" [checked]="dark()" (checkedChange)="selectMode($event)" />',
})
export class ThemeMode {
private readonly document = inject(DOCUMENT);
readonly dark = signal(false);
selectMode(dark: boolean): void {
this.dark.set(dark);
this.document.documentElement.setAttribute(
'data-theme',
dark ? 'dark' : 'light',
);
}
}Observa ambos modos
Claro
Oscuro
Define un preset reutilizable
import { defineNeuPreset } from '@neural-ui/core';
export const productPreset = defineNeuPreset({
name: 'product',
light: {
'--neu-primary': '#175d95',
'--neu-primary-dark': '#124c7d',
'--neu-primary-solid': '#175d95',
'--neu-primary-solid-fg': '#ffffff',
'--neu-primary-solid-hover': '#124c7d',
},
dark: {
'--neu-primary': '#86c8ff',
'--neu-primary-dark': '#124c7d',
'--neu-primary-light': '#86c8ff',
'--neu-primary-solid': '#175d95',
'--neu-primary-solid-fg': '#ffffff',
'--neu-primary-solid-hover': '#124c7d',
},
});Registra el preset
import { ApplicationConfig } from '@angular/core';
import { provideNeuralUI } from '@neural-ui/core';
import { productPreset } from './product-preset';
export const appConfig: ApplicationConfig = {
providers: [provideNeuralUI({ theme: { preset: productPreset } })],
};