Issue #857✓ ResueltoAbierto el 11 de febrero de 2018por webnoobReacciones 3

¿Cómo añado una fuente personalizada en la Tipografía | ¿Desplegable de fuentes?

Respuesta rápidapor IceCrystal0k3

Así es como añadí nuevas fuentes al gestor de estilos: Llama a estas funciones después de inicializar, o en editor.on('load', ()=> { .... addFonts() ... }) Si usas un preset como el de newsletter que altera el gestor de estilos tras la carga. Además, inyecta las fuentes usadas en el lienzo, usando en la función init l...

Lee la respuesta completa abajo ↓

Pregunta

Hola,

Para empezar, esto es lo que llevo mucho tiempo buscando, así que gracias por vuestro esfuerzo.

A continuación, me gustaría añadir una fuente en la sección Tipografía | Lista desplegable. ¿Cómo puedo añadir uno?

Nota: He visto publicaciones donde sugieres añadir una nueva hoja de estilo, pero quiero que solo se aplique según las opciones de Tipografía. También vi que añadiste soporte para 'atRules', pero no creo que esto añada una opción al desplegable de la fuente y tampoco encuentro la documentación sobre ello...

Gracias por vuestro tiempo.

Respuestas (3)

👍 Muy útilIceCrystal0k15 de mayo de 2018

Así es como añadí nuevas fuentes al gestor de estilos: Llama a estas funciones después de inicializar, o en editor.on('load', ()=> { .... addFonts() ... }) Si usas un preset como el de newsletter que altera el gestor de estilos tras la carga.

addFonts = () => {
        dejemos styleManager = this.editor.StyleManager;
        sea typographySector = styleManager.getSector('Tipografía');
        sea fontProperty = styleManager.getProperty('Tipografía', 'font-family');
        let list = fontProperty.get('list');
        list.push({ valor: 'Roboto, Arial, sans-serif', nombre: 'Roboto' });
        fontProperty.set('list', lista);
        styleManager.render();
    }

Además, inyecta las fuentes usadas en el lienzo, usando en la función init la propiedad de lienzo :

grapesjs.init({
....
lienzo: {
                Estilos: ['https://fonts.googleapis.com/css?family=Archivo+Narrow:400,400i,700,700i|Roboto:300,300i,400,400i,500,500i,700,700i&subset=latín, latín-etc'],
            },
....
})
artf13 de febrero de 2018

Hola @webnoob actualmente la única forma de hacerlo es añadirlo a través del objeto de inicialización. Aquí tienes un fragmento de la demo https://github.com/artf/grapesjs/blob/gh-pages/demo.html#L1045-L1062 Como puedes ver, no especifico ninguna familia de fuentes, solo actualizo su nombre '''js buildProps: ['familia de fuentes', ...], Propiedades:[ { nombre: 'Fuente', propiedad: 'familia de fuentes'}, ...

Las fuentes predeterminadas se toman de su [PropertyFactory](https://github.com/artf/grapesjs/blob/dev/src/style_manager/model/PropertyFactory.js#L415-L431), así que si quieres añadir otras tienes que declararlas todas en init
'''js
buildProps: ['familia de fuentes', ...],
Propiedades:[
	{  
		propiedad: 'familia de fuentes',
		nombre: 'Font',
		lista: [
			{ nombre: 'Arial', valor: 'Arial, Helvetica, sans-serif' }
			...
		]
	},
	...
webnoob13 de febrero de 2018

Gracias por esto. Según lo que me has mostrado arriba, he usado el StyleManager para añadir la fuente extra, así:

var styleManager = this.editor.StyleManager
            styleManager.addProperty('Typography', {
              nombre: 'Fuentes Alternativas',
              propiedad: 'familia de fuentes',
              tipo: 'select',
              Defaults: '',
              lista: [{
                valor: '',
                Nombre: ''
              },
              {
                valor: 'Bank Gothic',
                nombre: 'Bank Gothic'
              }]
            })

Supongo que usando este método tendría que importar la fuente real a través de una hoja de estilo al editor para que funcione realmente, ¿o proporcionáis algún otro mecanismo para eso?

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.

Explora plugins gratuitos →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.