Ligature Symbols for LESS CSS

ちょっとしたアイコンを Web フォントで表示することができる Ligature Symbols。単なるシンボルフォントではなく OpenType 合字を使っていて、たとえば「mail」というテキストでメールアイコンを表示できる優れものだ。

これを LESS でミックスインとしても使えるようにしてみた。

ソース

@font-face {
	font-family: 'LigatureSymbols';
	src: url('LigatureSymbols-2.04.eot');
	src: url('LigatureSymbols-2.04.eot?#iefix') format('embedded-opentype'),
		 url('LigatureSymbols-2.04.woff') format('woff'),
		 url('LigatureSymbols-2.04.ttf') format('truetype'),
		 url('LigatureSymbols-2.04.svg#LigatureSymbols') format('svg');
	src: url('LigatureSymbols-2.04.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
}

.lsf {
	font-family: 'LigatureSymbols';
	-webkit-text-rendering: optimizeLegibility;
	-moz-text-rendering: optimizeLegibility;
	-ms-text-rendering: optimizeLegibility;
	-o-text-rendering: optimizeLegibility;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-font-smoothing: antialiased;
	-ms-font-smoothing: antialiased;
	-o-font-smoothing: antialiased;
	font-smoothing: antialiased;
}

.lsf-put-icon(@content attr(title)) {
	content: @content;
	margin-right: 0.4em;
	font-size: 130%;
	.lsf;
}

.lsf-prepend-icon(@content: attr(title)) {
	&:before { .lsf-put-icon(@content); }
}

.lsf-append-icon(@content: attr(title)) {
	&:after { .lsf-put-icon(@content); }
}

.lsf-icon { .lsf-prepend-icon; }

使用例

/* ボタンの左側に左矢印を表示 */
.btn.back { .lsf-prepend-icon("left"); }

/* リンクの右側に右矢印を表示 */
.list a { display: block; position: relative; }
.list a:after { .lsf-put-icon("right"); position: absolute; right: 10px; top: 50%; height: 20px; margin-top: -10px; }