diff --git a/packages/extension/src/ui/action/components/app-menu/index.vue b/packages/extension/src/ui/action/components/app-menu/index.vue
index ce5d1c027..1b7d11aa2 100644
--- a/packages/extension/src/ui/action/components/app-menu/index.vue
+++ b/packages/extension/src/ui/action/components/app-menu/index.vue
@@ -40,6 +40,7 @@
+
+
+
+
{
(appMenuRef.value as HTMLElement).style.background =
`radial-gradient(137.35% 97% at 100% 50%, rgba(250, 250, 250, 0.94) 0%, rgba(250, 250, 250, 0.96) 28.91%, rgba(250, 250, 250, 0.98) 100%), linear-gradient(180deg, ${newGradient} 80%, #684CFF 100%)`;
};
+
+/** ------------------
+ * Swap Button
+ ------------------*/
+const route = useRoute();
+const router = useRouter();
+const openSwap = () => {
+ try {
+ router.push({
+ name: 'swap',
+ params: {
+ id: route.params.id,
+ },
+ });
+ } catch (e) {
+ console.error('Error opening swap:', e);
+ }
+};
diff --git a/packages/extension/src/ui/action/icons/common/warning-icon.vue b/packages/extension/src/ui/action/icons/common/warning-icon.vue
new file mode 100644
index 000000000..16df6890b
--- /dev/null
+++ b/packages/extension/src/ui/action/icons/common/warning-icon.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/packages/extension/src/ui/action/styles/color.less b/packages/extension/src/ui/action/styles/color.less
index 139ff62c4..eb65156fa 100644
--- a/packages/extension/src/ui/action/styles/color.less
+++ b/packages/extension/src/ui/action/styles/color.less
@@ -2,6 +2,7 @@
@primary01: rgba(5, 192, 165, 0.1);
@primaryLight: rgba(104, 76, 255, 0.1);
@primary007: rgba(104, 76, 255, 0.07);
+@primaryDarker: rgba(96, 60, 240, 1);
@primaryLabel: #202124;
@secondaryLabel: #5f6368;
@@ -15,6 +16,8 @@
@grayPrimary: rgba(95, 99, 104, 1);
@gray01: rgba(95, 99, 104, 0.1);
@gray02: rgba(95, 99, 104, 0.2);
+@grey08: rgba(0, 0, 0, 0.08);
+@grey16: rgba(242, 244, 247, 1);
@white07: rgba(255, 255, 255, 0.7);
@white09: rgba(255, 255, 255, 0.9);
@error: #f4432c;
@@ -28,6 +31,7 @@
@buttonBg: #f2f4f7;
@hoverItemBg: #f9fafb;
@lightBg: #f9fafb;
+@lightSurfaceBg: rgba(249, 250, 251, 1);
@tipBg: #fff7b2;
@overlayBg: rgba(0, 0, 0, 0.3);
@introHeaderBg: #f9fafb;
diff --git a/packages/extension/src/ui/action/styles/theme.less b/packages/extension/src/ui/action/styles/theme.less
index 4f03d08ef..b578810ba 100644
--- a/packages/extension/src/ui/action/styles/theme.less
+++ b/packages/extension/src/ui/action/styles/theme.less
@@ -8,3 +8,15 @@
-ms-user-select: none;
user-select: none;
}
+.skeleton {
+ animation: skeleton-loading 1s linear infinite alternate;
+}
+
+@keyframes skeleton-loading {
+ 0% {
+ background-color: @gray01;
+ }
+ 100% {
+ background-color: @lightSurfaceBg;
+ }
+}
diff --git a/packages/extension/src/ui/action/views/swap/components/swap-address-select/components/address-item.vue b/packages/extension/src/ui/action/views/swap/components/swap-address-select/components/address-item.vue
new file mode 100644
index 000000000..4c3e58e98
--- /dev/null
+++ b/packages/extension/src/ui/action/views/swap/components/swap-address-select/components/address-item.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
diff --git a/packages/extension/src/ui/action/views/swap/components/swap-address-select/index.vue b/packages/extension/src/ui/action/views/swap/components/swap-address-select/index.vue
new file mode 100644
index 000000000..74b493084
--- /dev/null
+++ b/packages/extension/src/ui/action/views/swap/components/swap-address-select/index.vue
@@ -0,0 +1,409 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+ {{ myAccountsTitle }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/extension/src/ui/action/views/swap/components/swap-network-select/index.vue b/packages/extension/src/ui/action/views/swap/components/swap-network-select/index.vue
index 6e7431406..6a3e78cc9 100644
--- a/packages/extension/src/ui/action/views/swap/components/swap-network-select/index.vue
+++ b/packages/extension/src/ui/action/views/swap/components/swap-network-select/index.vue
@@ -1,19 +1,23 @@
-
-
-
![]()
-
-
-
To Network
-
- {{ network.name }}
-
-
-
-
-
-
-
+
+
+
diff --git a/packages/extension/src/ui/action/views/swap/components/swap-token-amount-input/components/swap-token-amount-input.vue b/packages/extension/src/ui/action/views/swap/components/swap-token-amount-input/components/swap-token-amount-input.vue
index b086aa495..d3e91a0c0 100644
--- a/packages/extension/src/ui/action/views/swap/components/swap-token-amount-input/components/swap-token-amount-input.vue
+++ b/packages/extension/src/ui/action/views/swap/components/swap-token-amount-input/components/swap-token-amount-input.vue
@@ -97,14 +97,14 @@ const onlyNumber = ($event: KeyboardEvent) => {
outline: none;
background: @white;
margin: 0;
- padding: 0 76px 0 16px;
+ padding: 0px 10px 0px 0;
font-style: normal;
font-weight: 400;
- font-size: 34px;
+ font-size: 32px;
line-height: 40px;
letter-spacing: 0.25px;
color: @primaryLabel;
- width: 100%;
+ width: 230px;
box-sizing: border-box;
border: 0 none;
-moz-appearance: textfield;
diff --git a/packages/extension/src/ui/action/views/swap/components/swap-token-amount-input/index.vue b/packages/extension/src/ui/action/views/swap/components/swap-token-amount-input/index.vue
index 28051b97e..9838840c4 100644
--- a/packages/extension/src/ui/action/views/swap/components/swap-token-amount-input/index.vue
+++ b/packages/extension/src/ui/action/views/swap/components/swap-token-amount-input/index.vue
@@ -1,31 +1,35 @@