Leon Sans di Jongmin Kim

Leon Sans di Jongmin Kim

Leon Sans è un font straordinario! Un sans-serif geometrico realizzato interamente in codice (javascript) da Jongmin Kim. Ogni punto di disegno ha valori di coordinate che si possono modificare per creare forme, effetti o animazioni personalizzate.

Permette di manipolarla come un carattere variabile, per cambiare dinamicamente il peso del carattere. Ma soprattutto è possibile creare animazioni, effetti o forme personalizzate nell’elemento HTML5 <canvas>. Ha disegnato il carattere per celebrare il suo neonato Leon.

Esempi

Animazione del disegno
Variazione di peso
Colorato

Per ulteriori esempi, consultare il repo Github di Leon Sans o il sito web leon-kim.com/examples/.

Si veda ad esempio l’effetto pioggia.

Utilizzo

Scaricare il file js minificato nella cartella dist e includerlo nell’html.

<script src="js/leon.js"></script>

Generare LeonSans e disegnarlo nell’elemento Canvas di HTML5.

this.canvas = document.createElement('canvas');
document.body.appendChild(this.canvas);
this.ctx = this.canvas.getContext("2d");

this.leon = new LeonSans({
    text: 'The quick brown\nfox jumps over\nthe lazy dog',
    color: ['#000000'],
    size: 160,
    weight: 200
});

requestAnimationFrame(animate);

function animate(t) {
    requestAnimationFrame(animate);
    this.ctx.clearRect(0, 0, document.body.clientWidth, document.body.clientHeight);
    const x = (document.body.clientWidth - this.leon.rect.w) / 2;
    const y = (document.body.clientHeight - this.leon.rect.h) / 2;
    this.leon.position(x, y);
    this.leon.draw(this.ctx);
}

Elenco delle opzioni

NomeTipoDescrizione
text stringaIl testo che deve essere mostrato.
size integratoreLa dimensione del testo.
weightnumeroIl peso del carattere: 1 - 900. [Predefinito: 1]
colorarrayI colori di ogni personaggio. [Predefinito: ['#000000']]
colorfularrayI colori per un effetto colorato. [Predefinito: ['#c5d73f', '#9d529c', '#49a9db', '#fec330', '#5eb96e', '#fc5356', '#f38f31']]
trackinginteroLa spaziatura tra i caratteri di un blocco di testo. [Predefinito: 0]
leadinginteroLa distanza tra ogni riga di testo. [Predefinito: 0]
alignstringaCome viene allineato orizzontalmente il contenuto del testo dell’elemento: left, center, right. [Predefinito: left]
pathGapnumeroLo spazio tra le coordinate dei punti di una linea di ciascun carattere: 0 - 1. [Predefinito: 0.5]
amplitudenumeroL’ampiezza dell’effetto onda: 0 - 1. [Predefinito: 0.5]
maxWidth numeroLa larghezza della frase di testo.
breakWordbooleanoLe parole si interrompono quando raggiungono la fine di una riga. [Predefinito: false]
fpsnumeroL’FPS per l’effetto onda. [Predefinito: 30]
isPathbooleanotrue per ottenere i valori delle coordinate dei punti sulla linea di ciascun carattere. [Predefinito: false]
isWavebooleanotrue per l’effetto onda. [Predefinito: false]

 

Proprietà

NomeTipoDescrizione
lineWidth numeroLo spessore delle linee del carattere.
scalenumeroLa scala del carattere. scale è 1 quando la dimensione del carattere è 500.
drawingarrayI valori degli oggetti di disegno per ciascun personaggio. 0 è l’inizio dell’animazione, 1 è la fine dello stato di animazione.
data arrayUn oggetto con i dati grezzi del testo.
paths arrayI valori delle coordinate dei punti sulla linea di ciascun carattere.
drawingPathsarrayI valori delle coordinate dei punti su una linea di ogni personaggio per disegnare l’animazione di disegno in WebGL. Ha una distanza di 1px per ogni percorso.
wavePaths arrayI valori delle coordinate dei punti su una linea per l’effetto onda.
rect OggettoLa dimensione del testo e la sua posizione: {x: x position, y: y position, w: width, h: height}.

 

Metodi

NomeDescrizione
on()Aggiungere l’evento update.
off()Rimuovere l’evento update.
position(x, y)Imposta la posizione del testo.
updateDrawingPaths()Aggiornamento dei percorsi per il disegno in WebGL (PIXI.js). È molto costoso, si chiama solo quando ha bisogno.
drawPixi(graphics)Disegnare testo in WebGL con PIXI.js.
draw(ctx)Disegna il testo nell’elemento Tela.
drawColorful(ctx)Disegnare l’effetto colorato.
wave(ctx, t)Disegnare l’effetto onda.
pattern(ctx, w, h)Disegnare forme di rettangolo in ogni punto del percorso
grid(ctx)Disegnare la griglia per ogni tipo.
point(ctx)Disegnare cerchi in ogni punto del disegno e linee per ogni tipo.
box(ctx)Disegnare un riquadro di contorno per il testo.
reset()Azzeramento di tutti i valori.
destroy()Distruggere.
20 settembre 2019 Leon Sans ora include il formato .otf
Scarica solo i font .oft
Category
Language support
Format
JS
License
MIT License    → Licenses explained
Tags
Author