diff --git a/snowy-admin-web/src/assets/icons/mobile/filled/iconfont.css b/snowy-admin-web/src/assets/icons/mobile/filled/iconfont.css
new file mode 100644
index 00000000..a4e757d4
--- /dev/null
+++ b/snowy-admin-web/src/assets/icons/mobile/filled/iconfont.css
@@ -0,0 +1,173 @@
+@font-face {
+  font-family: "snowy"; /* Project id 3880534 */
+  src: url('iconfont.ttf?t=1675528061732') format('truetype');
+}
+
+.snowy {
+  font-family: "snowy" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.arrow-up-filling:before {
+  content: "\e688";
+}
+
+.arrow-down-filling:before {
+  content: "\e689";
+}
+
+.arrow-left-filling:before {
+  content: "\e68a";
+}
+
+.arrow-right-filling:before {
+  content: "\e68b";
+}
+
+.caps-unlock-filling:before {
+  content: "\e68c";
+}
+
+.comment-filling:before {
+  content: "\e68d";
+}
+
+.check-item-filling:before {
+  content: "\e68e";
+}
+
+.clock-filling:before {
+  content: "\e68f";
+}
+
+.delete-filling:before {
+  content: "\e690";
+}
+
+.decline-filling:before {
+  content: "\e691";
+}
+
+.dynamic-filling:before {
+  content: "\e692";
+}
+
+.intermediate-filling:before {
+  content: "\e693";
+}
+
+.favorite-filling:before {
+  content: "\e694";
+}
+
+.layout-filling:before {
+  content: "\e695";
+}
+
+.help-filling:before {
+  content: "\e696";
+}
+
+.history-filling:before {
+  content: "\e697";
+}
+
+.filter-filling:before {
+  content: "\e698";
+}
+
+.file-common-filling:before {
+  content: "\e699";
+}
+
+.news-filling:before {
+  content: "\e69a";
+}
+
+.edit-filling:before {
+  content: "\e69b";
+}
+
+.fullscreen-expand-filling:before {
+  content: "\e69c";
+}
+
+.smile-filling:before {
+  content: "\e69d";
+}
+
+.rise-filling:before {
+  content: "\e69e";
+}
+
+.picture-filling:before {
+  content: "\e69f";
+}
+
+.notification-filling:before {
+  content: "\e6a0";
+}
+
+.user-filling:before {
+  content: "\e6a1";
+}
+
+.setting-filling:before {
+  content: "\e6a2";
+}
+
+.switch-filling:before {
+  content: "\e6a3";
+}
+
+.work-filling:before {
+  content: "\e6a4";
+}
+
+.task-filling:before {
+  content: "\e6a5";
+}
+
+.success-filling:before {
+  content: "\e6a6";
+}
+
+.warning-filling:before {
+  content: "\e6a7";
+}
+
+.folder-filling:before {
+  content: "\e6a8";
+}
+
+.map-filling:before {
+  content: "\e6a9";
+}
+
+.prompt-filling:before {
+  content: "\e6aa";
+}
+
+.meh-filling:before {
+  content: "\e6ab";
+}
+
+.cry-filling:before {
+  content: "\e6ac";
+}
+
+.top-filling:before {
+  content: "\e6ad";
+}
+
+.home-filling:before {
+  content: "\e6ae";
+}
+
+.sorting:before {
+  content: "\e6af";
+}
+
diff --git a/snowy-admin-web/src/assets/icons/mobile/filled/iconfont.json b/snowy-admin-web/src/assets/icons/mobile/filled/iconfont.json
new file mode 100644
index 00000000..5189f8e4
--- /dev/null
+++ b/snowy-admin-web/src/assets/icons/mobile/filled/iconfont.json
@@ -0,0 +1,289 @@
+{
+  "id": "3880534",
+  "name": "snowy-app-filled",
+  "font_family": "snowy",
+  "css_prefix_text": "",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "15838581",
+      "name": "arrow-up-filling",
+      "font_class": "arrow-up-filling",
+      "unicode": "e688",
+      "unicode_decimal": 59016
+    },
+    {
+      "icon_id": "15838582",
+      "name": "arrow-down-filling",
+      "font_class": "arrow-down-filling",
+      "unicode": "e689",
+      "unicode_decimal": 59017
+    },
+    {
+      "icon_id": "15838583",
+      "name": "arrow-left-filling",
+      "font_class": "arrow-left-filling",
+      "unicode": "e68a",
+      "unicode_decimal": 59018
+    },
+    {
+      "icon_id": "15838584",
+      "name": "arrow-right-filling",
+      "font_class": "arrow-right-filling",
+      "unicode": "e68b",
+      "unicode_decimal": 59019
+    },
+    {
+      "icon_id": "15838585",
+      "name": "caps-unlock-filling",
+      "font_class": "caps-unlock-filling",
+      "unicode": "e68c",
+      "unicode_decimal": 59020
+    },
+    {
+      "icon_id": "15838586",
+      "name": "comment-filling",
+      "font_class": "comment-filling",
+      "unicode": "e68d",
+      "unicode_decimal": 59021
+    },
+    {
+      "icon_id": "15838587",
+      "name": "check-item-filling",
+      "font_class": "check-item-filling",
+      "unicode": "e68e",
+      "unicode_decimal": 59022
+    },
+    {
+      "icon_id": "15838588",
+      "name": "clock-filling",
+      "font_class": "clock-filling",
+      "unicode": "e68f",
+      "unicode_decimal": 59023
+    },
+    {
+      "icon_id": "15838589",
+      "name": "delete-filling",
+      "font_class": "delete-filling",
+      "unicode": "e690",
+      "unicode_decimal": 59024
+    },
+    {
+      "icon_id": "15838590",
+      "name": "decline-filling",
+      "font_class": "decline-filling",
+      "unicode": "e691",
+      "unicode_decimal": 59025
+    },
+    {
+      "icon_id": "15838591",
+      "name": "dynamic-filling",
+      "font_class": "dynamic-filling",
+      "unicode": "e692",
+      "unicode_decimal": 59026
+    },
+    {
+      "icon_id": "15838592",
+      "name": "intermediate-filling",
+      "font_class": "intermediate-filling",
+      "unicode": "e693",
+      "unicode_decimal": 59027
+    },
+    {
+      "icon_id": "15838593",
+      "name": "favorite-filling",
+      "font_class": "favorite-filling",
+      "unicode": "e694",
+      "unicode_decimal": 59028
+    },
+    {
+      "icon_id": "15838594",
+      "name": "layout-filling",
+      "font_class": "layout-filling",
+      "unicode": "e695",
+      "unicode_decimal": 59029
+    },
+    {
+      "icon_id": "15838595",
+      "name": "help-filling",
+      "font_class": "help-filling",
+      "unicode": "e696",
+      "unicode_decimal": 59030
+    },
+    {
+      "icon_id": "15838596",
+      "name": "history-filling",
+      "font_class": "history-filling",
+      "unicode": "e697",
+      "unicode_decimal": 59031
+    },
+    {
+      "icon_id": "15838597",
+      "name": "filter-filling",
+      "font_class": "filter-filling",
+      "unicode": "e698",
+      "unicode_decimal": 59032
+    },
+    {
+      "icon_id": "15838598",
+      "name": "file-common-filling",
+      "font_class": "file-common-filling",
+      "unicode": "e699",
+      "unicode_decimal": 59033
+    },
+    {
+      "icon_id": "15838599",
+      "name": "news-filling",
+      "font_class": "news-filling",
+      "unicode": "e69a",
+      "unicode_decimal": 59034
+    },
+    {
+      "icon_id": "15838600",
+      "name": "edit-filling",
+      "font_class": "edit-filling",
+      "unicode": "e69b",
+      "unicode_decimal": 59035
+    },
+    {
+      "icon_id": "15838601",
+      "name": "fullscreen-expand-filling",
+      "font_class": "fullscreen-expand-filling",
+      "unicode": "e69c",
+      "unicode_decimal": 59036
+    },
+    {
+      "icon_id": "15838602",
+      "name": "smile-filling",
+      "font_class": "smile-filling",
+      "unicode": "e69d",
+      "unicode_decimal": 59037
+    },
+    {
+      "icon_id": "15838603",
+      "name": "rise-filling",
+      "font_class": "rise-filling",
+      "unicode": "e69e",
+      "unicode_decimal": 59038
+    },
+    {
+      "icon_id": "15838604",
+      "name": "picture-filling",
+      "font_class": "picture-filling",
+      "unicode": "e69f",
+      "unicode_decimal": 59039
+    },
+    {
+      "icon_id": "15838605",
+      "name": "notification-filling",
+      "font_class": "notification-filling",
+      "unicode": "e6a0",
+      "unicode_decimal": 59040
+    },
+    {
+      "icon_id": "15838606",
+      "name": "user-filling",
+      "font_class": "user-filling",
+      "unicode": "e6a1",
+      "unicode_decimal": 59041
+    },
+    {
+      "icon_id": "15838607",
+      "name": "setting-filling",
+      "font_class": "setting-filling",
+      "unicode": "e6a2",
+      "unicode_decimal": 59042
+    },
+    {
+      "icon_id": "15838608",
+      "name": "switch-filling",
+      "font_class": "switch-filling",
+      "unicode": "e6a3",
+      "unicode_decimal": 59043
+    },
+    {
+      "icon_id": "15838609",
+      "name": "work-filling",
+      "font_class": "work-filling",
+      "unicode": "e6a4",
+      "unicode_decimal": 59044
+    },
+    {
+      "icon_id": "15838610",
+      "name": "task-filling",
+      "font_class": "task-filling",
+      "unicode": "e6a5",
+      "unicode_decimal": 59045
+    },
+    {
+      "icon_id": "15838611",
+      "name": "success-filling",
+      "font_class": "success-filling",
+      "unicode": "e6a6",
+      "unicode_decimal": 59046
+    },
+    {
+      "icon_id": "15838612",
+      "name": "warning-filling",
+      "font_class": "warning-filling",
+      "unicode": "e6a7",
+      "unicode_decimal": 59047
+    },
+    {
+      "icon_id": "15838613",
+      "name": "folder-filling",
+      "font_class": "folder-filling",
+      "unicode": "e6a8",
+      "unicode_decimal": 59048
+    },
+    {
+      "icon_id": "15838614",
+      "name": "map-filling",
+      "font_class": "map-filling",
+      "unicode": "e6a9",
+      "unicode_decimal": 59049
+    },
+    {
+      "icon_id": "15838615",
+      "name": "prompt-filling",
+      "font_class": "prompt-filling",
+      "unicode": "e6aa",
+      "unicode_decimal": 59050
+    },
+    {
+      "icon_id": "15838616",
+      "name": "meh-filling",
+      "font_class": "meh-filling",
+      "unicode": "e6ab",
+      "unicode_decimal": 59051
+    },
+    {
+      "icon_id": "15838617",
+      "name": "cry-filling",
+      "font_class": "cry-filling",
+      "unicode": "e6ac",
+      "unicode_decimal": 59052
+    },
+    {
+      "icon_id": "15838618",
+      "name": "top-filling",
+      "font_class": "top-filling",
+      "unicode": "e6ad",
+      "unicode_decimal": 59053
+    },
+    {
+      "icon_id": "15838619",
+      "name": "home-filling",
+      "font_class": "home-filling",
+      "unicode": "e6ae",
+      "unicode_decimal": 59054
+    },
+    {
+      "icon_id": "15838620",
+      "name": "sorting",
+      "font_class": "sorting",
+      "unicode": "e6af",
+      "unicode_decimal": 59055
+    }
+  ]
+}
diff --git a/snowy-admin-web/src/assets/icons/mobile/filled/iconfont.ttf b/snowy-admin-web/src/assets/icons/mobile/filled/iconfont.ttf
new file mode 100644
index 00000000..8fbd1813
Binary files /dev/null and b/snowy-admin-web/src/assets/icons/mobile/filled/iconfont.ttf differ
diff --git a/snowy-admin-web/src/assets/icons/mobile/index.js b/snowy-admin-web/src/assets/icons/mobile/index.js
new file mode 100644
index 00000000..d72c43aa
--- /dev/null
+++ b/snowy-admin-web/src/assets/icons/mobile/index.js
@@ -0,0 +1,57 @@
+/**
+ *  Copyright [2022] [https://www.xiaonuo.vip]
+ *	Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *	1.请不要删除和修改根目录下的LICENSE文件。
+ *	2.请不要删除和修改Snowy源码头部的版权声明。
+ *	3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ *	4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ *	5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ *	6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+import './line/iconfont.css'
+import lineJsonData from './line/iconfont.json'
+
+import './filled/iconfont.css'
+import filledJsonData from './filled/iconfont.json'
+
+import './square/iconfont.css'
+import squareJsonData from './square/iconfont.json'
+
+import './ring/iconfont.css'
+import ringJsonData from './ring/iconfont.json'
+export default {
+	icons: [
+		{
+			name: '基础',
+			key: 'default',
+			iconItem: [
+				{
+					name: '线框风格',
+					key: 'default',
+					item: lineJsonData.glyphs
+				},
+				{
+					name: '实底风格',
+					key: 'filled',
+					item: filledJsonData.glyphs
+				},
+			]
+		},
+		{
+			name: '其他',
+			key: 'other',
+			iconItem: [
+				{
+					name: '圆形风格',
+					key: 'default',
+					item: squareJsonData.glyphs
+				},
+				{
+					name: '方形风格',
+					key: 'ring',
+					item: ringJsonData.glyphs
+				},
+			]
+		}
+	]
+}
diff --git a/snowy-admin-web/src/assets/icons/mobile/line/iconfont.css b/snowy-admin-web/src/assets/icons/mobile/line/iconfont.css
new file mode 100644
index 00000000..4042c729
--- /dev/null
+++ b/snowy-admin-web/src/assets/icons/mobile/line/iconfont.css
@@ -0,0 +1,825 @@
+@font-face {
+  font-family: "snowy"; /* Project id 3791763 */
+  src: url('iconfont.ttf?t=1675526220710') format('truetype');
+}
+
+.snowy {
+  font-family: "snowy" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.export-outlined:before {
+  content: "\e792";
+}
+
+.experiment-outlined:before {
+  content: "\e7c9";
+}
+
+.expand-outlined:before {
+  content: "\e915";
+}
+
+.expand-alt-outlined:before {
+  content: "\e7e9";
+}
+
+.exception-outlined:before {
+  content: "\e7bb";
+}
+
+.euro-outlined:before {
+  content: "\e78f";
+}
+
+.euro-circle-outlined:before {
+  content: "\eb62";
+}
+
+.environment-outlined:before {
+  content: "\e790";
+}
+
+.ellipsis-outlined:before {
+  content: "\e815";
+}
+
+.download-outlined:before {
+  content: "\e814";
+}
+
+.dollar-outlined:before {
+  content: "\e78d";
+}
+
+.dollar-circle-outlined:before {
+  content: "\eb61";
+}
+
+.dislike-outlined:before {
+  content: "\e7c8";
+}
+
+.disconnect-outlined:before {
+  content: "\e7e8";
+}
+
+.dingtalk-outlined:before {
+  content: "\e881";
+}
+
+.desktop-outlined:before {
+  content: "\e845";
+}
+
+.deployment-unit-outlined:before {
+  content: "\e7d2";
+}
+
+.delivered-procedure-outlined:before {
+  content: "\e911";
+}
+
+.delete-column-outlined:before {
+  content: "\e901";
+}
+
+.delete-row-outlined:before {
+  content: "\e902";
+}
+
+.database-outlined:before {
+  content: "\e7b9";
+}
+
+.dashboard-outlined:before {
+  content: "\e78b";
+}
+
+.customer-service-outlined:before {
+  content: "\e7ca";
+}
+
+.crown-outlined:before {
+  content: "\e844";
+}
+
+.credit-card-outlined:before {
+  content: "\e7e5";
+}
+
+.copyright-outlined:before {
+  content: "\e789";
+}
+
+.copyright-circle-outlined:before {
+  content: "\eb60";
+}
+
+.control-outlined:before {
+  content: "\e79c";
+}
+
+.container-outlined:before {
+  content: "\e7b8";
+}
+
+.contacts-outlined:before {
+  content: "\e7e4";
+}
+
+.console-sql-outlined:before {
+  content: "\e910";
+}
+
+.compress-outlined:before {
+  content: "\e914";
+}
+
+.compass-outlined:before {
+  content: "\e786";
+}
+
+.comment-outlined:before {
+  content: "\e8ea";
+}
+
+.coffee-outlined:before {
+  content: "\e6b5";
+}
+
+.code-outlined:before {
+  content: "\e79b";
+}
+
+.cloud-server-outlined:before {
+  content: "\e7db";
+}
+
+.cloud-upload-outlined:before {
+  content: "\e7dc";
+}
+
+.cloud-outlined:before {
+  content: "\e7dd";
+}
+
+.cloud-download-outlined:before {
+  content: "\e7de";
+}
+
+.cloud-sync-outlined:before {
+  content: "\e7e0";
+}
+
+.clear-outlined:before {
+  content: "\e900";
+}
+
+.ci-circle-outlined:before {
+  content: "\e77f";
+}
+
+.carry-out-outlined:before {
+  content: "\e7d6";
+}
+
+.car-outlined:before {
+  content: "\e7da";
+}
+
+.ci-outlined:before {
+  content: "\eb5f";
+}
+
+.camera-outlined:before {
+  content: "\e7d9";
+}
+
+.calendar-outlined:before {
+  content: "\e7d4";
+}
+
+.calculator-outlined:before {
+  content: "\e79a";
+}
+
+.bulb-outlined:before {
+  content: "\e7c7";
+}
+
+.build-outlined:before {
+  content: "\e7d5";
+}
+
+.bug-outlined:before {
+  content: "\e8e9";
+}
+
+.branches-outlined:before {
+  content: "\e7e7";
+}
+
+.borderless-table-outlined:before {
+  content: "\e813";
+}
+
+.border-outlined:before {
+  content: "\e7b7";
+}
+
+.book-outlined:before {
+  content: "\e7b6";
+}
+
+.block-outlined:before {
+  content: "\e7df";
+}
+
+.bell-outlined:before {
+  content: "\e7c5";
+}
+
+.bars-outlined:before {
+  content: "\e71a";
+}
+
+.barcode-outlined:before {
+  content: "\e7d8";
+}
+
+.bank-outlined:before {
+  content: "\e7c6";
+}
+
+.audit-outlined:before {
+  content: "\e7c0";
+}
+
+.audio-outlined:before {
+  content: "\e89b";
+}
+
+.audio-muted-outlined:before {
+  content: "\e8e8";
+}
+
+.api-outlined:before {
+  content: "\e7e3";
+}
+
+.apartment-outlined:before {
+  content: "\e89a";
+}
+
+.alert-outlined:before {
+  content: "\e7c4";
+}
+
+.aim-outlined:before {
+  content: "\e913";
+}
+
+.account-book-outlined:before {
+  content: "\e7d3";
+}
+
+.column-height-outlined:before {
+  content: "\e811";
+}
+
+.column-width-outlined:before {
+  content: "\e812";
+}
+
+.radius-setting-outlined:before {
+  content: "\e7b5";
+}
+
+.unordered-list-outlined:before {
+  content: "\e80f";
+}
+
+.ordered-list-outlined:before {
+  content: "\e810";
+}
+
+.drag-outlined:before {
+  content: "\e843";
+}
+
+.sort-descending-outlined:before {
+  content: "\e80d";
+}
+
+.sort-ascending-outlined:before {
+  content: "\e80e";
+}
+
+.font-colors-outlined:before {
+  content: "\e808";
+}
+
+.font-size-outlined:before {
+  content: "\e809";
+}
+
+.line-height-outlined:before {
+  content: "\e80a";
+}
+
+.dash-outlined:before {
+  content: "\e80b";
+}
+
+.small-dash-outlined:before {
+  content: "\e80c";
+}
+
+.zoom-out-outlined:before {
+  content: "\e898";
+}
+
+.zoom-in-outlined:before {
+  content: "\e899";
+}
+
+.undo-outlined:before {
+  content: "\e787";
+}
+
+.redo-outlined:before {
+  content: "\e788";
+}
+
+.bold-outlined:before {
+  content: "\e804";
+}
+
+.strikethrough-outlined:before {
+  content: "\e805";
+}
+
+.underline-outlined:before {
+  content: "\e806";
+}
+
+.italic-outlined:before {
+  content: "\e807";
+}
+
+.bg-colors-outlined:before {
+  content: "\e803";
+}
+
+.align-right-outlined:before {
+  content: "\e7fb";
+}
+
+.align-left-outlined:before {
+  content: "\e802";
+}
+
+.align-center-outlined:before {
+  content: "\e7f5";
+}
+
+.highlight-outlined:before {
+  content: "\e7e2";
+}
+
+.diff-outlined:before {
+  content: "\e7bf";
+}
+
+.snippets-outlined:before {
+  content: "\e7bd";
+}
+
+.delete-outlined:before {
+  content: "\e7c3";
+}
+
+.scissor-outlined:before {
+  content: "\e7e6";
+}
+
+.copy-outlined:before {
+  content: "\e7bc";
+}
+
+.form-outlined:before {
+  content: "\e791";
+}
+
+.edit-outlined:before {
+  content: "\e7e1";
+}
+
+.stop-outlined:before {
+  content: "\e842";
+}
+
+.issues-close-outlined:before {
+  content: "\e68e";
+}
+
+.warning-outlined:before {
+  content: "\e682";
+}
+
+.clock-circle-outlined:before {
+  content: "\e784";
+}
+
+.check-circle-outlined:before {
+  content: "\e77d";
+}
+
+.check-square-outlined:before {
+  content: "\e794";
+}
+
+.check-outlined:before {
+  content: "\e7fc";
+}
+
+.exclamation-circle-outlined:before {
+  content: "\e785";
+}
+
+.exclamation-outlined:before {
+  content: "\e7fa";
+}
+
+.info-circle-outlined:before {
+  content: "\e77e";
+}
+
+.info-outlined:before {
+  content: "\e7f9";
+}
+
+.minus-square-outlined:before {
+  content: "\e796";
+}
+
+.plus-square-outlined:before {
+  content: "\e797";
+}
+
+.minus-circle-outlined:before {
+  content: "\e780";
+}
+
+.minus-outlined:before {
+  content: "\e801";
+}
+
+.pause-circle-outlined:before {
+  content: "\e783";
+}
+
+.pause-outlined:before {
+  content: "\e800";
+}
+
+.plus-circle-outlined:before {
+  content: "\e781";
+}
+
+.plus-outlined:before {
+  content: "\e8fe";
+}
+
+.question-circle-outlined:before {
+  content: "\e782";
+}
+
+.question-outlined:before {
+  content: "\e7ff";
+}
+
+.fullscreen-outlined:before {
+  content: "\e7ec";
+}
+
+.fullscreen-exit-outlined:before {
+  content: "\e7ed";
+}
+
+.radius-bottomleft-outlined:before {
+  content: "\e7b1";
+}
+
+.radius-bottomright-outlined:before {
+  content: "\e7b2";
+}
+
+.radius-upleft-outlined:before {
+  content: "\e7b3";
+}
+
+.radius-upright-outlined:before {
+  content: "\e7b4";
+}
+
+.pic-center-outlined:before {
+  content: "\e7f6";
+}
+
+.pic-right-outlined:before {
+  content: "\e7f7";
+}
+
+.pic-left-outlined:before {
+  content: "\e7f8";
+}
+
+.border-outer-outlined:before {
+  content: "\e7a9";
+}
+
+.border-top-outlined:before {
+  content: "\e7aa";
+}
+
+.border-bottom-outlined:before {
+  content: "\e7ab";
+}
+
+.border-left-outlined:before {
+  content: "\e7ac";
+}
+
+.border-right-outlined:before {
+  content: "\e7ad";
+}
+
+.border-inner-outlined:before {
+  content: "\e7ae";
+}
+
+.border-verticle-outlined:before {
+  content: "\e7af";
+}
+
+.border-horizontal-outlined:before {
+  content: "\e7b0";
+}
+
+.menu-unfold-outlined:before {
+  content: "\e7f3";
+}
+
+.menu-fold-outlined:before {
+  content: "\e7f4";
+}
+
+.logout-outlined:before {
+  content: "\e78c";
+}
+
+.login-outlined:before {
+  content: "\e8f4";
+}
+
+.cluster-outlined:before {
+  content: "\e7d7";
+}
+
+.down-square-outlined:before {
+  content: "\e793";
+}
+
+.left-square-outlined:before {
+  content: "\e795";
+}
+
+.right-square-outlined:before {
+  content: "\e798";
+}
+
+.up-Square-outlined:before {
+  content: "\e799";
+}
+
+.play-circle-outlined:before {
+  content: "\e67a";
+}
+
+.arrow-down-outlined:before {
+  content: "\e66d";
+}
+
+.arrow-right-outlined:before {
+  content: "\e66e";
+}
+
+.arrow-up-outlined:before {
+  content: "\e66f";
+}
+
+.arrow-left-outlined:before {
+  content: "\e670";
+}
+
+.swap-outlined:before {
+  content: "\e7f2";
+}
+
+.swap-right-outlined:before {
+  content: "\e8f2";
+}
+
+.swap-left-outlined:before {
+  content: "\e8f3";
+}
+
+.enter-outlined:before {
+  content: "\e7fd";
+}
+
+.rollback-outlined:before {
+  content: "\e7fe";
+}
+
+.retweet-outlined:before {
+  content: "\e8f1";
+}
+
+.fast-backward-outlined:before {
+  content: "\e8ed";
+}
+
+.fast-forward-outlined:before {
+  content: "\e8ee";
+}
+
+.vertical-align-bottom-outlined:before {
+  content: "\e7ef";
+}
+
+.vertical-align-middle-outlined:before {
+  content: "\e7f0";
+}
+
+.vertical-align-top-outlined:before {
+  content: "\e7f1";
+}
+
+.vertical-right-outlined:before {
+  content: "\e7ea";
+}
+
+.vertical-left-outlined:before {
+  content: "\e7eb";
+}
+
+.double-left-outlined:before {
+  content: "\e66b";
+}
+
+.double-right-outlined:before {
+  content: "\e66c";
+}
+
+.up-circle-outlined:before {
+  content: "\e666";
+}
+
+.right-circle-outlined:before {
+  content: "\e667";
+}
+
+.left-circle-outlined:before {
+  content: "\e66a";
+}
+
+.down-circle-outlined:before {
+  content: "\eb5e";
+}
+
+.caret-up-outlined:before {
+  content: "\e689";
+}
+
+.caret-down-outlined:before {
+  content: "\e68a";
+}
+
+.caret-left-outlined:before {
+  content: "\e68b";
+}
+
+.caret-right-outlined:before {
+  content: "\e68c";
+}
+
+.left-outlined:before {
+  content: "\e685";
+}
+
+.up-outlined:before {
+  content: "\e686";
+}
+
+.down-outlined:before {
+  content: "\e687";
+}
+
+.right-outlined:before {
+  content: "\e688";
+}
+
+.arrows-alt-outlined:before {
+  content: "\e665";
+}
+
+.shrink-outlined:before {
+  content: "\e68d";
+}
+
+.step-backward-outlined:before {
+  content: "\e8ef";
+}
+
+.step-forward-outlined:before {
+  content: "\e8f0";
+}
+
+.robot-outlined:before {
+  content: "\e897";
+}
+
+.file-word-outlined:before {
+  content: "\e7ba";
+}
+
+.usergroup-delete-outlined:before {
+  content: "\e760";
+}
+
+.field-time-outlined:before {
+  content: "\eb5d";
+}
+
+.setting-outlined:before {
+  content: "\e78e";
+}
+
+.file-search-outlined:before {
+  content: "\e730";
+}
+
+.team-outlined:before {
+  content: "\e67d";
+}
+
+.message-outlined:before {
+  content: "\e78a";
+}
+
+.mail-outlined:before {
+  content: "\e62e";
+}
+
+.send-outlined:before {
+  content: "\e622";
+}
+
+.appstore-add-outlined:before {
+  content: "\e8eb";
+}
+
+.user-outlined:before {
+  content: "\e641";
+}
+
+.project-outlined:before {
+  content: "\e746";
+}
+
+.hdd-outlined:before {
+  content: "\e734";
+}
+
+.tool-outlined:before {
+  content: "\e75b";
+}
+
+.user-switch-outlined:before {
+  content: "\ea3d";
+}
+
+.appstore-outlined:before {
+  content: "\e601";
+}
+
+.home-outlined:before {
+  content: "\e965";
+}
+
diff --git a/snowy-admin-web/src/assets/icons/mobile/line/iconfont.json b/snowy-admin-web/src/assets/icons/mobile/line/iconfont.json
new file mode 100644
index 00000000..6f38067a
--- /dev/null
+++ b/snowy-admin-web/src/assets/icons/mobile/line/iconfont.json
@@ -0,0 +1,1430 @@
+{
+  "id": "3791763",
+  "name": "snowy-app",
+  "font_family": "snowy",
+  "css_prefix_text": "",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "4765958",
+      "name": "export",
+      "font_class": "export-outlined",
+      "unicode": "e792",
+      "unicode_decimal": 59282
+    },
+    {
+      "icon_id": "4766679",
+      "name": "experiment",
+      "font_class": "experiment-outlined",
+      "unicode": "e7c9",
+      "unicode_decimal": 59337
+    },
+    {
+      "icon_id": "9230692",
+      "name": "expend",
+      "font_class": "expand-outlined",
+      "unicode": "e915",
+      "unicode_decimal": 59669
+    },
+    {
+      "icon_id": "4767007",
+      "name": "arrawsalt",
+      "font_class": "expand-alt-outlined",
+      "unicode": "e7e9",
+      "unicode_decimal": 59369
+    },
+    {
+      "icon_id": "4766461",
+      "name": "file -exception",
+      "font_class": "exception-outlined",
+      "unicode": "e7bb",
+      "unicode_decimal": 59323
+    },
+    {
+      "icon_id": "4765730",
+      "name": "EURO",
+      "font_class": "euro-outlined",
+      "unicode": "e78f",
+      "unicode_decimal": 59279
+    },
+    {
+      "icon_id": "33968870",
+      "name": "EURO-copy",
+      "font_class": "euro-circle-outlined",
+      "unicode": "eb62",
+      "unicode_decimal": 60258
+    },
+    {
+      "icon_id": "4765897",
+      "name": "location",
+      "font_class": "environment-outlined",
+      "unicode": "e790",
+      "unicode_decimal": 59280
+    },
+    {
+      "icon_id": "4767094",
+      "name": "ellipsis",
+      "font_class": "ellipsis-outlined",
+      "unicode": "e815",
+      "unicode_decimal": 59413
+    },
+    {
+      "icon_id": "4767031",
+      "name": "download",
+      "font_class": "download-outlined",
+      "unicode": "e814",
+      "unicode_decimal": 59412
+    },
+    {
+      "icon_id": "4765723",
+      "name": "Dollar",
+      "font_class": "dollar-outlined",
+      "unicode": "e78d",
+      "unicode_decimal": 59277
+    },
+    {
+      "icon_id": "33968867",
+      "name": "Dollar-copy",
+      "font_class": "dollar-circle-outlined",
+      "unicode": "eb61",
+      "unicode_decimal": 60257
+    },
+    {
+      "icon_id": "4766693",
+      "name": "unlike",
+      "font_class": "dislike-outlined",
+      "unicode": "e7c8",
+      "unicode_decimal": 59336
+    },
+    {
+      "icon_id": "4766962",
+      "name": "disconnect",
+      "font_class": "disconnect-outlined",
+      "unicode": "e7e8",
+      "unicode_decimal": 59368
+    },
+    {
+      "icon_id": "4936979",
+      "name": "dingtalk",
+      "font_class": "dingtalk-outlined",
+      "unicode": "e881",
+      "unicode_decimal": 59521
+    },
+    {
+      "icon_id": "4936457",
+      "name": "desktop",
+      "font_class": "desktop-outlined",
+      "unicode": "e845",
+      "unicode_decimal": 59461
+    },
+    {
+      "icon_id": "4766849",
+      "name": "deployment unit",
+      "font_class": "deployment-unit-outlined",
+      "unicode": "e7d2",
+      "unicode_decimal": 59346
+    },
+    {
+      "icon_id": "9229182",
+      "name": "Stored procedure",
+      "font_class": "delivered-procedure-outlined",
+      "unicode": "e911",
+      "unicode_decimal": 59665
+    },
+    {
+      "icon_id": "8094808",
+      "name": "delete column",
+      "font_class": "delete-column-outlined",
+      "unicode": "e901",
+      "unicode_decimal": 59649
+    },
+    {
+      "icon_id": "8094822",
+      "name": "delete row",
+      "font_class": "delete-row-outlined",
+      "unicode": "e902",
+      "unicode_decimal": 59650
+    },
+    {
+      "icon_id": "4766439",
+      "name": "database",
+      "font_class": "database-outlined",
+      "unicode": "e7b9",
+      "unicode_decimal": 59321
+    },
+    {
+      "icon_id": "4765881",
+      "name": "dashboard",
+      "font_class": "dashboard-outlined",
+      "unicode": "e78b",
+      "unicode_decimal": 59275
+    },
+    {
+      "icon_id": "4766762",
+      "name": "customerservice",
+      "font_class": "customer-service-outlined",
+      "unicode": "e7ca",
+      "unicode_decimal": 59338
+    },
+    {
+      "icon_id": "4936455",
+      "name": "crown",
+      "font_class": "crown-outlined",
+      "unicode": "e844",
+      "unicode_decimal": 59460
+    },
+    {
+      "icon_id": "4766921",
+      "name": "credit card",
+      "font_class": "credit-card-outlined",
+      "unicode": "e7e5",
+      "unicode_decimal": 59365
+    },
+    {
+      "icon_id": "4765731",
+      "name": "copyright",
+      "font_class": "copyright-outlined",
+      "unicode": "e789",
+      "unicode_decimal": 59273
+    },
+    {
+      "icon_id": "33968858",
+      "name": "copyright-copy",
+      "font_class": "copyright-circle-outlined",
+      "unicode": "eb60",
+      "unicode_decimal": 60256
+    },
+    {
+      "icon_id": "4765969",
+      "name": "control",
+      "font_class": "control-outlined",
+      "unicode": "e79c",
+      "unicode_decimal": 59292
+    },
+    {
+      "icon_id": "4766438",
+      "name": "container",
+      "font_class": "container-outlined",
+      "unicode": "e7b8",
+      "unicode_decimal": 59320
+    },
+    {
+      "icon_id": "4766855",
+      "name": "contacts",
+      "font_class": "contacts-outlined",
+      "unicode": "e7e4",
+      "unicode_decimal": 59364
+    },
+    {
+      "icon_id": "9229185",
+      "name": "Console-SQL",
+      "font_class": "console-sql-outlined",
+      "unicode": "e910",
+      "unicode_decimal": 59664
+    },
+    {
+      "icon_id": "9230691",
+      "name": "compress",
+      "font_class": "compress-outlined",
+      "unicode": "e914",
+      "unicode_decimal": 59668
+    },
+    {
+      "icon_id": "4765724",
+      "name": "compass",
+      "font_class": "compass-outlined",
+      "unicode": "e786",
+      "unicode_decimal": 59270
+    },
+    {
+      "icon_id": "6598316",
+      "name": "comment",
+      "font_class": "comment-outlined",
+      "unicode": "e8ea",
+      "unicode_decimal": 59626
+    },
+    {
+      "icon_id": "12258804",
+      "name": "coffee",
+      "font_class": "coffee-outlined",
+      "unicode": "e6b5",
+      "unicode_decimal": 59061
+    },
+    {
+      "icon_id": "4765970",
+      "name": "code library",
+      "font_class": "code-outlined",
+      "unicode": "e79b",
+      "unicode_decimal": 59291
+    },
+    {
+      "icon_id": "4766900",
+      "name": "cloud-server",
+      "font_class": "cloud-server-outlined",
+      "unicode": "e7db",
+      "unicode_decimal": 59355
+    },
+    {
+      "icon_id": "4766901",
+      "name": "cloud-upload",
+      "font_class": "cloud-upload-outlined",
+      "unicode": "e7dc",
+      "unicode_decimal": 59356
+    },
+    {
+      "icon_id": "4766902",
+      "name": "cloud",
+      "font_class": "cloud-outlined",
+      "unicode": "e7dd",
+      "unicode_decimal": 59357
+    },
+    {
+      "icon_id": "4766903",
+      "name": "cloud-download",
+      "font_class": "cloud-download-outlined",
+      "unicode": "e7de",
+      "unicode_decimal": 59358
+    },
+    {
+      "icon_id": "4766904",
+      "name": "cloud-sync",
+      "font_class": "cloud-sync-outlined",
+      "unicode": "e7e0",
+      "unicode_decimal": 59360
+    },
+    {
+      "icon_id": "8094805",
+      "name": "clear",
+      "font_class": "clear-outlined",
+      "unicode": "e900",
+      "unicode_decimal": 59648
+    },
+    {
+      "icon_id": "4765722",
+      "name": "CI",
+      "font_class": "ci-circle-outlined",
+      "unicode": "e77f",
+      "unicode_decimal": 59263
+    },
+    {
+      "icon_id": "4766856",
+      "name": "carry out",
+      "font_class": "carry-out-outlined",
+      "unicode": "e7d6",
+      "unicode_decimal": 59350
+    },
+    {
+      "icon_id": "4766886",
+      "name": "car",
+      "font_class": "car-outlined",
+      "unicode": "e7da",
+      "unicode_decimal": 59354
+    },
+    {
+      "icon_id": "33968843",
+      "name": "CI-copy",
+      "font_class": "ci-outlined",
+      "unicode": "eb5f",
+      "unicode_decimal": 60255
+    },
+    {
+      "icon_id": "4766883",
+      "name": "camera",
+      "font_class": "camera-outlined",
+      "unicode": "e7d9",
+      "unicode_decimal": 59353
+    },
+    {
+      "icon_id": "4766858",
+      "name": "calendar",
+      "font_class": "calendar-outlined",
+      "unicode": "e7d4",
+      "unicode_decimal": 59348
+    },
+    {
+      "icon_id": "4765978",
+      "name": "calculator",
+      "font_class": "calculator-outlined",
+      "unicode": "e79a",
+      "unicode_decimal": 59290
+    },
+    {
+      "icon_id": "4766678",
+      "name": "bulb",
+      "font_class": "bulb-outlined",
+      "unicode": "e7c7",
+      "unicode_decimal": 59335
+    },
+    {
+      "icon_id": "4766872",
+      "name": "build",
+      "font_class": "build-outlined",
+      "unicode": "e7d5",
+      "unicode_decimal": 59349
+    },
+    {
+      "icon_id": "6598314",
+      "name": "bug",
+      "font_class": "bug-outlined",
+      "unicode": "e8e9",
+      "unicode_decimal": 59625
+    },
+    {
+      "icon_id": "4766986",
+      "name": "branches",
+      "font_class": "branches-outlined",
+      "unicode": "e7e7",
+      "unicode_decimal": 59367
+    },
+    {
+      "icon_id": "4767086",
+      "name": "number",
+      "font_class": "borderless-table-outlined",
+      "unicode": "e813",
+      "unicode_decimal": 59411
+    },
+    {
+      "icon_id": "4766265",
+      "name": "border",
+      "font_class": "border-outlined",
+      "unicode": "e7b7",
+      "unicode_decimal": 59319
+    },
+    {
+      "icon_id": "4766454",
+      "name": "book",
+      "font_class": "book-outlined",
+      "unicode": "e7b6",
+      "unicode_decimal": 59318
+    },
+    {
+      "icon_id": "4766952",
+      "name": "block",
+      "font_class": "block-outlined",
+      "unicode": "e7df",
+      "unicode_decimal": 59359
+    },
+    {
+      "icon_id": "4766680",
+      "name": "bell",
+      "font_class": "bell-outlined",
+      "unicode": "e7c5",
+      "unicode_decimal": 59333
+    },
+    {
+      "icon_id": "7239635",
+      "name": "bars",
+      "font_class": "bars-outlined",
+      "unicode": "e71a",
+      "unicode_decimal": 59162
+    },
+    {
+      "icon_id": "4766882",
+      "name": "barcode",
+      "font_class": "barcode-outlined",
+      "unicode": "e7d8",
+      "unicode_decimal": 59352
+    },
+    {
+      "icon_id": "4766686",
+      "name": "bank",
+      "font_class": "bank-outlined",
+      "unicode": "e7c6",
+      "unicode_decimal": 59334
+    },
+    {
+      "icon_id": "4766507",
+      "name": "audit",
+      "font_class": "audit-outlined",
+      "unicode": "e7c0",
+      "unicode_decimal": 59328
+    },
+    {
+      "icon_id": "5756281",
+      "name": "audio",
+      "font_class": "audio-outlined",
+      "unicode": "e89b",
+      "unicode_decimal": 59547
+    },
+    {
+      "icon_id": "6598315",
+      "name": "audio static",
+      "font_class": "audio-muted-outlined",
+      "unicode": "e8e8",
+      "unicode_decimal": 59624
+    },
+    {
+      "icon_id": "4766961",
+      "name": "api",
+      "font_class": "api-outlined",
+      "unicode": "e7e3",
+      "unicode_decimal": 59363
+    },
+    {
+      "icon_id": "5756280",
+      "name": "apartment",
+      "font_class": "apartment-outlined",
+      "unicode": "e89a",
+      "unicode_decimal": 59546
+    },
+    {
+      "icon_id": "4766675",
+      "name": "alert",
+      "font_class": "alert-outlined",
+      "unicode": "e7c4",
+      "unicode_decimal": 59332
+    },
+    {
+      "icon_id": "9230690",
+      "name": "aim",
+      "font_class": "aim-outlined",
+      "unicode": "e913",
+      "unicode_decimal": 59667
+    },
+    {
+      "icon_id": "4766854",
+      "name": "account book",
+      "font_class": "account-book-outlined",
+      "unicode": "e7d3",
+      "unicode_decimal": 59347
+    },
+    {
+      "icon_id": "4767026",
+      "name": "colum-height",
+      "font_class": "column-height-outlined",
+      "unicode": "e811",
+      "unicode_decimal": 59409
+    },
+    {
+      "icon_id": "4767092",
+      "name": "column-width",
+      "font_class": "column-width-outlined",
+      "unicode": "e812",
+      "unicode_decimal": 59410
+    },
+    {
+      "icon_id": "4766286",
+      "name": "radius-setting",
+      "font_class": "radius-setting-outlined",
+      "unicode": "e7b5",
+      "unicode_decimal": 59317
+    },
+    {
+      "icon_id": "4767060",
+      "name": "unordered list",
+      "font_class": "unordered-list-outlined",
+      "unicode": "e80f",
+      "unicode_decimal": 59407
+    },
+    {
+      "icon_id": "4767061",
+      "name": "ordered list",
+      "font_class": "ordered-list-outlined",
+      "unicode": "e810",
+      "unicode_decimal": 59408
+    },
+    {
+      "icon_id": "4936456",
+      "name": "drag",
+      "font_class": "drag-outlined",
+      "unicode": "e843",
+      "unicode_decimal": 59459
+    },
+    {
+      "icon_id": "4767038",
+      "name": "sort-descending",
+      "font_class": "sort-descending-outlined",
+      "unicode": "e80d",
+      "unicode_decimal": 59405
+    },
+    {
+      "icon_id": "4767039",
+      "name": "sort-ascending",
+      "font_class": "sort-ascending-outlined",
+      "unicode": "e80e",
+      "unicode_decimal": 59406
+    },
+    {
+      "icon_id": "4767079",
+      "name": "font-colors",
+      "font_class": "font-colors-outlined",
+      "unicode": "e808",
+      "unicode_decimal": 59400
+    },
+    {
+      "icon_id": "4767081",
+      "name": "font-size",
+      "font_class": "font-size-outlined",
+      "unicode": "e809",
+      "unicode_decimal": 59401
+    },
+    {
+      "icon_id": "4767083",
+      "name": "line-height",
+      "font_class": "line-height-outlined",
+      "unicode": "e80a",
+      "unicode_decimal": 59402
+    },
+    {
+      "icon_id": "4767095",
+      "name": "dash",
+      "font_class": "dash-outlined",
+      "unicode": "e80b",
+      "unicode_decimal": 59403
+    },
+    {
+      "icon_id": "4767103",
+      "name": "small-dash",
+      "font_class": "small-dash-outlined",
+      "unicode": "e80c",
+      "unicode_decimal": 59404
+    },
+    {
+      "icon_id": "5756279",
+      "name": "zoom out",
+      "font_class": "zoom-out-outlined",
+      "unicode": "e898",
+      "unicode_decimal": 59544
+    },
+    {
+      "icon_id": "5756284",
+      "name": "zoom in",
+      "font_class": "zoom-in-outlined",
+      "unicode": "e899",
+      "unicode_decimal": 59545
+    },
+    {
+      "icon_id": "4765837",
+      "name": "undo",
+      "font_class": "undo-outlined",
+      "unicode": "e787",
+      "unicode_decimal": 59271
+    },
+    {
+      "icon_id": "4765838",
+      "name": "redo",
+      "font_class": "redo-outlined",
+      "unicode": "e788",
+      "unicode_decimal": 59272
+    },
+    {
+      "icon_id": "4767078",
+      "name": "bold",
+      "font_class": "bold-outlined",
+      "unicode": "e804",
+      "unicode_decimal": 59396
+    },
+    {
+      "icon_id": "4767084",
+      "name": "strikethrough",
+      "font_class": "strikethrough-outlined",
+      "unicode": "e805",
+      "unicode_decimal": 59397
+    },
+    {
+      "icon_id": "4767085",
+      "name": "underline",
+      "font_class": "underline-outlined",
+      "unicode": "e806",
+      "unicode_decimal": 59398
+    },
+    {
+      "icon_id": "4767087",
+      "name": "italic",
+      "font_class": "italic-outlined",
+      "unicode": "e807",
+      "unicode_decimal": 59399
+    },
+    {
+      "icon_id": "4767106",
+      "name": "bg-colors",
+      "font_class": "bg-colors-outlined",
+      "unicode": "e803",
+      "unicode_decimal": 59395
+    },
+    {
+      "icon_id": "4767062",
+      "name": "align-right",
+      "font_class": "align-right-outlined",
+      "unicode": "e7fb",
+      "unicode_decimal": 59387
+    },
+    {
+      "icon_id": "4767064",
+      "name": "align-left",
+      "font_class": "align-left-outlined",
+      "unicode": "e802",
+      "unicode_decimal": 59394
+    },
+    {
+      "icon_id": "4767063",
+      "name": "align-center",
+      "font_class": "align-center-outlined",
+      "unicode": "e7f5",
+      "unicode_decimal": 59381
+    },
+    {
+      "icon_id": "4766963",
+      "name": "highlight",
+      "font_class": "highlight-outlined",
+      "unicode": "e7e2",
+      "unicode_decimal": 59362
+    },
+    {
+      "icon_id": "4766508",
+      "name": "diff",
+      "font_class": "diff-outlined",
+      "unicode": "e7bf",
+      "unicode_decimal": 59327
+    },
+    {
+      "icon_id": "4766482",
+      "name": "snippets",
+      "font_class": "snippets-outlined",
+      "unicode": "e7bd",
+      "unicode_decimal": 59325
+    },
+    {
+      "icon_id": "4766676",
+      "name": "delete",
+      "font_class": "delete-outlined",
+      "unicode": "e7c3",
+      "unicode_decimal": 59331
+    },
+    {
+      "icon_id": "4766982",
+      "name": "scissor",
+      "font_class": "scissor-outlined",
+      "unicode": "e7e6",
+      "unicode_decimal": 59366
+    },
+    {
+      "icon_id": "4766481",
+      "name": "file-copy",
+      "font_class": "copy-outlined",
+      "unicode": "e7bc",
+      "unicode_decimal": 59324
+    },
+    {
+      "icon_id": "4765957",
+      "name": "edit-square",
+      "font_class": "form-outlined",
+      "unicode": "e791",
+      "unicode_decimal": 59281
+    },
+    {
+      "icon_id": "4766959",
+      "name": "edit",
+      "font_class": "edit-outlined",
+      "unicode": "e7e1",
+      "unicode_decimal": 59361
+    },
+    {
+      "icon_id": "4936459",
+      "name": "stop",
+      "font_class": "stop-outlined",
+      "unicode": "e842",
+      "unicode_decimal": 59458
+    },
+    {
+      "icon_id": "23563617",
+      "name": "WarningOctagon",
+      "font_class": "issues-close-outlined",
+      "unicode": "e68e",
+      "unicode_decimal": 59022
+    },
+    {
+      "icon_id": "15838551",
+      "name": "warning",
+      "font_class": "warning-outlined",
+      "unicode": "e682",
+      "unicode_decimal": 59010
+    },
+    {
+      "icon_id": "4765741",
+      "name": "time-circle",
+      "font_class": "clock-circle-outlined",
+      "unicode": "e784",
+      "unicode_decimal": 59268
+    },
+    {
+      "icon_id": "4765725",
+      "name": "close-circle",
+      "font_class": "check-circle-outlined",
+      "unicode": "e77d",
+      "unicode_decimal": 59261
+    },
+    {
+      "icon_id": "4765964",
+      "name": "close-square",
+      "font_class": "check-square-outlined",
+      "unicode": "e794",
+      "unicode_decimal": 59284
+    },
+    {
+      "icon_id": "4767096",
+      "name": "close",
+      "font_class": "check-outlined",
+      "unicode": "e7fc",
+      "unicode_decimal": 59388
+    },
+    {
+      "icon_id": "4765746",
+      "name": "warning-circle",
+      "font_class": "exclamation-circle-outlined",
+      "unicode": "e785",
+      "unicode_decimal": 59269
+    },
+    {
+      "icon_id": "4767080",
+      "name": "exclaimination",
+      "font_class": "exclamation-outlined",
+      "unicode": "e7fa",
+      "unicode_decimal": 59386
+    },
+    {
+      "icon_id": "4765727",
+      "name": "info-circle",
+      "font_class": "info-circle-outlined",
+      "unicode": "e77e",
+      "unicode_decimal": 59262
+    },
+    {
+      "icon_id": "4767082",
+      "name": "infomation",
+      "font_class": "info-outlined",
+      "unicode": "e7f9",
+      "unicode_decimal": 59385
+    },
+    {
+      "icon_id": "4765972",
+      "name": "minus-square",
+      "font_class": "minus-square-outlined",
+      "unicode": "e796",
+      "unicode_decimal": 59286
+    },
+    {
+      "icon_id": "4765973",
+      "name": "plus-square",
+      "font_class": "plus-square-outlined",
+      "unicode": "e797",
+      "unicode_decimal": 59287
+    },
+    {
+      "icon_id": "4765732",
+      "name": "minus-circle",
+      "font_class": "minus-circle-outlined",
+      "unicode": "e780",
+      "unicode_decimal": 59264
+    },
+    {
+      "icon_id": "4767099",
+      "name": "minus",
+      "font_class": "minus-outlined",
+      "unicode": "e801",
+      "unicode_decimal": 59393
+    },
+    {
+      "icon_id": "4765742",
+      "name": "time out",
+      "font_class": "pause-circle-outlined",
+      "unicode": "e783",
+      "unicode_decimal": 59267
+    },
+    {
+      "icon_id": "4767104",
+      "name": "pause",
+      "font_class": "pause-outlined",
+      "unicode": "e800",
+      "unicode_decimal": 59392
+    },
+    {
+      "icon_id": "4765734",
+      "name": "plus-circle",
+      "font_class": "plus-circle-outlined",
+      "unicode": "e781",
+      "unicode_decimal": 59265
+    },
+    {
+      "icon_id": "7834345",
+      "name": "plus",
+      "font_class": "plus-outlined",
+      "unicode": "e8fe",
+      "unicode_decimal": 59646
+    },
+    {
+      "icon_id": "4765736",
+      "name": "question-circle",
+      "font_class": "question-circle-outlined",
+      "unicode": "e782",
+      "unicode_decimal": 59266
+    },
+    {
+      "icon_id": "4767100",
+      "name": "question",
+      "font_class": "question-outlined",
+      "unicode": "e7ff",
+      "unicode_decimal": 59391
+    },
+    {
+      "icon_id": "4767015",
+      "name": "fullscreen",
+      "font_class": "fullscreen-outlined",
+      "unicode": "e7ec",
+      "unicode_decimal": 59372
+    },
+    {
+      "icon_id": "4767016",
+      "name": "fullscreen-exit",
+      "font_class": "fullscreen-exit-outlined",
+      "unicode": "e7ed",
+      "unicode_decimal": 59373
+    },
+    {
+      "icon_id": "4766282",
+      "name": "radius-bottomleft",
+      "font_class": "radius-bottomleft-outlined",
+      "unicode": "e7b1",
+      "unicode_decimal": 59313
+    },
+    {
+      "icon_id": "4766283",
+      "name": "radius-bottomright",
+      "font_class": "radius-bottomright-outlined",
+      "unicode": "e7b2",
+      "unicode_decimal": 59314
+    },
+    {
+      "icon_id": "4766284",
+      "name": "radius-upleft",
+      "font_class": "radius-upleft-outlined",
+      "unicode": "e7b3",
+      "unicode_decimal": 59315
+    },
+    {
+      "icon_id": "4766285",
+      "name": "radius-upright",
+      "font_class": "radius-upright-outlined",
+      "unicode": "e7b4",
+      "unicode_decimal": 59316
+    },
+    {
+      "icon_id": "4767072",
+      "name": "pic-center",
+      "font_class": "pic-center-outlined",
+      "unicode": "e7f6",
+      "unicode_decimal": 59382
+    },
+    {
+      "icon_id": "4767073",
+      "name": "pic-right",
+      "font_class": "pic-right-outlined",
+      "unicode": "e7f7",
+      "unicode_decimal": 59383
+    },
+    {
+      "icon_id": "4767074",
+      "name": "pic-left",
+      "font_class": "pic-left-outlined",
+      "unicode": "e7f8",
+      "unicode_decimal": 59384
+    },
+    {
+      "icon_id": "4766266",
+      "name": "border-outer",
+      "font_class": "border-outer-outlined",
+      "unicode": "e7a9",
+      "unicode_decimal": 59305
+    },
+    {
+      "icon_id": "4766268",
+      "name": "border-top",
+      "font_class": "border-top-outlined",
+      "unicode": "e7aa",
+      "unicode_decimal": 59306
+    },
+    {
+      "icon_id": "4766269",
+      "name": "border-bottom",
+      "font_class": "border-bottom-outlined",
+      "unicode": "e7ab",
+      "unicode_decimal": 59307
+    },
+    {
+      "icon_id": "4766270",
+      "name": "border-left",
+      "font_class": "border-left-outlined",
+      "unicode": "e7ac",
+      "unicode_decimal": 59308
+    },
+    {
+      "icon_id": "4766271",
+      "name": "border-right",
+      "font_class": "border-right-outlined",
+      "unicode": "e7ad",
+      "unicode_decimal": 59309
+    },
+    {
+      "icon_id": "4766276",
+      "name": "border-inner",
+      "font_class": "border-inner-outlined",
+      "unicode": "e7ae",
+      "unicode_decimal": 59310
+    },
+    {
+      "icon_id": "4766277",
+      "name": "border-verticle",
+      "font_class": "border-verticle-outlined",
+      "unicode": "e7af",
+      "unicode_decimal": 59311
+    },
+    {
+      "icon_id": "4766278",
+      "name": "border-horizontal",
+      "font_class": "border-horizontal-outlined",
+      "unicode": "e7b0",
+      "unicode_decimal": 59312
+    },
+    {
+      "icon_id": "4767050",
+      "name": "indent",
+      "font_class": "menu-unfold-outlined",
+      "unicode": "e7f3",
+      "unicode_decimal": 59379
+    },
+    {
+      "icon_id": "4767051",
+      "name": "outdent",
+      "font_class": "menu-fold-outlined",
+      "unicode": "e7f4",
+      "unicode_decimal": 59380
+    },
+    {
+      "icon_id": "4765888",
+      "name": "logout",
+      "font_class": "logout-outlined",
+      "unicode": "e78c",
+      "unicode_decimal": 59276
+    },
+    {
+      "icon_id": "6598349",
+      "name": "login",
+      "font_class": "login-outlined",
+      "unicode": "e8f4",
+      "unicode_decimal": 59636
+    },
+    {
+      "icon_id": "4766884",
+      "name": "cluster",
+      "font_class": "cluster-outlined",
+      "unicode": "e7d7",
+      "unicode_decimal": 59351
+    },
+    {
+      "icon_id": "4765965",
+      "name": "down-square",
+      "font_class": "down-square-outlined",
+      "unicode": "e793",
+      "unicode_decimal": 59283
+    },
+    {
+      "icon_id": "4765967",
+      "name": "left-square",
+      "font_class": "left-square-outlined",
+      "unicode": "e795",
+      "unicode_decimal": 59285
+    },
+    {
+      "icon_id": "4765974",
+      "name": "right-square",
+      "font_class": "right-square-outlined",
+      "unicode": "e798",
+      "unicode_decimal": 59288
+    },
+    {
+      "icon_id": "4765977",
+      "name": "up-square",
+      "font_class": "up-Square-outlined",
+      "unicode": "e799",
+      "unicode_decimal": 59289
+    },
+    {
+      "icon_id": "15838511",
+      "name": "play",
+      "font_class": "play-circle-outlined",
+      "unicode": "e67a",
+      "unicode_decimal": 59002
+    },
+    {
+      "icon_id": "15838455",
+      "name": "direction-down",
+      "font_class": "arrow-down-outlined",
+      "unicode": "e66d",
+      "unicode_decimal": 58989
+    },
+    {
+      "icon_id": "15838460",
+      "name": "direction-right",
+      "font_class": "arrow-right-outlined",
+      "unicode": "e66e",
+      "unicode_decimal": 58990
+    },
+    {
+      "icon_id": "15838461",
+      "name": "direction-up",
+      "font_class": "arrow-up-outlined",
+      "unicode": "e66f",
+      "unicode_decimal": 58991
+    },
+    {
+      "icon_id": "15838463",
+      "name": "direction-left",
+      "font_class": "arrow-left-outlined",
+      "unicode": "e670",
+      "unicode_decimal": 58992
+    },
+    {
+      "icon_id": "4767044",
+      "name": "swap",
+      "font_class": "swap-outlined",
+      "unicode": "e7f2",
+      "unicode_decimal": 59378
+    },
+    {
+      "icon_id": "6598352",
+      "name": "swap-right",
+      "font_class": "swap-right-outlined",
+      "unicode": "e8f2",
+      "unicode_decimal": 59634
+    },
+    {
+      "icon_id": "6598353",
+      "name": "swap-left",
+      "font_class": "swap-left-outlined",
+      "unicode": "e8f3",
+      "unicode_decimal": 59635
+    },
+    {
+      "icon_id": "4767097",
+      "name": "enter",
+      "font_class": "enter-outlined",
+      "unicode": "e7fd",
+      "unicode_decimal": 59389
+    },
+    {
+      "icon_id": "4767102",
+      "name": "rollback",
+      "font_class": "rollback-outlined",
+      "unicode": "e7fe",
+      "unicode_decimal": 59390
+    },
+    {
+      "icon_id": "6598348",
+      "name": "retweet",
+      "font_class": "retweet-outlined",
+      "unicode": "e8f1",
+      "unicode_decimal": 59633
+    },
+    {
+      "icon_id": "6598344",
+      "name": "fast-backward",
+      "font_class": "fast-backward-outlined",
+      "unicode": "e8ed",
+      "unicode_decimal": 59629
+    },
+    {
+      "icon_id": "6598346",
+      "name": "fast-forward",
+      "font_class": "fast-forward-outlined",
+      "unicode": "e8ee",
+      "unicode_decimal": 59630
+    },
+    {
+      "icon_id": "4767027",
+      "name": "vertical-align-botto",
+      "font_class": "vertical-align-bottom-outlined",
+      "unicode": "e7ef",
+      "unicode_decimal": 59375
+    },
+    {
+      "icon_id": "4767028",
+      "name": "vertical-align-middl",
+      "font_class": "vertical-align-middle-outlined",
+      "unicode": "e7f0",
+      "unicode_decimal": 59376
+    },
+    {
+      "icon_id": "4767030",
+      "name": "vertical-align-top",
+      "font_class": "vertical-align-top-outlined",
+      "unicode": "e7f1",
+      "unicode_decimal": 59377
+    },
+    {
+      "icon_id": "4767009",
+      "name": "vertical right",
+      "font_class": "vertical-right-outlined",
+      "unicode": "e7ea",
+      "unicode_decimal": 59370
+    },
+    {
+      "icon_id": "4767010",
+      "name": "vertical left",
+      "font_class": "vertical-left-outlined",
+      "unicode": "e7eb",
+      "unicode_decimal": 59371
+    },
+    {
+      "icon_id": "15838436",
+      "name": "arrow-double-left",
+      "font_class": "double-left-outlined",
+      "unicode": "e66b",
+      "unicode_decimal": 58987
+    },
+    {
+      "icon_id": "15838438",
+      "name": "arrow-double-right",
+      "font_class": "double-right-outlined",
+      "unicode": "e66c",
+      "unicode_decimal": 58988
+    },
+    {
+      "icon_id": "15838427",
+      "name": "arrow-up-circle",
+      "font_class": "up-circle-outlined",
+      "unicode": "e666",
+      "unicode_decimal": 58982
+    },
+    {
+      "icon_id": "15838428",
+      "name": "arrow-right-circle",
+      "font_class": "right-circle-outlined",
+      "unicode": "e667",
+      "unicode_decimal": 58983
+    },
+    {
+      "icon_id": "15838437",
+      "name": "arrow-left-circle",
+      "font_class": "left-circle-outlined",
+      "unicode": "e66a",
+      "unicode_decimal": 58986
+    },
+    {
+      "icon_id": "33966825",
+      "name": "arrow-right-circle-copy",
+      "font_class": "down-circle-outlined",
+      "unicode": "eb5e",
+      "unicode_decimal": 60254
+    },
+    {
+      "icon_id": "15838581",
+      "name": "arrow-up-filling",
+      "font_class": "caret-up-outlined",
+      "unicode": "e689",
+      "unicode_decimal": 59017
+    },
+    {
+      "icon_id": "15838582",
+      "name": "arrow-down-filling",
+      "font_class": "caret-down-outlined",
+      "unicode": "e68a",
+      "unicode_decimal": 59018
+    },
+    {
+      "icon_id": "15838583",
+      "name": "arrow-left-filling",
+      "font_class": "caret-left-outlined",
+      "unicode": "e68b",
+      "unicode_decimal": 59019
+    },
+    {
+      "icon_id": "15838584",
+      "name": "arrow-right-filling",
+      "font_class": "caret-right-outlined",
+      "unicode": "e68c",
+      "unicode_decimal": 59020
+    },
+    {
+      "icon_id": "15838561",
+      "name": "arrow-left-bold",
+      "font_class": "left-outlined",
+      "unicode": "e685",
+      "unicode_decimal": 59013
+    },
+    {
+      "icon_id": "15838562",
+      "name": "arrow-up-bold",
+      "font_class": "up-outlined",
+      "unicode": "e686",
+      "unicode_decimal": 59014
+    },
+    {
+      "icon_id": "15838564",
+      "name": "arrow-down-bold",
+      "font_class": "down-outlined",
+      "unicode": "e687",
+      "unicode_decimal": 59015
+    },
+    {
+      "icon_id": "15838566",
+      "name": "arrow-right-bold",
+      "font_class": "right-outlined",
+      "unicode": "e688",
+      "unicode_decimal": 59016
+    },
+    {
+      "icon_id": "22894640",
+      "name": "arrowsalt",
+      "font_class": "arrows-alt-outlined",
+      "unicode": "e665",
+      "unicode_decimal": 58981
+    },
+    {
+      "icon_id": "22894827",
+      "name": "shrink",
+      "font_class": "shrink-outlined",
+      "unicode": "e68d",
+      "unicode_decimal": 59021
+    },
+    {
+      "icon_id": "6598350",
+      "name": "step-backward",
+      "font_class": "step-backward-outlined",
+      "unicode": "e8ef",
+      "unicode_decimal": 59631
+    },
+    {
+      "icon_id": "6598351",
+      "name": "step-forward",
+      "font_class": "step-forward-outlined",
+      "unicode": "e8f0",
+      "unicode_decimal": 59632
+    },
+    {
+      "icon_id": "5756283",
+      "name": "robot",
+      "font_class": "robot-outlined",
+      "unicode": "e897",
+      "unicode_decimal": 59543
+    },
+    {
+      "icon_id": "4766477",
+      "name": "file-word",
+      "font_class": "file-word-outlined",
+      "unicode": "e7ba",
+      "unicode_decimal": 59322
+    },
+    {
+      "icon_id": "7239944",
+      "name": "usergroup-delete",
+      "font_class": "usergroup-delete-outlined",
+      "unicode": "e760",
+      "unicode_decimal": 59232
+    },
+    {
+      "icon_id": "19685392",
+      "name": "时间",
+      "font_class": "field-time-outlined",
+      "unicode": "eb5d",
+      "unicode_decimal": 60253
+    },
+    {
+      "icon_id": "4765891",
+      "name": "setting",
+      "font_class": "setting-outlined",
+      "unicode": "e78e",
+      "unicode_decimal": 59278
+    },
+    {
+      "icon_id": "7239751",
+      "name": "file-search",
+      "font_class": "file-search-outlined",
+      "unicode": "e730",
+      "unicode_decimal": 59184
+    },
+    {
+      "icon_id": "11538085",
+      "name": "team",
+      "font_class": "team-outlined",
+      "unicode": "e67d",
+      "unicode_decimal": 59005
+    },
+    {
+      "icon_id": "4765866",
+      "name": "message",
+      "font_class": "message-outlined",
+      "unicode": "e78a",
+      "unicode_decimal": 59274
+    },
+    {
+      "icon_id": "109759",
+      "name": "mail",
+      "font_class": "mail-outlined",
+      "unicode": "e62e",
+      "unicode_decimal": 58926
+    },
+    {
+      "icon_id": "1302559",
+      "name": "send",
+      "font_class": "send-outlined",
+      "unicode": "e622",
+      "unicode_decimal": 58914
+    },
+    {
+      "icon_id": "6598323",
+      "name": "appstore add",
+      "font_class": "appstore-add-outlined",
+      "unicode": "e8eb",
+      "unicode_decimal": 59627
+    },
+    {
+      "icon_id": "23701226",
+      "name": "User-Outlined",
+      "font_class": "user-outlined",
+      "unicode": "e641",
+      "unicode_decimal": 58945
+    },
+    {
+      "icon_id": "7239852",
+      "name": "project",
+      "font_class": "project-outlined",
+      "unicode": "e746",
+      "unicode_decimal": 59206
+    },
+    {
+      "icon_id": "7239770",
+      "name": "hdd",
+      "font_class": "hdd-outlined",
+      "unicode": "e734",
+      "unicode_decimal": 59188
+    },
+    {
+      "icon_id": "7239921",
+      "name": "tool",
+      "font_class": "tool-outlined",
+      "unicode": "e75b",
+      "unicode_decimal": 59227
+    },
+    {
+      "icon_id": "24342656",
+      "name": "user switch-line",
+      "font_class": "user-switch-outlined",
+      "unicode": "ea3d",
+      "unicode_decimal": 59965
+    },
+    {
+      "icon_id": "5226469",
+      "name": "apps",
+      "font_class": "appstore-outlined",
+      "unicode": "e601",
+      "unicode_decimal": 58881
+    },
+    {
+      "icon_id": "11981662",
+      "name": "home_outlined",
+      "font_class": "home-outlined",
+      "unicode": "e965",
+      "unicode_decimal": 59749
+    }
+  ]
+}
diff --git a/snowy-admin-web/src/assets/icons/mobile/line/iconfont.ttf b/snowy-admin-web/src/assets/icons/mobile/line/iconfont.ttf
new file mode 100644
index 00000000..439f7b43
Binary files /dev/null and b/snowy-admin-web/src/assets/icons/mobile/line/iconfont.ttf differ
diff --git a/snowy-admin-web/src/assets/icons/mobile/ring/iconfont.css b/snowy-admin-web/src/assets/icons/mobile/ring/iconfont.css
new file mode 100644
index 00000000..fbe275bf
--- /dev/null
+++ b/snowy-admin-web/src/assets/icons/mobile/ring/iconfont.css
@@ -0,0 +1,197 @@
+@font-face {
+  font-family: "snowy"; /* Project id 3880562 */
+  src: url('iconfont.ttf?t=1675529644071') format('truetype');
+}
+
+.snowy {
+  font-family: "snowy" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.bu:before {
+  content: "\e615";
+}
+
+.xiezi:before {
+  content: "\e616";
+}
+
+.shuibeng:before {
+  content: "\e705";
+}
+
+.fengji:before {
+  content: "\e706";
+}
+
+.diandongji:before {
+  content: "\e707";
+}
+
+.yuanzi:before {
+  content: "\e617";
+}
+
+.fanghuo:before {
+  content: "\e618";
+}
+
+.shijian:before {
+  content: "\e605";
+}
+
+.lanya:before {
+  content: "\e606";
+}
+
+.dianchi:before {
+  content: "\e607";
+}
+
+.shuidi:before {
+  content: "\e608";
+}
+
+.shebei-05:before {
+  content: "\e609";
+}
+
+.maikefeng-07:before {
+  content: "\e60a";
+}
+
+.liwu-08:before {
+  content: "\e60b";
+}
+
+.yinxiang-06:before {
+  content: "\e60c";
+}
+
+.qingjing_chenxi:before {
+  content: "\e6e8";
+}
+
+.qingjing_chazuo:before {
+  content: "\e6e9";
+}
+
+.qingjing_chongwugou:before {
+  content: "\e6ea";
+}
+
+.qingjing_famen:before {
+  content: "\e6eb";
+}
+
+.qingjing_feihang:before {
+  content: "\e6ec";
+}
+
+.qingjing_paiqishan:before {
+  content: "\e6ed";
+}
+
+.qingjing_jiucan:before {
+  content: "\e6ee";
+}
+
+.qingjing_quanguan:before {
+  content: "\e6ef";
+}
+
+.qingjing_kongtiao:before {
+  content: "\e6f0";
+}
+
+.qingjing_chongwujiao:before {
+  content: "\e6f1";
+}
+
+.qingjing_huijia:before {
+  content: "\e6f2";
+}
+
+.qingjing_shangban:before {
+  content: "\e6f3";
+}
+
+.qingjing_shuimian:before {
+  content: "\e6f4";
+}
+
+.qingjing_huayuan:before {
+  content: "\e6f5";
+}
+
+.qingjing_xishu:before {
+  content: "\e6f6";
+}
+
+.qingjing_yingyin:before {
+  content: "\e6f7";
+}
+
+.qingjing_jiankong:before {
+  content: "\e6f8";
+}
+
+.qingjing_zhaoming:before {
+  content: "\e6f9";
+}
+
+.qingjing_xiaban:before {
+  content: "\e6fa";
+}
+
+.qingjing_zhiban:before {
+  content: "\e6fb";
+}
+
+.qingjing_guangai:before {
+  content: "\e6fc";
+}
+
+.qingjing_changqilijia:before {
+  content: "\e6fd";
+}
+
+.qingjing_huiyi:before {
+  content: "\e6fe";
+}
+
+.duokoudai-16:before {
+  content: "\e60d";
+}
+
+.duoceng-15:before {
+  content: "\e60e";
+}
+
+.huazhuangpinkoudai-11:before {
+  content: "\e60f";
+}
+
+.chongdiankong-14:before {
+  content: "\e610";
+}
+
+.jixi-13:before {
+  content: "\e611";
+}
+
+.diqiu-12:before {
+  content: "\e612";
+}
+
+.zhixiang-09:before {
+  content: "\e613";
+}
+
+.fangdaokoudai-10:before {
+  content: "\e614";
+}
+
diff --git a/snowy-admin-web/src/assets/icons/mobile/ring/iconfont.json b/snowy-admin-web/src/assets/icons/mobile/ring/iconfont.json
new file mode 100644
index 00000000..eb96e45e
--- /dev/null
+++ b/snowy-admin-web/src/assets/icons/mobile/ring/iconfont.json
@@ -0,0 +1,331 @@
+{
+  "id": "3880562",
+  "name": "snowy-app-ring",
+  "font_family": "snowy",
+  "css_prefix_text": "",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "32305317",
+      "name": "布",
+      "font_class": "bu",
+      "unicode": "e615",
+      "unicode_decimal": 58901
+    },
+    {
+      "icon_id": "32305318",
+      "name": "鞋子",
+      "font_class": "xiezi",
+      "unicode": "e616",
+      "unicode_decimal": 58902
+    },
+    {
+      "icon_id": "32946931",
+      "name": "水泵",
+      "font_class": "shuibeng",
+      "unicode": "e705",
+      "unicode_decimal": 59141
+    },
+    {
+      "icon_id": "32946932",
+      "name": "风机",
+      "font_class": "fengji",
+      "unicode": "e706",
+      "unicode_decimal": 59142
+    },
+    {
+      "icon_id": "32946933",
+      "name": "电动机",
+      "font_class": "diandongji",
+      "unicode": "e707",
+      "unicode_decimal": 59143
+    },
+    {
+      "icon_id": "33346326",
+      "name": "原子",
+      "font_class": "yuanzi",
+      "unicode": "e617",
+      "unicode_decimal": 58903
+    },
+    {
+      "icon_id": "33347418",
+      "name": "防火",
+      "font_class": "fanghuo",
+      "unicode": "e618",
+      "unicode_decimal": 58904
+    },
+    {
+      "icon_id": "31733849",
+      "name": "时间",
+      "font_class": "shijian",
+      "unicode": "e605",
+      "unicode_decimal": 58885
+    },
+    {
+      "icon_id": "31733850",
+      "name": "蓝牙",
+      "font_class": "lanya",
+      "unicode": "e606",
+      "unicode_decimal": 58886
+    },
+    {
+      "icon_id": "31735230",
+      "name": "电池",
+      "font_class": "dianchi",
+      "unicode": "e607",
+      "unicode_decimal": 58887
+    },
+    {
+      "icon_id": "31735231",
+      "name": "水滴",
+      "font_class": "shuidi",
+      "unicode": "e608",
+      "unicode_decimal": 58888
+    },
+    {
+      "icon_id": "31736241",
+      "name": "设备",
+      "font_class": "shebei-05",
+      "unicode": "e609",
+      "unicode_decimal": 58889
+    },
+    {
+      "icon_id": "31736242",
+      "name": "麦克风",
+      "font_class": "maikefeng-07",
+      "unicode": "e60a",
+      "unicode_decimal": 58890
+    },
+    {
+      "icon_id": "31736243",
+      "name": "礼物",
+      "font_class": "liwu-08",
+      "unicode": "e60b",
+      "unicode_decimal": 58891
+    },
+    {
+      "icon_id": "31736244",
+      "name": "音箱",
+      "font_class": "yinxiang-06",
+      "unicode": "e60c",
+      "unicode_decimal": 58892
+    },
+    {
+      "icon_id": "32042554",
+      "name": "晨曦",
+      "font_class": "qingjing_chenxi",
+      "unicode": "e6e8",
+      "unicode_decimal": 59112
+    },
+    {
+      "icon_id": "32042555",
+      "name": "插座",
+      "font_class": "qingjing_chazuo",
+      "unicode": "e6e9",
+      "unicode_decimal": 59113
+    },
+    {
+      "icon_id": "32042556",
+      "name": "宠物狗",
+      "font_class": "qingjing_chongwugou",
+      "unicode": "e6ea",
+      "unicode_decimal": 59114
+    },
+    {
+      "icon_id": "32042557",
+      "name": "阀门",
+      "font_class": "qingjing_famen",
+      "unicode": "e6eb",
+      "unicode_decimal": 59115
+    },
+    {
+      "icon_id": "32042558",
+      "name": "飞行",
+      "font_class": "qingjing_feihang",
+      "unicode": "e6ec",
+      "unicode_decimal": 59116
+    },
+    {
+      "icon_id": "32042559",
+      "name": "排气扇",
+      "font_class": "qingjing_paiqishan",
+      "unicode": "e6ed",
+      "unicode_decimal": 59117
+    },
+    {
+      "icon_id": "32042560",
+      "name": "就餐",
+      "font_class": "qingjing_jiucan",
+      "unicode": "e6ee",
+      "unicode_decimal": 59118
+    },
+    {
+      "icon_id": "32042561",
+      "name": "开关",
+      "font_class": "qingjing_quanguan",
+      "unicode": "e6ef",
+      "unicode_decimal": 59119
+    },
+    {
+      "icon_id": "32042562",
+      "name": "空调",
+      "font_class": "qingjing_kongtiao",
+      "unicode": "e6f0",
+      "unicode_decimal": 59120
+    },
+    {
+      "icon_id": "32042564",
+      "name": "宠物脚",
+      "font_class": "qingjing_chongwujiao",
+      "unicode": "e6f1",
+      "unicode_decimal": 59121
+    },
+    {
+      "icon_id": "32042565",
+      "name": "回家",
+      "font_class": "qingjing_huijia",
+      "unicode": "e6f2",
+      "unicode_decimal": 59122
+    },
+    {
+      "icon_id": "32042566",
+      "name": "上班",
+      "font_class": "qingjing_shangban",
+      "unicode": "e6f3",
+      "unicode_decimal": 59123
+    },
+    {
+      "icon_id": "32042567",
+      "name": "睡眠",
+      "font_class": "qingjing_shuimian",
+      "unicode": "e6f4",
+      "unicode_decimal": 59124
+    },
+    {
+      "icon_id": "32042568",
+      "name": "花园",
+      "font_class": "qingjing_huayuan",
+      "unicode": "e6f5",
+      "unicode_decimal": 59125
+    },
+    {
+      "icon_id": "32042569",
+      "name": "洗漱",
+      "font_class": "qingjing_xishu",
+      "unicode": "e6f6",
+      "unicode_decimal": 59126
+    },
+    {
+      "icon_id": "32042570",
+      "name": "影音",
+      "font_class": "qingjing_yingyin",
+      "unicode": "e6f7",
+      "unicode_decimal": 59127
+    },
+    {
+      "icon_id": "32042571",
+      "name": "监控",
+      "font_class": "qingjing_jiankong",
+      "unicode": "e6f8",
+      "unicode_decimal": 59128
+    },
+    {
+      "icon_id": "32042572",
+      "name": "照明",
+      "font_class": "qingjing_zhaoming",
+      "unicode": "e6f9",
+      "unicode_decimal": 59129
+    },
+    {
+      "icon_id": "32042573",
+      "name": "下班",
+      "font_class": "qingjing_xiaban",
+      "unicode": "e6fa",
+      "unicode_decimal": 59130
+    },
+    {
+      "icon_id": "32042574",
+      "name": "值班",
+      "font_class": "qingjing_zhiban",
+      "unicode": "e6fb",
+      "unicode_decimal": 59131
+    },
+    {
+      "icon_id": "32042575",
+      "name": "灌溉",
+      "font_class": "qingjing_guangai",
+      "unicode": "e6fc",
+      "unicode_decimal": 59132
+    },
+    {
+      "icon_id": "32042576",
+      "name": "长期离家",
+      "font_class": "qingjing_changqilijia",
+      "unicode": "e6fd",
+      "unicode_decimal": 59133
+    },
+    {
+      "icon_id": "32042577",
+      "name": "会议",
+      "font_class": "qingjing_huiyi",
+      "unicode": "e6fe",
+      "unicode_decimal": 59134
+    },
+    {
+      "icon_id": "32290563",
+      "name": "多口袋",
+      "font_class": "duokoudai-16",
+      "unicode": "e60d",
+      "unicode_decimal": 58893
+    },
+    {
+      "icon_id": "32290564",
+      "name": "多层",
+      "font_class": "duoceng-15",
+      "unicode": "e60e",
+      "unicode_decimal": 58894
+    },
+    {
+      "icon_id": "32290565",
+      "name": "化妆品口袋",
+      "font_class": "huazhuangpinkoudai-11",
+      "unicode": "e60f",
+      "unicode_decimal": 58895
+    },
+    {
+      "icon_id": "32290566",
+      "name": "充电孔",
+      "font_class": "chongdiankong-14",
+      "unicode": "e610",
+      "unicode_decimal": 58896
+    },
+    {
+      "icon_id": "32290567",
+      "name": "机洗",
+      "font_class": "jixi-13",
+      "unicode": "e611",
+      "unicode_decimal": 58897
+    },
+    {
+      "icon_id": "32290568",
+      "name": "地球",
+      "font_class": "diqiu-12",
+      "unicode": "e612",
+      "unicode_decimal": 58898
+    },
+    {
+      "icon_id": "32290569",
+      "name": "纸箱",
+      "font_class": "zhixiang-09",
+      "unicode": "e613",
+      "unicode_decimal": 58899
+    },
+    {
+      "icon_id": "32290570",
+      "name": "防盗口袋",
+      "font_class": "fangdaokoudai-10",
+      "unicode": "e614",
+      "unicode_decimal": 58900
+    }
+  ]
+}
diff --git a/snowy-admin-web/src/assets/icons/mobile/ring/iconfont.ttf b/snowy-admin-web/src/assets/icons/mobile/ring/iconfont.ttf
new file mode 100644
index 00000000..c56e3abe
Binary files /dev/null and b/snowy-admin-web/src/assets/icons/mobile/ring/iconfont.ttf differ
diff --git a/snowy-admin-web/src/assets/icons/mobile/square/iconfont.css b/snowy-admin-web/src/assets/icons/mobile/square/iconfont.css
new file mode 100644
index 00000000..2eaeb62a
--- /dev/null
+++ b/snowy-admin-web/src/assets/icons/mobile/square/iconfont.css
@@ -0,0 +1,93 @@
+@font-face {
+  font-family: "snowy"; /* Project id 3880561 */
+  src: url('iconfont.ttf?t=1675529611564') format('truetype');
+}
+
+.snowy {
+  font-family: "snowy" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.shijian:before {
+  content: "\e605";
+}
+
+.lanya:before {
+  content: "\e606";
+}
+
+.dianchi:before {
+  content: "\e607";
+}
+
+.shuidi:before {
+  content: "\e608";
+}
+
+.shebei-05:before {
+  content: "\e609";
+}
+
+.maikefeng-07:before {
+  content: "\e60a";
+}
+
+.liwu-08:before {
+  content: "\e60b";
+}
+
+.yinxiang-06:before {
+  content: "\e60c";
+}
+
+.duokoudai-16:before {
+  content: "\e60d";
+}
+
+.duoceng-15:before {
+  content: "\e60e";
+}
+
+.huazhuangpinkoudai-11:before {
+  content: "\e60f";
+}
+
+.chongdiankong-14:before {
+  content: "\e610";
+}
+
+.jixi-13:before {
+  content: "\e611";
+}
+
+.diqiu-12:before {
+  content: "\e612";
+}
+
+.zhixiang-09:before {
+  content: "\e613";
+}
+
+.fangdaokoudai-10:before {
+  content: "\e614";
+}
+
+.bu:before {
+  content: "\e615";
+}
+
+.xiezi:before {
+  content: "\e616";
+}
+
+.yuanzi:before {
+  content: "\e617";
+}
+
+.fanghuo:before {
+  content: "\e618";
+}
+
diff --git a/snowy-admin-web/src/assets/icons/mobile/square/iconfont.json b/snowy-admin-web/src/assets/icons/mobile/square/iconfont.json
new file mode 100644
index 00000000..ac38a5a7
--- /dev/null
+++ b/snowy-admin-web/src/assets/icons/mobile/square/iconfont.json
@@ -0,0 +1,149 @@
+{
+  "id": "3880561",
+  "name": "snowy-app-square",
+  "font_family": "snowy",
+  "css_prefix_text": "",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "31733849",
+      "name": "时间",
+      "font_class": "shijian",
+      "unicode": "e605",
+      "unicode_decimal": 58885
+    },
+    {
+      "icon_id": "31733850",
+      "name": "蓝牙",
+      "font_class": "lanya",
+      "unicode": "e606",
+      "unicode_decimal": 58886
+    },
+    {
+      "icon_id": "31735230",
+      "name": "电池",
+      "font_class": "dianchi",
+      "unicode": "e607",
+      "unicode_decimal": 58887
+    },
+    {
+      "icon_id": "31735231",
+      "name": "水滴",
+      "font_class": "shuidi",
+      "unicode": "e608",
+      "unicode_decimal": 58888
+    },
+    {
+      "icon_id": "31736241",
+      "name": "设备",
+      "font_class": "shebei-05",
+      "unicode": "e609",
+      "unicode_decimal": 58889
+    },
+    {
+      "icon_id": "31736242",
+      "name": "麦克风",
+      "font_class": "maikefeng-07",
+      "unicode": "e60a",
+      "unicode_decimal": 58890
+    },
+    {
+      "icon_id": "31736243",
+      "name": "礼物",
+      "font_class": "liwu-08",
+      "unicode": "e60b",
+      "unicode_decimal": 58891
+    },
+    {
+      "icon_id": "31736244",
+      "name": "音箱",
+      "font_class": "yinxiang-06",
+      "unicode": "e60c",
+      "unicode_decimal": 58892
+    },
+    {
+      "icon_id": "32290563",
+      "name": "多口袋",
+      "font_class": "duokoudai-16",
+      "unicode": "e60d",
+      "unicode_decimal": 58893
+    },
+    {
+      "icon_id": "32290564",
+      "name": "多层",
+      "font_class": "duoceng-15",
+      "unicode": "e60e",
+      "unicode_decimal": 58894
+    },
+    {
+      "icon_id": "32290565",
+      "name": "化妆品口袋",
+      "font_class": "huazhuangpinkoudai-11",
+      "unicode": "e60f",
+      "unicode_decimal": 58895
+    },
+    {
+      "icon_id": "32290566",
+      "name": "充电孔",
+      "font_class": "chongdiankong-14",
+      "unicode": "e610",
+      "unicode_decimal": 58896
+    },
+    {
+      "icon_id": "32290567",
+      "name": "机洗",
+      "font_class": "jixi-13",
+      "unicode": "e611",
+      "unicode_decimal": 58897
+    },
+    {
+      "icon_id": "32290568",
+      "name": "地球",
+      "font_class": "diqiu-12",
+      "unicode": "e612",
+      "unicode_decimal": 58898
+    },
+    {
+      "icon_id": "32290569",
+      "name": "纸箱",
+      "font_class": "zhixiang-09",
+      "unicode": "e613",
+      "unicode_decimal": 58899
+    },
+    {
+      "icon_id": "32290570",
+      "name": "防盗口袋",
+      "font_class": "fangdaokoudai-10",
+      "unicode": "e614",
+      "unicode_decimal": 58900
+    },
+    {
+      "icon_id": "32305317",
+      "name": "布",
+      "font_class": "bu",
+      "unicode": "e615",
+      "unicode_decimal": 58901
+    },
+    {
+      "icon_id": "32305318",
+      "name": "鞋子",
+      "font_class": "xiezi",
+      "unicode": "e616",
+      "unicode_decimal": 58902
+    },
+    {
+      "icon_id": "33346326",
+      "name": "原子",
+      "font_class": "yuanzi",
+      "unicode": "e617",
+      "unicode_decimal": 58903
+    },
+    {
+      "icon_id": "33347418",
+      "name": "防火",
+      "font_class": "fanghuo",
+      "unicode": "e618",
+      "unicode_decimal": 58904
+    }
+  ]
+}
diff --git a/snowy-admin-web/src/assets/icons/mobile/square/iconfont.ttf b/snowy-admin-web/src/assets/icons/mobile/square/iconfont.ttf
new file mode 100644
index 00000000..2e721787
Binary files /dev/null and b/snowy-admin-web/src/assets/icons/mobile/square/iconfont.ttf differ