Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorTara Rostami <132676256+TaraRostami@users.noreply.github.com>2024-02-17 19:22:23 +0300
committerGitHub <noreply@github.com>2024-02-17 19:22:23 +0300
commit73718a5dc55595b34094239b4d5728df66417e76 (patch)
tree73809cafcfbda769f91621a44f81b08eccaf7222 /web
parentbb9d00a0b31b7b3ac11ab004234a7bec580d42c0 (diff)
UI improvements (#1813)
Diffstat (limited to 'web')
-rw-r--r--web/assets/css/custom.css26
-rw-r--r--web/assets/persian-datepicker/persian-datepicker.min.css455
-rw-r--r--web/html/login.html21
-rw-r--r--web/html/xui/common_sider.html10
-rw-r--r--web/html/xui/component/persianDatepicker.html4
-rw-r--r--web/html/xui/form/inbound.html4
-rw-r--r--web/html/xui/form/stream/external_proxy.html2
-rw-r--r--web/html/xui/form/stream/stream_tcp.html4
-rw-r--r--web/html/xui/form/stream/stream_ws.html2
-rw-r--r--web/html/xui/index.html144
-rw-r--r--web/html/xui/settings.html8
-rw-r--r--web/translation/translate.en_US.toml2
-rw-r--r--web/translation/translate.es_ES.toml2
-rw-r--r--web/translation/translate.fa_IR.toml2
-rw-r--r--web/translation/translate.id_ID.toml2
-rw-r--r--web/translation/translate.ru_RU.toml2
-rw-r--r--web/translation/translate.vi_VN.toml2
-rw-r--r--web/translation/translate.zh_Hans.toml2
18 files changed, 590 insertions, 104 deletions
diff --git a/web/assets/css/custom.css b/web/assets/css/custom.css
index ca7d23b1..c41bcc16 100644
--- a/web/assets/css/custom.css
+++ b/web/assets/css/custom.css
@@ -1050,12 +1050,17 @@ li.ant-select-dropdown-menu-item:empty:after {
color: rgba(255, 255, 255, 0.25);
}
+.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(
+ :last-child
+ ),
+.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(
+ :last-child
+ ),
+.ant-input-group.ant-input-group-compact
+ > .ant-input:not(:first-child):not(:last-child),
+.ant-input-number-handler,
.ant-input-number-handler-wrap {
- border-radius: 0;
-}
-
-.ant-input-number-handler {
- border-radius: 0;
+ border-radius: 0;
}
.ant-input-number {
@@ -1089,7 +1094,8 @@ li.ant-select-dropdown-menu-item:empty:after {
> td,
.ant-table-thead
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
- > td {
+ > td,
+.ant-calendar-time-picker-select li:hover {
background-color: rgb(232 244 242);
}
@@ -1121,3 +1127,11 @@ li.ant-select-dropdown-menu-item:empty:after {
.ant-input-group-addon:not(:first-child):not(:last-child), .ant-input-group-wrap:not(:first-child):not(:last-child), .ant-input-group>.ant-input:not(:first-child):not(:last-child) {
border-radius: 0rem 1rem 1rem 0rem;
}
+
+.ant-tag {
+ margin-right: 6px;
+}
+
+b, strong {
+ font-weight: 500;
+}
diff --git a/web/assets/persian-datepicker/persian-datepicker.min.css b/web/assets/persian-datepicker/persian-datepicker.min.css
index bbbef736..9e99974a 100644
--- a/web/assets/persian-datepicker/persian-datepicker.min.css
+++ b/web/assets/persian-datepicker/persian-datepicker.min.css
@@ -1 +1,454 @@
-jdp-overlay{height:0;width:0}jdp-container{-moz-animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimation;-webkit-animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimation;animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimation;background:#fff;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.12),0 1px 4px rgba(0,0,0,.24);direction:rtl;display:none;max-width:307.875px;min-width:307.875px;overflow:hidden;padding:.5rem 0;position:absolute;-ms-touch-action:manipulation;touch-action:manipulation;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}jdp-container,jdp-container *,jdp-container :after,jdp-container :before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}jdp-container .jdp-icon-minus,jdp-container .jdp-icon-plus{border:1px solid #e6e6e6;border-radius:4px;cursor:pointer;display:inline-block;flex:none;overflow:hidden;text-align:center;text-decoration:none;vertical-align:middle}jdp-container .jdp-icon-minus svg,jdp-container .jdp-icon-plus svg{height:1.5rem;padding:.25rem;vertical-align:middle;width:1.5rem}jdp-container .jdp-icon-minus.not-in-range,jdp-container .jdp-icon-plus.not-in-range{cursor:not-allowed}jdp-container .jdp-icon-minus.not-in-range svg,jdp-container .jdp-icon-plus.not-in-range svg{opacity:.3}jdp-container .jdp-months,jdp-container .jdp-years{fill:rgba(0,0,0,.9);color:rgba(0,0,0,.9);display:-webkit-inline-box;display:-webkit-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:120%;margin:0 2.5%}jdp-container .jdp-months{width:50%}jdp-container .jdp-years{width:40%}jdp-container .jdp-month,jdp-container .jdp-month input,jdp-container .jdp-month select,jdp-container .jdp-time,jdp-container .jdp-time input,jdp-container .jdp-time select,jdp-container .jdp-year,jdp-container .jdp-year input,jdp-container .jdp-year select{background:#fff;border:none;border-radius:0;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:0;outline:0;padding:0;text-align:center;vertical-align:initial;width:100%}jdp-container .jdp-month input:active,jdp-container .jdp-month input:focus,jdp-container .jdp-month select:active,jdp-container .jdp-month select:focus,jdp-container .jdp-month:active,jdp-container .jdp-month:focus,jdp-container .jdp-time input:active,jdp-container .jdp-time input:focus,jdp-container .jdp-time select:active,jdp-container .jdp-time select:focus,jdp-container .jdp-time:active,jdp-container .jdp-time:focus,jdp-container .jdp-year input:active,jdp-container .jdp-year input:focus,jdp-container .jdp-year select:active,jdp-container .jdp-year select:focus,jdp-container .jdp-year:active,jdp-container .jdp-year:focus{outline:0}jdp-container .jdp-month input option,jdp-container .jdp-month option,jdp-container .jdp-month select option,jdp-container .jdp-time input option,jdp-container .jdp-time option,jdp-container .jdp-time select option,jdp-container .jdp-year input option,jdp-container .jdp-year option,jdp-container .jdp-year select option{font-size:95%;min-height:1.3rem;outline:0;padding:0}jdp-container .jdp-month:hover,jdp-container .jdp-time:hover,jdp-container .jdp-year:hover{filter:brightness(.9)}jdp-container .jdp-month input,jdp-container .jdp-time input,jdp-container .jdp-year input{-webkit-appearance:none;-moz-appearance:textfield;cursor:text}jdp-container .jdp-month input::-webkit-inner-spin-button,jdp-container .jdp-month input::-webkit-outer-spin-button,jdp-container .jdp-time input::-webkit-inner-spin-button,jdp-container .jdp-time input::-webkit-outer-spin-button,jdp-container .jdp-year input::-webkit-inner-spin-button,jdp-container .jdp-year input::-webkit-outer-spin-button{-webkit-appearance:none}jdp-container .jdp-month select,jdp-container .jdp-time select,jdp-container .jdp-year select{-webkit-appearance:menulist;-moz-appearance:menulist;cursor:pointer;position:relative}jdp-container .jdp-days{-ms-flex-pack:justify;display:inline-block;display:-ms-flexbox;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;outline:0;padding:.5rem 0 0;text-align:left;width:100%}jdp-container .jdp-day,jdp-container .jdp-day-name{background:0 0;border:1px solid transparent;color:rgba(0,0,0,.9);display:inline-block;flex-basis:14.2857143%;font-weight:400;height:31px;justify-content:center;line-height:31px;margin:2px 0;position:relative;text-align:center;width:14.2857143%}jdp-container .jdp-day-name.today,jdp-container .jdp-day.today{border-color:rgba(0,0,0,.3)}.dark jdp-container .jdp-day-name.selected,.dark jdp-container .jdp-day.selected,jdp-container .jdp-day-name.selected,jdp-container .jdp-day.selected{background-color:#008771!important;color:#fff!important;opacity:1!important}.dark jdp-container .jdp-day-name.holly-day,.dark jdp-container .jdp-day-name.last-week,.dark jdp-container .jdp-day.holly-day,.dark jdp-container .jdp-day.last-week,jdp-container .jdp-day-name.holly-day,jdp-container .jdp-day-name.last-week,jdp-container .jdp-day.holly-day,jdp-container .jdp-day.last-week{color:#f44336}.dark jdp-container .jdp-day.not-in-month,jdp-container .jdp-day.not-in-month{opacity:.4}jdp-container .jdp-day.disabled-day{cursor:not-allowed;opacity:.15}jdp-container .jdp-day:not(.disabled-day){border-radius:4px;cursor:pointer;transition:.1s linear}jdp-container .jdp-day:not(.disabled-day):hover{background:rgba(0,0,0,.1);transform:scale(1.15);z-index:1}jdp-container .jdp-day-name{background-color:rgba(0,0,0,.1);border-radius:0;cursor:default;font-size:90%;font-weight:900}jdp-container .jdp-footer{-ms-flex-pack:justify;display:inline-block;display:-ms-flexbox;display:flex;flex-wrap:nowrap;-ms-flex-wrap:nowrap;justify-content:space-between;outline:0;padding:.5rem .5rem 0;width:100%}jdp-container .jdp-btn-close,jdp-container .jdp-btn-empty,jdp-container .jdp-btn-today{background:#008771;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;font-size:90%;font-weight:400;padding:.3em .6em;text-align:center}jdp-container .jdp-btn-close.disabled-btn,jdp-container .jdp-btn-empty.disabled-btn,jdp-container .jdp-btn-today.disabled-btn{cursor:not-allowed;opacity:.2}@media only screen and (max-width:481px){jdp-overlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:rgba(0,0,0,.3);display:none;height:100%;left:0;position:fixed;top:0;width:100%}jdp-container{-moz-animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimationMobile;-webkit-animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimationMobile;animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimationMobile;border-radius:4px 4px 0 0;bottom:0!important;left:50%!important;max-width:100%;min-width:280px;top:unset!important;transform:translateX(-50%)!important;width:100%}jdp-container .jdp-footer{margin:.5rem 0}jdp-container .jdp-btn-close,jdp-container .jdp-btn-empty,jdp-container .jdp-btn-today{font-size:100%;padding:.5em .8em}jdp-container .jdp-btn-today~.jdp-btn-empty{margin-left:auto;margin-right:1em}}jdp-container .jdp-time-container{display:flex;padding:0}jdp-container .jdp-time-container .jdp-time{flex:auto;margin:0 .5rem;position:relative}jdp-container .jdp-time-container .jdp-time select{background:rgba(0,0,0,.03);border-radius:5px;padding:.5rem 1rem .5rem 7px}jdp-container .jdp-time-container .jdp-time:after{content:":";font-size:1.5rem;height:100%;position:absolute;right:-.7rem;top:50%;transform:translateY(-50%)}jdp-container .jdp-time-container .jdp-time:first-child:after{display:none}jdp-container .jdp-time-container.jdp-only-time .jdp-time select{font-size:1.5rem;padding:.8rem 1rem .8rem 7px}jdp-container .jdp-time-container.jdp-only-time .jdp-time:after{font-size:2.3rem;position:absolute;right:-.8rem}@-webkit-keyframes jdpOpenAnimation{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes jdpOpenAnimation{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes jdpOpenAnimationMobile{0%{bottom:-10%;opacity:0}to{bottom:0;opacity:1}}@keyframes jdpOpenAnimationMobile{0%{margin-bottom:-20%;opacity:0}to{margin-bottom:0;opacity:1}}.dark jdp-overlay{background-color:#181f2c}.dark jdp-container{background:#181f2c;border-color:#2c3950;box-shadow:0 1px 6px rgba(255,255,255,.12),0 1px 4px rgba(255,255,255,.24);color:#fff}.dark jdp-container .jdp-icon-minus,.dark jdp-container .jdp-icon-plus{border:1px solid #ccc}.dark jdp-container .jdp-months,.dark jdp-container .jdp-years{fill:rgba(255,255,255,0.9);color:rgba(255,255,255,.9)}.dark jdp-container .jdp-month,.dark jdp-container .jdp-month input,.dark jdp-container .jdp-month select,.dark jdp-container .jdp-time,.dark jdp-container .jdp-time input,.dark jdp-container .jdp-time select,.dark jdp-container .jdp-year,.dark jdp-container .jdp-year input,.dark jdp-container .jdp-year select{background:#222d42;color:#fff}.dark jdp-container .jdp-day,.dark jdp-container .jdp-day-name{border:1px solid transparent;color:rgba(255,255,255,.9)}.dark jdp-container .jdp-day-name.today,.dark jdp-container .jdp-day.today{border-color:rgba(255,255,255,.3)}.dark jdp-container .jdp-day.disabled-day{opacity:.15}.dark jdp-container .jdp-day:not(.disabled-day):hover{background:rgba(255,255,255,.1);transform:scale(1.15);z-index:1}.dark jdp-container .jdp-day-name{background-color:#222d42}.dark jdp-container .jdp-footer{background:#181f2c}.dark jdp-container .jdp-btn-close,.dark jdp-container .jdp-btn-empty,.dark jdp-container .jdp-btn-today{background:#008771;color:#fff}.dark jdp-container .jdp-btn-close.disabled-btn,.dark jdp-container .jdp-btn-empty.disabled-btn,.dark jdp-container .jdp-btn-today.disabled-btn{opacity:.2} \ No newline at end of file
+jdp-overlay {
+ height: 0;
+ width: 0;
+}
+jdp-container {
+ -moz-animation: 0.3s cubic-bezier(0.23, 1, 0.32, 1) jdpOpenAnimation;
+ -webkit-animation: 0.3s cubic-bezier(0.23, 1, 0.32, 1) jdpOpenAnimation;
+ animation: 0.3s cubic-bezier(0.23, 1, 0.32, 1) jdpOpenAnimation;
+ background: #fff;
+ border-radius: 1rem;
+ box-shadow: 0 2px 8px rgba(0,0,0,.15);
+ direction: rtl;
+ display: none;
+ width: 280px;
+ overflow: hidden;
+ padding: 0.5rem 0;
+ position: absolute;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ transform-origin: bottom;
+}
+jdp-container,
+jdp-container *,
+jdp-container :after,
+jdp-container :before {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+jdp-container .jdp-icon-minus,
+jdp-container .jdp-icon-plus {
+ border: 1px solid rgb(232 244 242);
+ border-radius: 6px;
+ cursor: pointer;
+ display: flex;
+ flex: none;
+ overflow: hidden;
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ transition: all 0.2s;
+ width: 24px;
+ height: 24px;
+ align-items: center;
+ justify-content: center;
+}
+
+jdp-container .jdp-icon-minus:hover,
+jdp-container .jdp-icon-plus:hover {
+ background-color: rgb(232 244 242);
+}
+
+jdp-container .jdp-icon-minus svg,
+jdp-container .jdp-icon-plus svg {
+ height: 1.5rem;
+ padding: 0.25rem;
+ vertical-align: middle;
+ width: 1.5rem;
+}
+jdp-container .jdp-icon-minus.not-in-range,
+jdp-container .jdp-icon-plus.not-in-range {
+ cursor: not-allowed;
+}
+jdp-container .jdp-icon-minus.not-in-range svg,
+jdp-container .jdp-icon-plus.not-in-range svg {
+ opacity: 0.3;
+}
+jdp-container .jdp-months,
+jdp-container .jdp-years {
+ fill: rgba(0, 0, 0, 0.9);
+ color: rgba(0, 0, 0, 0.9);
+ display: -webkit-inline-box;
+ display: -webkit-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ font-size: 120%;
+ margin: 0 2.5%;
+}
+jdp-container .jdp-months {
+ width: 40%;
+ margin-right: 1rem;
+}
+jdp-container .jdp-years {
+ width: 40%;
+ margin: 0.5rem 1.2rem 0.8rem 0;
+}
+jdp-container .jdp-month,
+jdp-container .jdp-month input,
+jdp-container .jdp-month select,
+jdp-container .jdp-time,
+jdp-container .jdp-time input,
+jdp-container .jdp-time select,
+jdp-container .jdp-year,
+jdp-container .jdp-year input,
+jdp-container .jdp-year select {
+ background: #fff;
+ border: none;
+ border-radius: 0;
+ color: inherit;
+ display: inline-block;
+ font-family: inherit;
+ font-size: inherit;
+ font-weight: 300;
+ height: auto;
+ line-height: inherit;
+ margin: 0;
+ outline: 0;
+ padding: 0;
+ text-align: center;
+ vertical-align: initial;
+ width: 100%;
+ font-feature-settings: "ss01";
+}
+jdp-container .jdp-month input:active,
+jdp-container .jdp-month input:focus,
+jdp-container .jdp-month select:active,
+jdp-container .jdp-month select:focus,
+jdp-container .jdp-month:active,
+jdp-container .jdp-month:focus,
+jdp-container .jdp-time input:active,
+jdp-container .jdp-time input:focus,
+jdp-container .jdp-time select:active,
+jdp-container .jdp-time select:focus,
+jdp-container .jdp-time:active,
+jdp-container .jdp-time:focus,
+jdp-container .jdp-year input:active,
+jdp-container .jdp-year input:focus,
+jdp-container .jdp-year select:active,
+jdp-container .jdp-year select:focus,
+jdp-container .jdp-year:active,
+jdp-container .jdp-year:focus {
+ outline: 0;
+}
+jdp-container .jdp-month input option,
+jdp-container .jdp-month option,
+jdp-container .jdp-month select option,
+jdp-container .jdp-time input option,
+jdp-container .jdp-time option,
+jdp-container .jdp-time select option,
+jdp-container .jdp-year input option,
+jdp-container .jdp-year option,
+jdp-container .jdp-year select option {
+ font-size: 95%;
+ min-height: 1.3rem;
+ outline: 0;
+ padding: 0;
+}
+jdp-container .jdp-month input,
+jdp-container .jdp-time input,
+jdp-container .jdp-year input {
+ -webkit-appearance: none;
+ -moz-appearance: textfield;
+ cursor: text;
+}
+jdp-container .jdp-month input::-webkit-inner-spin-button,
+jdp-container .jdp-month input::-webkit-outer-spin-button,
+jdp-container .jdp-time input::-webkit-inner-spin-button,
+jdp-container .jdp-time input::-webkit-outer-spin-button,
+jdp-container .jdp-year input::-webkit-inner-spin-button,
+jdp-container .jdp-year input::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+}
+jdp-container .jdp-month select,
+jdp-container .jdp-time select,
+jdp-container .jdp-year select {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ cursor: pointer;
+ appearance: none;
+ position: relative;
+}
+jdp-container .jdp-days {
+ -ms-flex-pack: justify;
+ display: inline-block;
+ display: -ms-flexbox;
+ display: flex;
+ flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ justify-content: space-around;
+ outline: 0;
+ padding: 8px 12px;
+ text-align: left;
+ width: 100%;
+ border-top: 1px solid #e8e8e8;
+}
+jdp-container .jdp-day,
+jdp-container .jdp-day-name {
+ background: 0 0;
+ border: 1px solid transparent;
+ color: rgba(0,0,0,.65);
+ display: block;
+ font-weight: 400;
+ height: 24px;
+ justify-content: center;
+ line-height: 22px;
+ margin: 2px 6px;
+ position: relative;
+ text-align: center;
+ width: 24px;
+ font-feature-settings: "ss01";
+}
+jdp-container .jdp-day-name.today,
+jdp-container .jdp-day.today {
+ border-color: #008771;
+ color: #008771;
+ font-weight: 700;
+}
+.dark jdp-container .jdp-day-name.selected,
+.dark jdp-container .jdp-day.selected,
+jdp-container .jdp-day-name.selected,
+jdp-container .jdp-day.selected {
+ background-color: #008771 !important;
+ color: #fff !important;
+ opacity: 1 !important;
+}
+.dark jdp-container .jdp-day-name.holly-day,
+.dark jdp-container .jdp-day-name.last-week,
+.dark jdp-container .jdp-day.holly-day,
+.dark jdp-container .jdp-day.last-week,
+jdp-container .jdp-day-name.holly-day,
+jdp-container .jdp-day-name.last-week,
+jdp-container .jdp-day.holly-day,
+jdp-container .jdp-day.last-week {
+ color: #f44336;
+}
+.dark jdp-container .jdp-day.not-in-month,
+jdp-container .jdp-day.not-in-month {
+ opacity: 0.4;
+}
+jdp-container .jdp-day.disabled-day {
+ cursor: not-allowed;
+ opacity: 0.15;
+}
+jdp-container .jdp-day:not(.disabled-day) {
+ border-radius: 6px;
+ cursor: pointer;
+ transition: 0.1s linear;
+}
+jdp-container .jdp-day:not(.disabled-day):hover {
+ background: rgb(232 244 242);
+}
+jdp-container .jdp-day-name {
+ background-color: rgb(0 0 0 / 0%);
+ border-radius: 6px;
+ cursor: default;
+}
+jdp-container .jdp-footer {
+ -ms-flex-pack: justify;
+ display: inline-block;
+ display: -ms-flexbox;
+ display: flex;
+ flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ justify-content: space-between;
+ outline: 0;
+ padding: 6px 12px 0;
+ width: 100%;
+ border-top: 1px solid #e8e8e8;
+}
+jdp-container .jdp-btn-close,
+jdp-container .jdp-btn-empty,
+jdp-container .jdp-btn-today {
+ background: #00877000;
+ border-radius: 5px;
+ color: #008771;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 90%;
+ font-weight: 400;
+ padding: 0.3em 0.6em;
+ text-align: center;
+}
+jdp-container .jdp-btn-close.disabled-btn,
+jdp-container .jdp-btn-empty.disabled-btn,
+jdp-container .jdp-btn-today.disabled-btn {
+ cursor: not-allowed;
+ opacity: 0.2;
+}
+jdp-container .jdp-time-container {
+ display: flex;
+ padding: 6px 12px 12px 12px;
+}
+jdp-container .jdp-time-container .jdp-time {
+ flex: auto;
+ margin: 0 0.5rem;
+ position: relative;
+}
+jdp-container .jdp-time-container .jdp-time select {
+ border: 1px solid rgb(232 244 242);
+ border-radius: 6px;
+ appearance: none;
+ transition: all 0.2s;
+}
+
+jdp-container .jdp-time-container .jdp-time select:hover {
+ background-color: rgb(232 244 242);
+}
+
+jdp-container .jdp-time-container .jdp-time:after {
+ content: ":";
+ font-size: 1.5rem;
+ height: 100%;
+ position: absolute;
+ right: -0.7rem;
+ transform: translateY(-50%);
+}
+jdp-container .jdp-time-container .jdp-time:first-child:after {
+ display: none;
+}
+jdp-container .jdp-time-container.jdp-only-time .jdp-time select {
+ font-size: 1.5rem;
+ padding: 0.8rem 1rem 0.8rem 7px;
+}
+jdp-container .jdp-time-container.jdp-only-time .jdp-time:after {
+ font-size: 2.3rem;
+ position: absolute;
+ right: -0.8rem;
+}
+@-webkit-keyframes jdpOpenAnimation {
+ 0% {
+ transform: scaleY(.8);
+ transform-origin: 0% 0%;
+ opacity: 0
+ }
+
+ to {
+ transform: scaleY(1);
+ transform-origin: 0% 0%;
+ opacity: 1
+ }
+}
+@keyframes jdpOpenAnimation {
+ 0% {
+ transform: scaleY(.8);
+ transform-origin: 0% 0%;
+ opacity: 0
+ }
+
+ to {
+ transform: scaleY(1);
+ transform-origin: 0% 0%;
+ opacity: 1
+ }
+}
+@-webkit-keyframes jdpOpenAnimationMobile {
+ 0% {
+ bottom: -10%;
+ opacity: 0;
+ }
+ to {
+ bottom: 0;
+ opacity: 1;
+ }
+}
+@keyframes jdpOpenAnimationMobile {
+ 0% {
+ margin-bottom: -20%;
+ opacity: 0;
+ }
+ to {
+ margin-bottom: 0;
+ opacity: 1;
+ }
+}
+
+.dark jdp-container .jdp-days {
+ border-color: #313f5a;
+}
+
+.dark jdp-overlay {
+ background-color: #181f2c;
+}
+.dark jdp-container {
+ background: #101828;
+ border-color: #2c3950;
+ box-shadow: 0 2px 8px rgba(0,0,0,.15);
+ color: #fff;
+}
+.dark jdp-container .jdp-icon-minus,
+.dark jdp-container .jdp-icon-plus {
+ border-color: #313f5a;
+}
+
+.dark jdp-container .jdp-icon-minus:hover,
+.dark jdp-container .jdp-icon-plus:hover {
+ background-color: #313f5a;
+}
+
+.dark jdp-container .jdp-months,
+.dark jdp-container .jdp-years {
+ fill: rgba(255, 255, 255, 0.9);
+ color: rgba(255, 255, 255, 0.9);
+}
+.dark jdp-container .jdp-month,
+.dark jdp-container .jdp-month input,
+.dark jdp-container .jdp-month select,
+.dark jdp-container .jdp-time,
+.dark jdp-container .jdp-time input,
+.dark jdp-container .jdp-time select,
+.dark jdp-container .jdp-year,
+.dark jdp-container .jdp-year input,
+.dark jdp-container .jdp-year select {
+ background: #101828;
+ color: rgb(255 255 255 / 65%);
+}
+.dark jdp-container .jdp-day,
+.dark jdp-container .jdp-day-name {
+ border: 1px solid transparent;
+ color: rgba(255, 255, 255, 0.65);
+}
+.dark jdp-container .jdp-day-name.today,
+.dark jdp-container .jdp-day.today {
+ border-color: #008771;
+}
+.dark jdp-container .jdp-day.disabled-day {
+ opacity: 0.15;
+}
+.dark jdp-container .jdp-day:not(.disabled-day):hover {
+ background-color: #313f5a;
+ color: #fff;
+}
+.dark jdp-container .jdp-footer {
+ border-color: #313f5a;
+}
+.dark jdp-container .jdp-btn-close,
+.dark jdp-container .jdp-btn-empty,
+.dark jdp-container .jdp-btn-today {
+ color: rgb(255 255 255 / 65%);
+}
+
+.dark jdp-container .jdp-btn-close:hover,
+.dark jdp-container .jdp-btn-empty:hover,
+.dark jdp-container .jdp-btn-today:hover {
+ color: rgb(255, 255, 255);
+}
+
+.dark jdp-container .jdp-btn-close.disabled-btn,
+.dark jdp-container .jdp-btn-empty.disabled-btn,
+.dark jdp-container .jdp-btn-today.disabled-btn {
+ opacity: 0.2;
+}
+
+.dark jdp-container .jdp-time-container .jdp-time select:hover {
+ background-color: #313f5a;
+ color: #fff;
+}
+
+.dark jdp-container .jdp-time-container .jdp-time select {
+ border: 1px solid rgb(49 63 90);
+}
diff --git a/web/html/login.html b/web/html/login.html
index 34eff41c..b622a080 100644
--- a/web/html/login.html
+++ b/web/html/login.html
@@ -31,7 +31,7 @@
}
.title {
font-size: 32px;
- font-weight: bold;
+ font-weight: 600;
}
#app {
overflow: hidden;
@@ -204,7 +204,7 @@
position: relative;
width: 100%;
height: 15vh;
- margin-bottom: -5px; /*Fix for safari gap*/
+ margin-bottom: -8px; /*Fix for safari gap*/
min-height: 100px;
max-height: 150px;
}
@@ -212,23 +212,27 @@
animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;
}
.dark .parallax > use {
- fill: rgb(10 117 87 / 20%);
+ fill: #0f2d32;
}
.parallax > use:nth-child(1) {
animation-delay: -2s;
- animation-duration: 7s;
+ animation-duration: 4s;
opacity: 0.2;
}
.parallax > use:nth-child(2) {
animation-delay: -3s;
- animation-duration: 10s;
+ animation-duration: 7s;
opacity: 0.4;
}
.parallax > use:nth-child(3) {
animation-delay: -4s;
- animation-duration: 13s;
+ animation-duration: 10s;
opacity: 0.6;
}
+ .parallax > use:nth-child(4) {
+ animation-delay: -5s;
+ animation-duration: 13s;
+ }
@keyframes move-forever {
0% {
transform: translate3d(-90px, 0, 0);
@@ -255,9 +259,10 @@
<path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z" />
</defs>
<g class="parallax">
+ <use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(0, 135, 113, 0.08)" />
<use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(0, 135, 113, 0.08)" />
<use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(0, 135, 113, 0.08)" />
- <use xlink:href="#gentle-wave" x="48" y="7" fill="rgba(0, 135, 113, 0.08)" />
+ <use xlink:href="#gentle-wave" x="48" y="7" fill="#c7ebe2" />
</g>
</svg>
</div>
@@ -290,7 +295,7 @@
</a-form-item>
<a-form-item>
<a-row justify="center" class="centered">
- <div class="wave-btn-bg wave-btn-bg-cl" :style="loading ? { width: '54px' } : { display: 'inline-block' }">
+ <div class="wave-btn-bg wave-btn-bg-cl" :style="loading ? { width: '52px' } : { display: 'inline-block' }">
<a-button class="ant-btn-primary-login" type="primary" :loading="loading" @click="login" :icon="loading ? 'poweroff' : undefined">
[[ loading ? '' : '{{ i18n "login" }}' ]]
</a-button>
diff --git a/web/html/xui/common_sider.html b/web/html/xui/common_sider.html
index f91b9fbb..13d5bd49 100644
--- a/web/html/xui/common_sider.html
+++ b/web/html/xui/common_sider.html
@@ -1,19 +1,19 @@
{{define "menuItems"}}
<a-menu-item key="{{ .base_path }}panel/">
<a-icon type="dashboard"></a-icon>
- <span>{{ i18n "menu.dashboard"}}</span>
+ <span><b>{{ i18n "menu.dashboard"}}</b></span>
</a-menu-item>
<a-menu-item key="{{ .base_path }}panel/inbounds">
<a-icon type="user"></a-icon>
- <span>{{ i18n "menu.inbounds"}}</span>
+ <span><b>{{ i18n "menu.inbounds"}}</b></span>
</a-menu-item>
<a-menu-item key="{{ .base_path }}panel/settings">
<a-icon type="setting"></a-icon>
- <span>{{ i18n "menu.settings"}}</span>
+ <span><b>{{ i18n "menu.settings"}}</b></span>
</a-menu-item>
<a-menu-item key="{{ .base_path }}panel/xray">
<a-icon type="tool"></a-icon>
- <span>{{ i18n "menu.xray"}}</span>
+ <span><b>{{ i18n "menu.xray"}}</b></span>
</a-menu-item>
<!--<a-menu-item key="{{ .base_path }}panel/clients">-->
<!-- <a-icon type="laptop"></a-icon>-->
@@ -21,7 +21,7 @@
<!--</a-menu-item>-->
<a-menu-item key="{{ .base_path }}logout">
<a-icon type="logout"></a-icon>
- <span>{{ i18n "menu.logout"}}</span>
+ <span><b>{{ i18n "menu.logout"}}</b></span>
</a-menu-item>
{{end}}
diff --git a/web/html/xui/component/persianDatepicker.html b/web/html/xui/component/persianDatepicker.html
index 10ef8472..456d5ec6 100644
--- a/web/html/xui/component/persianDatepicker.html
+++ b/web/html/xui/component/persianDatepicker.html
@@ -5,7 +5,7 @@
@input="$emit('input', convertToGregorian($event.target.value)); jalaliDatepicker.hide();"
:placeholder="placeholder">
<template #addonAfter>
- <a-icon type="calendar" style="font-size: 16px;"/>
+ <a-icon type="calendar" style="font-size: 14px; opacity: 0.5;"/>
</template>
</a-input>
</div>
@@ -57,4 +57,4 @@
}
});
</script>
-{{end}} \ No newline at end of file
+{{end}}
diff --git a/web/html/xui/form/inbound.html b/web/html/xui/form/inbound.html
index 048fc818..6f3705ff 100644
--- a/web/html/xui/form/inbound.html
+++ b/web/html/xui/form/inbound.html
@@ -54,7 +54,7 @@
<a-icon type="question-circle"></a-icon>
</a-tooltip>
</template>
- <a-date-picker v-if="datepicker == 'gregorian'" :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss"
+ <a-date-picker style="width: 100%;" v-if="datepicker == 'gregorian'" :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss"
:dropdown-class-name="themeSwitcher.currentTheme"
v-model="dbInbound._expiryTime"></a-date-picker>
<persian-datepicker v-else placeholder='{{ i18n "pages.settings.datepickerPlaceholder" }}'
@@ -117,4 +117,4 @@
<template v-if="inbound.canSniffing()">
{{template "form/sniffing"}}
</template>
-{{end}} \ No newline at end of file
+{{end}}
diff --git a/web/html/xui/form/stream/external_proxy.html b/web/html/xui/form/stream/external_proxy.html
index 2a072df9..9c3ed2e0 100644
--- a/web/html/xui/form/stream/external_proxy.html
+++ b/web/html/xui/form/stream/external_proxy.html
@@ -20,7 +20,7 @@
<a-input-number style="width: 15%;" v-model.number="row.port" min="1" max="65531"></a-input-number>
</a-tooltip>
<a-input style="width: 20%" v-model.trim="row.remark" placeholder='{{ i18n "remark" }}'></a-input>
- <a-button style="width: 10%; margin: 0px" @click="inbound.stream.externalProxy.splice(index, 1)">-</a-button>
+ <a-button style="width: 10%; margin: 0px; border-radius: 0 1rem 1rem 0;" @click="inbound.stream.externalProxy.splice(index, 1)">-</a-button>
</a-input-group>
</a-form>
{{end}}
diff --git a/web/html/xui/form/stream/stream_tcp.html b/web/html/xui/form/stream/stream_tcp.html
index 19a09ac3..8576df8c 100644
--- a/web/html/xui/form/stream/stream_tcp.html
+++ b/web/html/xui/form/stream/stream_tcp.html
@@ -33,7 +33,7 @@
</template>
</a-form-item>
<a-form-item label='{{ i18n "pages.inbounds.stream.tcp.requestHeader" }}'>
- <a-button size="small" @click="inbound.stream.tcp.request.addHeader('host', '')">+</a-button>
+ <a-button size="small" @click="inbound.stream.tcp.request.addHeader('Host', '')">+</a-button>
</a-form-item>
<a-form-item :wrapper-col="{span:24}">
<a-input-group compact v-for="(header, index) in inbound.stream.tcp.request.headers">
@@ -79,4 +79,4 @@
</a-input-group>
</a-form-item>
</a-form>
-{{end}} \ No newline at end of file
+{{end}}
diff --git a/web/html/xui/form/stream/stream_ws.html b/web/html/xui/form/stream/stream_ws.html
index 00b64167..62380e94 100644
--- a/web/html/xui/form/stream/stream_ws.html
+++ b/web/html/xui/form/stream/stream_ws.html
@@ -7,7 +7,7 @@
<a-input v-model.trim="inbound.stream.ws.path"></a-input>
</a-form-item>
<a-form-item label='{{ i18n "pages.inbounds.stream.tcp.requestHeader" }}'>
- <a-button size="small" @click="inbound.stream.ws.addHeader('host', '')">+</a-button>
+ <a-button size="small" @click="inbound.stream.ws.addHeader('Host', '')">+</a-button>
</a-form-item>
<a-form-item :wrapper-col="{span:24}">
<a-input-group compact v-for="(header, index) in inbound.stream.ws.headers">
diff --git a/web/html/xui/index.html b/web/html/xui/index.html
index a9391952..abd3b8d0 100644
--- a/web/html/xui/index.html
+++ b/web/html/xui/index.html
@@ -18,6 +18,14 @@
.ant-card-dark h2 {
color: hsla(0, 0%, 100%, .65);
}
+
+ .ant-tag-df {
+ color: rgb(0 0 0 / 80%);
+ }
+
+ .dark .ant-tag-df {
+ color: rgb(255 255 255 / 80%);
+ }
</style>
<body>
@@ -36,15 +44,15 @@
<a-progress type="dashboard" status="normal"
:stroke-color="status.cpu.color"