Leon Sans - 這個近期在 Github 與 Hacker News 都一度占據排行榜滿前面的位置,熱度可見一斑。
Leon Sans 屬於無襯線字體,本身是一個網頁字體,建立於 Canvas 之上,字型本身能調整的參數就非常眾多,而再結合 TweenMax(一個強大的 Javascript 動畫庫) 的動畫效果,更使這個字體更是強大好幾倍。
這裡有個製作者將各種 Leon Sans 能達成的效果,以動畫的方式在Web上優美的呈現。https://leon-kim.com/
他還很貼心的製作了一個可以及時調整參數的範例網站。
https://leon-kim.com/examples/
手繪動畫
字重改變動畫
甚至到更進階的風格
植物風
彩色筆畫
萬花筒?
使用步驟:
Github 上的教學非常簡單易懂,在此我就實作並且介紹一下各式可調參數。
首先,自 Github 下載字體 js 檔案。我們需要的只有其中的 leon.js,其餘的很多都是範例檔案。
路徑:
./dist/leon.js
Leon Sans 是一個網頁字體,想當然爾,必須先創建一個 HTML 檔案。接著引入 leon.js ,並且加入範例 code。
<!DOCTYPE html> <html> <head> <title>Leon</title> <script src="leon.js"></script> </head> <body> <script> let leon, canvas, ctx; const sw = 800; const sh = 600; const pixelRatio = 2; function init() { canvas = document.createElement('canvas'); document.body.appendChild(canvas); ctx = canvas.getContext("2d"); canvas.width = sw * pixelRatio; canvas.height = sh * pixelRatio; canvas.style.width = sw + 'px'; canvas.style.height = sh + 'px'; ctx.scale(pixelRatio, pixelRatio); leon = new LeonSans({ text: 'The quick brown\nfox jumps over\nthe lazy dog', color: ['#000000'], size: 80, weight: 200 }); requestAnimationFrame(animate); } function animate(t) { requestAnimationFrame(animate); ctx.clearRect(0, 0, sw, sh); const x = (sw - leon.rect.w) / 2; const y = (sh - leon.rect.h) / 2; leon.position(x, y); leon.draw(ctx); } window.onload = () => { init(); }; </script> </body> </html>
Bomb! 馬上就跑出字體了,是不是超簡單。
但是如果你有發現,它還不會動啊?這時我們就要將動畫庫引入了。
引入 GSAP 的 TweenMax 動畫庫
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/2.1.3/TweenMax.min.js"></script>
接著調整控制動畫
let i, total = leon.drawing.length;
for (i = 0; i < total; i++) {
TweenMax.fromTo(leon.drawing[i], 1.6, {
value: 0
}, {
delay: i * 0.05,
value: 1,
ease: Power4.easeOut
});
}
There you go! 你的字體手繪動畫也出現了!
想要更加自訂化,好好了解它豐富的參數吧!
基本屬性:
text : 顯示文字 size : 文字大小 weight : 文字字重,範圍1~900,預設為1 color : 字元顏色 tracking : 文字間隔 leading : 行距 align : 對齊 breakWord : 文字過長自動換行
其餘還有很多,有些特別專與於波浪效果或是其他效果,還有細部調整的 function 可以使用,更多令人驚豔的動畫就等待大家創作啦!
張貼留言