diff --git a/src/assets/layout/_menu.scss b/src/assets/layout/_menu.scss index 25dc74a..3bc0fbe 100644 --- a/src/assets/layout/_menu.scss +++ b/src/assets/layout/_menu.scss @@ -10,8 +10,11 @@ transition: transform var(--layout-section-transition-duration), left var(--layout-section-transition-duration); - background-color: var(--surface-overlay); - border-radius: var(--content-border-radius); + background: linear-gradient(180deg, rgba(161, 0, 255, 0.05) 0%, rgba(123, 0, 204, 0.02) 100%); + backdrop-filter: blur(10px); + border: 1px solid rgba(161, 0, 255, 0.1); + box-shadow: 0 4px 20px rgba(161, 0, 255, 0.1); + border-radius: 16px; padding: 0.5rem 1.5rem; } @@ -25,8 +28,10 @@ font-size: 0.857rem; text-transform: uppercase; font-weight: 700; - color: var(--text-color); + color: #A100FF; margin: 0.75rem 0; + padding-bottom: 0.5rem; + border-bottom: 2px solid rgba(161, 0, 255, 0.2); } > a { @@ -65,13 +70,14 @@ color: var(--text-color); cursor: pointer; padding: 0.75rem 1rem; - border-radius: var(--content-border-radius); + border-radius: 12px; transition: - background-color var(--element-transition-duration), - box-shadow var(--element-transition-duration); + all 0.3s ease; + border-left: 3px solid transparent; .layout-menuitem-icon { margin-right: 0.5rem; + transition: all 0.3s ease; } .layout-submenu-toggler { @@ -82,11 +88,25 @@ &.active-route { font-weight: 700; - color: var(--primary-color); + color: #A100FF; + background: linear-gradient(90deg, rgba(161, 0, 255, 0.1) 0%, rgba(161, 0, 255, 0.05) 100%); + border-left-color: #A100FF; + box-shadow: 0 2px 8px rgba(161, 0, 255, 0.15); + + .layout-menuitem-icon { + color: #A100FF; + transform: scale(1.1); + } } &:hover { - background-color: var(--surface-hover); + background: linear-gradient(90deg, rgba(161, 0, 255, 0.08) 0%, rgba(161, 0, 255, 0.03) 100%); + border-left-color: rgba(161, 0, 255, 0.5); + transform: translateX(3px); + + .layout-menuitem-icon { + color: #A100FF; + } } &:focus { diff --git a/src/assets/layout/_topbar.scss b/src/assets/layout/_topbar.scss index de07a1a..2f57036 100644 --- a/src/assets/layout/_topbar.scss +++ b/src/assets/layout/_topbar.scss @@ -6,7 +6,8 @@ top: 0; width: 100%; padding: 0 2rem; - background-color: var(--surface-card); + background: linear-gradient(135deg, rgba(161, 0, 255, 0.85) 0%, #A100FF 50%, #7B00CC 100%); + box-shadow: 0 4px 20px rgba(161, 0, 255, 0.25); transition: left var(--layout-section-transition-duration); display: flex; align-items: center; @@ -22,12 +23,19 @@ align-items: center; font-size: 1.5rem; border-radius: var(--content-border-radius); - color: var(--text-color); - font-weight: 500; + color: white; + font-weight: 600; gap: 0.5rem; + transition: all 0.3s ease; svg { width: 3rem; + filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2)); + } + + &:hover { + transform: translateY(-2px); + text-shadow: 0 2px 8px rgba(255, 255, 255, 0.3); } &:focus-visible { @@ -39,16 +47,17 @@ display: inline-flex; justify-content: center; align-items: center; - color: var(--text-color-secondary); + color: rgba(255, 255, 255, 0.9); border-radius: 50%; width: 2.5rem; height: 2.5rem; - color: var(--text-color); - transition: background-color var(--element-transition-duration); + transition: all 0.3s ease; cursor: pointer; &:hover { - background-color: var(--surface-hover); + background-color: rgba(255, 255, 255, 0.15); + color: white; + transform: translateY(-2px); } &:focus-visible { @@ -65,8 +74,9 @@ } &.layout-topbar-action-highlight { - background-color: var(--primary-color); - color: var(--primary-contrast-color); + background-color: rgba(255, 255, 255, 0.2); + color: white; + box-shadow: 0 2px 8px rgba(255, 255, 255, 0.2); } } @@ -82,6 +92,7 @@ margin-left: auto; display: flex; gap: 1rem; + align-items: center; } .layout-topbar-menu-content { @@ -92,6 +103,13 @@ .layout-config-menu { display: flex; gap: 1rem; + align-items: center; + } + + .layout-topbar-theme { + color: rgba(255, 255, 255, 0.9); + font-weight: 500; + font-size: 0.95rem; } } diff --git a/src/assets/styles.scss b/src/assets/styles.scss index 83ce387..712375d 100644 --- a/src/assets/styles.scss +++ b/src/assets/styles.scss @@ -8,6 +8,18 @@ font-weight: bold !important; } +/* Global button rounded corners */ +.p-button { + border-radius: 12px !important; +} + +.p-inputtext, +.p-dropdown, +.p-calendar, +.p-multiselect { + border-radius: 8px !important; +} + // h2 { // font-size: 1em !important; // font-weight: bold !important; diff --git a/src/components/ChatClient.vue b/src/components/ChatClient.vue index 6898d73..6df3246 100644 --- a/src/components/ChatClient.vue +++ b/src/components/ChatClient.vue @@ -1,27 +1,3 @@ - - + + diff --git a/src/components/ExecutionChatSection.vue b/src/components/ExecutionChatSection.vue new file mode 100644 index 0000000..d165940 --- /dev/null +++ b/src/components/ExecutionChatSection.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/components/ExecutionInputSection.vue b/src/components/ExecutionInputSection.vue new file mode 100644 index 0000000..b0b2cd0 --- /dev/null +++ b/src/components/ExecutionInputSection.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/components/ExecutionResponsePanel.vue b/src/components/ExecutionResponsePanel.vue new file mode 100644 index 0000000..9786d0e --- /dev/null +++ b/src/components/ExecutionResponsePanel.vue @@ -0,0 +1,263 @@ + + + + + diff --git a/src/components/ExecutionResponseSection.vue b/src/components/ExecutionResponseSection.vue new file mode 100644 index 0000000..cbee78b --- /dev/null +++ b/src/components/ExecutionResponseSection.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/components/ExecutionTimer.vue b/src/components/ExecutionTimer.vue index 4ff58d7..9bc33be 100644 --- a/src/components/ExecutionTimer.vue +++ b/src/components/ExecutionTimer.vue @@ -64,13 +64,13 @@ defineExpose({