diff --git a/web/assets/css/custom.css b/web/assets/css/custom.css index 66085680..17f9c03e 100644 --- a/web/assets/css/custom.css +++ b/web/assets/css/custom.css @@ -8,7 +8,7 @@ body { } body { - color: rgba(0,0,0,.65); + color: rgba(0, 0, 0, 0.65); font-size: 14px; font-variant: tabular-nums; line-height: 1.5; @@ -21,7 +21,7 @@ html { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; -ms-overflow-style: scrollbar; - -webkit-tap-highlight-color: rgba(0,0,0,0); + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } ::selection { @@ -41,7 +41,8 @@ html { overflow: auto; } -.ant-layout, .ant-layout * { +.ant-layout, +.ant-layout * { box-sizing: border-box; } @@ -52,16 +53,17 @@ html { style attribute { text-align: center; } -.ant-table-tbody>tr>td, .ant-table-thead>tr>th { +.ant-table-tbody > tr > td, +.ant-table-thead > tr > th { padding: 16px; overflow-wrap: break-word; } -.ant-table-thead>tr>th { - color: rgba(0,0,0,.85); +.ant-table-thead > tr > th { + color: rgba(0, 0, 0, 0.85); font-weight: 500; text-align: left; border-bottom: 1px solid #e8e8e8; - transition: background .3s ease; + transition: background 0.3s ease; } .ant-table-row-cell-break-word { word-wrap: break-word; @@ -79,7 +81,7 @@ style attribute { box-sizing: border-box; margin: 0; padding: 0; - color: rgba(0,0,0,.65); + color: rgba(0, 0, 0, 0.65); font-size: 14px; font-variant: tabular-nums; line-height: 1.5; @@ -88,6 +90,9 @@ style attribute { position: relative; clear: both; } +.ant-table-body { + overflow-x: auto !important; +} .ant-card-hoverable { cursor: auto; cursor: pointer; @@ -96,16 +101,16 @@ style attribute { box-sizing: border-box; margin: 0; padding: 0; - color: rgba(0,0,0,.65); + color: rgba(0, 0, 0, 0.65); font-size: 14px; font-variant: tabular-nums; line-height: 1.5; list-style: none; font-feature-settings: "tnum"; position: relative; - background: #fff; + background-color: #fff; border-radius: 2px; - transition: all .3s; + transition: all 0.3s; } .ant-space { @@ -121,11 +126,11 @@ style attribute { display: none; } .ant-card { - margin: .5rem; + margin: 0.5rem; } .ant-tabs { - margin: .5rem; - padding: .5rem; + margin: 0.5rem; + padding: 0.5rem; } } @@ -142,7 +147,7 @@ style attribute { cursor: auto; } -.ant-card+.ant-card { +.ant-card + .ant-card { margin-top: 20px; } @@ -159,7 +164,7 @@ style attribute { display: flex; justify-content: center; align-items: center; - background: #fff; + background-color: #fff; right: -40px; box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15); border-radius: 0 4px 4px 0; @@ -167,27 +172,45 @@ style attribute { .ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { background-color: #0a7557 !important; - background-image: linear-gradient( 270deg, rgba(123, 199, 77, 0) 30%, #00ab80, rgba(123, 199, 77, 0) 100% ); + background-image: linear-gradient( + 270deg, + rgba(123, 199, 77, 0) 30%, + #00ab80, + rgba(123, 199, 77, 0) 100% + ); background-repeat: no-repeat; animation: ma-bg-move linear 6.6s infinite; color: #fff; - border-radius: 0.5rem + border-radius: 0.5rem; } + @-webkit-keyframes ma-bg-move { - 0% {background-position: -500px 0;} - 100% {background-position: 1000px 0;} + 0% { + background-position: -500px 0; + } + 100% { + background-position: 1000px 0; + } } + @keyframes ma-bg-move { - 0% {background-position: -500px 0;} - 50% {background-position: 1000px 0;} - 100% {background-position: 1000px 0;} + 0% { + background-position: -500px 0; + } + 50% { + background-position: 1000px 0; + } + 100% { + background-position: 1000px 0; + } } + .ant-menu-item-active, .ant-menu-item:hover, .ant-menu-submenu-active, .ant-menu-submenu-title:hover, -.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{ - color:#0a7557; +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open { + color: #0a7557; background-color: #dce9f5; border-radius: 0.5rem; } @@ -202,13 +225,13 @@ style attribute { } .ant-layout-sider-children, .ant-pagination ul { - margin-top:-.1px; - padding:0.5rem + margin-top: -0.1px; + padding: 0.5rem; } .ant-dropdown-menu, .ant-select-dropdown-menu { - padding: .5rem; + padding: 0.5rem; } .ant-dropdown-menu-item, .ant-dropdown-menu-item:hover, @@ -216,7 +239,7 @@ style attribute { .ant-select-dropdown-menu-item:hover, .ant-select-dropdown-menu-item-selected, .ant-select-selection--multiple .ant-select-selection__choice { - border-radius: .5rem; + border-radius: 0.5rem; margin-bottom: 2px; } @@ -237,98 +260,126 @@ style attribute { .fade-in-linear-enter, .fade-in-linear-leave, .fade-in-linear-leave-active { - opacity: 0 + opacity: 0; } -.fade-in-linear-enter-active, .fade-in-linear-leave-active { - -webkit-transition: opacity .2s linear; - transition: opacity .2s linear +.fade-in-linear-enter-active, +.fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; } -.fade-in-linear-enter-active, .fade-in-linear-leave-active { - -webkit-transition: opacity .2s linear; - transition: opacity .2s linear +.fade-in-linear-enter-active, +.fade-in-linear-leave-active { + -webkit-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; } -.fade-in-enter-active, .fade-in-leave-active { - -webkit-transition: all .3s cubic-bezier(.55, 0, .1, 1); - transition: all .3s cubic-bezier(.55, 0, .1, 1) +.fade-in-enter-active, +.fade-in-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); } -.zoom-in-center-enter-active, .zoom-in-center-leave-active { - -webkit-transition: all .3s cubic-bezier(.55, 0, .1, 1); - transition: all .3s cubic-bezier(.55, 0, .1, 1) +.zoom-in-center-enter-active, +.zoom-in-center-leave-active { + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); + transition: all 0.3s cubic-bezier(0.55, 0, 0.1, 1); } -.zoom-in-center-enter, .zoom-in-center-leave-active { +.zoom-in-center-enter, +.zoom-in-center-leave-active { opacity: 0; -webkit-transform: scaleX(0); - transform: scaleX(0) + transform: scaleX(0); } -.zoom-in-top-enter-active, .zoom-in-top-leave-active { +.zoom-in-top-enter-active, +.zoom-in-top-leave-active { opacity: 1; -webkit-transform: scaleY(1); transform: scaleY(1); - -webkit-transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); - transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); - transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1); - transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1); -webkit-transform-origin: center top; - transform-origin: center top + transform-origin: center top; } -.zoom-in-top-enter, .zoom-in-top-leave-active { +.zoom-in-top-enter, +.zoom-in-top-leave-active { opacity: 0; -webkit-transform: scaleY(0); - transform: scaleY(0) + transform: scaleY(0); } -.zoom-in-bottom-enter-active, .zoom-in-bottom-leave-active { +.zoom-in-bottom-enter-active, +.zoom-in-bottom-leave-active { opacity: 1; -webkit-transform: scaleY(1); transform: scaleY(1); - -webkit-transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); - transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); - transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1); - transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1); -webkit-transform-origin: center bottom; - transform-origin: center bottom + transform-origin: center bottom; } -.zoom-in-bottom-enter, .zoom-in-bottom-leave-active { +.zoom-in-bottom-enter, +.zoom-in-bottom-leave-active { opacity: 0; -webkit-transform: scaleY(0); - transform: scaleY(0) + transform: scaleY(0); } -.zoom-in-left-enter-active, .zoom-in-left-leave-active { +.zoom-in-left-enter-active, +.zoom-in-left-leave-active { opacity: 1; -webkit-transform: scale(1, 1); transform: scale(1, 1); - -webkit-transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); - transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); - transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1); - transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + -webkit-transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), + opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1), + -webkit-transform 0.3s cubic-bezier(0.23, 1, 0.32, 1); -webkit-transform-origin: top left; - transform-origin: top left + transform-origin: top left; } -.zoom-in-left-enter, .zoom-in-left-leave-active { +.zoom-in-left-enter, +.zoom-in-left-leave-active { opacity: 0; - -webkit-transform: scale(.45, .45); - transform: scale(.45, .45) + -webkit-transform: scale(0.45, 0.45); + transform: scale(0.45, 0.45); } -.list-enter-active, .list-leave-active { - -webkit-transition: all .3s; - transition: all .3s +.list-enter-active, +.list-leave-active { + -webkit-transition: all 0.3s; + transition: all 0.3s; } -.list-enter, .list-leave-active { +.list-enter, +.list-leave-active { opacity: 0; -webkit-transform: translateY(-30px); - transform: translateY(-30px) + transform: translateY(-30px); } .ant-tooltip-inner { @@ -340,17 +391,17 @@ style attribute { } .ant-progress-inner { - background-color: #EBEEF5; + background-color: #ebeef5; } -.deactive-client .ant-collapse-header{ - color:rgb(255, 255, 255) !important; +.deactive-client .ant-collapse-header { + color: rgb(255, 255, 255) !important; background-color: rgb(255, 127, 127); } -.ant-table-tbody>tr>td, -.ant-table-thead>tr>th{ - padding:16px 5px; +.ant-table-tbody > tr > td, +.ant-table-thead > tr > th { + padding: 16px 5px; } .ant-table-expand-icon-th, @@ -397,28 +448,28 @@ style attribute { } .ant-tag-orange, .ant-alert-warning { - background-color:#fff6E6; + background-color: #fff6e6; border-color: #ffd98c; color: #ffa031; } .ant-tag-red, .ant-alert-error { - background-color:#fff0f0; + background-color: #fff0f0; border-color: #fb9d9d; color: #e04141; } -.ant-input::placeholder{ +.ant-input::placeholder { opacity: 0.5; } .ant-input:hover, .ant-input:focus { - background-color: #edfaf9; + background-color: #edf4fa; } .delete-icon:hover { - color: #E04141; + color: #e04141; } .normal-icon:hover { @@ -444,18 +495,18 @@ style attribute { .dark .ant-table, .dark .ant-collapse-content, .dark .ant-tabs { - background-color: #151F31; + background-color: #151f31; color: #ffffffa6; } .dark .ant-card-hoverable:hover, -.dark .ant-space-item>.ant-tabs:hover { +.dark .ant-space-item > .ant-tabs:hover { box-shadow: 0 1px 10px -1px rgb(154 175 238 / 80%); } -.dark>.ant-layout, +.dark > .ant-layout, .dark .drawer-handle, -.dark .ant-table-thead>tr>th, +.dark .ant-table-thead > tr > th, .dark .ant-table-expanded-row, .dark .ant-table-expanded-row:hover, .dark .ant-table-expanded-row .ant-table-tbody, @@ -464,7 +515,7 @@ style attribute { color: rgb(255 255 255 /65%); } -.dark .ant-table-expanded-row .ant-table-thead>tr:first-child>th { +.dark .ant-table-expanded-row .ant-table-thead > tr:first-child > th { border-radius: 0; } @@ -475,27 +526,27 @@ style attribute { .dark .ant-table-bordered, .dark .ant-table-bordered.ant-table-empty .ant-table-placeholder, -.dark .ant-table-bordered .ant-table-body>table, +.dark .ant-table-bordered .ant-table-body > table, .dark .ant-table-bordered .ant-table-fixed-left table, .dark .ant-table-bordered .ant-table-fixed-right table, -.dark .ant-table-bordered .ant-table-header>table, -.dark .ant-table-bordered .ant-table-thead>tr:not(:last-child)>th, -.dark .ant-table-bordered .ant-table-tbody>tr>td, -.dark .ant-table-bordered .ant-table-thead>tr>th { - border-color: #2C3950; +.dark .ant-table-bordered .ant-table-header > table, +.dark .ant-table-bordered .ant-table-thead > tr:not(:last-child) > th, +.dark .ant-table-bordered .ant-table-tbody > tr > td, +.dark .ant-table-bordered .ant-table-thead > tr > th { + border-color: #2c3950; } -.dark .ant-table-tbody>tr>td, -.dark .ant-table-thead>tr>th, +.dark .ant-table-tbody > tr > td, +.dark .ant-table-thead > tr > th, .dark .ant-card-head, .dark .ant-modal-header, -.dark .ant-collapse>.ant-collapse-item, +.dark .ant-collapse > .ant-collapse-item, .dark .ant-tabs-bar, .dark .ant-list-split .ant-list-item, .dark .ant-popover-title, .dark .ant-calendar-header, .dark .ant-calendar-input-wrap { - border-bottom-color: #2C3950; + border-bottom-color: #2c3950; } .dark .ant-modal-footer, @@ -509,7 +560,7 @@ style attribute { .dark .ant-progress-text, .dark .ant-card-head, .dark .ant-form, -.dark .ant-collapse>.ant-collapse-item>.ant-collapse-header, +.dark .ant-collapse > .ant-collapse-item > .ant-collapse-header, .dark .ant-modal-close-x, .dark .ant-pagination-item a, .dark li:not(.ant-pagination-disabled) i, @@ -525,17 +576,30 @@ style attribute { .dark .ant-divider-inner-text, .dark .ant-popover-title, .dark .ant-popover-inner-content, -.dark h2 { - color: rgb(255 255 255 / 65%); +.dark h2, +.dark .ant-modal-title, +.dark .ant-form-item-label > label, +.dark .ant-checkbox-wrapper, +.dark .ant-form-item, +.dark .ant-calendar-footer .ant-calendar-today-btn, +.dark .ant-calendar-footer .ant-calendar-time-picker-btn, +.dark .ant-calendar-day-select, +.dark .ant-calendar-month-select, +.dark .ant-calendar-year-select, +.dark .ant-calendar-date, +.dark .ant-calendar-year-panel-year, +.dark .ant-calendar-month-panel-month, +.dark .ant-calendar-decade-panel-decade { + color: rgba(255, 255, 255, 0.65); } .dark .ant-list-item-meta-description { - color: rgb(255 255 255 / 45%); + color: rgba(255, 255, 255, 0.45); } .dark .ant-pagination-disabled i, .dark .ant-tabs-tab-btn-disabled { - color: rgb(255 255 255 / 25%); + color: rgba(255, 255, 255, 0.25); } .dark .ant-input, @@ -556,9 +620,9 @@ style attribute { .dark .client-table-header, .dark .ant-select-selection--multiple .ant-select-selection__choice, .dark .ant-calendar-time-picker-inner { - background-color: #222D42; + background-color: #222d42; border-color: #2c3950; - color: rgb(255 255 255 / 65%); + color: rgba(255, 255, 255, 0.65); } .dark .ant-select-selection:hover, @@ -572,7 +636,7 @@ style attribute { } .dark .ant-btn:not(.ant-btn-primary):not(.ant-btn-danger) { - color: rgb(255 255 255 / 65%); + color: rgba(255, 255, 255, 0.65); background-color: rgb(10 117 87 / 30%); border: 1px solid #0a7557; } @@ -580,13 +644,13 @@ style attribute { .dark .ant-radio-button-wrapper, .dark .ant-radio-button-wrapper:before { color: rgb(255 255 255 / 65%); - background-color: rgb(10 117 87 / 30%); + background-color: rgb(14 73 181 / 30%); border-color: #0a7557; } -.dark .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger) , -.dark .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) { - color: #ffffff; +.dark .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), +.dark .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) { + color: #fff; background-color: rgb(10 117 87 / 50%); border-color: #0a7557; } @@ -599,7 +663,10 @@ style attribute { border-color: #42516c; } -.dark .ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td, +.dark + .ant-table-tbody + > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) + > td, .dark .client-table-odd-row { background-color: #0A755722; } @@ -616,10 +683,7 @@ style attribute { border-color: #0a7557; } -.dark .ant-switch:not(.ant-switch-checked) { - background-color: #2C3950; -} - +.dark .ant-switch:not(.ant-switch-checked), .dark .ant-progress-line .ant-progress-inner { background-color: #2c3950; } @@ -630,11 +694,11 @@ style attribute { .ant-dropdown-menu-dark, .dark .ant-popover-inner { - background-color: #222D42; + background-color: #222d42; } -.dark>.ant-popover-content>.ant-popover-arrow { - border-color: #222D42; +.dark > .ant-popover-content > .ant-popover-arrow { + border-color: #222d42; } .ant-dropdown-menu-dark .ant-dropdown-menu-item:hover, @@ -649,11 +713,11 @@ style attribute { } .dark .ant-alert-message { - color: rgb(255 255 255 /85%); + color: rgba(255, 255, 255, 0.85); } .dark .ant-tag { - color: rgb(255 255 255 / 65%); + color: rgba(255, 255, 255, 0.65); background-color: #ffffff0a; border-color: #344461; } @@ -667,7 +731,7 @@ style attribute { .dark .ant-tag-red, .dark .ant-alert-error { background-color: #291515; - border-color: #5C2626; + border-color: #5c2626; color: #e04141; } @@ -687,7 +751,7 @@ style attribute { .dark .ant-tag-purple { background-color: #2c1e32; border-color: #49394e; - color: #f7aeed; + color: #f2eaf1; } .dark .ant-modal-content, @@ -695,19 +759,6 @@ style attribute { background-color: #181f2c; } -.dark .ant-modal-title, -.dark .ant-form-item-label>label, -.dark .ant-checkbox-wrapper, -.dark .ant-form-item, -.dark .ant-calendar-footer .ant-calendar-today-btn, -.dark .ant-calendar-footer .ant-calendar-time-picker-btn, -.dark .ant-calendar-day-select, -.dark .ant-calendar-month-select, -.dark .ant-calendar-year-select, -.dark .ant-calendar-date { - color: rgb(255 255 255 / 65%); -} - .dark .ant-calendar-next-month-btn-day .ant-calendar-date, .dark .ant-calendar-last-month-cell .ant-calendar-date { color: #2c3950; @@ -731,19 +782,38 @@ style attribute { } .dark .ant-calendar-time-picker-select li:focus { - color: #ffffff; + color: #fff; font-weight: 600; outline: none; background-color: #0a7557; } .dark .ant-calendar-time-picker-select { - border-right-color: #2C3950; + border-right-color: #2c3950; +} + +.has-warning .ant-input, +.has-warning .ant-input:hover { + background-color: #fff6e6; + border-color: #ffd98c; +} + +.has-warning .ant-input::placeholder { + color: #faad14; +} + +.has-warning .ant-input:not([disabled]):hover { + border-color: #ffd98c; } .dark .has-warning .ant-input, .dark .has-warning .ant-input:hover { - border-color: #faad14; + border-color: #784e1d; + background: rgb(49, 35, 19); +} + +.dark .has-warning .ant-input::placeholder { + color: rgb(255 160 49 / 70%); } .dark .has-warning .anticon { @@ -752,21 +822,224 @@ style attribute { .dark .has-success .anticon { color: #61bf39; - animation-name: diffZoomIn1!important; + animation-name: diffZoomIn1 !important; } .dark .anticon-close-circle { - color: #E04141; + color: #e04141; } -.dark .ant-spin-nested-loading>div>.ant-spin .ant-spin-text { +.dark .ant-spin-nested-loading > div > .ant-spin .ant-spin-text { text-shadow: 0 1px 2px #00000077; } .dark .ant-spin { - color: #ffffff; + color: #fff; } .dark .ant-spin-dot-item { - background-color: #ffffffff; + background-color: #fff; +} + +.ant-menu, +.ant-radio-button-wrapper { + user-select: none; +} + +.ant-calendar-date:hover { + background-color: #dae9f5; +} + +.ant-calendar-date:active { + background-color: #dae9f5; + color: rgba(0, 0, 0, 0.65); +} + +.ant-calendar-today .ant-calendar-date { + color: #0a7557; + font-weight: 700; + border-color: #0a7557; +} + +.dark .ant-calendar-today .ant-calendar-date { + color: #fff; + font-weight: 700; + border-color: #0a7557; +} + +.ant-calendar-selected-day .ant-calendar-date { + background: #0a7557; + color: #ffffff; +} + +li.ant-select-dropdown-menu-item:empty:after { + content: "None"; + font-weight: normal; + color: rgba(0, 0, 0, 0.25); +} + +.dark li.ant-select-dropdown-menu-item:empty:after { + content: "None"; + font-weight: normal; + color: rgba(255, 255, 255, 0.3); +} + +.ant-select-dropdown.ant-select-dropdown--multiple + .ant-select-dropdown-menu-item:hover + .ant-select-selected-icon { + color: rgba(0, 0, 0, 0.87); +} + +.dark.ant-select-dropdown.ant-select-dropdown--multiple + .ant-select-dropdown-menu-item:hover + .ant-select-selected-icon { + color: rgb(255, 255, 255); +} + +.ant-select-dropdown.ant-select-dropdown--multiple + .ant-select-dropdown-menu-item-selected + .ant-select-selected-icon, +.ant-select-dropdown.ant-select-dropdown--multiple + .ant-select-dropdown-menu-item-selected:hover + .ant-select-selected-icon { + color: #3c89e8; +} +.ant-select-selection:hover, +.ant-input-number-focused, +.ant-input-number:hover { + background-color: #edf4fa; +} + +.dark .ant-input-number-handler:active { + background-color: #0a7557; +} + +.dark .ant-input-number-handler:hover .ant-input-number-handler-down-inner, +.dark .ant-input-number-handler:hover .ant-input-number-handler-up-inner { + color: #fff; +} + +.dark .ant-input-number-handler-down { + border-top: 1px solid rgba(217, 217, 217, 0.3); +} + +.dark .ant-calendar-year-panel-header .ant-calendar-year-panel-century-select, +.dark .ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select, +.dark .ant-calendar-year-panel-header .ant-calendar-year-panel-month-select, +.dark + .ant-calendar-year-panel-header + .ant-calendar-year-panel-year-select + .dark + .ant-calendar-month-panel-header + .ant-calendar-month-panel-century-select, +.dark .ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select, +.dark .ant-calendar-month-panel-header .ant-calendar-month-panel-month-select, +.dark .ant-calendar-month-panel-header .ant-calendar-month-panel-year-select { + color: rgba(255, 255, 255, 0.85); +} + +.dark .ant-calendar-year-panel-header { + border-bottom: 1px solid #222d42; +} + +.dark .ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year, +.dark .ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year { + color: rgba(255, 255, 255, 0.35); +} + +.dark .ant-calendar-year-panel-year:hover, +.dark .ant-calendar-month-panel-month:hover, +.dark .ant-calendar-decade-panel-decade:hover { + background-color: #222d42; +} + +.dark .ant-calendar-header a:hover { + color: #fff; +} + +.dark .ant-calendar-month-panel-header { + background-color: #101828; + border-bottom: 1px solid #222d42; +} + +.dark .ant-calendar-year-panel, +.dark .ant-calendar table { + background-color: #101828; +} + +.dark .ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year, +.dark + .ant-calendar-year-panel-selected-cell + .ant-calendar-year-panel-year:hover, +.dark .ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month, +.dark + .ant-calendar-month-panel-selected-cell + .ant-calendar-month-panel-month:hover, +.dark + .ant-calendar-decade-panel-selected-cell + .ant-calendar-decade-panel-decade, +.dark + .ant-calendar-decade-panel-selected-cell + .ant-calendar-decade-panel-decade:hover { + color: #fff; + background-color: #0a7557; +} + +.dark .ant-calendar-last-month-cell .ant-calendar-date, +.dark .ant-calendar-last-month-cell .ant-calendar-date:hover, +.dark .ant-calendar-next-month-btn-day .ant-calendar-date, +.dark .ant-calendar-next-month-btn-day .ant-calendar-date:hover { + color: rgb(255 255 255 / 25%); + background: transparent; + border-color: transparent; +} + +.dark .ant-calendar-today .ant-calendar-date:hover { + color: #fff; + border-color: #0a7557; + background-color: #0a7557; +} + +.dark + .ant-calendar-decade-panel-last-century-cell + .ant-calendar-decade-panel-decade, +.dark + .ant-calendar-decade-panel-next-century-cell + .ant-calendar-decade-panel-decade { + color: rgb(255 255 255 / 25%); +} + +.dark .ant-calendar-decade-panel-header { + border-bottom: 1px solid #222d42; + background-color: #101828; +} + +.dark .ant-checkbox-inner { + background-color: rgba(14, 73, 181, 0.3); + border-color: rgba(14, 73, 181, 0.3); +} + +.dark .ant-checkbox-checked .ant-checkbox-inner { + background-color: #0a7557; + border-color: #0a7557; +} + +.dark .ant-calendar-input { + background-color: #101828; +} + +.dark .ant-calendar-input::placeholder { + color: rgba(255, 255, 255, 0.25); +} + +.ant-input-number-handler-wrap { + border-radius: 0; +} + +.ant-input-number-handler { + border-radius: 0; +} + +.ant-input-number { + overflow: clip; } diff --git a/web/html/login.html b/web/html/login.html index 07d5f52e..a59368b1 100644 --- a/web/html/login.html +++ b/web/html/login.html @@ -2,114 +2,231 @@ <html lang="en"> {{template "head" .}} <style> - - h1 { - text-align: center; - margin: 20px 0 50px 0; + h1 { + text-align: center; + margin: 20px 0 50px 0; + } + .ant-btn, + .ant-input { + height: 50px; + border-radius: 30px; + } + .ant-input-group-addon { + border-radius: 0 30px 30px 0; + width: 50px; + font-size: 18px; + } + .ant-input-affix-wrapper .ant-input-prefix { + left: 23px; + } + .ant-input-affix-wrapper .ant-input:not(:first-child) { + padding-left: 50px; + } + .centered { + display: flex; + text-align: center; + align-items: center; + justify-content: center; + } + .title { + font-size: 32px; + font-weight: bold; + } + #app { + overflow: hidden; + } + #login { + animation: charge 0.5s both; + background-color: #fff; + border-radius: 2rem; + padding: 3rem; + transition: all 0.3s; + } + #login:hover { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09); + } + @keyframes charge { + from { + transform: translateY(5rem); + opacity: 0; } - - .ant-btn, .ant-input { - height: 50px; - border-radius: 30px; + to { + transform: translateY(0); + opacity: 1; } - - .ant-input-group-addon { - border-radius: 0 30px 30px 0; - width: 50px; - font-size: 18px; + } + @keyframes wave { + from { + transform: rotate(0deg); } - - .ant-input-affix-wrapper .ant-input-prefix { - left: 23px; + to { + transform: rotate(360deg); } - - .ant-input-affix-wrapper .ant-input:not(:first-child) { - padding-left: 50px; + } + .wave { + opacity: 0.6; + position: absolute; + bottom: 40%; + left: 50%; + width: 6000px; + height: 6000px; + background: #000; + margin-left: -3000px; + transform-origin: 50% 48%; + border-radius: 46%; + animation: wave 72s infinite linear; + pointer-events: none; + } + .wave2 { + animation: wave 88s infinite linear; + opacity: 0.3; + } + .wave3 { + animation: wave 80s infinite linear; + opacity: 0.1; + background: #0a755715; + } + .under { + background-color: #dbf5ed; + } + .dark .wave { + background: rgb(10 117 87 / 20%); + } + .dark .under { + background-color: #051510; + } + .dark #login { + background-color: rgb(8, 22, 20); + } + .dark h1 { + color: rgba(255, 255, 255, 0.85); + } + .ant-btn-primary-login { + color: #0a7557; + background-color: #edf4fa; + border-color: #a9c5e7; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12); + box-shadow: none; + width: 100%; + } + .ant-btn-primary-login:focus, + .ant-btn-primary-login:hover { + color: #fff; + background-color: #0c3f9d; + border-color: #0a7557; + background-image: linear-gradient( + 270deg, + rgba(123, 199, 77, 0) 30%, + #2f67c2, + rgba(123, 199, 77, 0) 100% + ); + background-repeat: no-repeat; + animation: ma-bg-move ease-in-out 5s infinite; + background-position-x: -500px; + width: 95%; + animation-delay: -0.5s; + box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045); + } + .ant-btn-primary-login.active, + .ant-btn-primary-login:active { + color: #fff; + background-color: #04308f; + border-color: #04308f; + } + @keyframes ma-bg-move { + 0% { + background-position: -500px 0; } - - .centered { - display: flex; - text-align: center; - align-items: center; - justify-content: center; + 50% { + background-position: 1000px 0; } - - .title { - font-size: 32px; - font-weight: bold; + 100% { + background-position: 1000px 0; } - - #app { - overflow: hidden; - } - #login { - animation: charge .5s both; - background-color: #fff; - border-radius: 2rem; - padding: 3rem; - } - #login:hover { - box-shadow: 0 2px 8px rgba(0,0,0,.09); - } - @keyframes charge { - from {transform: translateY(5rem);opacity: 0} - to {transform: translateY(0);opacity: 1} - } - @keyframes wave { - from {transform: rotate(0deg);} - to {transform: rotate(360deg);} - } - .wave { - opacity: .6; - position: absolute; - bottom: 40%; - left: 50%; - width: 6000px; - height: 6000px; - background: #000; - margin-left: -3000px; - transform-origin: 50% 48%; - border-radius: 46%; - animation: wave 72s infinite linear; - pointer-events: none; - } - .wave2 { - animation: wave 88s infinite linear; - opacity: .3; - } - .wave3 { - animation: wave 80s infinite linear; - opacity: .1; - } - .wave { - background: #0a755715; - } - .under { - background-color: #dbf5ed; - } - .dark .wave { - background: rgb(10 117 87 / 20%); - } - .dark .under { - background-color: #051510; - } - .dark #login { - background-color: rgb(8, 22, 20); - } - .dark h1 { - color: rgb(255 255 255 / 85%); + } + .wave-btn-bg { + position: relative; + border-radius: 25px; + width: 100%; + } + .dark .wave-btn-bg { + color: #fff; + position: relative; + background-color: #0a7557; + border: 2px double transparent; + background-origin: border-box; + background-clip: padding-box, border-box; + background-size: 300%; + animation: wave-btn-tara 4s ease infinite; + transition: all 0.5s ease; + width: 100%; + } + .dark .wave-btn-bg-cl { + background-image: linear-gradient(rgba(13, 14, 33, 0), rgba(13, 14, 33, 0)), + radial-gradient(circle at left top, #0a7557, #387eff, #0a7557) !important; + border-radius: 3em; + } + .dark .wave-btn-bg-cl:hover { + width: 95%; + } + .dark .wave-btn-bg-cl:before { + position: absolute; + content: ""; + top: -5px; + left: -5px; + bottom: -5px; + right: -5px; + z-index: -1; + background: inherit; + background-size: inherit; + border-radius: 4em; + opacity: 0; + transition: 0.5s; + } + .dark .wave-btn-bg-cl:hover::before { + opacity: 1; + filter: blur(20px); + animation: wave-btn-tara 8s linear infinite; + } + @keyframes wave-btn-tara { + to { + background-position: 300%; } + } + .dark .ant-btn-primary-login { + font-size: 14px; + color: #fff; + text-align: center; + background-image: linear-gradient( + rgba(13, 14, 33, 0.45), + rgba(13, 14, 33, 0.35) + ); + border-radius: 2rem; + border: none; + outline: none; + background-color: transparent; + height: 46px; + position: relative; + white-space: nowrap; + cursor: pointer; + touch-action: manipulation; + padding: 0 15px; + width: 100%; + animation: none; + background-position-x: 0; + box-shadow: none; + } </style> <body> -<a-layout id="app" v-cloak class="login" :class="themeSwitcher.currentTheme"> +<a-layout id="app" v-cloak :class="themeSwitcher.currentTheme"> <transition name="list" appear> - <a-layout-content class="under"> + <a-layout-content class="under" style="min-height: 0;"> <div class='wave'></div> <div class='wave wave2'></div> <div class='wave wave3'></div> - <a-row type="flex" justify="center" align="middle" style="height: 100%;"> - <a-col :xs="22" :sm="20" :md="14" :lg="10" :xl="6" id="login"> - <a-row type="flex" justify="center"> + <a-row type="flex" justify="center" align="middle" style="height: 100%; overflow: auto;"> + <a-col :xs="22" :sm="20" :md="14" :lg="10" :xl="8" :xxl="6" id="login" style="margin: 3rem 0;"> + <a-row type="flex" justify="center"> <a-col> <h1 class="title">{{ i18n "pages.login.title" }}</h1> </a-col> @@ -120,7 +237,7 @@ <a-form-item> <a-input v-model.trim="user.username" placeholder='{{ i18n "username" }}' @keydown.enter.native="login" autofocus> - <a-icon slot="prefix" type="user" style="font-size: 16px;" /> + <a-icon slot="prefix" type="user" style="font-size: 16px;"/> </a-input> </a-form-item> <a-form-item> @@ -136,18 +253,20 @@ </a-form-item> <a-form-item> <a-row justify="center" class="centered"> - <a-button type="primary" :loading="loading" @click="login" :icon="loading ? 'poweroff' : undefined" - :style="loading ? { width: '50px' } : { display: 'block', width: '100%' }"> - [[ loading ? '' : '{{ i18n "login" }}' ]] - </a-button> + <div class="wave-btn-bg wave-btn-bg-cl"> + <a-button class="ant-btn-primary-login" type="primary" :loading="loading" @click="login" :icon="loading ? 'poweroff' : undefined" + :style="loading ? { width: '50px' } : { display: 'inline-block' }"> + [[ loading ? '' : '{{ i18n "login" }}' ]] + </a-button> + </div> </a-row> </a-form-item> <a-form-item> <a-row justify="center" class="centered"> <a-col :span="24"> - <a-select ref="selectLang" v-model="lang" @change="setLang(lang)" :dropdown-class-name="themeSwitcher.currentTheme"> - <a-select-option :value="l.value" :label="l.value" v-for="l in supportLangs"> - <span role="img" :aria-label="l.name" v-text="l.icon"></span> + <a-select ref="selectLang" v-model="lang" @change="setLang(lang)" style="width: 150px;" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option :value="l.value" label="English" v-for="l in supportLangs"> + <span role="img" aria-label="l.name" v-text="l.icon"></span> <span v-text="l.name"></span> </a-select-option> </a-select> @@ -182,6 +301,7 @@ this.password = ""; } } + const app = new Vue({ delimiters: ['[[', ']]'], el: '#app', @@ -216,7 +336,6 @@ }, }, }); - </script> </body> </html> \ No newline at end of file diff --git a/web/html/xui/inbound_client_table.html b/web/html/xui/inbound_client_table.html index cc626606..13add97f 100644 --- a/web/html/xui/inbound_client_table.html +++ b/web/html/xui/inbound_client_table.html @@ -19,7 +19,7 @@ :overlay-class-name="themeSwitcher.currentTheme" ok-text='{{ i18n "reset"}}' cancel-text='{{ i18n "cancel"}}'> - <a-icon slot="icon" type="question-circle-o" style="color: blue"></a-icon> + <a-icon slot="icon" type="question-circle-o" :style="themeSwitcher.isDarkTheme ? 'color: #3c89e8' : 'color: blue'"></a-icon> <a-icon style="font-size: 24px;" class="normal-icon" type="retweet" v-if="client.email.length > 0"></a-icon> </a-popconfirm> </a-tooltip>