diff --git a/src/web/app/auth/tags/index.tag b/src/web/app/auth/tags/index.tag
index d3c458cf77..8d1d88806f 100644
--- a/src/web/app/auth/tags/index.tag
+++ b/src/web/app/auth/tags/index.tag
@@ -1,7 +1,7 @@
 <mk-index>
 	<main if={ SIGNIN }>
 		<p class="fetching" if={ fetching }>読み込み中<mk-ellipsis/></p>
-		<mk-form ref="form" if={ state == 'waiting' } session={ session }></mk-form>
+		<mk-form ref="form" if={ state == 'waiting' } session={ session }/>
 		<div class="denied" if={ state == 'denied' }>
 			<h1>アプリケーションの連携をキャンセルしました。</h1>
 			<p>このアプリがあなたのアカウントにアクセスすることはありません。</p>
@@ -17,7 +17,7 @@
 	</main>
 	<main class="signin" if={ !SIGNIN }>
 		<h1>サインインしてください</h1>
-		<mk-signin></mk-signin>
+		<mk-signin/>
 	</main>
 	<footer><img src="/assets/auth/logo.svg" alt="Misskey"/></footer>
 	<style>
diff --git a/src/web/app/common/scripts/text-compiler.js b/src/web/app/common/scripts/text-compiler.js
index 0a9b8022df..20ed1877da 100644
--- a/src/web/app/common/scripts/text-compiler.js
+++ b/src/web/app/common/scripts/text-compiler.js
@@ -22,7 +22,7 @@ export default (tokens, shouldBreak) => {
 			case 'bold':
 				return `<strong>${escape(token.bold)}</strong>`;
 			case 'url':
-				return `<mk-url href="${escape(token.content)}" target="_blank"></mk-url>`;
+				return `<mk-url href="${escape(token.content)}" target="_blank"/>`;
 			case 'link':
 				return `<a class="link" href="${escape(token.url)}" target="_blank" title="${escape(token.url)}">${escape(token.title)}</a>`;
 			case 'mention':
diff --git a/src/web/app/common/tags/messaging/form.tag b/src/web/app/common/tags/messaging/form.tag
index 2c34756377..a839bad7fa 100644
--- a/src/web/app/common/tags/messaging/form.tag
+++ b/src/web/app/common/tags/messaging/form.tag
@@ -1,7 +1,7 @@
 <mk-messaging-form>
 	<textarea ref="text" onkeypress={ onkeypress } onpaste={ onpaste } placeholder="%i18n:common.input-message-here%"></textarea>
 	<div class="files"></div>
-	<mk-uploader ref="uploader"></mk-uploader>
+	<mk-uploader ref="uploader"/>
 	<button class="send" onclick={ send } disabled={ sending } title="%i18n:common.send%">
 		<i class="fa fa-paper-plane" if={ !sending }></i><i class="fa fa-spinner fa-spin" if={ sending }></i>
 	</button>
diff --git a/src/web/app/common/tags/messaging/index.tag b/src/web/app/common/tags/messaging/index.tag
index b73c543068..731c9da2c7 100644
--- a/src/web/app/common/tags/messaging/index.tag
+++ b/src/web/app/common/tags/messaging/index.tag
@@ -22,7 +22,7 @@
 					<header>
 						<span class="name">{ is_me ? recipient.name : user.name }</span>
 						<span class="username">{ '@' + (is_me ? recipient.username : user.username ) }</span>
-						<mk-time time={ created_at }></mk-time>
+						<mk-time time={ created_at }/>
 					</header>
 					<div class="body">
 						<p class="text"><span class="me" if={ is_me }>%i18n:common.tags.mk-messaging.you%:</span>{ text }</p>
diff --git a/src/web/app/common/tags/messaging/message.tag b/src/web/app/common/tags/messaging/message.tag
index c5f7e377f0..ec8138da04 100644
--- a/src/web/app/common/tags/messaging/message.tag
+++ b/src/web/app/common/tags/messaging/message.tag
@@ -12,7 +12,7 @@
 			</div>
 		</div>
 		<footer>
-			<mk-time time={ message.created_at }></mk-time><i class="fa fa-pencil is-edited" if={ message.is_edited }></i>
+			<mk-time time={ message.created_at }/><i class="fa fa-pencil is-edited" if={ message.is_edited }></i>
 		</footer>
 	</div>
 	<style>
diff --git a/src/web/app/common/tags/messaging/room.tag b/src/web/app/common/tags/messaging/room.tag
index 33bd644f82..bd49a4d782 100644
--- a/src/web/app/common/tags/messaging/room.tag
+++ b/src/web/app/common/tags/messaging/room.tag
@@ -3,14 +3,14 @@
 		<p class="init" if={ init }><i class="fa fa-spinner fa-spin"></i>%i18n:common.loading%</p>
 		<p class="empty" if={ !init && messages.length == 0 }><i class="fa fa-info-circle"></i>%i18n:common.tags.mk-messaging-room.empty%</p>
 		<virtual each={ message, i in messages }>
-			<mk-messaging-message message={ message }></mk-messaging-message>
+			<mk-messaging-message message={ message }/>
 			<p class="date" if={ i != messages.length - 1 && message._date != messages[i + 1]._date }><span>{ messages[i + 1]._datetext }</span></p>
 		</virtual>
 	</div>
 	<footer>
 		<div ref="notifications"></div>
 		<div class="grippie" title="%i18n:common.tags.mk-messaging-room.resize-form%"></div>
-		<mk-messaging-form user={ user }></mk-messaging-form>
+		<mk-messaging-form user={ user }/>
 	</footer>
 	<style>
 		:scope
diff --git a/src/web/app/common/tags/signin-history.tag b/src/web/app/common/tags/signin-history.tag
index 441e6b5bc3..9c96746249 100644
--- a/src/web/app/common/tags/signin-history.tag
+++ b/src/web/app/common/tags/signin-history.tag
@@ -1,7 +1,7 @@
 <mk-signin-history>
 	<div class="records" if={ history.length != 0 }>
 		<div each={ history }>
-			<mk-time time={ created_at }></mk-time>
+			<mk-time time={ created_at }/>
 			<header><i class="fa fa-check" if={ success }></i><i class="fa fa-times" if={ !success }></i><span class="ip">{ ip }</span></header>
 			<pre><code>{ JSON.stringify(headers, null, '    ') }</code></pre>
 		</div>
diff --git a/src/web/app/desktop/tags/drive/browser-window.tag b/src/web/app/desktop/tags/drive/browser-window.tag
index f20855dfe4..dc55371da6 100644
--- a/src/web/app/desktop/tags/drive/browser-window.tag
+++ b/src/web/app/desktop/tags/drive/browser-window.tag
@@ -5,7 +5,7 @@
 			<i class="fa fa-cloud"></i>%i18n:desktop.tags.mk-drive-browser-window.drive%
 		</yield>
 		<yield to="content">
-			<mk-drive-browser multiple={ true } folder={ parent.folder }></mk-drive-browser>
+			<mk-drive-browser multiple={ true } folder={ parent.folder }/>
 		</yield>
 	</mk-window>
 	<style>
diff --git a/src/web/app/desktop/tags/drive/browser.tag b/src/web/app/desktop/tags/drive/browser.tag
index 586bc47a9b..93db0a04d7 100644
--- a/src/web/app/desktop/tags/drive/browser.tag
+++ b/src/web/app/desktop/tags/drive/browser.tag
@@ -1,9 +1,9 @@
 <mk-drive-browser>
 	<nav>
 		<div class="path" oncontextmenu={ pathOncontextmenu }>
-			<mk-drive-browser-nav-folder class={ current: folder == null } folder={ null }></mk-drive-browser-nav-folder>
+			<mk-drive-browser-nav-folder class={ current: folder == null } folder={ null }/>
 			<virtual each={ folder in hierarchyFolders }><span class="separator"><i class="fa fa-angle-right"></i></span>
-				<mk-drive-browser-nav-folder folder={ folder }></mk-drive-browser-nav-folder>
+				<mk-drive-browser-nav-folder folder={ folder }/>
 			</virtual>
 			<span class="separator" if={ folder != null }><i class="fa fa-angle-right"></i></span>
 			<span class="folder current" if={ folder != null }>{ folder.name }</span>
@@ -15,13 +15,13 @@
 		<div class="contents" ref="contents">
 			<div class="folders" ref="foldersContainer" if={ folders.length > 0 }>
 				<virtual each={ folder in folders }>
-					<mk-drive-browser-folder class="folder" folder={ folder }></mk-drive-browser-folder>
+					<mk-drive-browser-folder class="folder" folder={ folder }/>
 				</virtual>
 				<button if={ moreFolders }>%i18n:desktop.tags.mk-drive-browser.load-more%</button>
 			</div>
 			<div class="files" ref="filesContainer" if={ files.length > 0 }>
 				<virtual each={ file in files }>
-					<mk-drive-browser-file class="file" file={ file }></mk-drive-browser-file>
+					<mk-drive-browser-file class="file" file={ file }/>
 				</virtual>
 				<button if={ moreFiles } onclick={ fetchMoreFiles }>%i18n:desktop.tags.mk-drive-browser.load-more%</button>
 			</div>
@@ -39,7 +39,7 @@
 		</div>
 	</div>
 	<div class="dropzone" if={ draghover }></div>
-	<mk-uploader ref="uploader"></mk-uploader>
+	<mk-uploader ref="uploader"/>
 	<input ref="fileInput" type="file" accept="*/*" multiple="multiple" tabindex="-1" onchange={ changeFileInput }/>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/following-setuper.tag b/src/web/app/desktop/tags/following-setuper.tag
index e0d0727800..3197e93616 100644
--- a/src/web/app/desktop/tags/following-setuper.tag
+++ b/src/web/app/desktop/tags/following-setuper.tag
@@ -5,7 +5,7 @@
 			<div class="body"><a class="name" href={ '/' + username } target="_blank" data-user-preview={ id }>{ name }</a>
 				<p class="username">@{ username }</p>
 			</div>
-			<mk-follow-button user={ this }></mk-follow-button>
+			<mk-follow-button user={ this }/>
 		</div>
 	</div>
 	<p class="empty" if={ !fetching && users.length == 0 }>おすすめのユーザーは見つかりませんでした。</p>
diff --git a/src/web/app/desktop/tags/home-widgets/mentions.tag b/src/web/app/desktop/tags/home-widgets/mentions.tag
index 6e6d891cbf..b94e9b04c5 100644
--- a/src/web/app/desktop/tags/home-widgets/mentions.tag
+++ b/src/web/app/desktop/tags/home-widgets/mentions.tag
@@ -1,10 +1,10 @@
 <mk-mentions-home-widget>
 	<header><span data-is-active={ mode == 'all' } onclick={ setMode.bind(this, 'all') }>すべて</span><span data-is-active={ mode == 'following' } onclick={ setMode.bind(this, 'following') }>フォロー中</span></header>
 	<div class="loading" if={ isLoading }>
-		<mk-ellipsis-icon></mk-ellipsis-icon>
+		<mk-ellipsis-icon/>
 	</div>
 	<p class="empty" if={ isEmpty }><i class="fa fa-comments-o"></i><span if={ mode == 'all' }>あなた宛ての投稿はありません。</span><span if={ mode == 'following' }>あなたがフォローしているユーザーからの言及はありません。</span></p>
-	<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield></mk-timeline>
+	<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/home-widgets/notifications.tag b/src/web/app/desktop/tags/home-widgets/notifications.tag
index 0214a216b4..b1170855ac 100644
--- a/src/web/app/desktop/tags/home-widgets/notifications.tag
+++ b/src/web/app/desktop/tags/home-widgets/notifications.tag
@@ -1,7 +1,7 @@
 <mk-notifications-home-widget>
 	<p class="title"><i class="fa fa-bell-o"></i>%i18n:desktop.tags.mk-notifications-home-widget.title%</p>
 	<button onclick={ settings } title="%i18n:desktop.tags.mk-notifications-home-widget.settings%"><i class="fa fa-cog"></i></button>
-	<mk-notifications></mk-notifications>
+	<mk-notifications/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/home-widgets/recommended-polls.tag b/src/web/app/desktop/tags/home-widgets/recommended-polls.tag
index ffe9272583..b724718af7 100644
--- a/src/web/app/desktop/tags/home-widgets/recommended-polls.tag
+++ b/src/web/app/desktop/tags/home-widgets/recommended-polls.tag
@@ -4,7 +4,7 @@
 	<div class="poll" if={ !loading && poll != null }>
 		<p if={ poll.text }><a href="/{ poll.user.username }/{ poll.id }">{ poll.text }</a></p>
 		<p if={ !poll.text }><a href="/{ poll.user.username }/{ poll.id }"><i class="fa fa-link"></i></a></p>
-		<mk-poll post={ poll }></mk-poll>
+		<mk-poll post={ poll }/>
 	</div>
 	<p class="empty" if={ !loading && poll == null }>%i18n:desktop.tags.mk-recommended-polls-home-widget.nothing%</p>
 	<p class="loading" if={ loading }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
diff --git a/src/web/app/desktop/tags/home-widgets/timeline.tag b/src/web/app/desktop/tags/home-widgets/timeline.tag
index a0a8790eaa..08d96ad715 100644
--- a/src/web/app/desktop/tags/home-widgets/timeline.tag
+++ b/src/web/app/desktop/tags/home-widgets/timeline.tag
@@ -1,10 +1,10 @@
 <mk-timeline-home-widget>
-	<mk-following-setuper if={ noFollowing }></mk-following-setuper>
+	<mk-following-setuper if={ noFollowing }/>
 	<div class="loading" if={ isLoading }>
-		<mk-ellipsis-icon></mk-ellipsis-icon>
+		<mk-ellipsis-icon/>
 	</div>
 	<p class="empty" if={ isEmpty }><i class="fa fa-comments-o"></i>自分の投稿や、自分がフォローしているユーザーの投稿が表示されます。</p>
-	<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield></mk-timeline>
+	<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/home-widgets/user-recommendation.tag b/src/web/app/desktop/tags/home-widgets/user-recommendation.tag
index 753282c15d..f78d7944f1 100644
--- a/src/web/app/desktop/tags/home-widgets/user-recommendation.tag
+++ b/src/web/app/desktop/tags/home-widgets/user-recommendation.tag
@@ -9,7 +9,7 @@
 			<a class="name" href={ '/' + _user.username } data-user-preview={ _user.id }>{ _user.name }</a>
 			<p class="username">@{ _user.username }</p>
 		</div>
-		<mk-follow-button user={ _user }></mk-follow-button>
+		<mk-follow-button user={ _user }/>
 	</div>
 	<p class="empty" if={ !loading && users.length == 0 }>%i18n:desktop.tags.mk-user-recommendation-home-widget.no-one%</p>
 	<p class="loading" if={ loading }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
diff --git a/src/web/app/desktop/tags/home.tag b/src/web/app/desktop/tags/home.tag
index 7d27710d0a..ba89a01660 100644
--- a/src/web/app/desktop/tags/home.tag
+++ b/src/web/app/desktop/tags/home.tag
@@ -2,8 +2,8 @@
 	<div class="main">
 		<div class="left" ref="left"></div>
 		<main>
-			<mk-timeline-home-widget ref="tl" if={ mode == 'timeline' }></mk-timeline-home-widget>
-			<mk-mentions-home-widget ref="tl" if={ mode == 'mentions' }></mk-mentions-home-widget>
+			<mk-timeline-home-widget ref="tl" if={ mode == 'timeline' }/>
+			<mk-mentions-home-widget ref="tl" if={ mode == 'mentions' }/>
 		</main>
 		<div class="right" ref="right"></div>
 	</div>
diff --git a/src/web/app/desktop/tags/list-user.tag b/src/web/app/desktop/tags/list-user.tag
index c7d6e5edcd..91a6de0a0d 100644
--- a/src/web/app/desktop/tags/list-user.tag
+++ b/src/web/app/desktop/tags/list-user.tag
@@ -12,7 +12,7 @@
 			<div class="description">{ user.description }</div>
 		</div>
 	</div>
-	<mk-follow-button user={ user }></mk-follow-button>
+	<mk-follow-button user={ user }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/messaging/room-window.tag b/src/web/app/desktop/tags/messaging/room-window.tag
index e8a9ed6acd..5d8a4303a5 100644
--- a/src/web/app/desktop/tags/messaging/room-window.tag
+++ b/src/web/app/desktop/tags/messaging/room-window.tag
@@ -2,7 +2,7 @@
 	<mk-window ref="window" is-modal={ false } width={ '500px' } height={ '560px' }>
 		<yield to="header"><i class="fa fa-comments"></i>メッセージ: { parent.user.name }</yield>
 		<yield to="content">
-			<mk-messaging-room user={ parent.user }></mk-messaging-room>
+			<mk-messaging-room user={ parent.user }/>
 		</yield>
 	</mk-window>
 	<style>
diff --git a/src/web/app/desktop/tags/messaging/window.tag b/src/web/app/desktop/tags/messaging/window.tag
index c7af1dc2a2..5e478f0367 100644
--- a/src/web/app/desktop/tags/messaging/window.tag
+++ b/src/web/app/desktop/tags/messaging/window.tag
@@ -2,7 +2,7 @@
 	<mk-window ref="window" is-modal={ false } width={ '500px' } height={ '560px' }>
 		<yield to="header"><i class="fa fa-comments"></i>メッセージ</yield>
 		<yield to="content">
-			<mk-messaging ref="index"></mk-messaging>
+			<mk-messaging ref="index"/>
 		</yield>
 	</mk-window>
 	<style>
diff --git a/src/web/app/desktop/tags/notifications.tag b/src/web/app/desktop/tags/notifications.tag
index 348a41706c..ce24ac4375 100644
--- a/src/web/app/desktop/tags/notifications.tag
+++ b/src/web/app/desktop/tags/notifications.tag
@@ -2,7 +2,7 @@
 	<div class="notifications" if={ notifications.length != 0 }>
 		<virtual each={ notification, i in notifications }>
 			<div class="notification { notification.type }">
-				<mk-time time={ notification.created_at }></mk-time>
+				<mk-time time={ notification.created_at }/>
 				<virtual if={ notification.type == 'reaction' }>
 					<a class="avatar-anchor" href={ '/' + notification.user.username } data-user-preview={ notification.user.id }>
 						<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/>
diff --git a/src/web/app/desktop/tags/pages/entrance.tag b/src/web/app/desktop/tags/pages/entrance.tag
index 00c0d1ed16..7ad19c073e 100644
--- a/src/web/app/desktop/tags/pages/entrance.tag
+++ b/src/web/app/desktop/tags/pages/entrance.tag
@@ -1,16 +1,16 @@
 <mk-entrance>
 	<main>
 		<img src="/assets/title.svg" alt="Misskey"/>
-		<mk-entrance-signin if={ mode == 'signin' }></mk-entrance-signin>
-		<mk-entrance-signup if={ mode == 'signup' }></mk-entrance-signup>
+		<mk-entrance-signin if={ mode == 'signin' }/>
+		<mk-entrance-signup if={ mode == 'signup' }/>
 		<div class="introduction" if={ mode == 'introduction' }>
-			<mk-introduction></mk-introduction>
+			<mk-introduction/>
 			<button onclick={ signin }>わかった</button>
 		</div>
 	</main>
-	<mk-forkit></mk-forkit>
+	<mk-forkit/>
 	<footer>
-		<mk-copyright></mk-copyright>
+		<mk-copyright/>
 	</footer>
 	<!-- ↓ https://github.com/riot/riot/issues/2134 (将来的)-->
 	<style data-disable-scope="data-disable-scope">
diff --git a/src/web/app/desktop/tags/pages/entrance/signin.tag b/src/web/app/desktop/tags/pages/entrance/signin.tag
index bd4b47c7df..6caa747c1c 100644
--- a/src/web/app/desktop/tags/pages/entrance/signin.tag
+++ b/src/web/app/desktop/tags/pages/entrance/signin.tag
@@ -3,7 +3,7 @@
 		<h1><img if={ user } src={ user.avatar_url + '?thumbnail&size=32' }/>
 			<p>{ user ? user.name : 'アカウント' }</p>
 		</h1>
-		<mk-signin ref="signin"></mk-signin>
+		<mk-signin ref="signin"/>
 	</div>
 	<div class="divider"><span>or</span></div>
 	<button class="signup" onclick={ parent.signup }>新規登録</button><a class="introduction" onclick={ introduction }>Misskeyについて</a>
diff --git a/src/web/app/desktop/tags/pages/entrance/signup.tag b/src/web/app/desktop/tags/pages/entrance/signup.tag
index 7ab53759c9..0722d82a65 100644
--- a/src/web/app/desktop/tags/pages/entrance/signup.tag
+++ b/src/web/app/desktop/tags/pages/entrance/signup.tag
@@ -1,5 +1,5 @@
 <mk-entrance-signup>
-	<mk-signup></mk-signup>
+	<mk-signup/>
 	<button class="cancel" type="button" onclick={ parent.signin } title="キャンセル"><i class="fa fa-times"></i></button>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/pages/home.tag b/src/web/app/desktop/tags/pages/home.tag
index 09a663b6c8..124a2eefa3 100644
--- a/src/web/app/desktop/tags/pages/home.tag
+++ b/src/web/app/desktop/tags/pages/home.tag
@@ -1,6 +1,6 @@
 <mk-home-page>
 	<mk-ui ref="ui" page={ page }>
-		<mk-home ref="home" mode={ parent.opts.mode }></mk-home>
+		<mk-home ref="home" mode={ parent.opts.mode }/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/pages/post.tag b/src/web/app/desktop/tags/pages/post.tag
index 42acdd6aa4..c91e98bbd4 100644
--- a/src/web/app/desktop/tags/pages/post.tag
+++ b/src/web/app/desktop/tags/pages/post.tag
@@ -1,7 +1,7 @@
 <mk-post-page>
 	<mk-ui ref="ui">
 		<main>
-			<mk-post-detail ref="detail" post={ parent.post }></mk-post-detail>
+			<mk-post-detail ref="detail" post={ parent.post }/>
 		</main>
 	</mk-ui>
 	<style>
diff --git a/src/web/app/desktop/tags/pages/search.tag b/src/web/app/desktop/tags/pages/search.tag
index 7a97e4781d..4f5867bdb9 100644
--- a/src/web/app/desktop/tags/pages/search.tag
+++ b/src/web/app/desktop/tags/pages/search.tag
@@ -1,6 +1,6 @@
 <mk-search-page>
 	<mk-ui ref="ui">
-		<mk-search ref="search" query={ parent.opts.query }></mk-search>
+		<mk-search ref="search" query={ parent.opts.query }/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/pages/user.tag b/src/web/app/desktop/tags/pages/user.tag
index 9e35383088..864fe22735 100644
--- a/src/web/app/desktop/tags/pages/user.tag
+++ b/src/web/app/desktop/tags/pages/user.tag
@@ -1,6 +1,6 @@
 <mk-user-page>
 	<mk-ui ref="ui">
-		<mk-user ref="user" user={ parent.user } page={ parent.opts.page }></mk-user>
+		<mk-user ref="user" user={ parent.user } page={ parent.opts.page }/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/post-detail-sub.tag b/src/web/app/desktop/tags/post-detail-sub.tag
index c8aec616a0..8a0ada5f2a 100644
--- a/src/web/app/desktop/tags/post-detail-sub.tag
+++ b/src/web/app/desktop/tags/post-detail-sub.tag
@@ -10,7 +10,7 @@
 			</div>
 			<div class="right">
 				<a class="time" href={ '/' + this.post.user.username + '/' + this.post.id }>
-					<mk-time time={ post.created_at }></mk-time>
+					<mk-time time={ post.created_at }/>
 				</a>
 			</div>
 		</header>
diff --git a/src/web/app/desktop/tags/post-detail.tag b/src/web/app/desktop/tags/post-detail.tag
index 6a3c353629..b162a4084a 100644
--- a/src/web/app/desktop/tags/post-detail.tag
+++ b/src/web/app/desktop/tags/post-detail.tag
@@ -1,6 +1,6 @@
 <mk-post-detail title={ title }>
 	<div class="fetching" if={ fetching }>
-		<mk-ellipsis-icon></mk-ellipsis-icon>
+		<mk-ellipsis-icon/>
 	</div>
 	<div class="main" if={ !fetching }>
 		<button class="read-more" if={ p.reply_to && p.reply_to.reply_to_id && context == null } title="会話をもっと読み込む" onclick={ loadContext } disabled={ contextFetching }>
@@ -9,11 +9,11 @@
 		</button>
 		<div class="context">
 			<virtual each={ post in context }>
-				<mk-post-detail-sub post={ post }></mk-post-detail-sub>
+				<mk-post-detail-sub post={ post }/>
 			</virtual>
 		</div>
 		<div class="reply-to" if={ p.reply_to }>
-			<mk-post-detail-sub post={ p.reply_to }></mk-post-detail-sub>
+			<mk-post-detail-sub post={ p.reply_to }/>
 		</div>
 		<div class="repost" if={ isRepost }>
 			<p>
@@ -34,7 +34,7 @@
 				<a class="name" href={ '/' + p.user.username } data-user-preview={ p.user.id }>{ p.user.name }</a>
 				<span class="username">@{ p.user.username }</span>
 				<a class="time" href={ url }>
-					<mk-time time={ p.created_at }></mk-time>
+					<mk-time time={ p.created_at }/>
 				</a>
 			</header>
 			<div class="body">
@@ -42,10 +42,10 @@
 				<div class="media" if={ p.media }>
 					<virtual each={ file in p.media }><img src={ file.url + '?thumbnail&size=512' } alt={ file.name } title={ file.name }/></virtual>
 				</div>
-				<mk-poll if={ p.poll } post={ p }></mk-poll>
+				<mk-poll if={ p.poll } post={ p }/>
 			</div>
 			<footer>
-				<mk-reactions-viewer post={ p }></mk-reactions-viewer>
+				<mk-reactions-viewer post={ p }/>
 				<button onclick={ reply } title="返信"><i class="fa fa-reply"></i>
 					<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
 				</button>
@@ -60,7 +60,7 @@
 		</article>
 		<div class="replies">
 			<virtual each={ post in replies }>
-				<mk-post-detail-sub post={ post }></mk-post-detail-sub>
+				<mk-post-detail-sub post={ post }/>
 			</virtual>
 		</div>
 	</div>
diff --git a/src/web/app/desktop/tags/post-form-window.tag b/src/web/app/desktop/tags/post-form-window.tag
index a8b119e648..05a09b7803 100644
--- a/src/web/app/desktop/tags/post-form-window.tag
+++ b/src/web/app/desktop/tags/post-form-window.tag
@@ -8,10 +8,10 @@
 		</yield>
 		<yield to="content">
 			<div class="ref" if={ parent.opts.reply }>
-				<mk-post-preview post={ parent.opts.reply }></mk-post-preview>
+				<mk-post-preview post={ parent.opts.reply }/>
 			</div>
 			<div class="body">
-				<mk-post-form ref="form" reply={ parent.opts.reply }></mk-post-form>
+				<mk-post-form ref="form" reply={ parent.opts.reply }/>
 			</div>
 		</yield>
 	</mk-window>
diff --git a/src/web/app/desktop/tags/post-form.tag b/src/web/app/desktop/tags/post-form.tag
index 2412bd7412..024cd095e5 100644
--- a/src/web/app/desktop/tags/post-form.tag
+++ b/src/web/app/desktop/tags/post-form.tag
@@ -11,16 +11,16 @@
 			</ul>
 			<p class="remain">{ 4 - files.length }/4</p>
 		</div>
-		<mk-poll-editor if={ poll } ref="poll" ondestroy={ onPollDestroyed }></mk-poll-editor>
+		<mk-poll-editor if={ poll } ref="poll" ondestroy={ onPollDestroyed }/>
 	</div>
-	<mk-uploader ref="uploader"></mk-uploader>
+	<mk-uploader ref="uploader"/>
 	<button ref="upload" title="%i18n:desktop.tags.mk-post-form.attach-media-from-local%" onclick={ selectFile }><i class="fa fa-upload"></i></button>
 	<button ref="drive" title="%i18n:desktop.tags.mk-post-form.attach-media-from-drive%" onclick={ selectFileFromDrive }><i class="fa fa-cloud"></i></button>
 	<button class="cat" title="%i18n:desktop.tags.mk-post-form.insert-the-cat%" onclick={ cat }><i class="fa fa-smile-o"></i></button>
 	<button class="poll" title="%i18n:desktop.tags.mk-post-form.create-poll%" onclick={ addPoll }><i class="fa fa-pie-chart"></i></button>
 	<p class="text-count { over: refs.text.value.length > 1000 }">{ '%i18n:desktop.tags.mk-post-form.text-remain%'.replace('{}', 1000 - refs.text.value.length) }</p>
 	<button class={ wait: wait } ref="submit" disabled={ wait || (refs.text.value.length == 0 && files.length == 0 && !poll && !repost) } onclick={ post }>
-		{ wait ? '%i18n:desktop.tags.mk-post-form.posting%' : submitText }<mk-ellipsis if={ wait }></mk-ellipsis>
+		{ wait ? '%i18n:desktop.tags.mk-post-form.posting%' : submitText }<mk-ellipsis if={ wait }/>
 	</button>
 	<input ref="file" type="file" accept="image/*" multiple="multiple" tabindex="-1" onchange={ changeFile }/>
 	<div class="dropzone" if={ draghover }></div>
diff --git a/src/web/app/desktop/tags/post-preview.tag b/src/web/app/desktop/tags/post-preview.tag
index e4a94a9b79..9a7db5ffa3 100644
--- a/src/web/app/desktop/tags/post-preview.tag
+++ b/src/web/app/desktop/tags/post-preview.tag
@@ -2,9 +2,9 @@
 	<article><a class="avatar-anchor" href={ '/' + post.user.username }><img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=64' } alt="avatar" data-user-preview={ post.user_id }/></a>
 		<div class="main">
 			<header><a class="name" href={ '/' + post.user.username } data-user-preview={ post.user_id }>{ post.user.name }</a><span class="username">@{ post.user.username }</span><a class="time" href={ '/' + post.user.username + '/' + post.id }>
-					<mk-time time={ post.created_at }></mk-time></a></header>
+					<mk-time time={ post.created_at }/></a></header>
 			<div class="body">
-				<mk-sub-post-content class="text" post={ post }></mk-sub-post-content>
+				<mk-sub-post-content class="text" post={ post }/>
 			</div>
 		</div>
 	</article>
diff --git a/src/web/app/desktop/tags/repost-form-window.tag b/src/web/app/desktop/tags/repost-form-window.tag
index e9a6a58b70..58ececf0ec 100644
--- a/src/web/app/desktop/tags/repost-form-window.tag
+++ b/src/web/app/desktop/tags/repost-form-window.tag
@@ -4,7 +4,7 @@
 			<i class="fa fa-retweet"></i>%i18n:desktop.tags.mk-repost-form-window.title%
 		</yield>
 		<yield to="content">
-			<mk-repost-form ref="form" post={ parent.opts.post }></mk-repost-form>
+			<mk-repost-form ref="form" post={ parent.opts.post }/>
 		</yield>
 	</mk-window>
 	<style>
diff --git a/src/web/app/desktop/tags/repost-form.tag b/src/web/app/desktop/tags/repost-form.tag
index 19027e5af5..c3cf6c1fb3 100644
--- a/src/web/app/desktop/tags/repost-form.tag
+++ b/src/web/app/desktop/tags/repost-form.tag
@@ -1,5 +1,5 @@
 <mk-repost-form>
-	<mk-post-preview post={ opts.post }></mk-post-preview>
+	<mk-post-preview post={ opts.post }/>
 	<virtual if={ !quote }>
 		<footer>
 			<a class="quote" if={ !quote } onclick={ onquote }>%i18n:desktop.tags.mk-repost-form.quote%</a>
@@ -8,7 +8,7 @@
 		</footer>
 	</virtual>
 	<virtual if={ quote }>
-		<mk-post-form ref="form" repost={ opts.post }></mk-post-form>
+		<mk-post-form ref="form" repost={ opts.post }/>
 	</virtual>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/search-posts.tag b/src/web/app/desktop/tags/search-posts.tag
index 76365fb29e..4025f87332 100644
--- a/src/web/app/desktop/tags/search-posts.tag
+++ b/src/web/app/desktop/tags/search-posts.tag
@@ -1,9 +1,9 @@
 <mk-search-posts>
 	<div class="loading" if={ isLoading }>
-		<mk-ellipsis-icon></mk-ellipsis-icon>
+		<mk-ellipsis-icon/>
 	</div>
 	<p class="empty" if={ isEmpty }><i class="fa fa-search"></i>「{ query }」に関する投稿は見つかりませんでした。</p>
-	<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield></mk-timeline>
+	<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/search.tag b/src/web/app/desktop/tags/search.tag
index 681b4c8aed..d5159fe4e9 100644
--- a/src/web/app/desktop/tags/search.tag
+++ b/src/web/app/desktop/tags/search.tag
@@ -2,7 +2,7 @@
 	<header>
 		<h1>{ query }</h1>
 	</header>
-	<mk-search-posts ref="posts" query={ query }></mk-search-posts>
+	<mk-search-posts ref="posts" query={ query }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/select-file-from-drive-window.tag b/src/web/app/desktop/tags/select-file-from-drive-window.tag
index 5dba76d1fe..8a7e725b71 100644
--- a/src/web/app/desktop/tags/select-file-from-drive-window.tag
+++ b/src/web/app/desktop/tags/select-file-from-drive-window.tag
@@ -1,11 +1,11 @@
 <mk-select-file-from-drive-window>
 	<mk-window ref="window" is-modal={ true } width={ '800px' } height={ '500px' }>
 		<yield to="header">
-			<mk-raw content={ parent.title }></mk-raw>
+			<mk-raw content={ parent.title }/>
 			<span class="count" if={ parent.multiple && parent.files.length > 0 }>({ parent.files.length }ファイル選択中)</span>
 		</yield>
 		<yield to="content">
-			<mk-drive-browser ref="browser" multiple={ parent.multiple }></mk-drive-browser>
+			<mk-drive-browser ref="browser" multiple={ parent.multiple }/>
 			<div>
 				<button class="upload" title="PCからドライブにファイルをアップロード" onclick={ parent.upload }><i class="fa fa-upload"></i></button>
 				<button class="cancel" onclick={ parent.close }>キャンセル</button>
diff --git a/src/web/app/desktop/tags/settings-window.tag b/src/web/app/desktop/tags/settings-window.tag
index 88b74ee17a..28065e0a0d 100644
--- a/src/web/app/desktop/tags/settings-window.tag
+++ b/src/web/app/desktop/tags/settings-window.tag
@@ -2,7 +2,7 @@
 	<mk-window ref="window" is-modal={ true } width={ '700px' } height={ '550px' }>
 		<yield to="header"><i class="fa fa-cog"></i>設定</yield>
 		<yield to="content">
-			<mk-settings></mk-settings>
+			<mk-settings/>
 		</yield>
 	</mk-window>
 	<style>
diff --git a/src/web/app/desktop/tags/settings.tag b/src/web/app/desktop/tags/settings.tag
index 25b0435ca1..a89cfda0e4 100644
--- a/src/web/app/desktop/tags/settings.tag
+++ b/src/web/app/desktop/tags/settings.tag
@@ -45,22 +45,22 @@
 
 		<section class="apps" show={ page == 'apps' }>
 			<h1>アプリケーション</h1>
-			<mk-authorized-apps></mk-authorized-apps>
+			<mk-authorized-apps/>
 		</section>
 
 		<section class="twitter" show={ page == 'twitter' }>
 			<h1>Twitter</h1>
-			<mk-twitter-setting></mk-twitter-setting>
+			<mk-twitter-setting/>
 		</section>
 
 		<section class="signin" show={ page == 'signin' }>
 			<h1>ログイン履歴</h1>
-			<mk-signin-history></mk-signin-history>
+			<mk-signin-history/>
 		</section>
 
 		<section class="api" show={ page == 'api' }>
 			<h1>API</h1>
-			<mk-api-info></mk-api-info>
+			<mk-api-info/>
 		</section>
 	</div>
 	<style>
diff --git a/src/web/app/desktop/tags/sub-post-content.tag b/src/web/app/desktop/tags/sub-post-content.tag
index fab2e65af1..02cb5251b2 100644
--- a/src/web/app/desktop/tags/sub-post-content.tag
+++ b/src/web/app/desktop/tags/sub-post-content.tag
@@ -8,11 +8,11 @@
 	</div>
 	<details if={ post.media }>
 		<summary>({ post.media.length }つのメディア)</summary>
-		<mk-images-viewer images={ post.media }></mk-images-viewer>
+		<mk-images-viewer images={ post.media }/>
 	</details>
 	<details if={ post.poll }>
 		<summary>投票</summary>
-		<mk-poll post={ post }></mk-poll>
+		<mk-poll post={ post }/>
 	</details>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/timeline-post-sub.tag b/src/web/app/desktop/tags/timeline-post-sub.tag
index cc4c99c298..ab1e26721b 100644
--- a/src/web/app/desktop/tags/timeline-post-sub.tag
+++ b/src/web/app/desktop/tags/timeline-post-sub.tag
@@ -8,11 +8,11 @@
 				<a class="name" href={ '/' + post.user.username } data-user-preview={ post.user_id }>{ post.user.name }</a>
 				<span class="username">@{ post.user.username }</span>
 				<a class="created-at" href={ '/' + post.user.username + '/' + post.id }>
-					<mk-time time={ post.created_at }></mk-time>
+					<mk-time time={ post.created_at }/>
 				</a>
 			</header>
 			<div class="body">
-				<mk-sub-post-content class="text" post={ post }></mk-sub-post-content>
+				<mk-sub-post-content class="text" post={ post }/>
 			</div>
 		</div>
 	</article>
diff --git a/src/web/app/desktop/tags/timeline-post.tag b/src/web/app/desktop/tags/timeline-post.tag
index 1b5b811a9a..150b928dfd 100644
--- a/src/web/app/desktop/tags/timeline-post.tag
+++ b/src/web/app/desktop/tags/timeline-post.tag
@@ -1,6 +1,6 @@
 <mk-timeline-post tabindex="-1" title={ title } onkeydown={ onKeyDown }>
 	<div class="reply-to" if={ p.reply_to }>
-		<mk-timeline-post-sub post={ p.reply_to }></mk-timeline-post-sub>
+		<mk-timeline-post-sub post={ p.reply_to }/>
 	</div>
 	<div class="repost" if={ isRepost }>
 		<p>
@@ -9,7 +9,7 @@
 			</a>
 			<i class="fa fa-retweet"></i>{'%i18n:desktop.tags.mk-timeline-post.reposted-by%'.substr(0, '%i18n:desktop.tags.mk-timeline-post.reposted-by%'.indexOf('{'))}<a class="name" href={ '/' + post.user.username } data-user-preview={ post.user_id }>{ post.user.name }</a>{'%i18n:desktop.tags.mk-timeline-post.reposted-by%'.substr('%i18n:desktop.tags.mk-timeline-post.reposted-by%'.indexOf('}') + 1)}
 		</p>
-		<mk-time time={ post.created_at }></mk-time>
+		<mk-time time={ post.created_at }/>
 	</div>
 	<article>
 		<a class="avatar-anchor" href={ '/' + p.user.username }>
@@ -23,7 +23,7 @@
 				<div class="info">
 					<span class="app" if={ p.app }>via <b>{ p.app.name }</b></span>
 					<a class="created-at" href={ url }>
-						<mk-time time={ p.created_at }></mk-time>
+						<mk-time time={ p.created_at }/>
 					</a>
 				</div>
 			</header>
@@ -36,15 +36,15 @@
 					<a class="quote" if={ p.repost != null }>RP:</a>
 				</div>
 				<div class="media" if={ p.media }>
-					<mk-images-viewer images={ p.media }></mk-images-viewer>
+					<mk-images-viewer images={ p.media }/>
 				</div>
-				<mk-poll if={ p.poll } post={ p } ref="pollViewer"></mk-poll>
+				<mk-poll if={ p.poll } post={ p } ref="pollViewer"/>
 				<div class="repost" if={ p.repost }><i class="fa fa-quote-right fa-flip-horizontal"></i>
-					<mk-post-preview class="repost" post={ p.repost }></mk-post-preview>
+					<mk-post-preview class="repost" post={ p.repost }/>
 				</div>
 			</div>
 			<footer>
-				<mk-reactions-viewer post={ p } ref="reactionsViewer"></mk-reactions-viewer>
+				<mk-reactions-viewer post={ p } ref="reactionsViewer"/>
 				<button onclick={ reply } title="%i18n:desktop.tags.mk-timeline-post.reply%"><i class="fa fa-reply"></i>
 					<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
 				</button>
@@ -65,7 +65,7 @@
 		</div>
 	</article>
 	<div class="detail" if={ isDetailOpened }>
-		<mk-post-status-graph width="462" height="130" post={ p }></mk-post-status-graph>
+		<mk-post-status-graph width="462" height="130" post={ p }/>
 	</div>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/timeline.tag b/src/web/app/desktop/tags/timeline.tag
index a589adf5a0..d4cd50455c 100644
--- a/src/web/app/desktop/tags/timeline.tag
+++ b/src/web/app/desktop/tags/timeline.tag
@@ -1,6 +1,6 @@
 <mk-timeline>
 	<virtual each={ post, i in posts }>
-		<mk-timeline-post post={ post }></mk-timeline-post>
+		<mk-timeline-post post={ post }/>
 		<p class="date" if={ i != posts.length - 1 && post._date != posts[i + 1]._date }><span><i class="fa fa-angle-up"></i>{ post._datetext }</span><span><i class="fa fa-angle-down"></i>{ posts[i + 1]._datetext }</span></p>
 	</virtual>
 	<footer data-yield="footer">
diff --git a/src/web/app/desktop/tags/ui-header-clock.tag b/src/web/app/desktop/tags/ui-header-clock.tag
index 3c81f963f3..b8cb078497 100644
--- a/src/web/app/desktop/tags/ui-header-clock.tag
+++ b/src/web/app/desktop/tags/ui-header-clock.tag
@@ -7,7 +7,7 @@
 		</time>
 	</div>
 	<div class="content">
-		<mk-analog-clock></mk-analog-clock>
+		<mk-analog-clock/>
 	</div>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/ui-header-notifications.tag b/src/web/app/desktop/tags/ui-header-notifications.tag
index 33156a750e..3cd8d1e3df 100644
--- a/src/web/app/desktop/tags/ui-header-notifications.tag
+++ b/src/web/app/desktop/tags/ui-header-notifications.tag
@@ -1,7 +1,7 @@
 <mk-ui-header-notifications>
 	<button class="header" data-active={ isOpen } onclick={ toggle }><i class="fa fa-bell-o"></i></button>
 	<div class="notifications" if={ isOpen }>
-		<mk-notifications></mk-notifications>
+		<mk-notifications/>
 	</div>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/ui-header.tag b/src/web/app/desktop/tags/ui-header.tag
index 1d15a90cc5..fa7f2cb2ac 100644
--- a/src/web/app/desktop/tags/ui-header.tag
+++ b/src/web/app/desktop/tags/ui-header.tag
@@ -1,19 +1,19 @@
 <mk-ui-header>
-	<mk-donation if={ SIGNIN && I.data.no_donation != 'true' }></mk-donation>
-	<mk-special-message></mk-special-message>
+	<mk-donation if={ SIGNIN && I.data.no_donation != 'true' }/>
+	<mk-special-message/>
 	<div class="main">
 		<div class="backdrop"></div>
 		<div class="main">
 			<div class="container">
 				<div class="left">
-					<mk-ui-header-nav page={ opts.page }></mk-ui-header-nav>
+					<mk-ui-header-nav page={ opts.page }/>
 				</div>
 				<div class="right">
-					<mk-ui-header-search></mk-ui-header-search>
-					<mk-ui-header-account if={ SIGNIN }></mk-ui-header-account>
-					<mk-ui-header-notifications if={ SIGNIN }></mk-ui-header-notifications>
-					<mk-ui-header-post-button if={ SIGNIN }></mk-ui-header-post-button>
-					<mk-ui-header-clock></mk-ui-header-clock>
+					<mk-ui-header-search/>
+					<mk-ui-header-account if={ SIGNIN }/>
+					<mk-ui-header-notifications if={ SIGNIN }/>
+					<mk-ui-header-post-button if={ SIGNIN }/>
+					<mk-ui-header-clock/>
 				</div>
 			</div>
 		</div>
diff --git a/src/web/app/desktop/tags/ui.tag b/src/web/app/desktop/tags/ui.tag
index e701bd746f..788fb56131 100644
--- a/src/web/app/desktop/tags/ui.tag
+++ b/src/web/app/desktop/tags/ui.tag
@@ -1,11 +1,11 @@
 <mk-ui>
-	<mk-ui-header page={ opts.page }></mk-ui-header>
-	<mk-set-avatar-suggestion if={ SIGNIN && I.avatar_id == null }></mk-set-avatar-suggestion>
-	<mk-set-banner-suggestion if={ SIGNIN && I.banner_id == null }></mk-set-banner-suggestion>
+	<mk-ui-header page={ opts.page }/>
+	<mk-set-avatar-suggestion if={ SIGNIN && I.avatar_id == null }/>
+	<mk-set-banner-suggestion if={ SIGNIN && I.banner_id == null }/>
 	<div class="content">
 		<yield />
 	</div>
-	<mk-stream-indicator></mk-stream-indicator>
+	<mk-stream-indicator/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/user-followers-window.tag b/src/web/app/desktop/tags/user-followers-window.tag
index a4a24d6673..43127a68a8 100644
--- a/src/web/app/desktop/tags/user-followers-window.tag
+++ b/src/web/app/desktop/tags/user-followers-window.tag
@@ -1,7 +1,7 @@
 <mk-user-followers-window>
 	<mk-window is-modal={ false } width={ '400px' } height={ '550px' }><yield to="header"><img src={ parent.user.avatar_url + '?thumbnail&size=64' } alt=""/>{ parent.user.name }のフォロワー</yield>
 <yield to="content">
-		<mk-user-followers user={ parent.user }></mk-user-followers></yield>
+		<mk-user-followers user={ parent.user }/></yield>
 	</mk-window>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/user-followers.tag b/src/web/app/desktop/tags/user-followers.tag
index f43e87de8a..ea670e2729 100644
--- a/src/web/app/desktop/tags/user-followers.tag
+++ b/src/web/app/desktop/tags/user-followers.tag
@@ -1,5 +1,5 @@
 <mk-user-followers>
-	<mk-users-list fetch={ fetch } count={ user.followers_count } you-know-count={ user.followers_you_know_count } no-users={ 'フォロワーはいないようです。' }></mk-users-list>
+	<mk-users-list fetch={ fetch } count={ user.followers_count } you-know-count={ user.followers_you_know_count } no-users={ 'フォロワーはいないようです。' }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/user-following-window.tag b/src/web/app/desktop/tags/user-following-window.tag
index 6dbf3b05e9..10a84db315 100644
--- a/src/web/app/desktop/tags/user-following-window.tag
+++ b/src/web/app/desktop/tags/user-following-window.tag
@@ -1,7 +1,7 @@
 <mk-user-following-window>
 	<mk-window is-modal={ false } width={ '400px' } height={ '550px' }><yield to="header"><img src={ parent.user.avatar_url + '?thumbnail&size=64' } alt=""/>{ parent.user.name }のフォロー</yield>
 <yield to="content">
-		<mk-user-following user={ parent.user }></mk-user-following></yield>
+		<mk-user-following user={ parent.user }/></yield>
 	</mk-window>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/user-following.tag b/src/web/app/desktop/tags/user-following.tag
index f2d21b3fed..4523beac2c 100644
--- a/src/web/app/desktop/tags/user-following.tag
+++ b/src/web/app/desktop/tags/user-following.tag
@@ -1,5 +1,5 @@
 <mk-user-following>
-	<mk-users-list fetch={ fetch } count={ user.following_count } you-know-count={ user.following_you_know_count } no-users={ 'フォロー中のユーザーはいないようです。' }></mk-users-list>
+	<mk-users-list fetch={ fetch } count={ user.following_count } you-know-count={ user.following_you_know_count } no-users={ 'フォロー中のユーザーはいないようです。' }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/user-graphs.tag b/src/web/app/desktop/tags/user-graphs.tag
index e673f7700b..0677d8c187 100644
--- a/src/web/app/desktop/tags/user-graphs.tag
+++ b/src/web/app/desktop/tags/user-graphs.tag
@@ -1,15 +1,15 @@
 <mk-user-graphs>
 	<section>
 		<h1>投稿</h1>
-		<mk-user-posts-graph user={ opts.user }></mk-user-posts-graph>
+		<mk-user-posts-graph user={ opts.user }/>
 	</section>
 	<section>
 		<h1>フォロー/フォロワー</h1>
-		<mk-user-friends-graph user={ opts.user }></mk-user-friends-graph>
+		<mk-user-friends-graph user={ opts.user }/>
 	</section>
 	<section>
 		<h1>いいね</h1>
-		<mk-user-likes-graph user={ opts.user }></mk-user-likes-graph>
+		<mk-user-likes-graph user={ opts.user }/>
 	</section>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/user-home.tag b/src/web/app/desktop/tags/user-home.tag
index 759a57581d..a879db5bb6 100644
--- a/src/web/app/desktop/tags/user-home.tag
+++ b/src/web/app/desktop/tags/user-home.tag
@@ -1,10 +1,10 @@
 <mk-user-home>
 	<div class="side">
-		<mk-user-profile user={ user }></mk-user-profile>
-		<mk-user-photos user={ user }></mk-user-photos>
+		<mk-user-profile user={ user }/>
+		<mk-user-photos user={ user }/>
 	</div>
 	<main>
-		<mk-user-timeline ref="tl" user={ user }></mk-user-timeline>
+		<mk-user-timeline ref="tl" user={ user }/>
 	</main>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/user-preview.tag b/src/web/app/desktop/tags/user-preview.tag
index f7a1fe3593..b836ff1e78 100644
--- a/src/web/app/desktop/tags/user-preview.tag
+++ b/src/web/app/desktop/tags/user-preview.tag
@@ -17,7 +17,7 @@
 				<p>フォロワー</p><a>{ user.followers_count }</a>
 			</div>
 		</div>
-		<mk-follow-button if={ SIGNIN && user.id != I.id } user={ userPromise }></mk-follow-button>
+		<mk-follow-button if={ SIGNIN && user.id != I.id } user={ userPromise }/>
 	</virtual>
 	<style>
 		:scope
diff --git a/src/web/app/desktop/tags/user-profile.tag b/src/web/app/desktop/tags/user-profile.tag
index 546ccf7325..7472a47801 100644
--- a/src/web/app/desktop/tags/user-profile.tag
+++ b/src/web/app/desktop/tags/user-profile.tag
@@ -1,6 +1,6 @@
 <mk-user-profile>
 	<div class="friend-form" if={ SIGNIN && I.id != user.id }>
-		<mk-big-follow-button user={ user }></mk-big-follow-button>
+		<mk-big-follow-button user={ user }/>
 		<p class="followed" if={ user.is_followed }>フォローされています</p>
 	</div>
 	<div class="description" if={ user.description }>{ user.description }</div>
@@ -81,7 +81,7 @@
 
 	</style>
 	<script>
-		this.age = require('s-age'); 
+		this.age = require('s-age');
 
 		this.mixin('i');
 
diff --git a/src/web/app/desktop/tags/user-timeline.tag b/src/web/app/desktop/tags/user-timeline.tag
index ac3f995b3c..08ab47b160 100644
--- a/src/web/app/desktop/tags/user-timeline.tag
+++ b/src/web/app/desktop/tags/user-timeline.tag
@@ -3,10 +3,10 @@
 		<span data-is-active={ mode == 'default' } onclick={ setMode.bind(this, 'default') }>投稿</span><span data-is-active={ mode == 'with-replies' } onclick={ setMode.bind(this, 'with-replies') }>投稿と返信</span>
 	</header>
 	<div class="loading" if={ isLoading }>
-		<mk-ellipsis-icon></mk-ellipsis-icon>
+		<mk-ellipsis-icon/>
 	</div>
 	<p class="empty" if={ isEmpty }><i class="fa fa-comments-o"></i>このユーザーはまだ何も投稿していないようです。</p>
-	<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield></mk-timeline>
+	<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/desktop/tags/user.tag b/src/web/app/desktop/tags/user.tag
index c128736183..db4fd7cc73 100644
--- a/src/web/app/desktop/tags/user.tag
+++ b/src/web/app/desktop/tags/user.tag
@@ -1,11 +1,11 @@
 <mk-user>
 	<div class="user" if={ !fetching }>
 		<header>
-			<mk-user-header user={ user }></mk-user-header>
+			<mk-user-header user={ user }/>
 		</header>
 		<div class="body">
-			<mk-user-home if={ page == 'home' } user={ user }></mk-user-home>
-			<mk-user-graphs if={ page == 'graphs' } user={ user }></mk-user-graphs>
+			<mk-user-home if={ page == 'home' } user={ user }/>
+			<mk-user-graphs if={ page == 'graphs' } user={ user }/>
 		</div>
 	</div>
 	<style>
diff --git a/src/web/app/desktop/tags/users-list.tag b/src/web/app/desktop/tags/users-list.tag
index 4aa9ed60f2..eb34b15a29 100644
--- a/src/web/app/desktop/tags/users-list.tag
+++ b/src/web/app/desktop/tags/users-list.tag
@@ -7,7 +7,7 @@
 	</nav>
 	<div class="users" if={ !fetching && users.length != 0 }>
 		<div each={ users }>
-			<mk-list-user user={ this }></mk-list-user>
+			<mk-list-user user={ this }/>
 		</div>
 	</div>
 	<button class="more" if={ !fetching && next != null } onclick={ more } disabled={ moreFetching }>
diff --git a/src/web/app/dev/tags/pages/new-app.tag b/src/web/app/dev/tags/pages/new-app.tag
index f9369861b9..238b6865e1 100644
--- a/src/web/app/dev/tags/pages/new-app.tag
+++ b/src/web/app/dev/tags/pages/new-app.tag
@@ -4,7 +4,7 @@
 			<h1>新しいアプリを作成</h1>
 			<p>MisskeyのAPIを利用したアプリケーションを作成できます。</p>
 		</header>
-		<mk-new-app-form></mk-new-app-form>
+		<mk-new-app-form/>
 	</main>
 	<style>
 		:scope
@@ -34,9 +34,9 @@
 						line-height 16px
 						color #9a9894
 
-			
 
-			
+
+
 
 	</style>
 </mk-new-app-page>
diff --git a/src/web/app/mobile/tags/drive-folder-selector.tag b/src/web/app/mobile/tags/drive-folder-selector.tag
index 35b3304d4f..eebd62df6c 100644
--- a/src/web/app/mobile/tags/drive-folder-selector.tag
+++ b/src/web/app/mobile/tags/drive-folder-selector.tag
@@ -5,7 +5,7 @@
 			<button class="close" onclick={ cancel }><i class="fa fa-times"></i></button>
 			<button class="ok" onclick={ ok }><i class="fa fa-check"></i></button>
 		</header>
-		<mk-drive ref="browser" select-folder={ true }></mk-drive>
+		<mk-drive ref="browser" select-folder={ true }/>
 	</div>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/drive-selector.tag b/src/web/app/mobile/tags/drive-selector.tag
index 45e593434f..32845432f2 100644
--- a/src/web/app/mobile/tags/drive-selector.tag
+++ b/src/web/app/mobile/tags/drive-selector.tag
@@ -5,7 +5,7 @@
 			<button class="close" onclick={ cancel }><i class="fa fa-times"></i></button>
 			<button class="ok" onclick={ ok }><i class="fa fa-check"></i></button>
 		</header>
-		<mk-drive ref="browser" select-file={ true } multiple={ opts.multiple }></mk-drive>
+		<mk-drive ref="browser" select-file={ true } multiple={ opts.multiple }/>
 	</div>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/drive.tag b/src/web/app/mobile/tags/drive.tag
index 7c66f63af6..bafa5a4fca 100644
--- a/src/web/app/mobile/tags/drive.tag
+++ b/src/web/app/mobile/tags/drive.tag
@@ -14,7 +14,7 @@
 			<p>{ file.name }</p>
 		</virtual>
 	</nav>
-	<mk-uploader ref="uploader"></mk-uploader>
+	<mk-uploader ref="uploader"/>
 	<div class="browser { fetching: fetching }" if={ file == null }>
 		<div class="info" if={ info }>
 			<p if={ folder == null }>{ (info.usage / info.capacity * 100).toFixed(1) }% %i18n:mobile.tags.mk-drive.used%</p>
@@ -26,13 +26,13 @@
 		</div>
 		<div class="folders" if={ folders.length > 0 }>
 			<virtual each={ folder in folders }>
-				<mk-drive-folder folder={ folder }></mk-drive-folder>
+				<mk-drive-folder folder={ folder }/>
 			</virtual>
 			<p if={ moreFolders }>%i18n:mobile.tags.mk-drive.load-more%</p>
 		</div>
 		<div class="files" if={ files.length > 0 }>
 			<virtual each={ file in files }>
-				<mk-drive-file file={ file }></mk-drive-file>
+				<mk-drive-file file={ file }/>
 			</virtual>
 			<button class="more" if={ moreFiles } onclick={ fetchMoreFiles }>
 				{ fetchingMoreFiles ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-drive.load-more%' }
@@ -50,7 +50,7 @@
 		</div>
 	</div>
 	<input ref="file" type="file" multiple="multiple" onchange={ changeLocalFile }/>
-	<mk-drive-file-viewer if={ file != null } file={ file }></mk-drive-file-viewer>
+	<mk-drive-file-viewer if={ file != null } file={ file }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/drive/file-viewer.tag b/src/web/app/mobile/tags/drive/file-viewer.tag
index 75bf6e3673..e6129652b0 100644
--- a/src/web/app/mobile/tags/drive/file-viewer.tag
+++ b/src/web/app/mobile/tags/drive/file-viewer.tag
@@ -19,11 +19,11 @@
 	</div>
 	<div class="info">
 		<div>
-			<span class="type"><mk-file-type-icon type={ file.type }></mk-file-type-icon>{ file.type }</span>
+			<span class="type"><mk-file-type-icon type={ file.type }/>{ file.type }</span>
 			<span class="separator"></span>
 			<span class="data-size">{ bytesToSize(file.datasize) }</span>
 			<span class="separator"></span>
-			<span class="created-at" onclick={ showCreatedAt }><i class="fa fa-clock-o"></i><mk-time time={ file.created_at }></mk-time></span>
+			<span class="created-at" onclick={ showCreatedAt }><i class="fa fa-clock-o"></i><mk-time time={ file.created_at }/></span>
 		</div>
 	</div>
 	<div class="menu">
diff --git a/src/web/app/mobile/tags/drive/file.tag b/src/web/app/mobile/tags/drive/file.tag
index 98e0df97e6..bf51f79a5d 100644
--- a/src/web/app/mobile/tags/drive/file.tag
+++ b/src/web/app/mobile/tags/drive/file.tag
@@ -10,12 +10,12 @@
 						li.tag(style={background: tag.color, color: contrast(tag.color)})= tag.name
 			-->
 			<footer>
-				<p class="type"><mk-file-type-icon type={ file.type }></mk-file-type-icon>{ file.type }</p>
+				<p class="type"><mk-file-type-icon type={ file.type }/>{ file.type }</p>
 				<p class="separator"></p>
 				<p class="data-size">{ bytesToSize(file.datasize) }</p>
 				<p class="separator"></p>
 				<p class="created-at">
-					<i class="fa fa-clock-o"></i><mk-time time={ file.created_at }></mk-time>
+					<i class="fa fa-clock-o"></i><mk-time time={ file.created_at }/>
 				</p>
 			</footer>
 		</div>
diff --git a/src/web/app/mobile/tags/home-timeline.tag b/src/web/app/mobile/tags/home-timeline.tag
index c5aeacd4d5..5d5399f322 100644
--- a/src/web/app/mobile/tags/home-timeline.tag
+++ b/src/web/app/mobile/tags/home-timeline.tag
@@ -1,6 +1,6 @@
 <mk-home-timeline>
 	<mk-init-following if={ noFollowing } />
-	<mk-timeline ref="timeline" init={ init } more={ more } empty={ '%i18n:mobile.tags.mk-home-timeline.empty-timeline%' }></mk-timeline>
+	<mk-timeline ref="timeline" init={ init } more={ more } empty={ '%i18n:mobile.tags.mk-home-timeline.empty-timeline%' }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/home.tag b/src/web/app/mobile/tags/home.tag
index 2edfd656e4..48b5a67c38 100644
--- a/src/web/app/mobile/tags/home.tag
+++ b/src/web/app/mobile/tags/home.tag
@@ -1,5 +1,5 @@
 <mk-home>
-	<mk-home-timeline ref="tl"></mk-home-timeline>
+	<mk-home-timeline ref="tl"/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/init-following.tag b/src/web/app/mobile/tags/init-following.tag
index ade3ea4ae6..0c54d3a6a1 100644
--- a/src/web/app/mobile/tags/init-following.tag
+++ b/src/web/app/mobile/tags/init-following.tag
@@ -5,7 +5,7 @@
 			<div class="body"><a class="name" href={ '/' + username } target="_blank">{ name }</a>
 				<p class="username">@{ username }</p>
 			</div>
-			<mk-follow-button user={ this }></mk-follow-button>
+			<mk-follow-button user={ this }/>
 		</div>
 	</div>
 	<p class="empty" if={ !fetching && users.length == 0 }>おすすめのユーザーは見つかりませんでした。</p>
diff --git a/src/web/app/mobile/tags/notification.tag b/src/web/app/mobile/tags/notification.tag
index 61e492636c..3663709525 100644
--- a/src/web/app/mobile/tags/notification.tag
+++ b/src/web/app/mobile/tags/notification.tag
@@ -1,5 +1,5 @@
 <mk-notification class={ notification.type }>
-	<mk-time time={ notification.created_at }></mk-time>
+	<mk-time time={ notification.created_at }/>
 	<virtual if={ notification.type == 'reaction' }>
 		<a class="avatar-anchor" href={ '/' + notification.user.username }>
 			<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
diff --git a/src/web/app/mobile/tags/notifications.tag b/src/web/app/mobile/tags/notifications.tag
index adc6c79665..21a941e630 100644
--- a/src/web/app/mobile/tags/notifications.tag
+++ b/src/web/app/mobile/tags/notifications.tag
@@ -2,7 +2,7 @@
 	<div class="notifications" if={ notifications.length != 0 }>
 		<virtual each={ notification, i in notifications }>
 			<div>
-				<mk-notification notification={ notification }></mk-notification>
+				<mk-notification notification={ notification }/>
 			</div>
 			<p class="date" if={ i != notifications.length - 1 && notification._date != notifications[i + 1]._date }><span><i class="fa fa-angle-up"></i>{ notification._datetext }</span><span><i class="fa fa-angle-down"></i>{ notifications[i + 1]._datetext }</span></p>
 		</virtual>
diff --git a/src/web/app/mobile/tags/notify.tag b/src/web/app/mobile/tags/notify.tag
index 6bbf337de2..2dfc2dddb8 100644
--- a/src/web/app/mobile/tags/notify.tag
+++ b/src/web/app/mobile/tags/notify.tag
@@ -1,5 +1,5 @@
 <mk-notify>
-	<mk-notification-preview notification={ opts.notification }></mk-notification-preview>
+	<mk-notification-preview notification={ opts.notification }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/page/drive.tag b/src/web/app/mobile/tags/page/drive.tag
index c28d767789..a5ebf480d5 100644
--- a/src/web/app/mobile/tags/page/drive.tag
+++ b/src/web/app/mobile/tags/page/drive.tag
@@ -1,6 +1,6 @@
 <mk-drive-page>
 	<mk-ui ref="ui">
-		<mk-drive ref="browser" folder={ parent.opts.folder } file={ parent.opts.file } data-is-naked="true"></mk-drive>
+		<mk-drive ref="browser" folder={ parent.opts.folder } file={ parent.opts.file } data-is-naked="true"/>
 	</mk-ui>
 	<style>
 		:scope
@@ -63,7 +63,7 @@
 
 				document.title = title;
 				// TODO: escape html characters in file.name
-				ui.trigger('title', '<mk-file-type-icon class="icon"></mk-file-type-icon>' + file.name);
+				ui.trigger('title', '<mk-file-type-icon class="icon"/>' + file.name);
 				riot.mount('mk-file-type-icon', {
 					type: file.type
 				});
diff --git a/src/web/app/mobile/tags/page/entrance.tag b/src/web/app/mobile/tags/page/entrance.tag
index 2dd7940c2f..380fb780bc 100644
--- a/src/web/app/mobile/tags/page/entrance.tag
+++ b/src/web/app/mobile/tags/page/entrance.tag
@@ -1,14 +1,14 @@
 <mk-entrance>
 	<main><img src="/assets/title.svg" alt="Misskey"/>
-		<mk-entrance-signin if={ mode == 'signin' }></mk-entrance-signin>
-		<mk-entrance-signup if={ mode == 'signup' }></mk-entrance-signup>
+		<mk-entrance-signin if={ mode == 'signin' }/>
+		<mk-entrance-signup if={ mode == 'signup' }/>
 		<div class="introduction" if={ mode == 'introduction' }>
-			<mk-introduction></mk-introduction>
+			<mk-introduction/>
 			<button onclick={ signin }>%i18n:common.ok%</button>
 		</div>
 	</main>
 	<footer>
-		<mk-copyright></mk-copyright>
+		<mk-copyright/>
 	</footer>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/entrance/signin.tag b/src/web/app/mobile/tags/page/entrance/signin.tag
index 119208c7d4..827fbccb94 100644
--- a/src/web/app/mobile/tags/page/entrance/signin.tag
+++ b/src/web/app/mobile/tags/page/entrance/signin.tag
@@ -1,5 +1,5 @@
 <mk-entrance-signin>
-	<mk-signin></mk-signin>
+	<mk-signin/>
 	<div class="divider"><span>or</span></div>
 	<button class="signup" onclick={ parent.signup }>%i18n:mobile.tags.mk-entrance-signin.signup%</button><a class="introduction" onclick={ parent.introduction }>%i18n:mobile.tags.mk-entrance-signin.about%</a>
 	<style>
diff --git a/src/web/app/mobile/tags/page/entrance/signup.tag b/src/web/app/mobile/tags/page/entrance/signup.tag
index 29eeaef4fb..3798c94349 100644
--- a/src/web/app/mobile/tags/page/entrance/signup.tag
+++ b/src/web/app/mobile/tags/page/entrance/signup.tag
@@ -1,5 +1,5 @@
 <mk-entrance-signup>
-	<mk-signup></mk-signup>
+	<mk-signup/>
 	<button class="cancel" type="button" onclick={ parent.signin } title="%i18n:mobile.tags.mk-entrance-signup.cancel%"><i class="fa fa-times"></i></button>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/home.tag b/src/web/app/mobile/tags/page/home.tag
index 6d8d85521a..32c80fd20e 100644
--- a/src/web/app/mobile/tags/page/home.tag
+++ b/src/web/app/mobile/tags/page/home.tag
@@ -1,6 +1,6 @@
 <mk-home-page>
 	<mk-ui ref="ui">
-		<mk-home ref="home"></mk-home>
+		<mk-home ref="home"/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/messaging-room.tag b/src/web/app/mobile/tags/page/messaging-room.tag
index 260682ea2f..e66e03177f 100644
--- a/src/web/app/mobile/tags/page/messaging-room.tag
+++ b/src/web/app/mobile/tags/page/messaging-room.tag
@@ -1,6 +1,6 @@
 <mk-messaging-room-page>
 	<mk-ui ref="ui">
-		<mk-messaging-room if={ !parent.fetching } user={ parent.user } is-naked={ true }></mk-messaging-room>
+		<mk-messaging-room if={ !parent.fetching } user={ parent.user } is-naked={ true }/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/messaging.tag b/src/web/app/mobile/tags/page/messaging.tag
index 74568601f2..11e8f8cb48 100644
--- a/src/web/app/mobile/tags/page/messaging.tag
+++ b/src/web/app/mobile/tags/page/messaging.tag
@@ -1,6 +1,6 @@
 <mk-messaging-page>
 	<mk-ui ref="ui">
-		<mk-messaging ref="index"></mk-messaging>
+		<mk-messaging ref="index"/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/new-post.tag b/src/web/app/mobile/tags/page/new-post.tag
index 3ba549c8dc..7adde3b329 100644
--- a/src/web/app/mobile/tags/page/new-post.tag
+++ b/src/web/app/mobile/tags/page/new-post.tag
@@ -1,5 +1,5 @@
 <mk-new-post-page>
-	<mk-post-form ref="form"></mk-post-form>
+	<mk-post-form ref="form"/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/page/notifications.tag b/src/web/app/mobile/tags/page/notifications.tag
index 1351bb6432..f90cd1628d 100644
--- a/src/web/app/mobile/tags/page/notifications.tag
+++ b/src/web/app/mobile/tags/page/notifications.tag
@@ -1,6 +1,6 @@
 <mk-notifications-page>
 	<mk-ui ref="ui">
-		<mk-notifications ref="notifications"></mk-notifications>
+		<mk-notifications ref="notifications"/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/post.tag b/src/web/app/mobile/tags/page/post.tag
index be9c2ab0b0..7ab4ea2714 100644
--- a/src/web/app/mobile/tags/page/post.tag
+++ b/src/web/app/mobile/tags/page/post.tag
@@ -1,7 +1,7 @@
 <mk-post-page>
 	<mk-ui ref="ui">
 		<main>
-			<mk-post-detail ref="post" post={ parent.post }></mk-post-detail>
+			<mk-post-detail ref="post" post={ parent.post }/>
 		</main>
 	</mk-ui>
 	<style>
diff --git a/src/web/app/mobile/tags/page/search.tag b/src/web/app/mobile/tags/page/search.tag
index 878318fbd6..869d5c8533 100644
--- a/src/web/app/mobile/tags/page/search.tag
+++ b/src/web/app/mobile/tags/page/search.tag
@@ -1,6 +1,6 @@
 <mk-search-page>
 	<mk-ui ref="ui">
-		<mk-search ref="search" query={ parent.opts.query }></mk-search>
+		<mk-search ref="search" query={ parent.opts.query }/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/settings/api.tag b/src/web/app/mobile/tags/page/settings/api.tag
index 5725bcb4c1..cfffeacb5a 100644
--- a/src/web/app/mobile/tags/page/settings/api.tag
+++ b/src/web/app/mobile/tags/page/settings/api.tag
@@ -1,6 +1,6 @@
 <mk-api-info-page>
 	<mk-ui ref="ui">
-		<mk-api-info></mk-api-info>
+		<mk-api-info/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/settings/authorized-apps.tag b/src/web/app/mobile/tags/page/settings/authorized-apps.tag
index 697f69de71..e962871ec7 100644
--- a/src/web/app/mobile/tags/page/settings/authorized-apps.tag
+++ b/src/web/app/mobile/tags/page/settings/authorized-apps.tag
@@ -1,6 +1,6 @@
 <mk-authorized-apps-page>
 	<mk-ui ref="ui">
-		<mk-authorized-apps></mk-authorized-apps>
+		<mk-authorized-apps/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/settings/signin.tag b/src/web/app/mobile/tags/page/settings/signin.tag
index f9334f818c..2305ea9fb4 100644
--- a/src/web/app/mobile/tags/page/settings/signin.tag
+++ b/src/web/app/mobile/tags/page/settings/signin.tag
@@ -1,6 +1,6 @@
 <mk-signin-history-page>
 	<mk-ui ref="ui">
-		<mk-signin-history></mk-signin-history>
+		<mk-signin-history/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/settings/twitter.tag b/src/web/app/mobile/tags/page/settings/twitter.tag
index 5f3418f798..f4e9f7628b 100644
--- a/src/web/app/mobile/tags/page/settings/twitter.tag
+++ b/src/web/app/mobile/tags/page/settings/twitter.tag
@@ -1,6 +1,6 @@
 <mk-twitter-setting-page>
 	<mk-ui ref="ui">
-		<mk-twitter-setting></mk-twitter-setting>
+		<mk-twitter-setting/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/user-followers.tag b/src/web/app/mobile/tags/page/user-followers.tag
index b83cf9fd0d..f6fcffebe2 100644
--- a/src/web/app/mobile/tags/page/user-followers.tag
+++ b/src/web/app/mobile/tags/page/user-followers.tag
@@ -1,6 +1,6 @@
 <mk-user-followers-page>
 	<mk-ui ref="ui">
-		<mk-user-followers ref="list" if={ !parent.fetching } user={ parent.user }></mk-user-followers>
+		<mk-user-followers ref="list" if={ !parent.fetching } user={ parent.user }/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/user-following.tag b/src/web/app/mobile/tags/page/user-following.tag
index 482e943173..4b289b6aa3 100644
--- a/src/web/app/mobile/tags/page/user-following.tag
+++ b/src/web/app/mobile/tags/page/user-following.tag
@@ -1,6 +1,6 @@
 <mk-user-following-page>
 	<mk-ui ref="ui">
-		<mk-user-following ref="list" if={ !parent.fetching } user={ parent.user }></mk-user-following>
+		<mk-user-following ref="list" if={ !parent.fetching } user={ parent.user }/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/page/user.tag b/src/web/app/mobile/tags/page/user.tag
index 3826beecff..05ccef3113 100644
--- a/src/web/app/mobile/tags/page/user.tag
+++ b/src/web/app/mobile/tags/page/user.tag
@@ -1,6 +1,6 @@
 <mk-user-page>
 	<mk-ui ref="ui">
-		<mk-user ref="user" user={ parent.user } page={ parent.opts.page }></mk-user>
+		<mk-user ref="user" user={ parent.user } page={ parent.opts.page }/>
 	</mk-ui>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/post-detail.tag b/src/web/app/mobile/tags/post-detail.tag
index 0fe30178df..9d62a2b591 100644
--- a/src/web/app/mobile/tags/post-detail.tag
+++ b/src/web/app/mobile/tags/post-detail.tag
@@ -1,6 +1,6 @@
 <mk-post-detail>
 	<div class="fetching" if={ fetching }>
-		<mk-ellipsis-icon></mk-ellipsis-icon>
+		<mk-ellipsis-icon/>
 	</div>
 	<div class="main" if={ !fetching }>
 		<button class="read-more" if={ p.reply_to && p.reply_to.reply_to_id && context == null } onclick={ loadContext } disabled={ loadingContext }>
@@ -9,11 +9,11 @@
 		</button>
 		<div class="context">
 			<virtual each={ post in context }>
-				<mk-post-preview post={ post }></mk-post-preview>
+				<mk-post-preview post={ post }/>
 			</virtual>
 		</div>
 		<div class="reply-to" if={ p.reply_to }>
-			<mk-post-preview post={ p.reply_to }></mk-post-preview>
+			<mk-post-preview post={ p.reply_to }/>
 		</div>
 		<div class="repost" if={ isRepost }>
 			<p>
@@ -40,13 +40,13 @@
 				<div class="media" if={ p.media }>
 					<virtual each={ file in p.media }><img src={ file.url + '?thumbnail&size=512' } alt={ file.name } title={ file.name }/></virtual>
 				</div>
-				<mk-poll if={ p.poll } post={ p }></mk-poll>
+				<mk-poll if={ p.poll } post={ p }/>
 			</div>
 			<a class="time" href={ url }>
-				<mk-time time={ p.created_at } mode="detail"></mk-time>
+				<mk-time time={ p.created_at } mode="detail"/>
 			</a>
 			<footer>
-				<mk-reactions-viewer post={ p }></mk-reactions-viewer>
+				<mk-reactions-viewer post={ p }/>
 				<button onclick={ reply } title="%i18n:mobile.tags.mk-post-detail.reply%"><i class="fa fa-reply"></i>
 					<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
 				</button>
@@ -61,7 +61,7 @@
 		</article>
 		<div class="replies">
 			<virtual each={ post in replies }>
-				<mk-post-preview post={ post }></mk-post-preview>
+				<mk-post-preview post={ post }/>
 			</virtual>
 		</div>
 	</div>
diff --git a/src/web/app/mobile/tags/post-form.tag b/src/web/app/mobile/tags/post-form.tag
index 9bce226bfd..239473703b 100644
--- a/src/web/app/mobile/tags/post-form.tag
+++ b/src/web/app/mobile/tags/post-form.tag
@@ -9,7 +9,7 @@
 		</div>
 	</header>
 	<div class="form">
-		<mk-post-preview if={ opts.reply } post={ opts.reply }></mk-post-preview>
+		<mk-post-preview if={ opts.reply } post={ opts.reply }/>
 		<textarea ref="text" disabled={ wait } oninput={ update } onkeydown={ onkeydown } onpaste={ onpaste } placeholder={ opts.reply ? '%i18n:mobile.tags.mk-post-form.reply-placeholder%' : '%i18n:mobile.tags.mk-post-form.post-placeholder%' }></textarea>
 		<div class="attaches" if={ files.length != 0 }>
 			<ul class="files" ref="attaches">
@@ -19,8 +19,8 @@
 				<li class="add" if={ files.length < 4 } title="%i18n:mobile.tags.mk-post-form.attach-media-from-local%" onclick={ selectFile }><i class="fa fa-plus"></i></li>
 			</ul>
 		</div>
-		<mk-poll-editor if={ poll } ref="poll" ondestroy={ onPollDestroyed }></mk-poll-editor>
-		<mk-uploader ref="uploader"></mk-uploader>
+		<mk-poll-editor if={ poll } ref="poll" ondestroy={ onPollDestroyed }/>
+		<mk-uploader ref="uploader"/>
 		<button ref="upload" onclick={ selectFile }><i class="fa fa-upload"></i></button>
 		<button ref="drive" onclick={ selectFileFromDrive }><i class="fa fa-cloud"></i></button>
 		<button class="cat" onclick={ cat }><i class="fa fa-smile-o"></i></button>
diff --git a/src/web/app/mobile/tags/post-preview.tag b/src/web/app/mobile/tags/post-preview.tag
index cb3f7fd617..aaf8467039 100644
--- a/src/web/app/mobile/tags/post-preview.tag
+++ b/src/web/app/mobile/tags/post-preview.tag
@@ -8,11 +8,11 @@
 				<a class="name" href={ '/' + post.user.username }>{ post.user.name }</a>
 				<span class="username">@{ post.user.username }</span>
 				<a class="time" href={ '/' + post.user.username + '/' + post.id }>
-					<mk-time time={ post.created_at }></mk-time>
+					<mk-time time={ post.created_at }/>
 				</a>
 			</header>
 			<div class="body">
-				<mk-sub-post-content class="text" post={ post }></mk-sub-post-content>
+				<mk-sub-post-content class="text" post={ post }/>
 			</div>
 		</div>
 	</article>
diff --git a/src/web/app/mobile/tags/search-posts.tag b/src/web/app/mobile/tags/search-posts.tag
index e17611fcee..3e6caa1df2 100644
--- a/src/web/app/mobile/tags/search-posts.tag
+++ b/src/web/app/mobile/tags/search-posts.tag
@@ -1,5 +1,5 @@
 <mk-search-posts>
-	<mk-timeline init={ init } more={ more } empty={ '%i18n:mobile.tags.mk-search-posts.empty%'.replace('{}', query) }></mk-timeline>
+	<mk-timeline init={ init } more={ more } empty={ '%i18n:mobile.tags.mk-search-posts.empty%'.replace('{}', query) }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/search.tag b/src/web/app/mobile/tags/search.tag
index 831e5a3e34..2d299e0a77 100644
--- a/src/web/app/mobile/tags/search.tag
+++ b/src/web/app/mobile/tags/search.tag
@@ -1,5 +1,5 @@
 <mk-search>
-	<mk-search-posts ref="posts" query={ query }></mk-search-posts>
+	<mk-search-posts ref="posts" query={ query }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/sub-post-content.tag b/src/web/app/mobile/tags/sub-post-content.tag
index e657a8d73c..97e0ecec03 100644
--- a/src/web/app/mobile/tags/sub-post-content.tag
+++ b/src/web/app/mobile/tags/sub-post-content.tag
@@ -2,11 +2,11 @@
 	<div class="body"><a class="reply" if={ post.reply_to_id }><i class="fa fa-reply"></i></a><span ref="text"></span><a class="quote" if={ post.repost_id } href={ '/post:' + post.repost_id }>RP: ...</a></div>
 	<details if={ post.media }>
 		<summary>({ post.media.length }個のメディア)</summary>
-		<mk-images-viewer images={ post.media }></mk-images-viewer>
+		<mk-images-viewer images={ post.media }/>
 	</details>
 	<details if={ post.poll }>
 		<summary>%i18n:mobile.tags.mk-sub-post-content.poll%</summary>
-		<mk-poll post={ post }></mk-poll>
+		<mk-poll post={ post }/>
 	</details>
 	<style>
 		:scope
diff --git a/src/web/app/mobile/tags/timeline-post-sub.tag b/src/web/app/mobile/tags/timeline-post-sub.tag
index 5a944db733..3fff552e8f 100644
--- a/src/web/app/mobile/tags/timeline-post-sub.tag
+++ b/src/web/app/mobile/tags/timeline-post-sub.tag
@@ -2,9 +2,9 @@
 	<article><a class="avatar-anchor" href={ '/' + post.user.username }><img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=96' } alt="avatar"/></a>
 		<div class="main">
 			<header><a class="name" href={ '/' + post.user.username }>{ post.user.name }</a><span class="username">@{ post.user.username }</span><a class="created-at" href={ '/' + post.user.username + '/' + post.id }>
-					<mk-time time={ post.created_at }></mk-time></a></header>
+					<mk-time time={ post.created_at }/></a></header>
 			<div class="body">
-				<mk-sub-post-content class="text" post={ post }></mk-sub-post-content>
+				<mk-sub-post-content class="text" post={ post }/>
 			</div>
 		</div>
 	</article>
diff --git a/src/web/app/mobile/tags/timeline-post.tag b/src/web/app/mobile/tags/timeline-post.tag
index 3b10b725f4..2395e9fb79 100644
--- a/src/web/app/mobile/tags/timeline-post.tag
+++ b/src/web/app/mobile/tags/timeline-post.tag
@@ -1,6 +1,6 @@
 <mk-timeline-post class={ repost: isRepost }>
 	<div class="reply-to" if={ p.reply_to }>
-		<mk-timeline-post-sub post={ p.reply_to }></mk-timeline-post-sub>
+		<mk-timeline-post-sub post={ p.reply_to }/>
 	</div>
 	<div class="repost" if={ isRepost }>
 		<p>
@@ -9,7 +9,7 @@
 			</a>
 			<i class="fa fa-retweet"></i>{'%i18n:mobile.tags.mk-timeline-post.reposted-by%'.substr(0, '%i18n:mobile.tags.mk-timeline-post.reposted-by%'.indexOf('{'))}<a class="name" href={ '/' + post.user.username }>{ post.user.name }</a>{'%i18n:mobile.tags.mk-timeline-post.reposted-by%'.substr('%i18n:mobile.tags.mk-timeline-post.reposted-by%'.indexOf('}') + 1)}
 		</p>
-		<mk-time time={ post.created_at }></mk-time>
+		<mk-time time={ post.created_at }/>
 	</div>
 	<article>
 		<a class="avatar-anchor" href={ '/' + p.user.username }>
@@ -21,7 +21,7 @@
 				<span class="is-bot" if={ p.user.is_bot }>bot</span>
 				<span class="username">@{ p.user.username }</span>
 				<a class="created-at" href={ url }>
-					<mk-time time={ p.created_at }></mk-time>
+					<mk-time time={ p.created_at }/>
 				</a>
 			</header>
 			<div class="body">
@@ -33,16 +33,16 @@
 					<a class="quote" if={ p.repost != null }>RP:</a>
 				</div>
 				<div class="media" if={ p.media }>
-					<mk-images-viewer images={ p.media }></mk-images-viewer>
+					<mk-images-viewer images={ p.media }/>
 				</div>
-				<mk-poll if={ p.poll } post={ p } ref="pollViewer"></mk-poll>
+				<mk-poll if={ p.poll } post={ p } ref="pollViewer"/>
 				<span class="app" if={ p.app }>via <b>{ p.app.name }</b></span>
 				<div class="repost" if={ p.repost }><i class="fa fa-quote-right fa-flip-horizontal"></i>
-					<mk-post-preview class="repost" post={ p.repost }></mk-post-preview>
+					<mk-post-preview class="repost" post={ p.repost }/>
 				</div>
 			</div>
 			<footer>
-				<mk-reactions-viewer post={ p } ref="reactionsViewer"></mk-reactions-viewer>
+				<mk-reactions-viewer post={ p } ref="reactionsViewer"/>
 				<button onclick={ reply }><i class="fa fa-reply"></i>
 					<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
 				</button>
diff --git a/src/web/app/mobile/tags/timeline.tag b/src/web/app/mobile/tags/timeline.tag
index 5eaea863d2..11f4e0740b 100644
--- a/src/web/app/mobile/tags/timeline.tag
+++ b/src/web/app/mobile/tags/timeline.tag
@@ -6,7 +6,7 @@
 		<i class="fa fa-comments-o"></i>{ opts.empty || '%i18n:mobile.tags.mk-timeline.empty%' }
 	</div>
 	<virtual each={ post, i in posts }>
-		<mk-timeline-post post={ post }></mk-timeline-post>
+		<mk-timeline-post post={ post }/>
 		<p class="date" if={ i != posts.length - 1 && post._date != posts[i + 1]._date }>
 			<span><i class="fa fa-angle-up"></i>{ post._datetext }</span>
 			<span><i class="fa fa-angle-down"></i>{ posts[i + 1]._datetext }</span>
diff --git a/src/web/app/mobile/tags/ui-header.tag b/src/web/app/mobile/tags/ui-header.tag
index c3de5488c3..264fa022d8 100644
--- a/src/web/app/mobile/tags/ui-header.tag
+++ b/src/web/app/mobile/tags/ui-header.tag
@@ -1,5 +1,5 @@
 <mk-ui-header>
-	<mk-special-message></mk-special-message>
+	<mk-special-message/>
 	<div class="main">
 		<div class="backdrop"></div>
 		<div class="content">
diff --git a/src/web/app/mobile/tags/ui.tag b/src/web/app/mobile/tags/ui.tag
index b047af2649..b2f738dc2e 100644
--- a/src/web/app/mobile/tags/ui.tag
+++ b/src/web/app/mobile/tags/ui.tag
@@ -1,10 +1,10 @@
 <mk-ui>
-	<mk-ui-header></mk-ui-header>
-	<mk-ui-nav ref="nav"></mk-ui-nav>
+	<mk-ui-header/>
+	<mk-ui-nav ref="nav"/>
 	<div class="content">
 		<yield />
 	</div>
-	<mk-stream-indicator></mk-stream-indicator>
+	<mk-stream-indicator/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/user-followers.tag b/src/web/app/mobile/tags/user-followers.tag
index 9002b5b226..b710e376c6 100644
--- a/src/web/app/mobile/tags/user-followers.tag
+++ b/src/web/app/mobile/tags/user-followers.tag
@@ -1,5 +1,5 @@
 <mk-user-followers>
-	<mk-users-list ref="list" fetch={ fetch } count={ user.followers_count } you-know-count={ user.followers_you_know_count } no-users={ '%i18n:mobile.tags.mk-user-followers.no-users%' }></mk-users-list>
+	<mk-users-list ref="list" fetch={ fetch } count={ user.followers_count } you-know-count={ user.followers_you_know_count } no-users={ '%i18n:mobile.tags.mk-user-followers.no-users%' }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/user-following.tag b/src/web/app/mobile/tags/user-following.tag
index c4ca831cae..62ca091812 100644
--- a/src/web/app/mobile/tags/user-following.tag
+++ b/src/web/app/mobile/tags/user-following.tag
@@ -1,5 +1,5 @@
 <mk-user-following>
-	<mk-users-list ref="list" fetch={ fetch } count={ user.following_count } you-know-count={ user.following_you_know_count } no-users={ '%i18n:mobile.tags.mk-user-following.no-users%' }></mk-users-list>
+	<mk-users-list ref="list" fetch={ fetch } count={ user.following_count } you-know-count={ user.following_you_know_count } no-users={ '%i18n:mobile.tags.mk-user-following.no-users%' }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/user-timeline.tag b/src/web/app/mobile/tags/user-timeline.tag
index beaae8023e..f7b2b36da0 100644
--- a/src/web/app/mobile/tags/user-timeline.tag
+++ b/src/web/app/mobile/tags/user-timeline.tag
@@ -1,5 +1,5 @@
 <mk-user-timeline>
-	<mk-timeline ref="timeline" init={ init } more={ more } empty={ withMedia ? '%i18n:mobile.tags.mk-user-timeline.no-posts-with-media%' : '%i18n:mobile.tags.mk-user-timeline.no-posts%' }></mk-timeline>
+	<mk-timeline ref="timeline" init={ init } more={ more } empty={ withMedia ? '%i18n:mobile.tags.mk-user-timeline.no-posts-with-media%' : '%i18n:mobile.tags.mk-user-timeline.no-posts%' }/>
 	<style>
 		:scope
 			display block
diff --git a/src/web/app/mobile/tags/user.tag b/src/web/app/mobile/tags/user.tag
index b91935aa6a..9f36e60741 100644
--- a/src/web/app/mobile/tags/user.tag
+++ b/src/web/app/mobile/tags/user.tag
@@ -7,7 +7,7 @@
 					<a class="avatar">
 						<img src={ user.avatar_url + '?thumbnail&size=160' } alt="avatar"/>
 					</a>
-					<mk-follow-button if={ SIGNIN && I.id != user.id } user={ user }></mk-follow-button>
+					<mk-follow-button if={ SIGNIN && I.id != user.id } user={ user }/>
 				</div>
 				<div class="title">
 					<h1>{ user.name }</h1>
@@ -37,7 +37,7 @@
 						<i>%i18n:mobile.tags.mk-user.followers%</i>
 					</a>
 				</div>
-				<mk-activity-table user={ user }></mk-activity-table>
+				<mk-activity-table user={ user }/>
 			</div>
 			<nav>
 				<a data-is-active={ page == 'posts' } onclick={ go.bind(null, 'posts') }>%i18n:mobile.tags.mk-user.posts%</a>
@@ -45,8 +45,8 @@
 			</nav>
 		</header>
 		<div class="body">
-			<mk-user-timeline if={ page == 'posts' } user={ user }></mk-user-timeline>
-			<mk-user-timeline if={ page == 'media' } user={ user } with-media={ true }></mk-user-timeline>
+			<mk-user-timeline if={ page == 'posts' } user={ user }/>
+			<mk-user-timeline if={ page == 'media' } user={ user } with-media={ true }/>
 		</div>
 	</div>
 	<style>
diff --git a/src/web/app/mobile/tags/users-list.tag b/src/web/app/mobile/tags/users-list.tag
index 75487bbbe1..fb70f184d5 100644
--- a/src/web/app/mobile/tags/users-list.tag
+++ b/src/web/app/mobile/tags/users-list.tag
@@ -4,7 +4,7 @@
 		<span if={ SIGNIN && opts.youKnowCount } data-is-active={ mode == 'iknow' } onclick={ setMode.bind(this, 'iknow') }>%i18n:mobile.tags.mk-users-list.known%<span>{ opts.youKnowCount }</span></span>
 	</nav>
 	<div class="users" if={ !fetching && users.length != 0 }>
-		<mk-user-preview each={ users } user={ this }></mk-user-preview>
+		<mk-user-preview each={ users } user={ this }/>
 	</div>
 	<button class="more" if={ !fetching && next != null } onclick={ more } disabled={ moreFetching }>
 		<span if={ !moreFetching }>%i18n:mobile.tags.mk-users-list.load-more%</span>